The root finding algorithms described in this section make use of both the function and its derivative. They require an initial guess for the location of the root, but there is no absolute guarantee of convergence -- the function must be suitable for this technique and the initial guess must be sufficiently close to the root for it to work. When the conditions are satisfied then convergence is quadratic.
The algorithm uses a generalized trust region to keep each step under control. In order to be accepted a proposed new position @math{x'} must satisfy the condition @math{|D (x' - x)| < \delta}, where @math{D} is a diagonal scaling matrix and @math{\delta} is the size of the trust region. The components of @math{D} are computed internally, using the column norms of the Jacobian to estimate the sensitivity of the residual to each component of @math{x}. This improves the behavior of the algorithm for badly scaled functions.
On each iteration the algorithm first determines the standard Newton step by solving the system @math{J dx = - f}. If this step falls inside the trust region it is used as a trial step in the next stage. If not, the algorithm uses the linear combination of the Newton and gradient directions which is predicted to minimize the norm of the function while staying inside the trust region.
This combination of Newton and gradient directions is referred to as a dogleg step.
The proposed step is now tested by evaluating the function at the resulting point, @math{x'}. If the step reduces the norm of the function sufficiently then it is accepted and size of the trust region is increased. If the proposed step fails to improve the solution then the size of the trust region is decreased and another trial step is computed.
The speed of the algorithm is increased by computing the changes to the Jacobian approximately, using a rank-1 update. If two successive attempts fail to reduce the residual then the full Jacobian is recomputed. The algorithm also monitors the progress of the solution and returns an error if several steps fail to make any improvement,
GSL_ENOPROG
GSL_ENOPROGJ
hybridsj
. The steps are
controlled by a spherical trust region @math{|x' - x| < \delta}, instead
of a generalized region. This can be useful if the generalized region
estimated by hybridsj
is inappropriate.
Newton's Method is the standard root-polishing algorithm. The algorithm begins with an initial guess for the location of the solution. On each iteration a linear approximation to the function @math{F} is used to estimate the step which will zero all the components of the residual. The iteration is defined by the following sequence,
where the Jacobian matrix @math{J} is computed from the derivative functions provided by f. The step @math{dx} is obtained by solving the linear system,
using LU decomposition.
is proposed, with @math{r} being the ratio of norms @math{|f(x')|^2/|f(x)|^2}. This procedure is repeated until a suitable step size is found.