[SciPy-User] qr decompostion gives negative q, r ?

Virgil Stokes vs@it.uu...
Tue Nov 20 16:03:54 CST 2012


On 2012-11-20 22:33, Daπid wrote:
> The QR descomposition is finding two matrices with certain properties such that:
>
> A = Q·R
>
> But, if both Q and R are multiplied by -1, (-Q)·(-R) = Q·R = A, still
> the same matrix. If Q is orthogonal, -Q is also. The sign is,
> therefore, arbitrary.
>
> On Tue, Nov 20, 2012 at 12:01 AM, 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 to what I get from MATLAB (R2010B)
>>
>> [q,r] = qr(A)
>>
>> The q,r returned from numpy are both the negative of the q,r returned
>> from MATLAB for the same matrix A. I believe that theq,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.
>>
>> _______________________________________________
>> SciPy-User mailing list
>> SciPy-User@scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-user
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
Thanks David,
I am well aware of this; but, I am using the QR decomposition for a 
convariance (PD matrix) and the negative R is not very useful in this 
case and the numpy result, IMHO should not be the default.

Why is numpy/Python different from that returned by MATLAB and 
MATHEMATICA? This makes translations rather tricky and one begins to 
wonder if there are other differences.


More information about the SciPy-User mailing list