# dot-fcnnls: Internal Routine for Fast Combinatorial Nonnegative... In NMF: Algorithms and Framework for Nonnegative Matrix Factorization (NMF)

 .fcnnls R Documentation

## Internal Routine for Fast Combinatorial Nonnegative Least-Squares

### Description

This is the workhorse function for the higher-level function `fcnnls`, which implements the fast nonnegative least-square algorithm for multiple right-hand-sides from Van Benthem et al. (2004) to solve the following problem:

min ||Y - X K||_F, s.t. K>=0

where Y and X are two real matrices of dimension n x p and n x r respectively, and |.|_F is the Frobenius norm.

The algorithm is very fast compared to other approaches, as it is optimised for handling multiple right-hand sides.

### Usage

```  .fcnnls(x, y, verbose = FALSE, pseudo = FALSE, eps = 0)
```

### Arguments

 `x` the coefficient matrix `y` the target matrix to be approximated by X K. `verbose` logical that indicates if log messages should be shown. `pseudo` By default (`pseudo=FALSE`) the algorithm uses Gaussian elimination to solve the successive internal linear problems, using the `solve` function. If `pseudo=TRUE` the algorithm uses Moore-Penrose generalized `pseudoinverse` from the `corpcor` package instead of solve. `eps` threshold for considering entries as nonnegative. This is an experimental parameter, and it is recommended to leave it at 0.

### Value

A list with the following elements:

 `coef` the fitted coefficient matrix. `Pset` the set of passive constraints, as a logical matrix of the same size as `K` that indicates which element is positive.

### References

Van Benthem M and Keenan MR (2004). "Fast algorithm for the solution of large-scale non-negativity-constrained least squares problems." _Journal of Chemometrics_, *18*(10), pp. 441-450. ISSN 0886-9383, <URL: http://dx.doi.org/10.1002/cem.889>, <URL: http://doi.wiley.com/10.1002/cem.889>.

NMF documentation built on March 30, 2022, 1:05 a.m.