diff options
Diffstat (limited to 'l1eq_example.m')
-rw-r--r-- | l1eq_example.m | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/l1eq_example.m b/l1eq_example.m new file mode 100644 index 0000000..d67cf6f --- /dev/null +++ b/l1eq_example.m @@ -0,0 +1,58 @@ +% l1eq_example.m +% +% Test out l1eq code (l1 minimization with equality constraints). +% +% Written by: Justin Romberg, Caltech +% Email: jrom@acm.caltech.edu +% Created: October 2005 +% + +% put key subdirectories in path if not already there +path(path, './Optimization'); +path(path, './Data'); + +% To reproduce the example in the documentation, uncomment the +% two lines below +%load RandomStates +%rand('state', rand_state); +%randn('state', randn_state); + +% signal length +N = 512; +% number of spikes in the signal +T = 20; +% number of observations to make +K = 120; + +% random +/- 1 signal +x = zeros(N,1); +q = randperm(N); +x(q(1:T)) = sign(randn(T,1)); + +% measurement matrix +disp('Creating measurment matrix...'); +A = randn(K,N); +A = orth(A')'; +disp('Done.'); + +% observations +y = A*x; + +% initial guess = min energy +x0 = A'*y; + +% solve the LP +tic +xp = l1eq_pd(x0, A, [], y, 1e-3); +toc + +% large scale +% Afun = @(z) A*z; +% Atfun = @(z) A'*z; +% tic +% xp = l1eq_pd(x0, Afun, Atfun, y, 1e-3, 30, 1e-8, 200); +% toc + + + + |