|
Chapter Contents |
Previous |
Next |
| Language Reference |
calculates Levenberg-Marquardt least squares
See "Nonlinear Optimization and Related Subroutines" for a listing of all NLP subroutines. See "Nonlinear Optimization Examples" for a description of the inputs to and outputs of all NLP subroutines.
The NLPLM subroutine uses the Levenberg-Marquardt method, which is
an efficient modification of the trust-region method for nonlinear
least-squares problems and is implemented as in Mor
(1978).
This is the recommended algorithm for
small to medium least-squares problems.
Large least-squares problems can often
be processed more efficiently with other
subroutines, such as the NLPCG and NLPQN methods.
In each iteration, the NLPLM subroutine solves a
quadratically-constrained quadratic minimization
problem that restricts the step to the boundary or
interior of an n-dimensional elliptical trust region.
The m functions f1(x), ... ,fm(x) are computed by the module specified with the "fun" module argument. The m×n Jacobian matrix, J, contains the first-order derivatives of the m functions with respect to the n parameters, as follows:

Note: In least-squares subroutines, you must set the first element of the opt vector to m, the number of functions.
In addition to the standard iteration history, the NLPLM subroutine also prints the following information:
Figure 17.5 shows the iteration history for the solution of the unconstrained Rosenbrock problem. See the section, "Unconstrained Rosenbrock Function", for the statements that generate this output.
Optimization Start
Parameter Estimates
Gradient
Objective
N Parameter Estimate Function
1 X1 -1.200000 -107.799999
2 X2 1.000000 -44.000000
Value of Objective Function = 12.1
Levenberg-Marquardt Optimization
Scaling Update of More (1978)
Gradient Computed by Finite Differences
CRP Jacobian Computed by Finite Differences
Parameter Estimates 2
Functions (Observations) 2
Optimization Start
Active Constraints 0 Objective Function 12.1
Max Abs Gradient Element 107.7999987 Radius 2626.5613171
Actual
Function Active Objective
Iter Restarts Calls Constraints Function
1 0 4 0 2.18185
2 0 6 0 1.59370
3 0 7 0 1.32848
4 0 8 0 1.03891
5 0 9 0 0.78943
6 0 10 0 0.58838
7 0 11 0 0.34224
8 0 12 0 0.19630
9 0 13 0 0.11626
10 0 14 0 0.0000396
11 0 15 0 2.4652E-30
Ratio
Between
Actual
Objective Max Abs and
Function Gradient Predicted
Iter Change Element Lambda Change
1 9.9181 17.4704 0.00804 0.964
2 0.5881 3.7015 0.0190 0.988
3 0.2652 7.0843 0.00830 0.678
4 0.2896 6.3092 0.00753 0.593
5 0.2495 7.2617 0.00634 0.486
6 0.2011 7.8837 0.00462 0.393
7 0.2461 6.6815 0.00307 0.524
8 0.1459 8.3857 0.00147 0.469
9 0.0800 9.3086 0.00016 0.409
10 0.1162 0.1781 0 1.000
11 0.000040 4.44E-14 0 1.000
Optimization Results
Iterations 11 Function Calls 16
Jacobian Calls 12 Active Constraints 0
Objective Function 2.46519E-30 Max Abs Gradient Element 4.440892E-14
Lambda 0 Actual Over Pred Change 1
Radius 0.0178062912
ABSGCONV convergence criterion satisfied.
Optimization Results
Parameter Estimates
Gradient
Objective
N Parameter Estimate Function
1 X1 1.000000 -4.44089E-14
2 X2 1.000000 2.220446E-14
Value of Objective Function = 2.46519E-30
Figure 17.5: Iteration History for the NLPLM Subroutine
|
Chapter Contents |
Previous |
Next |
Top |
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.