| The NLP Procedure | 
The MINQUAD and MAXQUAD statements specify the matrix  , vector
, vector  , 
 and scalar
, 
 and scalar  that define a quadratic objective function. 
 The MINQUAD statement is for minimizing the objective function and the 
 MAXQUAD statement is for maximizing the objective function.
 that define a quadratic objective function. 
 The MINQUAD statement is for minimizing the objective function and the 
 MAXQUAD statement is for maximizing the objective function.
 
The rows and columns in  and
 and  correspond 
 to the order of decision variables given in the DECVAR statement. 
 Specifying the objective function with a MINQUAD or MAXQUAD 
 statement indirectly defines the analytic derivatives for 
 the objective function. 
 Therefore, statements specifying 
 derivatives are not valid in these cases. 
 Also, only use these statements when TECH=LICOMP 
 or TECH=QUADAS and no nonlinear constraints are imposed.
 correspond 
 to the order of decision variables given in the DECVAR statement. 
 Specifying the objective function with a MINQUAD or MAXQUAD 
 statement indirectly defines the analytic derivatives for 
 the objective function. 
 Therefore, statements specifying 
 derivatives are not valid in these cases. 
 Also, only use these statements when TECH=LICOMP 
 or TECH=QUADAS and no nonlinear constraints are imposed.
 
There are three ways of using the MINQUAD or MAXQUAD statement:
 matrices.
 matrices. 
 
  
    proc nlp pall; 
       array h[2,2] .4 0 
                     0 4; 
       minquad h, -100; 
       decvar x1 x2 = -1; 
       bounds  2 <= x1 <= 50, 
             -50 <= x2 <= 50; 
       lincon 10 <= 10 * x1 - x2; 
    run;
 
 and vector
 and vector  . 
 These element names 
 can be used on the left side of numerical assignments. 
 The one-dimensional index value
. 
 These element names 
 can be used on the left side of numerical assignments. 
 The one-dimensional index value  following H_name, 
 which corresponds to the element
 following H_name, 
 which corresponds to the element  , is computed by
, is computed by 
  . 
 The matrix
. 
 The matrix  and vector
 and vector  are initialized to zero, 
 so that only the nonzero elements must be given. 
 This specification is efficient for small problems with 
 sparse
 are initialized to zero, 
 so that only the nonzero elements must be given. 
 This specification is efficient for small problems with 
 sparse  matrices.
 matrices.
 
  
    proc nlp pall; 
       minquad h, -100; 
       decvar x1 x2; 
       bounds  2 <= x1 <= 50, 
             -50 <= x2 <= 50; 
       lincon 10 <= 10 * x1 - x2; 
       h1 = .4; h4 = 4; 
    run;
 
 and vector
 and vector  by 
 MATRIX statements. The following example 
 illustrates one way to use the MATRIX statement.
 by 
 MATRIX statements. The following example 
 illustrates one way to use the MATRIX statement.
 
  
    proc nlp all; 
       matrix h[1,1] = .4 4; 
       minquad h, -100; 
       decvar x1 x2 = -1; 
       bounds 2 <= x1 <= 50; 
            -50 <= x2 <= 50; 
       lincon 10 <= 10 * x1 - x2; 
    run;
 
Copyright © 2008 by SAS Institute Inc., Cary, NC, USA. All rights reserved.