4.4.3 Givens

Transcription

4.4.3 Givens
4.4 Orthogonalisierungsverfahren und die QR-Zerlegung
4.4.3 Givens-Rotationen
Das Gram-Schmidt Verfahren basiert auf Projektionen, die Householder-Transformationen
sind Spiegelungen. Schließlich stellen wir kurz eine Methode vor, die auf Rotationen beruht.
Wir definieren:
Definition 4.61 (Givens-Rotation). Unter einer Givens-Rotation im Rn versteht man
die Drehung in der durch zwei Einheitsvektoren ei und ej aufgespannten Ebene. Die Transformationsmatrix ist gegeben durch:
1










G(i, j, θ) =







..

.
1
c
..
s
.
−s
c
1
..
.









,







c := cos(θ),
s := sin(θ).
1
Es gilt:
Satz 4.62 (Givens-Rotation). Die Givens-Rotation G(i, j, θ) ist eine orthogonale Matrix
mit det(G) = 1. Es ist G(i, j, θ)−1 = G(i, j, −θ).
Wie die Householder-Transformationen sind die Givens-Rotationen orthogonale Matrizen.
Die Multiplikation von links an eine Matrix, also GA oder einen Vektor, also Gx ändert
nur die i-te und j-te Zeile von A, bzw. von x:

a11
..
.



 a
i−1,1


cai1 − saj1

 ai+1,1


..
G(i, j)A = 
.

 a
j−1,1


sai1 + caj1

 aj+1,1


..

.
an1
···
..
.
···
···
···
..
.
···
···
···
..
.
···
a1n
..
.




ai−1,n 


cain − sajn 

ai+1,n 


..
.
.

aj−1,n 


sain + cajn 

aj+1,n 


..

.
ann
Die QR-Zerlegung auf der Basis von Givens-Rotationen transformiert die Matrix A wieder
schrittweise in eine obere rechte Dreiecksmatrix R. Durch Anwenden einer Givens-Rotation
159
4 Numerische Lineare Algebra
kann jedoch nur ein einzelnes Unterdiagonalelement eliminiert werden und nicht eine ganze
Spalte:

∗
∗


∗
∗
∗
∗
∗
∗
∗
∗
∗
∗


∗
∗


∗
0
 → 
∗
∗
∗
∗

∗
0

→ 
0
0
∗
∗
∗
∗
∗
∗
0
∗


∗
∗


∗
0
 → 
0
∗
∗
∗
∗
∗
∗
∗

∗
∗
∗
∗
∗
∗

 → ··· →
∗
∗
∗
∗
∗
∗

∗
∗
∗
∗
∗
0


0
0


∗
∗


∗
0
 → 
0
∗
0
∗
∗
∗
0
0

∗
∗
∗
0
∗
∗

.
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗

∗
∗


∗
∗
Wir betrachten einen Schritt des Verfahrens. Dazu sei die Matrix A gegeben in der Form:

a11 · · ·

..
 0
.

 .
..
 .
.
 .

 ..
 .


A =  ...

 .
 ..

 .
 .
 .
 .
 .
 .
0 ···
···
···
..
.
···
aii
0
..
.
ai+1,i+1
..
.
..
.
..
..
.
.
..
.
an,i+1 · · ·
0
aji
..
.
ani

a1n
.. 
. 

.. 

. 
.. 

. 

.. 
. 

.. 
. 

.. 
. 

.. 

. 
ann .
Wir suchen die Givens-Rotation G(i, j, θ) zur Elimination von aji . Für GA gilt:
(G(i, j, θ)A)ji = saii + caji ,
c := cos(θ),
s := sin(θ).
Anstelle den Winkel θ zu finden bestimmen wir gleich die Werte c und s mit dem Ansatz
saii + caji = 0,
c2 + s2 = 1
⇒
c := q
aii
a2ii + a2ji
,
aji
s := − q
.
a2ii + a2ji
Anwendung von G(i, j, θ) auf A ergibt:
(G(i, j, θ)A)ji =
−aji aii + aii aji
q
a2ii + a2ji
= 0,
q
a2ii + a2ji
(G(i, j, θ)A)ii = q
= a2ii + a2ji .
a2ii + a2ji
Das Element aji wird eliminiert. Zur Elimination der i-ten Spalte (unterhalb der Diagonale) sind (n − i − 1) Givens-Rotationen notwendig. Hieraus lässt sich leicht abschätzen,
dass der Aufwand zum Erstellen der QR-Zerlegung nach Givens großer ist als der Aufwand
bei Verwenden der Householder-Transformationen. Genaue Analyse und effiziente Durch3
führung führt zu 4n3 + O(n2 ) arithmetische Operationen, also dem doppelten Aufwand
verglichen mit der Householder-Methode.
160
4.4 Orthogonalisierungsverfahren und die QR-Zerlegung
Die QR-Zerlegung nach Givens gewinnt aber an Bedeutung, wenn die Matrix A bereits
dünn besetzt ist. Nur Unterdiagonalelemente aji 6= 0 müssen gezielt eliminiert werden. Bei
sogenannten Hessenberg-Matrizen (das sind rechte obere Dreiecksmatrizen, die zusätzlich
noch eine linke Nebendiagonale besitzen) kann die QR-Zerlegung mit Givens-Rotationen in
nur O(n2 ) Operationen durchgeführt werden. Die QR-Zerlegung von Hessenberg-Matrizen
spielt die entscheidende Rolle bei dem wichtigsten Verfahren zur Berechnung von Eigenwerten einer Matrix, siehe Abschnitt 4.6.
Beispiel 4.63 (QR-Zerlegung nach Givens). Wie in Beispielen 4.54 und 4.60 sei wieder
die folgende Matrix gegeben:


1
1
1


0
0.01
A := 0.01
0
0.01 0.01
Wir führen alle Rechnungen mit dreistelliger Genauigkeit durch. Zur Elimination von
a21 = 0.01 ist:
c(1) = √
d.h.
G(1)
1
≈ 1,
1 + 0.012


1
0.01 0


1
0 ,
= −0.01
0
0
1
s(1) = − √
A(1)
0.01
≈ −0.01,
1 + 0.012


1
1
1


0 
= G(1) A ≈ 0 −0.01
0 0.01 0.01
(1)
Im zweiten Schritt wählen wir zur Elimination von a32 = 0.01
c(2) = √
−0.01
≈ −0.707,
0.012 + 0.012
s(2) = − √
0.01
≈ −0.707,
0.012 + 0.012
also
G(2)


1
0
0


= 0 −0.707 0.707  ,
0 −0.707 −0.707
A(2) = G(2) A(1)


1
1
1


≈ 0 0.0141 0.00707  = R̃.
0
0
−0.00707
Zur Probe berechnen wir zunächst Q̃ := (G(1) )T (G(2) )T :


1
0.00707 0.00707


Q̃ = 0.01 −0.707 −0.707  .
0
0.707
−0.707
Die Matrizen Q̃ sowie R̃ sind nahezu identisch zu denen der Householder-Transformation
in Beispiel 4.60. Daher ist auch die Genauigkeit der Approximation entsprechend gut:


1.0001
0
0


0.99975 −5 · 10−5  ,
Q̃T Q̃ =  0
0
−5 · 10−5 0.99975


1
1
1


0.01  ,
Q̃R̃ ≈ 0.01 3 · 10−5
0
0.00997 0.009997
mit relativen Fehlern kQ̃R̃ − Ak2 /kAk2 ≈ 0.00005 sowie kQ̃T Q̃ − Ik2 ≈ 0.0003.
161