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?


1 Answer 1


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$ Dec 31, 2014 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$ Dec 31, 2014 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$ Jan 1, 2015 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$ Jan 1, 2015 at 19:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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