Next: Nonlinear Least-Squares High Level Driver, Previous: Nonlinear Least-Squares Iteration, Up: Nonlinear Least-Squares Fitting [Index]
A minimization procedure should stop when one of the following conditions is true:
The handling of these conditions is under user control. The functions below allow the user to test the current estimate of the best-fit parameters in several standard ways.
These functions test for convergence of the minimization method using the following criteria:
|\delta_i| <= xtol (|x_i| + xtol)
for each 0 <= i < p. Each element of the step vector \delta
is tested individually in case the different parameters have widely
different scales. Adding xtol to |x_i| helps the test avoid
breaking down in situations where the true solution value x_i = 0.
If this test succeeds, info is set to 1 and the function
returns GSL_SUCCESS
.
A general guideline for selecting the step tolerance is to choose xtol = 10^{-d} where d is the number of accurate decimal digits desired in the solution x. See Dennis and Schnabel for more information.
||g||_inf <= gtol
This expression tests whether the ratio
(\nabla \Phi)_i x_i / \Phi is small. Testing this scaled gradient
is a better than \nabla \Phi alone since it is a dimensionless
quantity and so independent of the scale of the problem. The
max
arguments help ensure the test doesn’t break down in
regions where x_i or \Phi(x) are close to 0.
If this test succeeds, info is set to 2 and the function
returns GSL_SUCCESS
.
A general guideline for choosing the gradient tolerance is to set
gtol = GSL_DBL_EPSILON^(1/3)
. See Dennis and Schnabel for
more information.
If none of the tests succeed, info is set to 0 and the
function returns GSL_CONTINUE
, indicating further iterations
are required.