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 (2021). 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.
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!