NonlinLeastSquares Class |
Namespace: Imsl.Math
The NonlinLeastSquares type exposes the following members.
Name | Description | |
---|---|---|
NonlinLeastSquares |
Creates an object to solve a nonlinear least squares problem.
|
Name | Description | |
---|---|---|
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
SetFscale |
Sets the diagonal scaling matrix for the functions.
| |
SetGuess |
Sets the initial guess of the minimum point of the input function.
| |
SetXscale |
Set the diagonal scaling matrix for the variables.
| |
Solve |
Solve a nonlinear least-squares problem using a modified
Levenberg-Marquardt algorithm and a Jacobian.
| |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
Name | Description | |
---|---|---|
AbsoluteTolerance |
The absolute function tolerance.
| |
Digits |
The number of good digits in the function.
| |
ErrorStatus |
Get information about the performance of NonlinLeastSquares.
| |
FalseConvergenceTolerance |
The false convergence tolerance.
| |
GradientTolerance |
The scaled gradient tolerance.
| |
InitialTrustRegion |
The initial trust region radius.
| |
MaximumIterations |
The maximum number of iterations allowed.
| |
MaximumStepsize |
The maximum allowable stepsize to use.
| |
NumberOfProcessors |
Perform the parallel calculations with the maximum possible number of
processors set to NumberOfProcessors.
| |
Parallel |
Enable or disable performing NonlinLeastSquares.IFunction.F in parallel.
| |
RelativeTolerance |
The relative function tolerance.
| |
StepTolerance |
The scaled step tolerance.
|
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 property 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.