Quadratic programming (QP) is minimizing or maximizing an objective function subject to bounds, linear equality, and inequality constraints. Example problems include portfolio optimization in finance, power generation optimization for electrical utilities, and design optimization in engineering.
Quadratic programming is the mathematical problem of finding a vector x that minimizes a quadratic function:
\[\min_{x} \left\{\frac{1}{2}x^{\mathsf{T}}Hx + f^{\mathsf{T}}x\right\}\]
Subject to the constraints:
\[\begin{eqnarray}Ax \leq b & \quad & \text{(inequality constraint)} \\A_{eq}x = b_{eq} & \quad & \text{(equality constraint)} \\lb \leq x \leq ub & \quad & \text{(bound constraint)}\end{eqnarray}\]
You can use MATLAB® to implement the following commonly used algorithms to solve quadratic programming problems:
- Interior-point-convex: solves convex problems with any combination of constraints
- Trust-region-reflective: solves bound constrained or linear equality constrained problems
- Active-set: solves small to medium-sized convex problems with any combination of constraints
For more information about quadratic programming, see Optimization Toolbox™.