Next: Algorithms using Derivatives, Previous: Iteration of the multidimensional solver, Up: Multidimensional Root-Finding [Index]

A root finding procedure should stop when one of the following conditions is true:

- A multidimensional root 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 in several standard ways.

- Function:
*int***gsl_multiroot_test_delta***(const gsl_vector **`dx`, const gsl_vector *`x`, double`epsabs`, double`epsrel`) -
This function tests for the convergence of the sequence by comparing the last step

`dx`with the absolute error`epsabs`and relative error`epsrel`to the current position`x`. The test returns`GSL_SUCCESS`

if the following condition is achieved,|dx_i| < epsabs + epsrel |x_i|

for each component of

`x`and returns`GSL_CONTINUE`

otherwise.

- Function:
*int***gsl_multiroot_test_residual***(const gsl_vector **`f`, double`epsabs`) This function tests the residual value

`f`against the absolute error bound`epsabs`. The test returns`GSL_SUCCESS`

if the following condition is achieved,\sum_i |f_i| < epsabs

and returns

`GSL_CONTINUE`

otherwise. This criterion is suitable for situations where the precise location of the root,*x*, is unimportant provided a value can be found where the residual is small enough.