Iteration Criteria for CNLR (NLR command)
The CNLR
procedure
uses NPSOL (Version 4.0) Fortran Package for Nonlinear Programming 1. The CRITERIA
subcommand of CNLR
gives the
control features of NPSOL. The following section summarizes the NPSOL
documentation.
CNLR
uses a sequential
quadratic programming algorithm, with a quadratic programming subproblem
to determine the search direction. If constraints or bounds are specified,
the first step is to find a point that is feasible with respect to
those constraints. Each major iteration sets up a quadratic program
to find the search direction, p. Minor iterations are used to solve this subproblem. Then, the major
iteration determines a steplength α by a line search, and the
function is evaluated at the new point. An optimal solution is found
when the optimality tolerance criterion is met.
The CRITERIA
subcommand has the following keywords when used with CNLR
:
ITER n. Maximum number
of major iterations. Specify any positive integer for
n. The default is max(50, 3(p+m
L)+10m
N), where p is the number of parameters, m
L is the number of linear constraints, and m
N is the number
of nonlinear constraints. If the search for a solution stops because
this limit is exceeded, CNLR
issues a warning message.
MINORITERATION n. Maximum number of minor iterations. Specify any positive integer. This value is the number of minor iterations allowed within each major iteration. The default is max(50, 3(n+m L+m N)).
CRSHTOL n. Crash tolerance. CRSHTOL
is used to determine whether initial values are
within their specified bounds. Specify any value between 0 and 1.
The default value is 0.01.
STEPLIMIT n. Step limit. The CNLR
algorithm does not
allow changes in the length of the parameter vector to exceed a factor
of n. The limit prevents very
early steps from going too far from good initial estimates. Specify
any positive value. The default value is 2.
FTOLERANCE n. Feasibility tolerance. This value is the maximum absolute difference allowed for both linear and nonlinear constraints for a solution to be considered feasible. Specify any value greater than 0. The default value is the square root of your machine's epsilon.
LFTOLERANCE n. Linear feasibility
tolerance. If specified, this value overrides FTOLERANCE
for linear constraints and bounds.
Specify any value greater than 0. The default value is the square
root of your machine's epsilon.
NFTOLERANCE n. Nonlinear
feasibility tolerance. If specified, this value overrides FTOLERANCE
for nonlinear constraints. Specify
any value greater than 0. The default value is the square root of
your machine's epsilon.
LSTOLERANCE n. Line search tolerance. This value must be between 0 and 1 (but not including 1). It controls the accuracy required of the line search that forms the innermost search loop. The default value, 0.9, specifies an inaccurate search. This setting is appropriate for many problems, particularly if nonlinear constraints are involved. A smaller positive value, corresponding to a more accurate line search, may give better performance if there are no nonlinear constraints, all (or most) derivatives are supplied in the derivatives program, and the data fit in memory.
OPTOLERANCE n. Optimality
tolerance. If an iteration point is a feasible point,
and the next step will not produce a relative change in either the
parameter vector or the objective function of more than the square
root of OPTOLERANCE
, an optimal
solution has been found. OPTOLERANCE
can also be thought of as the number of significant digits in the
objective function at the solution. For example, if OPTOLERANCE
=10-6, the objective function should have approximately
six significant digits of accuracy. Specify any number between the FPRECISION
value and 1. The default value
for OPTOLERANCE
is epsilon**0.8.
FPRECISION n. Function
precision. This measure is a measure of the accuracy with
which the objective function can be checked. It acts as a relative
precision when the function is large and an absolute precision when
the function is small. For example, if the objective function is larger
than 1, and six significant digits are desired, FPRECISION
should be 1E-6. If, however, the objective
function is of the order 0.001, FPRECISION
should be 1E-9 to get six digits of accuracy. Specify any number
between 0 and 1. The choice of FPRECISION
can be very complicated for a badly scaled problem. Chapter 8 of
Gill et al. (1981) gives some scaling suggestions. The default value
is epsilon**0.9.
ISTEP n. Infinite step
size. This value is the magnitude of the change in parameters
that is defined as infinite. That is, if the change in the parameters
at a step is greater than ISTEP
, the problem is considered unbounded, and estimation stops. Specify
any positive number. The default value is 1E+20.