bfgsmin: bfgs or limited memory bfgs minimization of function
Usage: [x, obj_value, convergence, iters] = bfgsmin(f, args, control)
The function must be of the form
[value<, derivative>] = f(arg_1, arg_2,..., arg_n)
By default, minimization is w.r.t. arg_1, but it can be done
w.r.t. any argument that is a vector. Numeric derivatives are
used unless analytic derivatives are supplied. See bfgsmin_example.m
for methods.
Arguments:
* f: name of function to minimize (string)
* args: a cell array that holds all arguments of the function
The argument with respect to which minimization is done
MUST be a vector
* control: an optional cell array of 1-9 elements. If a cell
array shorter than 9 elements is provided, the trailing elements
are provided with default values. If elements are set to an empty
matrix (so that isempty() is true), they are set to the
corresponding default values.
* elem 1: maximum iterations (positive integer, or -1 or Inf for unlimited (default))
* elem 2: verbosity
0 = no screen output (default)
1 = only final results
2 = summary every iteration
3 = detailed information
* elem 3: convergence criterion
1 = strict (function, gradient and param change) (default)
0 = weak - only function convergence required
* elem 4: arg in f_args with respect to which minimization is done (default is first)
* elem 5: (optional) Memory limit for lbfgs. If it's a positive integer
then lbfgs will be use. Otherwise ordinary bfgs is used
* elem 6: function change tolerance, default 1e-12
* elem 7: parameter change tolerance, default 1e-6
* elem 8: gradient tolerance, default 1e-5
* elem 9: a boolean, telling if f() returns a second output
with the analytic derivative, default false
Returns:
* x: the minimizer
* obj_value: the value of f() at x
* convergence: 1 if normal conv, other values if not
* iters: number of iterations performed
Example: see bfgsmin_example.m
Package: optim