Numerical Methods Contents - SAM
Numerical Methods Contents - SAM
Numerical Methods Contents - SAM
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Example 2.8.7 (Complexity of Householder QR-factorization).<br />
If<br />
m > n, rank(R) = rank(A) = n (full rank)<br />
Code 2.8.8: timing MATLAB QR-factorizations<br />
1 % Timing QR factorizations<br />
2<br />
3 K = 3 ; r = [ ] ;<br />
4 for n = 2 . ^ ( 2 : 6 )<br />
5 m = n∗n ;<br />
6<br />
7 A = ( 1 :m) ’ ∗ ( 1 : n ) + [ eye ( n ) ; ones (m−n , n ) ] ;<br />
8 t1 = 1000; for k =1:K, t i c ; [Q,R] = qr (A) ; t1 = min ( t1 , toc ) ; clear Q,R;<br />
end<br />
9 t2 = 1000; for k =1:K, t i c ; [Q,R] = qr (A, 0 ) ; t2 = min ( t2 , toc ) ; clear<br />
Q,R; end<br />
10 t3 = 1000; for k =1:K, t i c ; R = qr (A) ; t3 = min ( t3 , toc ) ; clear R; end<br />
11 r = [ r ; n , m , t1 , t2 , t3 ] ;<br />
12 end<br />
➤ {q·,1 ,...,q·,n } is orthonormal basis of Im(A) with<br />
Span { q·,1 , ...,q·,k<br />
}<br />
= Span<br />
{<br />
a·,1 , ...,a·,k<br />
}<br />
,1 ≤ k ≤ n .<br />
Remark 2.8.10 (Keeping track of unitary transformations).<br />
☛<br />
How to store<br />
For Householder reflections<br />
G i1 j 1<br />
(a 1 , b 1 ) · · · · · G ik j k<br />
(a k ,b k ) ,<br />
H(v 1 ) · · · · · H(v k )<br />
H(v 1 ) · · · · · H(v k ):<br />
For in place QR-factorization of A ∈ K m,n :<br />
!) in lower triangle of A<br />
store v 1 ,...,v k<br />
store "‘Householder vectors” v j (decreasing size<br />
?<br />
△<br />
Ôº¾¼ ¾º<br />
Ôº¾¼ ¾º<br />
10 2<br />
[Q,R] = qr(A)<br />
[Q,R] = qr(A,0)<br />
R = qr(A)<br />
O(n 4 )<br />
tic-toc-timing of different variants of QRfactorization<br />
in MATLAB<br />
✄<br />
time [s]<br />
10 1<br />
10 0<br />
10 −1<br />
O(n 6 )<br />
R<br />
R<br />
10 3 n<br />
Use [Q,R] = qr(A,0), if output sufficient<br />
!<br />
10 −2<br />
10 −3<br />
10 −4<br />
↑ Case m < n<br />
10 −5<br />
10 0 10 1 10 2<br />
Fig. 24 ✸<br />
= Householder vectors<br />
Remark 2.8.9 (QR-orthogonalization).<br />
⎛ ⎞ ⎛<br />
A<br />
=<br />
Q<br />
⎜ ⎟ ⎜<br />
⎝ ⎠ ⎝<br />
⎞<br />
⎛<br />
⎜<br />
⎝<br />
⎟<br />
⎠<br />
R<br />
⎞<br />
⎟<br />
⎠ , A,Q ∈ Km,n ,R ∈ K n,n .<br />
Ôº¾¼ ¾º<br />
Case m > n →<br />
☛ Convention for Givens rotations (K = R)<br />
⎧<br />
( )<br />
⎪⎨ 1 , if γ = 0 ,<br />
γ σ<br />
G =<br />
⇒ store ρ := 1<br />
−σ γ<br />
2 sign(γ)σ , if |σ| < |γ| ,<br />
⎪⎩<br />
2 sign(σ)/γ , if |σ| ≥ |γ| .<br />
⎧<br />
⎨ ρ = 1 ⇒ γ = 0 , σ = 1<br />
|ρ| < 1 ⇒ σ = 2ρ , γ = √ 1 − σ<br />
⎩<br />
2<br />
Ôº¾¼ ¾º<br />
|ρ| > 1 ⇒ γ = 2/ρ , σ = √ 1 − γ 2 .