Stopping Criteria
A minimization procedure should stop when one of the following
conditions is true:
-
A minimum has been found to within the user-specified precision.
-
A user-specified maximum number of iterations has been reached.
-
An error has occurred.
The handling of these conditions is under user control. The functions
below allow the user to test the precision of the current result.
- Function: int gsl_multimin_test_gradient (const gsl_vector * g, double epsabs)
-
This function tests the norm of the gradient g against the
absolute tolerance epsabs. The gradient of a multidimensional
function goes to zero at a minimum. The test returns
GSL_SUCCESS
if the following condition is achieved,
|g| < epsabs
and returns GSL_CONTINUE otherwise. A suitable choice of
epsabs can be made from the desired accuracy in the function for
small variations in x. The relationship between these quantities
is given by
\delta f = g \delta x.
- Function: int gsl_multimin_test_size (const double size, double epsabs)
-
This function tests the minimizer specific characteristic
size (if applicable to the used minimizer) against absolute tolerance epsabs.
The test returns
GSL_SUCCESS if the size is smaller than tolerance,
otherwise GSL_CONTINUE is returned.