nnls - Non negative least squares

nnls - Alternative to lsqnonneg: faster on large problems, improved convergence, optional restart
2,2K téléchargements
Mise à jour 23 avr. 2013

Afficher la licence

nnls - Alternative to lsqnonneg: can be faster on large problems,
improved convergence control, optional restart vector

Solves non negative least squares:
min wrt x: (d-Cx)'*(d-Cx) subject to: x>=0

This version of nnls aims to solve convergance problems that can occur
with the 2011-2012 version of lsqnonneg, and provides a fast solution of
large problems. Includes an option to give initial positive terms for x
for faster solution of iterative problems using nnls.

For some large problems nnls can be faster than lsqnonneg,
see test file (nnlstest.m).

Simple usage: x=nnls(C,d)

[x,w,info]=nnls(C,d,opts)
C Coefficient matrix
d Rhs vector
opts Struct containing options: (optional)
.Accy 0 fast version, 1 refines final value (default),
2 uses accurate steps but very slow on large cases,
faster on small cases, result usually identical to 1
.Order True or [], or order to initially include positive terms
if included will supply info.Order, if x0 available use
find(x0>0), but best saved from previous run of nnls
.Tol Tolerance test value, default zero, use multiple of eps
.Iter Maximum number of iterations, should not be needed.

x Positive solution vector x>=0
w Lagrange multiplier vector w(x==0)<= approx zero
info Struct with extra information:
.iter Number of iterations used
.wsc0 Estimated size of errors in w
.wsc Maximum of test values for w
.Order Order variables used, use to restart nnls with opts.Order

Examples in nnlstest.m

Citation pour cette source

Bill Whiten (2025). nnls - Non negative least squares (https://fr.mathworks.com/matlabcentral/fileexchange/38003-nnls-non-negative-least-squares), MATLAB Central File Exchange. Extrait(e) le .

Compatibilité avec les versions de MATLAB
Créé avec R2012a
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux
Catégories
En savoir plus sur Linear Least Squares dans Help Center et MATLAB Answers
Remerciements

Inspiré par : nlcontrol

A inspiré : zeroSR1, nlsq & nnnlsq Least squares

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Publié le Notes de version
1.1.0.0

Correction for case of all zero solution.

1.0.0.0