| Contents | Index |
This table summarizes what's new in Version 6.0 (R2011a):
| New Features and Changes | Version Compatibility Considerations | Fixed Bugs and Known Problems |
|---|---|---|
| Yes Details below | Yes Summary | Bug
Reports Includes fixes |
New features and changes introduced in this version are:
quadprog has a new algorithm named 'interior-point-convex'. It has these features:
The algorithm has fast internal linear algebra.
The algorithm handles sparse problems.
There is a new presolve module that can improve speed, numerical stability, and detection of infeasibility.
The algorithm handles large convex problems, and accepts and uses sparse inputs. See Large-Scale vs. Medium-Scale Algorithms.
The algorithm optionally gives iterative display.
The algorithm has enhanced exit messages.
For details on the algorithm, see interior-point-convex quadprog Algorithm. For help choosing the algorithm to use, see Quadratic Programming Algorithms.
You now choose the quadprog algorithm by using optimset to set the Algorithm option instead of the LargeScale option. If you don't set Algorithm or LargeScale, quadprog behaves as before.
Algorithm option choices are:
trust-region-reflective (formerly LargeScale = 'on'), the default
active-set (formerly LargeScale = 'off')
interior-point-convex
The previous way of choosing the quadprog algorithm at the command line was to set the LargeScale option to 'on' or 'off'. quadprog now ignores the LargeScale option, except when you set the inconsistent values LargeScale = 'off' and Algorithm = 'trust-region-reflective'. In this case, to avoid backward incompatibility, quadprog honors the LargeScale option, and uses the 'active-set' algorithm.
quadprog now checks whether any inputs are complex, and, if so, it errors. The only exception is the Hinfo argument for the HessMult option is allowed to be complex.
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
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.
Some solver iterations can differ from previous ones. To obtain the previous behavior:
options = optimset('DiffMinChange',1e-8,'DiffMaxChange',0.1);For the trust-region-reflective algorithm, the algorithm field of the output structure is now 'trust-region-reflective'. This value differs slightly from the previous values returned by fmincon, fsolve, lsqcurvefit, lsqnonlin, and quadprog.
To avoid errors or unexpected results, update any code that depends on the exact value of the output.algorithm string.
ktrlink is compatible with KNITRO® 7. For details, see ktrlink: An Interface to KNITRO Libraries, or the Ziena Optimization web site http://www.ziena.com/.
A new demo shows how to solve portfolio optimization problems using quadprog. View the demo at the command line by entering
showdemo portfoptimdemo
![]() | Version 6.1 (R2011b) Optimization Toolbox Software | Version 5.1 (R2010b) Optimization Toolbox Software | ![]() |

Learn how to use optimization to solve systems of equations, fit models to data, or optimize system performance.
Get free kit| © 1984-2012- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |