help-octave
[Top][All Lists]
Advanced

[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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]