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)
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. sumof 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.
numiter
the number of iterations.
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.
Author
Karline Soetaert <karline.soetaert@nioz.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)