Levenberg-Marquardt optimization method
The Levenberg-Marquardt method is an interface to the MINPACK
subroutine lmdif to find the local minimum of nonlinear least
squares functions of several variables by a modification of the
Levenberg-Marquardt algorithm (J.J. More, "The Levenberg Marquardt
algorithm: implementation and theory," in Lecture Notes in
Mathematics 630: Numerical Analysis, G.A. Watson (Ed.),
Springer-Verlag: Berlin, 1978, pp.105-116).
Method Options
-
ftol - the relative error desired in the sum of squares;
default is sqrt( DBL_EPSILON ) ~ 1.19209289551e-07, where
DBL_EPSILON is the smallest number x such that 1.0 != 1.0 + x.
The conditions are satisfied when both the actual and predicted
relative reductions in the sum of squares are, at most, ftol.
-
xtol - the relative error desired in the approximate solution;
default is sqrt( DBL_EPSILON ) ~ 1.19209289551e-07, where
DBL_EPSILON is the smallest number x such that 1.0 != 1.0 + x.
The conditions are satisfied when the relative error between two
consecutive iterates is, at most, xtol
-
gtol - the orthogonality desired between the function vector and
the columns of the jacobian; default is sqrt( DBL_EPSILON ) ~
1.19209289551e-07, where DBL_EPSILON is the smallest number x such
that 1.0 != 1.0 + x. The conditions are satisfied when the
cosine of the angle between fvec and any column of the jacobian is,
at most, gtol in absolute value.
-
maxfev - the maximum number of function evaluation; default
is 1024 * n (number of free parameters).
-
epsfcn - used in determining a suitable step length for the
forward-difference approximation; default is sqrt( DBL_EPSILON ) ~
1.19209289551e-07, where DBL_EPSILON is the smallest number x such
that 1.0 != 1.0 + x. This approximation assumes that the relative
errors in the functions are of the order of epsfcn. If epsfcn is
less than the machine precision, it is assumed that the relative
errors in the functions are of the order of the machine precision.
-
factor - used in determining the initial step bound; default is
100. The initial step bound is set to the product of factor and
the euclidean norm of diag*x if nonzero, or else to factor itself.
In most cases, factor should be from the interval (.1,100.).
-
verbose - the amount of information to print about the fit
progress. Default is 0 (no output).
sherpa> set_method("levmar");
sherpa> get_method_name();
levmar
Set the optimization method and then confirm the new value.
|