Next: , Previous: Providing the Function to be Minimized, Up: Nonlinear Least-Squares Fitting


38.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_multifit_fsolver_iterate (gsl_multifit_fsolver * s)
— Function: int gsl_multifit_fdfsolver_iterate (gsl_multifit_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. The solver maintains a current estimate of the best-fit parameters at all times.

The solver struct s contains the following entries, which can be used to track the progress of the solution:

gsl_vector * x
The current position.
gsl_vector * f
The function value at the current position.
gsl_vector * dx
The difference between the current position and the previous position, i.e. the last step, taken as a vector.
gsl_matrix * J
The Jacobian matrix at the current position (for the gsl_multifit_fdfsolver struct only)

The best-fit information also can be accessed with the following auxiliary functions,

— Function: gsl_vector * gsl_multifit_fsolver_position (const gsl_multifit_fsolver * s)
— Function: gsl_vector * gsl_multifit_fdfsolver_position (const gsl_multifit_fdfsolver * s)

These functions return the current position (i.e. best-fit parameters) s->x of the solver s.