nonlin_optimize Module



Derived Types

type, public, extends(line_search_optimizer) ::  bfgs

Defines a Broyden–Fletcher–Goldfarb–Shanno (BFGS) optimizer for minimization of smooth functions of multiple variables. The method uses a quasi-Newton inverse Hessian approximation and the update with and .

Read more…

Type-Bound Procedures

procedure, public :: get_line_search => lso_get_line_search
procedure, public :: get_max_fcn_evals => oe_get_max_eval
procedure, public :: get_print_status => oe_get_print_status
procedure, public :: get_tolerance => oe_get_tol
procedure, public :: get_use_line_search => lso_get_use_search
procedure, public :: get_var_tolerance => lso_get_var_tol
procedure, public :: is_line_search_defined => lso_is_line_search_defined
procedure, public :: set_default_line_search => lso_set_default
procedure, public :: set_line_search => lso_set_line_search
procedure, public :: set_max_fcn_evals => oe_set_max_eval
procedure, public :: set_print_status => oe_set_print_status
procedure, public :: set_tolerance => oe_set_tol
procedure, public :: set_use_line_search => lso_set_use_search
procedure, public :: set_var_tolerance => lso_set_var_tol
procedure, public :: solve => bfgs_solve

type, public, abstract, extends(equation_optimizer) ::  line_search_optimizer

A base class for optimizers that improve a trial step with a line search. The search direction is combined with a step length through and the accepted step satisfies a sufficient decrease condition.

Type-Bound Procedures

procedure, public :: get_line_search => lso_get_line_search
procedure, public :: get_max_fcn_evals => oe_get_max_eval
procedure, public :: get_print_status => oe_get_print_status
procedure, public :: get_tolerance => oe_get_tol
procedure, public :: get_use_line_search => lso_get_use_search
procedure, public :: get_var_tolerance => lso_get_var_tol
procedure, public :: is_line_search_defined => lso_is_line_search_defined
procedure, public :: set_default_line_search => lso_set_default
procedure, public :: set_line_search => lso_set_line_search
procedure, public :: set_max_fcn_evals => oe_set_max_eval
procedure, public :: set_print_status => oe_set_print_status
procedure, public :: set_tolerance => oe_set_tol
procedure, public :: set_use_line_search => lso_set_use_search
procedure, public :: set_var_tolerance => lso_set_var_tol
procedure(nonlin_optimize_fcn), public, deferred, pass :: solve

type, public, extends(equation_optimizer) ::  nelder_mead

Defines a direct-search optimizer based on Nelder and Mead's simplex method. The algorithm maintains a simplex of $n+1$ vertices and updates it by reflection, expansion, contraction, and shrinking steps to reduce the objective value .

Type-Bound Procedures

procedure, public :: get_initial_size => nm_get_size
procedure, public :: get_max_fcn_evals => oe_get_max_eval
procedure, public :: get_print_status => oe_get_print_status
procedure, public :: get_simplex => nm_get_simplex
procedure, public :: get_tolerance => oe_get_tol
procedure, public :: set_initial_size => nm_set_size
procedure, public :: set_max_fcn_evals => oe_set_max_eval
procedure, public :: set_print_status => oe_set_print_status
procedure, public :: set_simplex => nm_set_simplex
procedure, public :: set_tolerance => oe_set_tol
procedure, public :: solve => nm_solve