Minimzing L2-norm solution: rank deficiency

3 views (last 30 days)
Dushyant
Dushyant on 30 Jun 2014
Commented: Dushyant on 30 Jun 2014
Hi all matlab GURUs (Tim Davis, John D’Errico, Bruno Luong and others) ,
1) I am working on L1-norm solver. However, in the split Bregman method, L1-problem is approximated as small L2-subproblems; so, I am talking about L2-norm minimization . The subproblem that I am solving is:
J(u) := |A*u - yo|^2 + tol^2 |D*u-y1|^2
Where yo and y1 keeps changing between various iterations.
2) Before solving this, I am converting it into single term L2-norm:
J(u) := |[A; D]*u [yo; tol*y1]|^2 = |AF*u b|^2
3) My matrices A, AF are sparse.
4) Quite frequently (20-30% of time, my solver which uses backslash operator runs into usual problem of “Rank deficiency”).
a. I tried “PSEUDOINVERSE” by Bruno. I believe that his code uses QR method. I calculate solution as
xF = pseudoinverse(AF)*b;
But, even there I am running into the same trouble of rank deficiency. Some guidance regarding appropriate solver would be highly appreciated.
Regards, DK
  4 Comments
Matt J
Matt J on 30 Jun 2014
J(u) := [A; D]*u – [yo; tol*y1]^2 = AF*u – b^2
Looks like this should have AF=[A;tol*D]
I am yet to understand how yo and y1 could affect the rank of AF.
That sounds like a bug. You should use dbstop to trap examples {A,d,y0,y1} where it does and does not happen.
OR, How could “PSEUDOINVERSE” complain about rank deficiency?
Because it, too, uses backslash operations. Somehow, it wasn't successful in its factorization.
Dushyant
Dushyant on 30 Jun 2014
Never mind. It was a bug in my code.
Sorry for any inconvenience.

Sign in to comment.

Answers (0)

Categories

Find more on Mathematics in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!