# solve.QP: Solve a Quadratic Programming Problem In quadprog: Functions to Solve Quadratic Programming Problems

## Description

This routine implements the dual method of Goldfarb and Idnani (1982, 1983) for solving quadratic programming problems of the form min(-d^T b + 1/2 b^T D b) with the constraints A^T b >= b_0.

## Usage

 `1` ```solve.QP(Dmat, dvec, Amat, bvec, meq=0, factorized=FALSE) ```

## Arguments

 `Dmat` matrix appearing in the quadratic function to be minimized. `dvec` vector appearing in the quadratic function to be minimized. `Amat` matrix defining the constraints under which we want to minimize the quadratic function. `bvec` vector holding the values of b_0 (defaults to zero). `meq` the first `meq` constraints are treated as equality constraints, all further as inequality constraints (defaults to 0). `factorized` logical flag: if `TRUE`, then we are passing R^(-1) (where D = R^T R) instead of the matrix D in the argument `Dmat`.

## Value

a list with the following components:

 `solution` vector containing the solution of the quadratic programming problem. `value` scalar, the value of the quadratic function at the solution `unconstrained.solution` vector containing the unconstrained minimizer of the quadratic function. `iterations` vector of length 2, the first component contains the number of iterations the algorithm needed, the second indicates how often constraints became inactive after becoming active first. `Lagrangian` vector with the Lagragian at the solution. `iact` vector with the indices of the active constraints at the solution.

## References

D. Goldfarb and A. Idnani (1982). Dual and Primal-Dual Methods for Solving Strictly Convex Quadratic Programs. In J. P. Hennart (ed.), Numerical Analysis, Springer-Verlag, Berlin, pages 226–239.

D. Goldfarb and A. Idnani (1983). A numerically stable dual method for solving strictly convex quadratic programs. Mathematical Programming, 27, 1–33.

`solve.QP.compact`

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15``` ```## ## Assume we want to minimize: -(0 5 0) %*% b + 1/2 b^T b ## under the constraints: A^T b >= b0 ## with b0 = (-8,2,0)^T ## and (-4 2 0) ## A = (-3 1 -2) ## ( 0 0 1) ## we can use solve.QP as follows: ## Dmat <- matrix(0,3,3) diag(Dmat) <- 1 dvec <- c(0,5,0) Amat <- matrix(c(-4,-3,0,2,1,0,0,-2,1),3,3) bvec <- c(-8,2,0) solve.QP(Dmat,dvec,Amat,bvec=bvec) ```

### Example output

```\$solution
 0.4761905 1.0476190 2.0952381

\$value
 -2.380952

\$unconstrained.solution
 0 5 0

\$iterations
 3 0

\$Lagrangian
 0.0000000 0.2380952 2.0952381

\$iact
 3 2
```

quadprog documentation built on Nov. 20, 2019, 9:06 a.m.