I am going to solve an linear iterative inverse problem. I have two functions in matlab which one of them play the forward and the other play the adjoint role. I am not familiar with inverse problems very much and I am going to test some algorithms to check which one can help me to obtain a sparse model. Since I have to use my functions to do the forward and inverse operator roles in Ax=b, so I think I am not able to use some algorithms which needs A as a matrix. As an example, I could use the linearized bregmanas follows:

$$ v^{k+1} = v^k + A^T(f-Au^k). $$

$$ u^{k+1}= \delta * shrink(v^{k+1},1/\mu). $$

in which, for A I use that function which transform the model u to the data space and for A^T the function which transform the data to the model space.

I want to know that is there any other iterative algorithm which can be used in this manner for sparsity?


Yes, most solvers for sparsity regularized least squares problems have been designed to use matrix-vector multiplications rather than accessing the matrix directly. See for example SPGL1 at


A good list of software for these kinds of problems can be found (at the very bottom of the page) at the Rice web site on resources for compressive sensing:


  • $\begingroup$ I don't have the matrix A, instead I have a function as A(u) which gives f' $\endgroup$ – user3482383 Dec 31 '14 at 9:00
  • $\begingroup$ That's the point- with SPGL1 you can supply a subroutines which compute $A(u)$ and $A^{T}(v)$ rather than supplying the matrix itself. $\endgroup$ – Brian Borchers Dec 31 '14 at 16:52
  • $\begingroup$ How can I use it when I have two function, one for forward, A, and one for adjoint, A', since SPGL1 needs one function handle? $\endgroup$ – user3482383 Jan 1 '15 at 12:26
  • $\begingroup$ If you already have functions that compute $A(u)$ and $A^{T}(v)$, then you can write a wrapper function that simply checks the mode parameter and evaluates $A(u)$ if mode=1 and $A^{T}(v)$ if mode=2. $\endgroup$ – Brian Borchers Jan 1 '15 at 19:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.