Donoho, D. L. (2006). Compressed sensing. Information
Theory, IEEE Transactions on, 52(4):1289–1306.
Donoho, D. L. and Elad, M. (2003). Optimally sparse repre-
sentation in general (nonorthogonal) dictionaries via
`1 minimization. Proceedings of the National Aca-
demy of Sciences, 100(5):2197–2202.
Foucart, S. (2013). Stability and robustness of weak ort-
hogonal matching pursuits. In Recent advances in
harmonic analysis and applications, pages 395–405.
Springer.
Grant, M. C. and Boyd, S. P. The CVX Users Guide, Release
2.1.
Hale, E. T., Yin, W., and Zhang, Y. (2007). A Fixed-
Point Continuation Method for l1-Regularized Mini-
mization with Applications to Compressed Sensing.
CAAM Technical Report TR07-07.
Hiriart-Urruty, J.-B. and Lemarechal, C. (1996a). Convex
Analysis and Minimization Algorithms I: Fundamen-
tals. Grundlehren der mathematischen Wissenschaf-
ten. Springer Berlin Heidelberg.
Hiriart-Urruty, J.-B. and Lemarechal, C. (1996b). Convex
Analysis and Minimization Algorithms II: Advanced
Theory and Bundle Methods. Grundlehren der mat-
hematischen Wissenschaften. Springer Berlin Heidel-
berg.
Jain, P., Tewari, A., and Dhillon, I. S. (2011). Orthogonal
matching pursuit with replacement. In Advances in
Neural Information Processing Systems, pages 1215–
1223.
Maleki, A. (2009). Coherence analysis of iterative thres-
holding algorithms. In Communication, Control, and
Computing, 2009. Allerton 2009. 47th Annual Aller-
ton Conference on, pages 236–243. IEEE.
Maleki, A. and Donoho, D. L. (2010). Optimally tuned ite-
rative reconstruction algorithms for compressed sen-
sing. IEEE Journal of Selected Topics in Signal Pro-
cessing, 4(2):330–341.
Mallat, S. and Zhang, Z. (1993). Matching pursuits with
time-frequency dictionaries. Signal Processing, IEEE
Transactions on, 41(12):3397–3415.
Meyer, M. C. (2013). A simple new algorithm for quadratic
programming with applications in statistics. Commu-
nications in Statistics-Simulation and Computation,
42(5):1126–1139.
Moeller, M. and Zhang, X. (2016). Fast Sparse Recon-
struction: Greedy Inverse Scale Space Flows. Mat-
hematics of Computation, 85(297):179–208.
Needell, D. and Tropp, J. A. (2009). CoSaMP: Iterative
signal recovery from incomplete and inaccurate sam-
ples. Applied and Computational Harmonic Analysis,
26(3):301–321.
Needell, D. and Vershynin, R. (2009). Uniform uncertainty
principle and signal recovery via regularized orthogo-
nal matching pursuit. Foundations of computational
mathematics, 9(3):317–334.
Osher, S., Burger, M., Goldfarb, D., Xu, J., and Yin, W.
(2005). An iterative regularization method for to-
tal variation-based image restoration. Multiscale Mo-
deling & Simulation, 4(2):460–489.
Pati, Y. C., Rezaiifar, R., and Krishnaprasad, P. (1993). Ort-
hogonal matching pursuit: Recursive function approx-
imation with applications to wavelet decomposition.
In Conference Record of The Twenty-Seventh Asilo-
mar Conference on Signals, Systems and Computers,
pages 40–44. IEEE.
Rockafellar, R. T. (1997). Convex Analysis. Princeton Uni-
versity Press, Princeton, NJ.
Tropp, J. A. and Gilbert, A. C. (2007). Signal recovery
from random measurements via orthogonal matching
pursuit. Information Theory, IEEE Transactions on,
53(12):4655–4666.
Yin, W., Osher, S., Goldfarb, D., and Darbon, J. (2008).
Bregman iterative algorithms for zell 1-minimization
with applications to compressed sensing. SIAM Jour-
nal on Imaging Sciences, 1(1):143–168.
Zhang, X., Burger, M., and Osher, S. (2011). A unified
primal-dual algorithm framework based on bregman
iteration. Journal of Scientific Computing, 46(1):20–
46.
APPENDIX
Program Code
Matlab code for algorithm 1.
function [solution_primal,solution_dual,nb_iteration]=compute_solution_l1(A,
...,observed_vect, param)
% Step. 0 Initialization
lambda_init=param.initdual;
A=[A -A];
%% Step1. Compute solution dual
[solution_dual,active_set,nb_iteration]=compute_solution_dual(A,
observed_vect,...,lambda_init,param);
%% Step2. Compute solution primal
solution_primal=compute_solution_primal(A,observed_vect,active_set,param);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%NESTED FUNCTIONS: Compute Dual + Primal %%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%% Compute_solution_dual %%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [lambda,active_set,nb_iteration]=compute_solution_dual(A,
observed_vect,...,lambda,param)
%% 0. Initialize DO WHILE loop and pre-compute some stuff
shall_continue=true;
Atransp=A’;
nb_iteration=0;
while shall_continue
% 1. Compute active set
active_set=compute_active_set(A,lambda,param);
% 2. Compute direction
direction=compute_direction(A,observed_vect,active_set,param);
% 3. Compute kick time
timestep=compute_kick_time(A,direction,lambda,param);
% 4. Check termination condition
if (norm(direction*timestep)<param.tolcomputedual...
||norm(direction)<param.tolcomputedual||timestep==realmax)
% 5.1 Stop
shall_continue=false;
else % 5.2 Move current point in dual
A Simple and Exact Algorithm to Solve `
1
Linear Problems - Application to the Compressive Sensing Method
61