
9-3
Enhanced Robustness in Nonlinear Solvers
More solvers now attempt to recover from errors in the evaluation of objective functions
and nonlinear constraint functions during iteration steps, or, for some algorithms, during
gradient estimation. The errors include results that are NaN or Inf for all solvers, or
complex for fmincon and fminunc. If there is such an error, the algorithms attempt to
take different steps. The following solvers are enhanced:
• fmincon trust-region-reflective algorithm (the interior-point and sqp
algorithms already had this robustness)
• fminunc LargeScale algorithm
• fsolve trust-region-reflective, trust-region-dogleg, and levenberg-
marquardt algorithms
• lsqcurvefit trust-region-reflective and levenberg-marquardt algorithms
• lsqnonlin trust-region-reflective and levenberg-marquardt algorithms
New Defaults in DiffMinChange and DiffMaxChange Options
The DiffMinChange and DiffMaxChange options set the minimum and maximum
possible step sizes for finite differences in gradient estimation. The defaults are now:
• DiffMinChange = 0 (formerly 1e-8)
• DiffMaxChange = Inf (formerly 0.1)
Solvers have mechanisms that ensure nonzero and non-infinite step sizes, so the new
defaults simply mean that the step size adjustment algorithms have fewer constraints.
The new defaults remove the previous arbitrary choices. The previous values can be
inappropriate when components are too large or small in magnitude. Tests show these
new defaults are good for most situations.
Compatibility Considerations
Some solver iterations can differ from previous ones. To obtain the previous behavior:
options = optimset('DiffMinChange',1e-8,'DiffMaxChange',0.1);
Commenti su questo manuale