Nonlinear Constraints (NLR command)

Nonlinear constraints on the parameters can also be specified with the BOUNDS subcommand. The constrained function must be calculated and stored in a variable by a constrained functions program directly preceding the CNLR command. The constraint is then specified on the BOUNDS subcommand.

In general, nonlinear bounds will not be obeyed until an optimal solution has been found. This process is different from simple and linear bounds, which are satisfied at each iteration. The constrained functions must be smooth near the solution.

Example

MODEL PROGRAM A=.5 B=1.6.
COMPUTE PRED=A*SPEED**B.

CONSTRAINED FUNCTIONS. 
COMPUTE DIFF=A-10**B.

CNLR STOP /BOUNDS DIFF LE 0. 
  • The constrained function is calculated by a constrained functions program and stored in variable DIFF. The constrained functions program immediately precedes CNLR.
  • BOUNDS imposes bounds on the function (less than or equal to 0).
  • CONSTRAINED FUNCTIONS variables and parameters that are named on MODEL PROGRAM cannot be combined in the same BOUNDS expression. For example, you cannot specify (DIFF + A) >= 0 on the BOUNDS subcommand.