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