4.4.3 Givens-Rotationen
4.4.3 Givens-Rotationen
4.4.3 Givens-Rotationen
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
4.4 Orthogonalisierungsverfahren und die QR-Zerlegung<br />
<strong>4.4.3</strong> <strong>Givens</strong>-<strong>Rotationen</strong><br />
Das Gram-Schmidt Verfahren basiert auf Projektionen, die Householder-Transformationen<br />
sind Spiegelungen. Schließlich stellen wir kurz eine Methode vor, die auf <strong>Rotationen</strong> beruht.<br />
Wir definieren:<br />
Definition 4.61 (<strong>Givens</strong>-Rotation). Unter einer <strong>Givens</strong>-Rotation im R n versteht man<br />
die Drehung in der durch zwei Einheitsvektoren e i und e j aufgespannten Ebene. Die Transformationsmatrix<br />
ist gegeben durch:<br />
⎛<br />
1<br />
G(i, j, θ) =<br />
⎜<br />
⎝<br />
. ..<br />
1<br />
c<br />
s<br />
. ..<br />
−s<br />
c<br />
1<br />
⎞<br />
, c := cos(θ), s := sin(θ).<br />
. ⎟ .. ⎠<br />
1<br />
Es gilt:<br />
Satz 4.62 (<strong>Givens</strong>-Rotation). Die <strong>Givens</strong>-Rotation G(i, j, θ) ist eine orthogonale Matrix<br />
mit det(G) = 1. Es ist G(i, j, θ) −1 = G(i, j, −θ).<br />
Wie die Householder-Transformationen sind die <strong>Givens</strong>-<strong>Rotationen</strong> orthogonale Matrizen.<br />
Die Multiplikation von links an eine Matrix, also GA oder einen Vektor, also Gx ändert<br />
nur die i-te und j-te Zeile von A, bzw. von x:<br />
⎛<br />
⎞<br />
a 11 · · · a 1n<br />
. . .. .<br />
a i−1,1 · · · a i−1,n<br />
ca i1 − sa j1 · · · ca in − sa jn<br />
a i+1,1 · · · a i+1,n<br />
G(i, j)A =<br />
. . .. .<br />
.<br />
a j−1,1 · · · a j−1,n<br />
sa i1 + ca j1 · · · sa in + ca jn<br />
a j+1,1 · · · a j+1,n<br />
⎜<br />
⎝<br />
.<br />
. ..<br />
⎟ . ⎠<br />
a n1 · · · a nn<br />
Die QR-Zerlegung auf der Basis von <strong>Givens</strong>-<strong>Rotationen</strong> transformiert die Matrix A wieder<br />
schrittweise in eine obere rechte Dreiecksmatrix R. Durch Anwenden einer <strong>Givens</strong>-Rotation<br />
159
4 Numerische Lineare Algebra<br />
kann jedoch nur ein einzelnes Unterdiagonalelement eliminiert werden und nicht eine ganze<br />
Spalte:<br />
⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞<br />
∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗<br />
∗ ∗ ∗ ∗<br />
⎜ ⎟<br />
⎝∗ ∗ ∗ ∗⎠ → 0 ∗ ∗ ∗<br />
⎜ ⎟<br />
⎝∗ ∗ ∗ ∗⎠ → 0 ∗ ∗ ∗<br />
⎜ ⎟<br />
⎝0 ∗ ∗ ∗⎠ → 0 ∗ ∗ ∗<br />
⎜ ⎟<br />
⎝0 ∗ ∗ ∗⎠<br />
∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ 0 ∗ ∗ ∗<br />
⎛ ⎞ ⎛ ⎞<br />
∗ ∗ ∗ ∗<br />
∗ ∗ ∗ ∗<br />
0 ∗ ∗ ∗<br />
→ ⎜ ⎟<br />
⎝0 0 ∗ ∗⎠ → · · · → 0 ∗ ∗ ∗<br />
⎜ ⎟<br />
⎝0 0 ∗ ∗⎠ .<br />
0 ∗ ∗ ∗<br />
0 0 0 ∗<br />
Wir betrachten einen Schritt des Verfahrens. Dazu sei die Matrix A gegeben in der Form:<br />
⎛<br />
⎞<br />
a 11 · · · · · · · · · · · · a 1n<br />
. 0 .. . .. .<br />
. . .. aii .<br />
. 0 a i+1,i+1 .<br />
A =<br />
. . . .<br />
. 0 . .<br />
. . a ji . .. .<br />
⎜<br />
⎟<br />
⎝ . . . . ⎠<br />
0 · · · a ni a n,i+1 · · · a nn .<br />
Wir suchen die <strong>Givens</strong>-Rotation G(i, j, θ) zur Elimination von a ji . Für GA gilt:<br />
(G(i, j, θ)A) ji = sa ii + ca ji , c := cos(θ), s := sin(θ).<br />
Anstelle den Winkel θ zu finden bestimmen wir gleich die Werte c und s mit dem Ansatz<br />
sa ii + ca ji = 0, c 2 + s 2 = 1 ⇒ c :=<br />
a ii<br />
√<br />
a 2 ii + a2 ji<br />
, s := −<br />
a ji<br />
√<br />
a 2 ii + .<br />
a2 ji<br />
Anwendung von G(i, j, θ) auf A ergibt:<br />
(G(i, j, θ)A) ji = −a jia ii + a ii a ji<br />
√<br />
a 2 ii + a2 ji<br />
= 0, (G(i, j, θ)A) ii = a2 ii + a2 ji<br />
√<br />
a 2 ii + a2 ji<br />
=<br />
√<br />
a 2 ii + a2 ji .<br />
Das Element a ji wird eliminiert. Zur Elimination der i-ten Spalte (unterhalb der Diagonale)<br />
sind (n − i − 1) <strong>Givens</strong>-<strong>Rotationen</strong> notwendig. Hieraus lässt sich leicht abschätzen,<br />
dass der Aufwand zum Erstellen der QR-Zerlegung nach <strong>Givens</strong> großer ist als der Aufwand<br />
bei Verwenden der Householder-Transformationen. Genaue Analyse und effiziente Durchführung<br />
führt zu 4n3<br />
3<br />
+ O(n 2 ) arithmetische Operationen, also dem doppelten Aufwand<br />
verglichen mit der Householder-Methode.<br />
160
4.4 Orthogonalisierungsverfahren und die QR-Zerlegung<br />
Die QR-Zerlegung nach <strong>Givens</strong> gewinnt aber an Bedeutung, wenn die Matrix A bereits<br />
dünn besetzt ist. Nur Unterdiagonalelemente a ji ≠ 0 müssen gezielt eliminiert werden. Bei<br />
sogenannten Hessenberg-Matrizen (das sind rechte obere Dreiecksmatrizen, die zusätzlich<br />
noch eine linke Nebendiagonale besitzen) kann die QR-Zerlegung mit <strong>Givens</strong>-<strong>Rotationen</strong> in<br />
nur O(n 2 ) Operationen durchgeführt werden. Die QR-Zerlegung von Hessenberg-Matrizen<br />
spielt die entscheidende Rolle bei dem wichtigsten Verfahren zur Berechnung von Eigenwerten<br />
einer Matrix, siehe Abschnitt 4.6.<br />
Beispiel 4.63 (QR-Zerlegung nach <strong>Givens</strong>). Wie in Beispielen 4.54 und 4.60 sei wieder<br />
die folgende Matrix gegeben:<br />
⎛<br />
⎞<br />
1 1 1<br />
⎜<br />
⎟<br />
A := ⎝0.01 0 0.01⎠<br />
0 0.01 0.01<br />
Wir führen alle Rechnungen mit dreistelliger Genauigkeit durch. Zur Elimination von<br />
a 21 = 0.01 ist:<br />
d.h.<br />
c (1) =<br />
1<br />
√<br />
1 + 0.01 2 ≈ 1,<br />
⎛<br />
⎞<br />
1 0.01 0<br />
G (1) ⎜<br />
⎟<br />
= ⎝−0.01 1 0⎠ ,<br />
0 0 1<br />
0.01<br />
s(1) = −√ ≈ −0.01,<br />
1 + 0.01 2<br />
⎛<br />
A (1) = G (1) ⎜<br />
1 1 1<br />
⎞<br />
⎟<br />
A ≈ ⎝0 −0.01 0 ⎠<br />
0 0.01 0.01<br />
Im zweiten Schritt wählen wir zur Elimination von a (1)<br />
32 = 0.01<br />
c (2) =<br />
−0.01<br />
√<br />
0.01 2 + 0.01 2 ≈ −0.707,<br />
0.01<br />
s(2) = −√ 0.01 2 + 0.01 ≈ −0.707,<br />
2<br />
also<br />
⎛<br />
G (2) ⎜<br />
1 0 0<br />
⎞<br />
⎟<br />
= ⎝0 −0.707 0.707 ⎠ ,<br />
0 −0.707 −0.707<br />
⎛<br />
A (2) = G (2) A (1) ⎜<br />
1 1 1<br />
⎞<br />
⎟<br />
≈ ⎝0 0.0141 0.00707 ⎠ = ˜R.<br />
0 0 −0.00707<br />
Zur Probe berechnen wir zunächst ˜Q := (G (1) ) T (G (2) ) T :<br />
⎛<br />
⎞<br />
1 0.00707 0.00707<br />
⎜<br />
⎟<br />
˜Q = ⎝0.01 −0.707 −0.707⎠ .<br />
0 0.707 −0.707<br />
Die Matrizen ˜Q sowie ˜R sind nahezu identisch zu denen der Householder-Transformation<br />
in Beispiel 4.60. Daher ist auch die Genauigkeit der Approximation entsprechend gut:<br />
⎛<br />
⎞ ⎛<br />
⎞<br />
1.0001 0 0<br />
1 1 1<br />
˜Q T ⎜ ˜Q = ⎝ 0 0.99975 −5 · 10 −5 ⎟ ⎜<br />
⎠ , ˜Q ˜R ≈ ⎝0.01 3 · 10 −5 ⎟<br />
0.01 ⎠ ,<br />
0 −5 · 10 −5 0.99975<br />
0 0.00997 0.009997<br />
mit relativen Fehlern ‖ ˜Q ˜R − A‖ 2 /‖A‖ 2 ≈ 0.00005 sowie ‖ ˜Q T ˜Q − I‖2 ≈ 0.0003.<br />
161