Language Reference

NLPDD Call

CALL NLPDD (rc, xr, "fun", x0 <, opt> <, blc> <, tc> <, par> <, "ptit"> <, "grd"> ) ;

This subroutine is supported only by the IML procedure.

The NLPDD subroutine uses the double-dogleg method to solve a nonlinear optimization problem.

See the section Nonlinear Optimization and Related Subroutines for a listing of all NLP subroutines. See Chapter 16 for a description of the arguments of NLP subroutines.

The double-dogleg optimization method combines the ideas of the quasi-Newton and trust-region methods. In each iteration, the algorithm computes the step, s Superscript left-parenthesis k right-parenthesis, as a linear combination of the steepest descent or ascent search direction, s 1 Superscript left-parenthesis k right-parenthesis, and a quasi-Newton search direction, s 2 Superscript left-parenthesis k right-parenthesis, as follows:

s Superscript left-parenthesis k right-parenthesis Baseline equals alpha 1 s 1 Superscript left-parenthesis k right-parenthesis Baseline plus alpha 2 s 2 Superscript left-parenthesis k right-parenthesis

The step s Superscript left-parenthesis k right-parenthesis must remain within a specified trust-region radius (Fletcher 1987). Hence, the NLPDD subroutine uses the dual quasi-Newton update but does not perform a line search. You can specify one of two update formulas with the fourth element of the opt input argument.

Value of opt[4] Update Method
1 Dual BFGS update of the Cholesky factor of the Hessian matrix.
This is the default.
2 Dual DFP update of the Cholesky factor of the Hessian matrix.

The double-dogleg optimization technique works well for medium to moderately large optimization problems, in which the objective function and the gradient are much faster to compute than the Hessian. The implementation is based on Dennis and Mei (1979) and Gay (1983), but it is extended for boundary and linear constraints. The NLPDD subroutine generally needs more iterations than the techniques that require second-order derivatives (NLPTR, NLPNRA, and NLPNRR), but each of the NLPDD iterations is computationally inexpensive. Furthermore, the NLPDD subroutine needs only gradient calls to update the Cholesky factor of an approximate Hessian.

In addition to the standard iteration history, the NLPDD routine prints the following information:

  • The heading lambda refers to the parameter lamda of the double-dogleg step. A value of 0 corresponds to the full (quasi-) Newton step.

  • The heading slope refers to g Superscript upper T Baseline s, the slope of the search direction at the current parameter iterate x Superscript left-parenthesis k right-parenthesis. For minimization, this value should be significantly smaller than zero.

The following statements invoke the NLPDD subroutine to solve the constrained Betts optimization problem (see the section Constrained Betts Function):

start F_BETTS(x);
   f = .01 * x[1] * x[1] + x[2] * x[2] - 100;
   return(f);
finish F_BETTS;

con = {  2 -50  .   .,
        50  50  .   .,
        10  -1  1  10};
x = {-1 -1};
opt = {0 1};
call nlpdd(rc, xres, "F_BETTS", x, opt, con);

Figure 270 shows the iteration history. The optimization converged after six iterations.

Figure 270: Constrained Optimization


Note:Initial point was changed to be feasible for boundary and linear constraints.


Double Dogleg Optimization


Dual Broyden - Fletcher - Goldfarb - Shanno Update (DBFGS)


Without Parameter Scaling


Gradient Computed by Finite Differences

Parameter Estimates2
Lower Bounds2
Upper Bounds2
Linear Constraints1

Optimization Start
Active Constraints0Objective Function-98.5376
Max Abs Gradient Element2Radius1

Iteration RestartsFunction
Calls
Active
Constraints
 Objective
Function
Objective
Function
Change
Max Abs
Gradient
Element
LambdaSlope of
Search
Direction
1 020 -99.546781.00920.13466.012-1.805
2 030 -99.591200.04440.12790-0.0228
3 050 -99.902520.31130.06240-0.209
4 061 -99.960000.05750.004320-0.0975
5 071 -99.960004.66E-60.0000790-458E-8
6 081 -99.960001.559E-900-16E-10

Optimization Results
Iterations6Function Calls9
Gradient Calls8Active Constraints1
Objective Function-99.96Max Abs Gradient Element0
Slope of Search Direction-1.56621E-9Radius1

GCONV convergence criterion satisfied.


The optimal value for the function is returned in the xres vector, which is displayed in Figure 271.

Figure 271: The Optimal Value

xres
2-9.612E-8


Last updated: July 20, 2026