Interactive Educational Modules in
Scientific Computing

Sequential Quadratic Programming Method

This module demonstrates the sequential quadratic programming method for constrained optimization. From a given starting point, a sequence of quadratic programming problems is solved, each of which is derived by applying Newton's method to find a critical point of the Lagrangian function.

The user begins by choosing either a preset example or typing in a desired objective function f(x, y), constraint function g(x, y), and initial guess. The constraint function is plotted in red, contours of the objective function are plotted in blue, and the current approximate solution is shown by a yellow bullet. The steps of the sequential quadratic programming method are then carried out sequentially by repeatedly clicking on NEXT or on the currently highlighted step. At each iteration, the gradient vector and Hessian matrix of the Lagrangian function are computed, which yields a linear system to be solved for the step to the next iterate in both (x, y) and the Lagrange multiplier λ. The process can be repeated until it converges to the approximate constrained solution. Values for successive iterates are recorded in the table below.

Reference: Michael T. Heath, Scientific Computing, An Introductory Survey, 2nd edition, McGraw-Hill, New York, 2002. See Sections 6.2.3 and 6.7.1, especially Examples 6.2, 6.6, and 6.7.

Developers: Jeffrey Naisbitt and Michael Heath