QR-Algorithmus Proseminar - Numerische Mathematik Sommersemester 2005 - Universität Hamburg Fachbereich Mathematik geleitet von Prof. Wolf Hofmann 1
Im Laufe der Jahre wurde immer wieder versucht, die Möglichkeiten zur Berechnung von linearen Ausgleichs - und Eigenwertproblemen zu verbessern und zu gestalten, da diese vielseitig und auch vielfältig auftreten. Bis dann nach einigen früheren Verfahren der Mathematiker Francis 1961 den QR - Algorithmus, so wie er heute bekannt ist, verö entlichte. Die Grundidee bestand darin eine Matrix so umzuformen das eine obere Dreiecksmatrix entsteht, in der man die Eigenwerte aus der Diagonalen ablesen kann. Bei dieser Umformung ist allerdings zu beachten, dass sich die Eigenwerte der Matrix nicht verändern. Das heißt es muss sich um orthogonal-ähnliche Matrizen handeln. Die bekanntesten Verfahren dazu sind wohl die Berchnung nach Householder, Givens und das Gram-Schmidt-Verfahren, wobei ich mich jetzt auf das Verfahren nach Givens konzentrieren darf und soll. Wir gehen im Folgenden auch davon aus, dass wir als zu berechnende Matrix bereits eine speziellere Form zur Verfügung haben, es handelt sich also im Folgenden fast ausschließlich um die sogenannten Hessenberg ( H ) oder eine symmetrische, tridiagonale ( J ) Matrix. Die Vorgehensweise ist dadurch beschrieben, dass wir eine Folge von orthogonal-ähnlichen Matrizen bilden, die gegen eine Grenzmatrix konvergieren, aus der wir die gesuchten Eigenwerte leicht ziehen können. Als Voraussetzungen und zur anschließenden praktischen Durchführung haben wir jedoch zu Beginn einige grundlegenden Sachverhalte und Tatsachen zu beschreiben und begründen. Mit eben diesen möchte ich mich jetzt beschäftigen und wir fangen auch mit der grundlegenden Existenz an. Satz 1 Jede quadratische Matrix A lässt sich als Produkt einer orthogonalen Matrix Q und einer Rechtsdreiecksmatrix R in der Forum A= QR darstellen. Man bezeichnet dieses als QR - Zerlegung. 2
Beweis: ( dieser Beweis wird hier angeführt aber nicht in dem Pro-Seminar dargestellt da es sich um einen Satz handelt, der bereits in der Vorlesung erklärt wurde, dort im Skript in Abschnitt 9) Diese Existenz zeigen wir konstruktiv. Dazu wählen wir geeignete Rotationsmatrizen U T (p; q; ') und multipizieren damit von links, sodass die Matrixelemente unterhalb der Diagonalen eleminiert werden. z.b. Kolonenweise 0 @ X X X 1 0 0 X XA! @ X X X 1 0 0 X XA! @ X X X 1 0 X XA X X X 0 X X 0 0 X mit (p,q) - Rotationsmatrizen und den entsprechenden Rotationsindexpaaren (1,2), (1,3),... (2,3), (2,4),... (n-1,n) (k 1) zur Elimination des Matrixelementes a ij in A (k 1) nutzen wir U T K = UT (j,i;' K ) A (k) = U T K A(k 1) ; A (0) = A, k = 1; 2; :::; 1 2 n(n 1). Dabei werden, wie schon bekannt ist, nur die j-te und die i-te Zeile linear kombiniert. Deshalb a (k) (k 1) (k 1) ij =a jj sin ' k +a ij cos ' k = 0 Sobald a (k1) ik = 0 ist macht man keine weiteren Multiplikationen mehr und es ist U K = I zu setzen. Überlegung: Die ersten (n-1) Mulitplikationen eleminieren a i1 mit 2 i n Bei der Elimination von a ij der j-ten Spalte mit i > j geschieht durch Linksmultiplikation mit einer (j,i) Rotationsmatrix. Bei allen (j-1) Kolonnen werden nur die Elemente kombiniert, die nach Annahme verschwinden. Deshalb bleiben die erzeugten Nullen auch erhalten und es gilt U T N U T N 1 :::U T 2 U T 1 A (0) = R: Wir vereinfachen die Sache in dem wir die Matrix Q de nieren mit Q T := U T N U T N 1 :::U T 2 U T 1 und da sie aus dem Produkt orthogonaler Matrizen entsteht ist sie ebenfalls Orthogonal. Damit ist die Existenz der QR - Zerlegung A (0) = A = QR bewiesen. 3
Satz 2 Die QR - Zerlegung einer Hessenbergmatrix H oder einer tridiagonalen Matrix J der Ordnung n ist mit (n-1) Rotationsmatrizen durchführbar. Beweis: Wir haben nur die Unterdiagonalelemente zu eliminieren, also zu Beginn das Element a 21 dazu benötigen wir eine Rotationsmatrix U T (1; 2; ' 1 ) = U1 T aus dem vorherigen Vortrag ist uns bekannt, dass dabei die Struktur der Matrix A für die (n-1) -reihige Untermatrix erhalten bleibt. Dies ist dann auch der Ablauf für die folgenden Schritte. Bis die Matrix A durch Linksmultiplikation mit der Folge von (n-1) Rotationsmatrizen mit den Indexpaaren (1,2), (2,3),..., (n-1,n) zu einer rechten oberen Dreiecksmatrix umgewandelt wurde und eine Zerlegung der Form A = QR mit Q := U 1 U 2 :::U n 1 entstanden ist. Wie rekapitulieren: es waren (n-1) Rotationsmatrizen nötig um diese Form zu erzeugen. Im Fall einer tridiagonalen Matrix beinhalten die beiden oberen Nebendiagonalelemente nach der Rotation ein von null verschiedenes Element, denn durch U T (i; i + 1; ' i ) wird an der Stelle (i,i+2) mit i=1,2,...,(n-2) ein Wert erzeugt der nicht null sein muss, es bleibt natürlich bei den (n-1) Rotationen da uns in dem Fall ja erstmal nur die Dreiecksform interessiert. => Aus dem Satz schließen wir also, dass das Verfahren, bei einer Hessenbergmatrix angewendet deutlich weniger aufwendig ist, als bei einer vollbesetzten Matrix. Die QR-Transformation als wichtiger nächster Schritt in die Richtung unserer gesuchten Eigenwerte. Wir haben jetzt also eine Zerlegung der quadratischen Matrix A in A = Q R hieraus de nieren wir uns folgende Zuordnung: A 0 = R Q QR - Transformation anschließend zeigen wir einige Eigenschaften, die wir später sehr benötigen. 4
Satz 3 Die Matrix A der QR - Transformation ist orthogonal-ähnlich zur Matrix A. Beweis: (auch dieser Beweis wird hier nur nebenbei angeführt da er auch schon in der Vorlesung behandelt worden ist.) Q ist orthogonal und somit regulär, also existiert auch die Inverse Q 1 = Q T A = QR => Q 1 A = Q 1 QR => R = Q 1 A und A 0 = RQ => A 0 = Q 1 AQ Satz 4 Die Hessenbergform einer Matrix H der Ordnung n bleibt bei einer QR - Transformation erhalten. Beweis: aus einem der vorherigen Beweise ist die QR - Zerlegung einer Hessenbergmatrix H immer gegeben durch (n-1) Rotationsmatrizen => Q = U(1; 2; ' 1 )U(2; 3; ' 2 ):::U(n 1; n; ' n 1 ) Die Transformierte H ergibt sich durch: H 0 = RQ H 0 = R U 1 U 2 :::U n 1 0 R 1 * 0 U 1 1 0 1 X X X X X X 0 0 X X X X B 0 X X X C @ 0 0 X XA BX X 0 0 C @ 0 0 1 0A = BX X X X C @ 0 0 X XA 0 0 0 X 0 0 0 1 0 0 0 X so wird bei jedem Schritt ein neues Element erzeugt beim ersten Schritt auf dem Platz (2,1) und anschließend mit jedem weiteren U(k; k + 1; ' K ) an der Stelle (k+1,k): Mit H ist somit nach den (n-1) Multiplikationen wieder eine Hessenbergmatrix entstanden. Der Rechenaufwand einer QR - Transformation für H der Ordnung n entsteht zu einem aus der Bildung von R und demjenigem von H für den allgemeinen j-ten Schritt bedeutet dies einen Aufwand (i) 4+4(n-j) Multiplikationen und eine Wurzel (ii) 4j+2 Multiplikationen (falls man berücksichtigt, dass das 5
Diagonalelement und die neu entstehenden Nebendiagonalelemente nur je eine Operation benötigen) nach Summation über j von 1 bis (n-1) ergibt sich daraus Z QRHesse = (4n + 6)(n 1) = 4n 2 + 2n 6 Multiplikationen und (n 1) Quadratwurzeln Satz 5 Die QR-Transformation einer symmetrischen, tridiagonalen Matrix ist wieder symmetrisch und tridiagonal. Beweis: Nach Satz 3 ist A orthogonal-ähnlich zu A, deshalb bleibt die Symmetrie erhalten, denn A 0T = (Q 1 AQ) T = Q T A T Q 1T = Q 1 AQ = A 0 daher wissen wir, dass die Symetrie erhalten bleibt und da die tridiagonale Matrix eine besondere Form der Hessenbergmatrix ist und wir im letzten Satz deren Erhaltung bewiesen haben, wissen wir auch, dass deren Gestalt als tridiagonale erhalten bleibt. Damit haben wir jetzt die nötigen Grundlagen de niert und können uns jetzt mit der gezielten Aufgabe beschäftigen, nämlich der Suche nach den Eigenwerten, dazu nutzen wir den nachfolgenden Satz von Schur. Bei dem Satz gehen wir von reellen Matrizen aus, da wir nur deren Eigenwerte ermitteln wollen. Satz von Schur Zu jeder reellen Matrix A der Ordnung n existiert eine orthogonale Matrix U der Ordnung n, so dass die zu A ähnliche Matrix R := U 1 AU die Quasidreiecksgestalt hat 0 1 R 11 R 12 R 13 R 1m 0 R 22 R 23 R 2m R := U 1 AU = 0 0 R 33 R 3m B C @....... A 0 0 0 R mm Die Matrizen R ii, (i= 1,2,...,m) besitzen entweder die Ordnung eins oder die Ordnung zwei und haben im letzten Fall ein paar konjugiert komplexen Eigenwerten. 6
Beweis: Der Nachweis der Existenz einer orthogonalen Matrix U erfolgt in drei Teilen. (i) 9 2 R mit Eigenwert der Matrix A und x ein zugehöriger, normierter Eigenvektor mit kxk 2 = 1 so dass gilt: A x = x Zu x gibt es im R n weitere (n-1) normierte, paarweise und zu x orthogonale Vektoren. Diese (n-1) Vektoren sollen nun die Spalten einer Matrix Ũ 1 bilden. ~U 1 2 R n(n 1) eine Matrix mit (n-1) orthonormierten Vektoren. Jetzt fügen wir noch unseren Eigenvektor x als erste Spalte "davor" und erscha en damit eine orthogonale Matrix U 1 mit U 1 = (x; ~ U 1 ): Dann gilt in folge dessen AU 1 = (x; A ~ U 1 ) und daraus folgt dann x U1 1 AU 1 = U1 T T AU 1 = ~U 1 T (x; A U ~ 1 ) = x T A U ~ 1 0 U ~ T 1 A U ~ =: A 1 1 Wir wissen jetzt auch das A 1 zu A orthogonal ähnlich ist und das in A 1 in der linken oberen Ecke der Eigenwert zu nden ist. Der Nullvektor in der restlichen ersten Spalte entsteht aus der Orthogonaltität von x zu den Spalten von ~ U 1 ; also ~ U T 1 x = ~0: ~U T 1 A ~ U 1 beschreibt eine reelle Matrix der Ordnung (n-1), da [(n 1) n] [n n] [n (n 1)] => [(n 1) (n 1)]: (ii) 9 = + i mit 6= 0 mit komplexer Eigenwert von A und x ein zugehöriger Eigenvektor x = u + iv, dann ist notwendiger Weise = i der dazu konjugiert komplexe Eigenwert mit dem zugehörigen konjugiert komplexen Eigenvektor x = u iv. Deshalb ist A(u iv) = ( i)(u iv) wenn wir daraus den Real- und Imaginärteil ziehen bekommen wir dafür folgende Ausdrücke Au = u v; Av = u + v: Dieses tri t für x sowie auch x auf, da Eigenvektoren zu verschiedenen Eigenwerten linear unabhängig sind => die beiden Vektoren u und v sind linear unabhängig und spannen damit einen Unterraum im R n auf. 7
Jetzt de nieren wir eine Matrix Y := (u; v) 2 R n2 und aus der oberen Zerlegung bekommen wir dann den folgen Ausdruck durch einsetzen: AY = A (u; v) = (Au; Av) = (u v; u + v) = (u; v) = Y =: Y In dem von u und v aufgespannten Unterraum gibt es zwei orthonormierte Vektoren x 1 und x 2, diese fassen wir zu einer weiteren Matrix X 2 R n2 zusammen und es entsteht die Beziehung Y = XC mit neuer Matrix C 2 R 22 regulär. Damit folgt aus der obrigen Gleichung AXC = XC oder AX = XC C 1 =: XS Die Matrix S = C C 1 2 R 22 ist ähnlich zu und besitzt folglich das Paar der konjugiert komplexen Eigenwerte = + i und = i. Zu x 1 und x 2 gibt es im R n (n-2) weitere orthogonale Vektoren, die zu x 1 und x 2 orthogonal sind. Mit diesen n orthogonalen Vektoren aus dem R n bilden wir die orthogonale Matrix U 2 := (x 1; x 2 ; U ~ 2 ) = (X; U ~ 2 ), wobei U ~ 2 2 R n(n 2) eine Matrix mit orthonormierten Spaltenvektoren ist. Eben jenes setzen wir jetzt wieder in die obrige Gleichung ein und erhalten jetzt den folgenden Ausdruck: X U2 1 AU 2 = U2 T T AU 2 = ~U 2 T A(X; U ~ S X 2 ) = T A U ~ 2 0 U ~ T 2 A U ~ =: A 2 2 Wir wissen jetzt auch, dass A 2 zu A orthogonal-ähnlich ist, und das in A 2 in der linken oberen Ecke die Matrix S zu nden ist. Darunter ist eine Nullmatrix zu nden, da U ~ 2 T AX = U ~ 2 T XS = 0 2 R (n 2)n aufgrund der Orthogonalität der Vektoren x 1 und x 2 zu den Spaltenvektoren von U ~ 2 : Unten rechts die Matrix U ~ 2 T A U ~ 2 ist eine reelle Matrix der Ordnung (n-2). (siehe (i)) (iii) Jetzt schauen wir uns die beiden Matrizen A 1 und A 2 mal genauer an und aufgrund deren Gestalt sieht man, dass die Eigenwerte der Matrix A aus dem Element und den Eigenwerten der Matrix ~ U T 1 A ~ U 1 bestehen, sowie im Fall von (ii) aus dem konjugiert komplexen Eigenwertpaar von S und den Eigenwerten von ~ U T 2 A ~ U 2. 8
Diese orthogonal-ähnliche Transformation kann nun fortlaufend analog für die folgenden "Restmatrizen" A ~ i := U ~ i T A U ~ i mit der Ordnung (n-i) mit entweder i = 1 oder i = 2 mit einem weiteren Eigenwertpaar durchgeführt werden. Jetzt suchen wir uns eine Matrix, die orthogonal ist und mit deren Hilfe wir den Vorgang konsequent weiterführen können, diese orthogonale Matrix nennen wir V ~ i 2 R (n i)(n i), eben diese scha t es A ~ i in die oben genannte Form zu transformieren. Das heißt wirbekommen eine Matrix Ii 0 V := 0 Vi ~ 2 R nn als eine orthogonale Matrix, welche durch die Verknüpfung V T A i V die gegebene Matrix A einen Schritt weiter zur Quasidreiecksgestalt bringt. Wenn wir diesen Vorgang konsequent weiterführen bekommen wir die Aussage des Satzes geliefert und bekommen U als Produkt der orthogonalen Matrizen. Als wichtig anzumerken wäre zu diesem Satz, dass er unabhängig von der Vielfachheit der Eigenwerte von A gilt. Diese Eigenwerte bekommen wir leicht aus den Untermatrizen R ii der Quasidreiecksmatrix R, je nachdem wie sie dort vorhanden sind, entweder als konjugiert komplex oder als reelle Eigenwerte. Da wir aber beim Beweis schon Voraussetzten, dass ein solcher Eigenwert existiert (wollen wir ja erst bestimmen) bzw. einen zugehörigen Eigenvektor hat und wir auch von ihm Gebrauch machen, ist der Beweis leider nicht konstruktiv und enthält somit eine reine Existenzaussage. Damit sind alle Voraussetztungen für die praktische Durchführung erläutert, sodass wir jetzt die QR - Transformation sukzessive anwenden können mit Hilfe von orthogonal-ähnlichen Matrizen indem wir den Satz von Schur möglichst versuchen zu Realisieren. Da wir, wissen dass die Transformation einer Hessenbergmatrix wieder eine Hessenbergmatrix ergibt nutzten wir diesen Vorteil und verwenden eben diese um den Rechenaufwand enorm zu reduzieren. H k = Q k R k ; H k+1 = R k Q k ; (k = 1; 2; :::) mit H 1 = H 9
Literatur -H.R. Schwarz, Numerische Mathematik (1997 Stuttgart,Teubner): Abschnitt 6.4.1 -Andreas Meister, Numerik linearer Gleichungssysteme (1999, Vieweg): Abschnitt 3.3.2 10