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