Solves a nonlinear least squares problem using a modified Levenberg-Marquardt algorithm.
For a list of all members of this type, see NonlinLeastSquares Members.
System.Object
Imsl.Math.NonlinLeastSquares
Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.
NonlinLeastSquares
is based on the MINPACK routine LMDIF
by More et al. (1980). It uses a modified Levenberg-Marquardt method to solve nonlinear least squares problems. The problem is stated as follows:
where , , and is the i-th component function of F(x). From a current point, the algorithm uses the trust region approach:
subject to
to get a new point , which is computed as
where if and otherwise. and are the function values and the Jacobian evaluated at the current point . This procedure is repeated until the stopping criteria are satisfied. For more details, see Levenberg (1944), Marquardt (1963), or Dennis and Schnabel (1983, Chapter 10).
A finite-difference method is used to estimate the Jacobian when the user supplied function, f
, defines the least-squares problem. Whenever the exact Jacobian can be easily provided, f
should implement NonlinLeastSquares.Jacobian
.
Namespace: Imsl.Math
Assembly: ImslCS (in ImslCS.dll)
NonlinLeastSquares Members | Imsl.Math Namespace | Finite Differences Example | Jacobian Example