# QProg¶

## Format¶

{ x, u1, u2, u3, u4, u5 } = QProg(start, q, r, a, b, c, d, bnds)
Parameters
• start (Kx1 vector) – start values.

• q (KxK matrix) – symmetric model matrix.

• r (Kx1 vector) – model constant vector.

• a (MxK matrix) – equality constraint coefficient matrix, or scalar 0, no equality constraints.

• b (Mx1 vector) – equality constraint constant vector, or scalar 0, will be expanded to Mx1 vector of zeros.

• c (NxK matrix) – inequality constraint coefficient matrix, or scalar 0, no inequality constraints.

• d (Nx1 vector) – inequality constraint constant vector, or scalar 0, will be expanded to Nx1 vector of zeros.

• bnds (Kx2 matrix) – bounds on x, the first column contains the lower bounds on x, and the second column the upper bounds. If scalar 0, the bounds for all elements will default to ±1e200.

Returns
• x (Kx1 vector) – coefficients at the minimum of the function.

• u1 (Mx1 vector) – Lagrangian coefficients of equality constraints.

• u2 (Nx1 vector) – Lagrangian coefficients of inequality constraints.

• u3 (Kx1 vector) – Lagrangian coefficients of lower bounds.

• u4 (Kx1 vector) – Lagrangian coefficients of upper bounds.

• ret (scalar) –

return code.

 0 termination 1 iterations exceeded 2 accuracy is insufficient to maintain decreasing function values 3 matrices not conformable < 0 constraints inconsistent

## Global Input¶

_qprog_maxit

(scalar), maximum number of iterations. Default = 1000.

## Remarks¶

QProg() solves the standard quadratic programming problem:

$min\; \frac{1}{2} x'Qx - x'R$

subject to constraints,

$\begin{split}Ax = B\\ Cx ≤ D\end{split}$

and bounds,

$x_{low} ≤ x ≤ x_{up}$

qprog.src