Node:Initializing the Multidimensional Solver, Next:, Previous:Overview of Multidimensional Root Finding, Up:Multidimensional Root-Finding



Initializing the Solver

The following functions initialize a multidimensional solver, either with or without derivatives. The solver itself depends only on the dimension of the problem and the algorithm and can be reused for different problems.

gsl_multiroot_fsolver * gsl_multiroot_fsolver_alloc (const gsl_multiroot_fsolver_type * T, size_t n) Function
This function returns a pointer to a newly allocated instance of a solver of type T for a system of n dimensions. For example, the following code creates an instance of a hybrid solver, to solve a 3-dimensional system of equations.
          const gsl_multiroot_fsolver_type * T
              = gsl_multiroot_fsolver_hybrid;
          gsl_multiroot_fsolver * s
              = gsl_multiroot_fsolver_alloc (T, 3);
          

If there is insufficient memory to create the solver then the function returns a null pointer and the error handler is invoked with an error code of GSL_ENOMEM.

gsl_multiroot_fdfsolver * gsl_multiroot_fdfsolver_alloc (const gsl_multiroot_fdfsolver_type * T, size_t n) Function
This function returns a pointer to a newly allocated instance of a derivative solver of type T for a system of n dimensions. For example, the following code creates an instance of a Newton-Raphson solver, for a 2-dimensional system of equations.
          const gsl_multiroot_fdfsolver_type * T
              = gsl_multiroot_fdfsolver_newton;
          gsl_multiroot_fdfsolver * s =
              gsl_multiroot_fdfsolver_alloc (T, 2);
          

If there is insufficient memory to create the solver then the function returns a null pointer and the error handler is invoked with an error code of GSL_ENOMEM.

int gsl_multiroot_fsolver_set (gsl_multiroot_fsolver * s, gsl_multiroot_function * f, gsl_vector * x) Function
This function sets, or resets, an existing solver s to use the function f and the initial guess x.

int gsl_multiroot_fdfsolver_set (gsl_multiroot_fdfsolver * s, gsl_multiroot_function_fdf * fdf, gsl_vector * x) Function
This function sets, or resets, an existing solver s to use the function and derivative fdf and the initial guess x.

void gsl_multiroot_fsolver_free (gsl_multiroot_fsolver * s) Function
void gsl_multiroot_fdfsolver_free (gsl_multiroot_fdfsolver * s) Function
These functions free all the memory associated with the solver s.

const char * gsl_multiroot_fsolver_name (const gsl_multiroot_fsolver * s) Function
const char * gsl_multiroot_fdfsolver_name (const gsl_multiroot_fdfsolver * s) Function
These functions return a pointer to the name of the solver. For example,
          printf ("s is a '%s' solver\n",
                  gsl_multiroot_fdfsolver_name (s));
          

would print something like s is a 'newton' solver.