JACNLC Statement |
The JACNLC statement defines the Jacobian matrix for the system of constraint functions . The statements list the variable names which correspond to the elements , , of the Jacobian matrix by rows.
For example, the statements
nlincon c1-c3; decvar x1-x2; jacnlc cj1-cj6;
correspond to the Jacobian matrix
The rows of the Jacobian matrix must be in the same order as the corresponding names of nonlinear constraints listed in the NLINCON statement. The columns of the Jacobian matrix must be in the same order as the corresponding parameter names listed in the DECVAR statement. To specify the values of nonzero derivatives, the variables specified in the JACNLC statement must be defined on the left-hand side of algebraic expressions in programming statements.
For example,
array cd[3,4] cd1-cd12; nlincon c1-c3 >= 0; jacnlc cd1-cd12; c1 = 8 - x1 * x1 - x2 * x2 - x3 * x3 - x4 * x4 - x1 + x2 - x3 + x4; c2 = 10 - x1 * x1 - 2 * x2 * x2 - x3 * x3 - 2 * x4 * x4 + x1 + x4; c3 = 5 - 2 * x1 * x2 - x2 * x2 - x3 * x3 - 2 * x1 + x2 + x4; cd[1,1]= -1 - 2 * x1; cd[1,2]= 1 - 2 * x2; cd[1,3]= -1 - 2 * x3; cd[1,4]= 1 - 2 * x4; cd[2,1]= 1 - 2 * x1; cd[2,2]= -4 * x2; cd[2,3]= -2 * x3; cd[2,4]= 1 - 4 * x4; cd[3,1]= -2 - 4 * x1; cd[3,2]= 1 - 2 * x2; cd[3,3]= -2 * x3; cd[3,4]= 1;