3

I am trying to use LSQR on matlab to solve a linear equations: $$ aX + bY = Z $$ so I form [a b][X Y]' = Z where a, b and Z are row vectors.

I am testing it on simulation i.e controlled data.

A = [a,b];
XY = lsqr(A,Z,1e-14,100);

However, I cant seem to get the right value for $X$ and $Y$. Is there any condition I should check for for my matrix A? The calculation converges at iteration number 2 with residual in the order of e-14. But the value is wrong.

Kelvin

dustin
  • 8,241

2 Answers2

1

$Z$ must be a column vector. It actually gives an error message if you try to use a row vector, so the mistake might be that you used the wrong entry on lsqr.

Also, the LSQR method doesn't actually solve $Ax=b$, but minimizes $||Ax-b||$ and gives the solution $x$ with lower norm. The result you got is correct, you're probably just interpreting it the wrong way, for example, by checking if it solves $aX + bY = Z$.

Wood
  • 1,880
0

You did wrong, Z should be repeated. i.e

A = [a,b];
XY = lsqr(A,[Z;Z],1e-14,100);
TravisJ
  • 7,426
Amir
  • 22