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:
 _f Value of function to be minimized. _x Vector of independent variables. _g Vector 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 211 of file newfmin.cpp.