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, the names 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 and for the
"equality" constraints).
verbose
logical to print nnls error messages.
Value
a list containing:
Xvector containing the solution of the nonnegative least
squares problem.
residualNormscalar, the sum of absolute values of residuals of
violated inequalities (i.e. sumof x[<0]); should="" be="" zero="" or="" very="" small="" if="" the="" problem="" is="" feasible.<="" description="">0]);>
solutionNormscalar, the value of the quadratic function at the
solution, i.e. the value of $\min(||Ax-b||^2)$.
IsErrorlogical, TRUE if an error occurred.
typethe string "nnls", such that how the solution was obtained
can be traced.
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)