[Numpy-discussion] Confused with qr decomposition function

Charles R Harris charlesr.harris at gmail.com
Mon Nov 19 18:30:53 EST 2012

On Mon, Nov 19, 2012 at 4:17 PM, Virgil Stokes <vs at 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.

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

More information about the NumPy-Discussion mailing list