Defines a Broyden–Fletcher–Goldfarb–Shanno (BFGS) solver for minimization of functions of multiple variables.
See Also:
Gets the line search module.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search_optimizer), | intent(in) | :: | this |
The line_search_optimizer object. |
||
| class(line_search), | intent(out), | allocatable | :: | ls |
The line_search object. |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(equation_optimizer), | intent(in) | :: | this |
The equation_optimizer object. |
The maximum number of function evaluations.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(equation_optimizer), | intent(in) | :: | this |
The equation_optimizer object. |
True if the iteration status should be printed; else, false.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(equation_optimizer), | intent(in) | :: | this |
The equation_optimizer object. |
The tolerance.
Gets a value determining if a line-search should be employed.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search_optimizer), | intent(in) | :: | this |
The line_search_optimizer object. |
Returns true if a line search should be used; else, false.
Gets the convergence on change in variable tolerance.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search_optimizer), | intent(in) | :: | this |
The line_search_optimizer object. |
The tolerance value.
Tests to see if a line search module is defined.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search_optimizer), | intent(in) | :: | this |
The line_search_optimizer object. |
Returns true if a module is defined; else, false.
Establishes a default line_search object for the line search module.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search_optimizer), | intent(inout) | :: | this |
The line_search_optimizer object. |
Sets the line search module.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search_optimizer), | intent(inout) | :: | this |
The line_search_optimizer object. |
||
| class(line_search), | intent(in) | :: | ls |
The line_search object. |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(equation_optimizer), | intent(inout) | :: | this |
The equation_optimizer object. |
||
| integer(kind=int32), | intent(in) | :: | n |
The maximum number of function evaluations. |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(equation_optimizer), | intent(inout) | :: | this |
The equation_optimizer object. |
||
| logical, | intent(in) | :: | x |
True if the iteration status should be printed; else, false. |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(equation_optimizer), | intent(inout) | :: | this |
The equation_optimizer object. |
||
| real(kind=real64), | intent(in) | :: | x |
The tolerance. |
Sets a value determining if a line-search should be employed.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search_optimizer), | intent(inout) | :: | this |
The line_search_optimizer object. |
||
| logical, | intent(in) | :: | x |
Set to true if a line search should be used; else, false. |
Sets the convergence on change in variable tolerance.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(line_search_optimizer), | intent(inout) | :: | this |
The line_search_optimizer object. |
||
| real(kind=real64), | intent(in) | :: | x |
The tolerance value. |
Utilizes the Broyden-Fletcher-Goldfarb-Shanno (BFGS) algorithm for finding a minimum value of the specified function.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bfgs), | intent(inout) | :: | this |
The bfgs object. |
||
| class(fcnnvar_helper), | intent(in) | :: | fcn |
The fcnnvar_helper object containing the equation to optimize. |
||
| real(kind=real64), | intent(inout), | dimension(:) | :: | x |
On input, the initial guess at the optimal point. On output, the updated optimal point estimate. |
|
| real(kind=real64), | intent(out), | optional | :: | fout |
An optional output, that if provided, returns the value of the function at x. |
|
| type(iteration_behavior), | optional | :: | ib |
An optional output, that if provided, allows the caller to obtain iteration performance statistics. |
||
| class(errors), | intent(inout), | optional, | target | :: | err |
An error handling object. |