

HESSIAN variables ;
The HESSIAN statement defines the Hessian matrix
containing the second-order derivatives of the objective function
with respect to
. For more information, see the section Derivatives.
If the DIAHES option is not specified,
the HESSIAN statement lists
variable names which correspond to the elements
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 = \left[ \begin{array}{ccc} G1 & G2 & G4 \\ G2 & G3 & G5 \\ G4 & G5 & G6 \\ \end{array} \right] = \left[ \begin{array}{ccc} \partial ^2 f / \partial x^2_1 & \partial ^2 f / \partial x_1 \partial x_2 & \partial ^2 f / \partial x_1 \partial x_3 \\ \partial ^2 f / \partial x_2 \partial x_1 & \partial ^2 f / \partial x^2_2 & \partial ^2 f / \partial x_2 \partial x_3 \\ \partial ^2 f / \partial x_3 \partial x_1 & \partial ^2 f / \partial x_3 \partial x_2 & \partial ^2 f / \partial x^2_3 \end{array} \right] \]](images/ormplpug_nlp0169.png)
If the DIAHES option is specified, only the
diagonal elements must be listed in the HESSIAN statement. The
rows and
columns of the Hessian matrix
must correspond to the order of the
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;