Solve constrained, nonlinear, parameter optimization problems using sequential linear programming with trust region strategy (slp_trust), sequential quadratic programming with trust region strategy (sqp_trust), or sequential quadratic programming with line search (sqp), similar to fmincon in the Optimization Toolbox. SQP is a second-order method, following Schittkowski's NLPQL Fortran algorithm. SLP is a first-order method, but may be more efficient for large numbers of design variables. They are implemented using the original calling sequence of the obsolete MATLAB constr.m function in Version 1 of the optim toolbox, but may alternatively accept the problem data structure used by fmincon as an input argument. The original calling sequence had the advantage that one user function computed the objective and constraint values together, with a separate function for their gradients when finite differences were not used.
Complex-step derivatives, which can be accurate to machine precision, are a feature of sqp, slp_trust, and sqp_trust, in place of finite difference derivatives, when the user does not supply a function that computes the derivatives.
Compatible with Octave (MATLAB-compatible GNU Scientific Programming Language) <www.octave.org>.
Capt. Mark Spillman (USAF) wrote the original sqp.m code with me at AFIT.
Blake M. Van Winkle is gratefully acknowledged for initial Octave-compatible code.
Robert Canfield (2023). slp_sqp (https://www.mathworks.com/matlabcentral/fileexchange/53331-slp_sqp), MATLAB Central File Exchange. Retrieved .
Canfield, Robert A. “Quadratic Multipoint Exponential Approximation: Surrogate Model for Large-Scale Optimization.” Advances in Structural and Multidisciplinary Optimization, Springer International Publishing, 2017, pp. 648–61, doi:10.1007/978-3-319-67988-4_49.
Schittkowski, K. “NLPQL: A Fortran Subroutine Solving Constrained Nonlinear Programming Problems.” Annals of Operations Research, vol. 5, no. 2, Springer Science and Business Media LLC, June 1986, pp. 485–500, doi:10.1007/bf02022087.
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
OutputPlotFcnsExampleOctave tested. sqp returns Best for all termination criteria. sao_trust handles bounds-only problems again.
Octave compatibility, introduced in 1.4, streamlined in 1.4.1
MultiPoint Exponential Approximation (MPEA). Canfield, R. A. "Quadratic Multipoint Exponential Approximation: Surrogate Model for Large-Scale Optimization," 12th World Congress of Structural and Multidisciplinary Optimization (WCSMO12), June 2017
Trust region filter is new default for sip_trust. sqp handles quadprog error return better.
Compatible with R2016b Optimization Toolbox version 7.5 optimoptions function.
Adds trust region filter. [Nocedal and Wright, Numerical Optimization, 2006] Algorithms 4.1, 15.1. See also [Fletcher and Leafier, Mathematical Programming Vol. 91, No. 2, 2002] doi: 10.1007/s101070100244
Set options.TrustRegion='TRAM' instead of 'on' or 'off' in sip_trust to exercise variable move limit reduction and expansion. Loosely implements trust region approximation method: Wujek, B. A., and Renaud, J. E., AIAA J., 1988.
Removed .git folder