The following function initializes a multidimensional minimizer. The minimizer itself depends only on the dimension of the problem and the algorithm and can be reused for different problems.
This function returns a pointer to a newly allocated instance of a
minimizer of type T for an n-dimension function. If there
is insufficient memory to create the minimizer then the function returns
a null pointer and the error handler is invoked with an error code of
gsl_multimin_fdfminimizer_set initializes the minimizer s to minimize the function
fdf starting from the initial point x. The size of the
first trial step is given by step_size. The accuracy of the line
minimization is specified by tol. The precise meaning of this
parameter depends on the method used. Typically the line minimization
is considered successful if the gradient of the function g is
orthogonal to the current search direction p to a relative
accuracy of tol, where dot(p,g) < tol |p| |g|. A tol value of 0.1 is
suitable for most purposes, since line minimization only needs to
be carried out approximately. Note that setting tol to zero will
force the use of “exact” line-searches, which are extremely expensive.
gsl_multimin_fminimizer_set initializes the minimizer s to minimize the function
f, starting from the initial point
x. The size of the initial trial steps is given in vector
step_size. The precise meaning of this parameter depends on the
This function frees all the memory associated with the minimizer s.
This function returns a pointer to the name of the minimizer. For example,
printf ("s is a '%s' minimizer\n", gsl_multimin_fdfminimizer_name (s));
would print something like
s is a 'conjugate_pr' minimizer.