This function features a Newton-like algorithm. The user has to supply a Hessian function. No constraints are honoured.
This function is deprecated. It is now available as a backend for
nonlin_min (see
nonlin_min).
[x,v,nev,h,args] = d2_min(f,d2f,args,ctl,code) - Newton-like minimization
Minimize f(x) using 1st and 2nd derivatives. Any function w/ second
derivatives can be minimized, as in Newton. f(x) decreases at each
iteration, as in Levenberg-Marquardt. This function is inspired from the
Levenberg-Marquardt algorithm found in the book "Numerical Recipes".
ARGUMENTS :
f : string : Cost function's name
d2f : string : Name of function returning the cost (1x1), its
differential (1xN) and its second differential or it's
pseudo-inverse (NxN) (see ctl(5) below) :
[v,dv,d2v] = d2f (x).
args : list : f and d2f's arguments. By default, minimize the 1st
or matrix : argument.
ctl : vector : Control arguments (see below)
or struct
code : string : code will be evaluated after each outer loop that
produced some (any) improvement. Variables visible from
"code" include "x", the best parameter found, "v" the
best value and "args", the list of all arguments. All can
be modified. This option can be used to re-parameterize
the argument space during optimization
CONTROL VARIABLE ctl : (optional). May be a struct or a vector of length
---------------------- 5 or less where NaNs are ignored. Default values
are written <value>.
FIELD VECTOR
NAME POS
ftol, f N/A : Stop search when value doesn't improve, as tested by
f > Deltaf/max(|f(x)|,1)
where Deltaf is the decrease in f observed in the last
iteration. <10*sqrt(eps)>
utol, u N/A : Stop search when updates are small, as tested by
u > max { dx(i)/max(|x(i)|,1) | i in 1..N }
where dx is the change in the x that occured in the last
iteration. <NaN>
dtol, d N/A : Stop search when derivative is small, as tested by
d > norm (dv) <eps>
crit, c ctl(1) : Set one stopping criterion, 'ftol' (c=1), 'utol' (c=2)
or 'dtol' (c=3) to the value of by the 'tol' option. <1>
tol, t ctl(2) : Threshold in termination test chosen by 'crit' <10*eps>
narg, n ctl(3) : Position of the minimized argument in args <1>
maxev,m ctl(4) : Maximum number of function evaluations <inf>
maxout,m : Maximum number of outer loops <inf>
id2f, i ctl(5) : 0 if d2f returns the 2nd derivatives, 1 if <0>
it returns its pseudo-inverse.
verbose, v N/A : Be more or less verbose (quiet=0) <0>