QpSolve
Purpose
Solve general quadratic programming problems.
qpSolve solves problems of the form
where Failed to parse (unknown function "\MATHSET"): {\displaystyle x,x_{L},x_{U}\in \MATHSET{R} ^{n}}
, Failed to parse (unknown function "\MATHSET"): {\displaystyle F\in \MATHSET{R}^{n\times n}}
, Failed to parse (unknown function "\MATHSET"): {\displaystyle c \in \MATHSET{R}^{n}}
, Failed to parse (unknown function "\MATHSET"): {\displaystyle A\in \MATHSET{R}^{m\times n}}
and Failed to parse (unknown function "\MATHSET"): {\displaystyle b_{L},b_{U}\in \MATHSET{R}^{m}}
.
Calling Syntax
Result = qpSolve(Prob) or
Result = tomRun('qpSolve', Prob, 1);
Description of Inputs
| Prob | Problem description structure. The following fields are used: | |
| QP.F | Constant matrix, the Hessian. | |
| QP.c | Constant vector. | |
| A | Constraint matrix for linear constraints. | |
| b_L | Lower bounds on the linear constraints. | |
| b_U | Upper bounds on the linear constraints. | |
| x_L | Lower bounds on the variables. | |
| x_U | Upper bounds on the variables. | |
| x_0 | Starting point. | |
| optParam | Structure with special fields for optimization parameters, see Table 141.Fields used are: eps f, eps Rank, MaxIter, wait, bTol and PriLev. | |
Description of Outputs
| Result | Structure with result from optimization. The following fields are changed: | |
| x_k | Optimal point. | |
| f_k | Function value at optimum. | |
| g_k | Gradient value at optimum. | |
| H_k | Hessian value at optimum. | |
| v_k | Lagrange multipliers. | |
| x_0 | Starting point. | |
| f_0 | Function value at start. | |
| xState | State of each variable, described in Table 150 . | |
| Iter | Number of iterations. | |
| ExitFlag | 0: OK, see Inform for type of convergence. | |
| 2: Can not find feasible starting point x_0. | ||
| 3: Rank problems. Can not find any solution point. | ||
| 4: Unbounded solution. | ||
| 10: Errors in input parameters. | ||
| Inform | If ExitF lag > 0, I nf orm = ExitF lag, otherwise I nf orm show type of convergence: | |
| 0: Unconstrained solution. | ||
| 1: ? = 0. | ||
| 2: ? = 0. No second order Lagrange mult. estimate available. | ||
| 3: ? and 2nd order Lagr. mult. positive, problem is not negative definite. | ||
| 4: Negative definite problem. 2nd order Lagr. mult. positive, but releasing variables leads to the same working set. | ||
| Solver | Solver used. | |
| SolverAlgorithm | Solver algorithm used. | |
| Prob | Problem structure used. | |
Description
Implements an active set strategy for Quadratic Programming. For negative definite problems it computes eigen- values and is using directions of negative curvature to proceed. To find an initial feasible point the Phase 1 LP problem is solved calling lpSimplex. The routine is the standard QP solver used by nlpSolve, sTrustr and conSolve.
M-files Used
ResultDef.m, lpSimplex.m, tomSolve.m, iniSolve.m, endSolve.m