No BSD License  

Highlights from
nnls

4.5

4.5 | 2 ratings Rate this file 8 Downloads (last 30 days) File Size: 2.29 KB File ID: #8157

nnls

by Uriel Roque

 

29 Jul 2005 (Updated 02 May 2006)

block principal pivoting algorithm

| Watch this File

File Information
Description

solves the linear least squares problem with nonnegative variables using the block principal pivoting algorithm in:
Portugal, Judice and Vicente, A comparison of block pivoting and interior point algorithms for linear least squares problems with nonnegative variables, Mathematics of Computation, 63(1994), pp. 625-643

Acknowledgements
This submission has inspired the following:
LBFGSB (L-BFGS-B) mex wrapper
MATLAB release MATLAB 7.0.4 (R14SP2)
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (2)
13 Aug 2005 John D'Errico

Faster than lsqonneg for some sizes of problems.

Interestingly, my tests show it is slower than lsqnonneg
when the number of unknowns to estimate is small, say 2 or 3 and there are few rows in A. Thus, for size(A) ==
[5,2], lsqnonneg is 3x faster. For size(A) == [100,10],
blocknnls is 3x faster.

09 Apr 2007 Greg Reynolds

It works nicely for my matrices of about 1024x20 and is significantly faster than 'lsqnonneg'.

For 100 (random) trials, A is 1024x20, b is 1024x1:
'blocknnls' = 0.686167 seconds
'lsqnonneg' = 5.869711 seconds

Please login to add a comment or rating.
Updates
28 Apr 2006

The way the sets F and G are updated in each iteration is corrected.
The permutation of the set is now fixed to avoid different solutions every time the function is used with the same input data. If random required, just uncomment line.

02 May 2006

Algorithm corrected.
User can now select a random or a fixed initial permutation of the set of {1,...,n}
working with fixed permutations seems to be faster

Tag Activity for this File
Tag Applied By Date/Time
optimization Uriel Roque 22 Oct 2008 07:54:31
nnls Uriel Roque 22 Oct 2008 07:54:31
nvlsq Uriel Roque 22 Oct 2008 07:54:31
block pivoting Uriel Roque 22 Oct 2008 07:54:31
nnls Marco Paglione 10 Feb 2010 06:09:00
nnls Bryant 05 Aug 2010 11:21:23

Contact us at files@mathworks.com