[Numpy-discussion] Confused with qr decomposition function

Charles R Harris charlesr.harris@gmail....
Mon Nov 19 17:30:53 CST 2012


On Mon, Nov 19, 2012 at 4:17 PM, Virgil Stokes <vs@it.uu.se> wrote:

> I am using the latest versions of numpy (from
> numpy-1.7.0b2-win32-superpack-python2.7.exe) and scipy (from
> scipy-0.11.0-win32-superpack-python2.7.exe ) on a windows 7 (32-bit)
> platform.
>
> I have used
>
> import numpy as np
> q,r = np.linalg.qr(A)
>
> and compared the results obtained  from MATLAB (R2010B)
>
> [q,r] = qr(A)
>
> The q,r returned from numpy are both the negative of theq,r returned
> from MATLAB for the same matrix A. I believe that the q,r returned from
> MATLAB are correct. Why am I getting their negative from numpy?
>
> Note, I have tried this on several different matrices ---  numpy always
> gives the negative of MATLAB's q,r values.
> [I mistakenly have already sent a similar email to the scipy list ---
> please excuse this mistake.]
>

They are both correct, the decomposition isn't unique. In particular, if
both algorithms use Housholder reflections there are two possible
reflection planes at each step, one of which is more numerically stable
than the other, and the two choices lead to different signs at each step.
That said, MATLAB may be normalizing the result in some way or using some
other algorithm.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20121119/e326b009/attachment.html 


More information about the NumPy-Discussion mailing list