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.