annotate tests/NESTAgentest.m @ 68:cab8a215f9a1 tip

Minor
author Nic Cleju <nikcleju@gmail.com>
date Tue, 09 Jul 2013 14:50:09 +0300
parents e6a5f2173015
children
rev   line source
nikcleju@47 1 % Run NESTA and save parameters and solutions as reference test data
nikcleju@47 2 % to check if other algorithms are correct
nikcleju@47 3
nikcleju@47 4 numA = 10;
nikcleju@47 5 numY = 100;
nikcleju@47 6
nikcleju@47 7 sizesA{1} = [50 100];
nikcleju@47 8 sizesA{2} = [20 25];
nikcleju@47 9 sizesA{3} = [10 120];
nikcleju@47 10 sizesA{4} = [15 100];
nikcleju@47 11 sizesA{5} = [70 100];
nikcleju@47 12 sizesA{6} = [80 100];
nikcleju@47 13 sizesA{7} = [90 100];
nikcleju@47 14 sizesA{8} = [99 100];
nikcleju@47 15 sizesA{9} = [100 100];
nikcleju@47 16 sizesA{10} = [250 400];
nikcleju@47 17 for i = 1:numA sizesA{i} = fliplr(sizesA{i}); end
nikcleju@47 18
nikcleju@47 19 for i = 1:numA
nikcleju@47 20 sz = sizesA{i};
nikcleju@47 21 cellA{i} = randn(sz);
nikcleju@47 22 m = round((0.2 + 0.6*rand)*sz(2));
nikcleju@47 23 cellM{i} = randn(m,sz(2));
nikcleju@47 24 cellY{i} = randn(m, numY);
nikcleju@47 25 %cellXinit{i} = zeros(sz(2), numY);
nikcleju@47 26 for j = 1:numY
nikcleju@47 27 cellEps{i}(j) = rand / 100; % restrict from 0 to 1% of measurements
nikcleju@47 28 end
nikcleju@47 29 end
nikcleju@47 30 opt_TolVar = 1e-5;
nikcleju@47 31 opt_Verbose = 0;
nikcleju@47 32 opt_muf = 1e-3;
nikcleju@47 33 opt_l2solver = 'pseudoinverse';
nikcleju@47 34
nikcleju@47 35 %load NESTAtestdata
nikcleju@47 36 tic
nikcleju@47 37 for i = 1:numA
nikcleju@47 38 [U,S,V] = svd(cellM{i},'econ');
nikcleju@47 39 opts.U = cellA{i};
nikcleju@47 40 opts.Ut = cellA{i}';
nikcleju@47 41 opts.USV.U=U;
nikcleju@47 42 opts.USV.S=S;
nikcleju@47 43 opts.USV.V=V;
nikcleju@47 44 opts.TolVar = opt_TolVar;
nikcleju@47 45 opts.Verbose = opt_Verbose;
nikcleju@47 46 for j = 1:numY
nikcleju@47 47 cellXr{i}(:,j) = NESTA(cellM{i}, [], cellY{i}(:,j), opt_muf, cellEps{i}(j) * norm(cellY{i}(:,j)), opts);
nikcleju@47 48 end
nikcleju@47 49 disp(['Finished sz ' num2str(i)])
nikcleju@47 50 end
nikcleju@47 51 toc
nikcleju@47 52
nikcleju@47 53 save NESTAtestdata