Next: , Previous: Providing the multidimensional system of equations to solve, Up: Multidimensional Root-Finding


35.4 Iteration

The following functions drive the iteration of each algorithm. Each function performs one iteration to update the state of any solver of the corresponding type. The same functions work for all solvers so that different methods can be substituted at runtime without modifications to the code.

— Function: int gsl_multiroot_fsolver_iterate (gsl_multiroot_fsolver * s)
— Function: int gsl_multiroot_fdfsolver_iterate (gsl_multiroot_fdfsolver * s)

These functions perform a single iteration of the solver s. If the iteration encounters an unexpected problem then an error code will be returned,

GSL_EBADFUNC
the iteration encountered a singular point where the function or its derivative evaluated to Inf or NaN.
GSL_ENOPROG
the iteration is not making any progress, preventing the algorithm from continuing.

The solver maintains a current best estimate of the root s->x and its function value s->f at all times. This information can be accessed with the following auxiliary functions,

— Function: gsl_vector * gsl_multiroot_fsolver_root (const gsl_multiroot_fsolver * s)
— Function: gsl_vector * gsl_multiroot_fdfsolver_root (const gsl_multiroot_fdfsolver * s)

These functions return the current estimate of the root for the solver s, given by s->x.

— Function: gsl_vector * gsl_multiroot_fsolver_f (const gsl_multiroot_fsolver * s)
— Function: gsl_vector * gsl_multiroot_fdfsolver_f (const gsl_multiroot_fdfsolver * s)

These functions return the function value f(x) at the current estimate of the root for the solver s, given by s->f.

— Function: gsl_vector * gsl_multiroot_fsolver_dx (const gsl_multiroot_fsolver * s)
— Function: gsl_vector * gsl_multiroot_fdfsolver_dx (const gsl_multiroot_fdfsolver * s)

These functions return the last step dx taken by the solver s, given by s->dx.