Objective function for a line search in an N-D space
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | derivativeOrder | = | 2 | Order of finite difference approximations |
|
real(kind=wp), | public | :: | stepSize | = | 1.0E-3_wp | Step size for finite differences |
|
class(objN_t), | public, | allocatable | :: | parent | N-D objective function |
||
real(kind=wp), | public, | dimension(:), allocatable | :: | x0 | Base point in N-space along the line |
||
real(kind=wp), | public, | dimension(:), allocatable | :: | n0 | Direction in N-space |
Constructors for lineSearch_t
Constructor for lineSearch_t
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(objN_t), | intent(in) | :: | obj | Parent N-D objective function |
||
real(kind=wp), | intent(in), | dimension(:) | :: | x | Point along line |
New lineSearch_t
Compute the first derivative using finite differences
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(obj_t), | intent(in) | :: | self | Function to differentiate |
||
real(kind=wp), | intent(in) | :: | x | Evaluation point |
First derivative
Compute the second derivative using finite differences
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(obj_t), | intent(in) | :: | self | Function to differentiate |
||
real(kind=wp), | intent(in) | :: | x | Evaluation point |
Second derivative
Find the root of a 1-D function using Newton's method
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(obj_t), | intent(in) | :: | self | Function for root finding |
||
real(kind=wp), | intent(in) | :: | x0 | Initial guess |
||
real(kind=wp), | intent(in), | optional | :: | tol | Tolerance |
|
integer, | intent(in), | optional | :: | maxIts | Maximum iterations |
Location of root
Find the minimum of a 1-D function using Newton's method
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(obj_t), | intent(in) | :: | self | Function for minimization |
||
real(kind=wp), | intent(in) | :: | x0 | Intial guess |
||
real(kind=wp), | intent(in), | optional | :: | tol | Tolerance |
|
integer, | intent(in), | optional | :: | maxIts | Maximum iterations |
Location of minimum
Convert a local 1-D x into the parent's N-space
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lineSearch_t), | intent(in) | :: | self | Line search space |
||
real(kind=wp), | intent(in) | :: | x | Local location \(x\) |
Parent location \(\vec{x}\)
Evaluate the parent function at a local \(x\)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lineSearch_t), | intent(in) | :: | self | Line search space |
||
real(kind=wp), | intent(in) | :: | x | Local location |
Parent result