Namespace:
Imsl.Math
Assembly:
ImslCS (in ImslCS.dll) Version: 6.5.0.0
Syntax
C# |
---|
[SerializableAttribute] public class NonlinLeastSquares |
Visual Basic (Declaration) |
---|
<SerializableAttribute> _ Public Class NonlinLeastSquares |
Visual C++ |
---|
[SerializableAttribute] public ref class NonlinLeastSquares |
Remarks
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. The first stopping criteria occurs when the norm of the
function is less than the property AbsoluteTolerance. The second
stopping criteria occurs when the norm of the scaled gradient is less than
the proprty GradientTolerance. The third stopping criteria occurs
when the scaled distance between the last two steps is less than the
property StepTolerance. 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.