nnls {limSolve}R Documentation

Nonnegative Least Squares

Description

Solves the following inverse problem:

min(||Ax-b||^2)

subject to

x>=0


uses subroutine nnls (FORTRAN) from Linpack

Usage

nnls(A, B, tol=sqrt(.Machine$double.eps), verbose=TRUE)

Arguments

A numeric matrix containing the coefficients of the equality constraints Ax~=B; if the columns of A have a names attribute, they will be used to label the output
B numeric vector containing the right-hand side of the equality constraints
tol tolerance (for singular value decomposition, equality constraints)
verbose logical to print nnls error messages

Value

a list containing:

X vector containing the solution of the nonnegative least squares problem.
residualNorm scalar, the sum of absolute values of residuals of violated inequalities (i.e. x<0); should be zero or very small if the problem is feasible
solutionNorm scalar, the value of the quadratic function at the solution, i.e. the value of min(||Ax-b||^2)
IsError logical, TRUE if an error occurred
type the string "nnls", such that how the solution was obtained can be traced

Author(s)

Karline Soetaert <k.soetaert@nioo.knaw.nl>

References

Lawson C.L.and Hanson R.J. 1974. Solving Least Squares Problems, Prentice-Hall
Lawson C.L.and Hanson R.J. 1995. Solving Least Squares Problems. SIAM classics in applied mathematics, Philadelphia. (reprint of book)

See Also

ldei, which includes equalities

Examples

A <- matrix(nr=2,nc=3,data=c(3,2,2,4,2,1))
B <- c(-4,3)
nnls(A,B)

[Package limSolve version 1.3 Index]