Description Usage Arguments Details Value Author(s) References See Also Examples

These functions can be used for solving least squares or quadratic programming problems under general equality and/or inequality constraints.

1 2 3 4 |

`a` |
Design matrix. |

`b` |
Response vector. |

`c` |
Matrix of numeric coefficients on the left-hand sides of equality
constraints. If it is NULL, |

`d` |
Vector of numeric values on the right-hand sides of equality constraints. |

`e` |
Matrix of numeric coefficients on the left-hand sides of inequality
constraints. If it is NULL, |

`f` |
Vector of numeric values on the right-hand sides of inequality constraints. |

`lower, upper` |
Bounds on the solutions, as a way to specify such simple inequality constraints. |

`q` |
Matrix of numeric values for the quadratic term of a quadratic programming problem. |

`p` |
Vector of numeric values for the linear term of a quadratic programming problem. |

`tol` |
Tolerance, for calculating pseudo-rank in |

The `lsei`

function solves a least squares problem under both equality
and inequality constraints. It is an implementation of the LSEI algorithm
described in Lawson and Hanson (1974, 1995).

The `lsi`

function solves a least squares problem under inequality
constraints. It is an implementation of the LSI algorithm described in
Lawson and Hanson (1974, 1995).

The `ldp`

function solves a least distance programming problem under
inequality constraints. It is an R wrapper of the LDP function which is in
Fortran, as described in Lawson and Hanson (1974, 1995).

The `qp`

function solves a quadratic programming problem, by
transforming the problem into a least squares one under the same equality
and inequality constraints, which is then solved by function `lsei`

.

The NNLS and LDP Fortran implementations used internally is downloaded from http://www.netlib.org/lawson-hanson/.

Given matrices `a`

, `c`

and `e`

, and vectors `b`

,
`d`

and `f`

, function `lsei`

solves the least squares problem
under both equality and inequality constraints:

*minimize || a x - b ||,*

*subject to c x = d, e x
>= f.*

Function `lsi`

solves the least squares problem under inequality
constraints:

*minimize || a x - b ||,*

*subject to e x >= f.*

Function `ldp`

solves the least distance programming problem under
inequality constraints:

*minimize || x ||,*

*subject to e x >= f.*

Function `qp`

solves the quadratic programming problem:

*minimize 0.5 x^T q x +
p^T x,*

*subject to c x =
d, e x >= f.*

A vector of the solution values

Yong Wang <yongwang@auckland.ac.nz>

Lawson and Hanson (1974, 1995). Solving least squares problems. Englewood Cliffs, N.J., Prentice-Hall.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | ```
beta = c(rnorm(2), 1)
beta[beta<0] = 0
beta = beta / sum(beta)
a = matrix(rnorm(18), ncol=3)
b = a %*% beta + rnorm(3,sd=.1)
c = t(rep(1, 3))
d = 1
e = diag(1,3)
f = rep(0,3)
lsei(a, b) # under no constraint
lsei(a, b, c, d) # under eq. constraints
lsei(a, b, e=e, f=f) # under ineq. constraints
lsei(a, b, c, d, e, f) # under eq. and ineq. constraints
lsei(a, b, rep(1,3), 1, lower=0) # same solution
q = crossprod(a)
p = -drop(crossprod(b, a))
qp(q, p, rep(1,3), 1, lower=0) # same solution
## Example from Lawson and Hanson (1974), p.140
a = cbind(c(.4302,.6246), c(.3516,.3384))
b = c(.6593, .9666)
c = c(.4087, .1593)
d = .1376
lsei(a, b, c, d) # Solution: -1.177499 3.884770
## Example from Lawson and Hanson (1974), p.170
a = cbind(c(.25,.5,.5,.8),rep(1,4))
b = c(.5,.6,.7,1.2)
e = cbind(c(1,0,-1),c(0,1,-1))
f = c(0,0,-1)
lsi(a, b, e, f) # Solution: 0.6213152 0.3786848
## Example from Lawson and Hanson (1974), p.171:
e = cbind(c(-.207,-.392,.599), c(2.558, -1.351, -1.206))
f = c(-1.3,-.084,.384)
ldp(e, f) # Solution: 0.1268538 -0.2554018
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.