49 MINIMIZATION OF FUNCTIONS
The minimization of general functions of one or more variables can be carried out using
MINIMIZE, func, x[, x, x, ...]
where func represents a function of up to 50 variables x, x, .... Two different optimization methods can be selected as described below which do or do not use numerical derivative information.
The optimization method, as well as finer control over func, can be chosen using the METHOD directive
METHOD, key [, key1=value, key2=value, ...]
where key defines the optimization method. Valid options for key are:
- Broyden-Fletcher-Goldfarb-Shanno conjugate gradient method, which uses numerical gradients (default)
- Downhill simplex method, which uses only function evaluations
Options to these methods, key1, key2, ..., are:
- Optimization in space of scaled variables.
vscale=0 no scaling (not recommended)
vscale=1 optimization in the space of ln()
vscale=2 optimization in space of initial value scaling, e.g., (default)
- Required accuracy of either the gradient (BFGS) or parameters (SIMPLEX). The default is
for BFGS and
for SIMPLEX. Note that previously this pertained to the function value in the Simplex case.
- Step size for numerical gradients (BFGS) or initial SIMPLEX vertices
- Specifies the procedure to be executed in each optimization step. This defines a complete function evaluation (if needed, numerical gradients will be evaluated using this procedure as well)
- Specifies a start command. In each optimization step all input beginning
with command to the current MINIMIZE is processed.
Miscellaneous directives (separated by semicolons or line breaks)
- maximum number of optimization cycles. The default is 30 for BFGS and 100 for SIMPLEX.