ADMB Documentation  11.1.2397
 All Classes Files Functions Variables Typedefs Friends Defines
Functions
Numerical Function Minimization

Functions

void fmm::fmin (const double &f, const dvector &x, const dvector &g)
 Function fmin contains Quasi-Newton function minimizer with inexact line search using Wolfe conditions and BFGS correction formula for Hessian update.

Function Documentation

void fmm::fmin ( const double &  _f,
const dvector _x,
const dvector _g 
)

Function fmin contains Quasi-Newton function minimizer with inexact line search using Wolfe conditions and BFGS correction formula for Hessian update.

The algorithm consists of the following steps (in the order of execution):

  • Initial step with Hessian being an identity matrix (see call1)
  • Line search test for step length satisfying Wolfe conditions (beginning of call2)
  • Line search backtracking and reducing alpha (label40) if the current direction is not a gradient descent one or the function value has increased
  • Hessian update (labels 50-70) once all conditions are satisfied to assure its positive-definiteness
  • Update of a vector of independent variables (label30)

Convergence is detected if the maximal gradient component falls below small constant (see label20)

Requires:

Parameters:
_fValue of function to be minimized.
_xVector of independent variables.
_gVector containing the partial derivatives of _f with respect to each independent variable. The gradient vector returned by gradcalc. Pre: Some class member variables can be initialized by user prior to calling this function. These control variables may change the behavior of fmin, they are: maxfn (maximal number of function evaluations, after which minimization stops) crit (convergence criterion constant) imax (maximal number of function evaluations within one linear search* before to stop) iprint (flag to allow (=1) or supress (=0) printing intermediate statistics min_improve (stop after 10 iterations with overall function decrease less than this value) The default values can be found in function set_defaults of class fmm_control Modifies: The Hessian matrix (and not its inverse) h Returns (via parameter vector x): A vector x after a step of linear search in the direction of gradient descent

Definition at line 215 of file newfmin.cpp.

Referenced by fmm::minimize(), function_minimizer::prof_minimize(), function_minimizer::prof_minimize_re(), and function_minimizer::quasi_newton_block().