[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: QR factorization
From: |
Ben Abbott |
Subject: |
RE: QR factorization |
Date: |
Fri, 28 Mar 2008 17:08:54 -0700 |
On Friday, March 28, 2008, at 07:04PM, "Bateman David-ADB014" <address@hidden>
wrote:
>-----Original Message-----
>From: Moritz Borgmann [mailto:address@hidden
>Sent: Fri 28-Mar-08 9:04 PM
>To: address@hidden
>Cc: Marco Caliari
>Subject: Re: QR factorization
>
>>Hi all.
>>
>>If you try the following with Octave 3.0.0+
>>
>>octave:1> A=ones(3,4);
>>octave:2> [Q,R]=qr(A);
>>
>>you get
>>
>>octave:3> Q
>>Q =
>>
>> -0.57735 0.81650 0.00000
>> -0.57735 -0.40825 -0.70711
>> -0.57735 -0.40825 0.70711
>>
>>With the other program, you get
>>
>>Q =
>>
>> -0.5774 -0.5774 -0.5774
>> -0.5774 0.7887 -0.2113
>> -0.5774 -0.2113 0.7887
>>
>>and the same R. Both the factorizations satisfy Q*R=A and Q'*Q=eye(3) and
>>both the programs claim to use the LAPACK routines DGEQRF and DORGQR.
>>Where could be the difference?
>
>look at the R matrix. Because A is rank-1, R has only one nonzero row
>(the first). Thus, the second and third columns of Q can be chosen
>arbitrarily as long as the columns of Q are orthonormal. There is
>simply no unique solution.
>
>-M
>
>Observing Marco's posts from the past, I think he understands that there is no
>unique solution. I think the question was rather given that Octave and Matlab
>both claim to use the same LAPACK routines they come up with different (though
>equally valid) solutions. Matlab uses the Intel Blas/Lapack libraries and
>Octave is probably using Atlas so the difference is probably in the details
>of the implementations of these libraries.
>
>D.
In fact, Octave built using Apple's vecLib gives the same result as "the other
program" ;-)
Ben