The NLP Procedure

HESSIAN Statement

HESSIAN variables ;

The HESSIAN statement defines the Hessian matrix  g containing the second-order derivatives of the objective function  f with respect to  x_1, ... ,x_n. For more information, see the section "Derivatives".

If the DIAHES option is not specified, the HESSIAN statement lists  n(n+1)/2 variable names which correspond to the elements  g_{j,k}, j \geq k, of the lower triangle of the symmetric Hessian matrix listed by rows. For example, the statements
  
       min f; 
       decvar x1 - x3; 
       hessian g1-g6;
 
correspond to the Hessian matrix
g = [ g1 & g2 & g4 \    g2 & g3 & g5 \    g4 & g5 & g6 \    ]    = [ \partial^2 f / ...   ... \partial^2 f / \partial x_3 \partial x_2 &    \partial^2 f / \partial x^2_3    ]
If the DIAHES option is specified, only the  n diagonal elements must be listed in the HESSIAN statement. The  n rows and  n columns of the Hessian matrix  g must correspond to the order of the  n parameter names listed in the DECVAR statement. To specify the values of nonzero derivatives, the variables specified in the HESSIAN statement must be defined on the left-hand side of algebraic expressions in the programming statements. For example, consider the Rosenbrock function:

  
    proc nlp tech=nrridg; 
       min f; 
       decvar x1 x2; 
       gradient g1 g2; 
       hessian h1-h3; 
  
       f1 = 10 * (x2 - x1 * x1); 
       f2 = 1 - x1; 
  
       f = .5 * (f1 * f1 + f2 * f2); 
  
       g1 = -200 * x1 * (x2 - x1 * x1) - (1 - x1); 
       g2 = 100 * (x2 - x1 * x1); 
  
       h1 = -200 * (x2 - 3 * x1 * x1) + 1; 
       h2 = -200 * x1; 
       h3 = 100; 
    run;
 

Previous Page | Next Page | Top of Page