4 Iterative Lösung Linearer Gleichungssysteme 4.1 Fixpunktiteration und Konvergenzsätze. Wir betrachten das lineare Gleichungssystem der Form Ax = b; (4.1.1) mit A R n n reguläre Matrix und b R n gegeben, und suchen die eindeutige Lösung x R n dieses Systems. Die GEM liefert Lösungsvectoren x R n, die (bis auf Rundungsfehler) exakt sind in O(n 3 /3) Operationen. Oft ist man aber schon mit approximativen Lösungen x von (4.1.1) zufrieden, die mit wesentlich weniger Aufwand berechnet werden können. Numerische Methoden, die dies leisten, heissen iterative Verfahren. Iterative Lösungsverfahren für (4.1.1) liefern, ausgehend von einem Startvektor x (0) R n eine Folge {x (k) } k=1 von Vektoren, die gegen die eindeutige Lösung x von (4.1.1) konvergiert: x = lim k x (k) x x (k) 0 für k. Diese Verfahren gehen von der Fixpunktform des linearen Gleichungssystems (4.1.1) aus: x = Bx + f (4.1.2) Um (4.1.1) auf Fixpunktform zu bringen, spalten wir die Matrix A auf: A = P N, P, N R n n (4.1.3) wobei die Matrix P der sog. Vorkonditionierer (engl. Preconditioner) und die Matrix N der sog. nichtdiagonale Anteil (engl. nondiagonal part) der Matrix A ist. Mit der Aufspaltung (4.1.3) schreiben wir (4.1.1) um in P x = Nx + b und erhalten die Fixpunktform (4.1.2) mit der Iterationsmatrix B = P 1 N. Mit der Aufspaltung (4.1.3) erhalten wir das Iterationsverfahren P x (k+1) = Nx (k) + b x (k+1) = Bx (k) + f (4.1.4) Die Aufspaltung (4.1.3) ist nicht eindeutig jede Aufspaltung ergibt eine andere Iteration. Ausschlaggebend für die Wahl einer Aufspaltung sind folgende, sich oft widersprechende, Kriterien: a) einfache Invertierbarkeit der Vorkonditionierungsmatrix P und b) Kleinheit des Nichtdiagonalanteils N und damit schnelle Konvergenz der Fixpunktiteration (4.1.4). 84
Wir sagen, die Fixpunktiteration (4.1.4) sei konsistent mit dem System (4.1.1), falls die Fixpunktgleichung (4.1.2) genau eine Lösung hat, die (4.1.1) löst. Wir untersuchen die Konvergenz der Fixpunkiteration (4.1.4). Hierfür subtrahieren wir (4.1.2) von (4.1.4); dies ergibt die Fehlerrekurrenz e (k+1) = Be (k), k = 0, 1, 2,..., wobei e (k) := x (k) x. (4.1.5) Offensichtlich gilt x (k) x genau dann, wenn e (k) = x (k) x 0 gilt. Wegen e (k) = Be (k 1) = B 2 e (k 2) =... = B k e (0) ist dies genau dann der Fall für beliebigen Startvektor x (0) R n, wenn B k 0 für k. Nach Theorem 3.5.1 ist dies genau dann der Fall, wenn ρ(b) < 1 ist. Theorem 4.1.1 Die Fixpunktiteration (4.1.4) konvergiert genau dann für alle Startvektoren x (0) R n, wenn ρ(b) < 1 ist. Für die Iteration P x (k+1) = Nx (k) + f gelten folgende allgemeinen Konvergenzsätze, die wir ohne Beweis angeben. Proposition 4.1.2 Sei A = P N mit A, P SPD. Falls 2P A positiv definit, konvergiert die Iteration für jedes x (0) und für die Iterationsmatrix B = P 1 N gilt ρ(b) = B A = B P < 1. Die Konvergenz ist monoton in der Norm A und der Norm P : e (k+1) P e (k) P, e (k+1) A e (k) A. Proposition 4.1.3 Sei A = P N SPD und es gelte P + P A positiv definit. Dann existiert P 1, und die Iteration (4.1.2) konvergiert monoton in der Norm A und es gilt ρ(b) B A < 1. 4.2 Beispiele. Jacobi- und Gauss-Seidel Verfahren. Wir geben die wichtigsten Beispiele für die Aufspaltungen A = P N. Beispiel 4.2.1 (Jacobi-Iteration) Sei n = 3, und Ax = b zu lösen. Wir schreiben x 1 = (b 1 a 12 x 2 a 13 x 3 )/a 11 x 2 = (b 2 a 21 x 1 a 23 x 3 )/a 22 x 3 = (b 3 a 31 x 1 a 32 x 2 )/a 33. Sei nun x (0) gegeben, dann ist die Jacobi-Iteration für n > 1 beliebig für i = 1 : n ( i 1 n ) / x (k+1) i := b i a ij x (k) j a ij x (k) j a ii, i = 1 : n (4.2.6) j=1 j=i+1 85
Beispiel 4.2.2 (Gauss-Seidel Iteration) Beachte: (4.2.6) benutzt für x (k+1) i nicht die neueste Information und der Speicher für die x (k) ist 2n. Besser ist es, die x (k) j, j < i, gleich zu ersetzen: ( i 1 x (k+1) i := b i j=1 a ij x (k+1) j Wir schreiben (4.2.6), (4.2.7) symbolisch. Dazu n j=i+1 ) / a ij x (k) j a ii. (4.2.7) A = L + D + U (4.2.8) wo 0 0 0 a 12 a 1n a 11 0. D =... a, L = 21......, U =...... 0 a an 1,n. nn a n1 a n,n 1 0 0 0 Dann ist Jacobi in Fixpunktform: Dx (k+1) = b Lx (k) Ux (k) x (k+1) = D 1( b Lx (k) Ux (k)) = D 1 (L + U) }{{} x(k) + D 1 b = B J x (k) + c. (4.2.9) Analog erhalten wir aus (4.2.7) das Verfahren von Gauss-Seidel in Fixpunktform: (4.2.7) x (k+1) = D 1( b Lx (k+1) Ux (k)) (D + L) x (k+1) = Ux (k) + b (4.2.10) x (k+1) = (D + L) 1 Ux (k) + (D + L) 1 b x (k+1) = B GS x (k) + c mit der Iterationsmatrix B GS = (D + L) 1 U, c = (D + L) 1 b. Einen ersten Konvergenzsatz erhalten wir für diagonaldominante Matrizen A. Definition 4.2.3 A R n n heisst zeilendiagonaldominant, falls a ii n a ij, i = 1,..., n, j=1 j i 86
und spaltendiagonaldominant, falls a ii n a ji, i = 1,..., n. j=1 j i Falls > gilt, ist A streng zeilen- bzw. spaltendiagonaldominant. Es gilt Theorem 4.2.4 Sei A streng zeilen- bzw. spaltendiagonaldominant. Dann konvergieren das Jacobi- sowie das GS-Verfahren. Beweis: Wir müssen entweder zeigen, dass ρ(b J ) < 1 ist oder dass B J M < 1 in einer submultiplikativen Matrixnorm M. Wir zeigen B J < 1. Sei dazu A streng zeilendiagonaldominant. Dann ist a ii j i a ij, i = 1 : n, und B J = max i=1:n n j=1 j i a ij / a ii < 1. Wann konvergiert GS? Theorem 4.2.5 Sei A R n n SPD. Dann konvergiert GS (4.2.10) für alle x (0) R n. Beweis: A = A = U = L, also x (k+1) = B GS x (k) + c, B GS = (D + L) 1 L. Wir lassen im Rest des Beweises den Superskript GS weg. Wir zeigen in zwei Schritten. ρ(b) < 1 i) A SPD = 0 x R n : x Ax > 0. = a ii = e i Ae i > 0 = D > 0 = D ±1/2 = diag(a ±1/2 ii ) existiert. ii) Wegen Bx = λx = D 1 2 BD 1 2 D 1 2 x = λd 1 2 x hat B1 := D 1 2 BD 1 2 gleiche Eigenwerte wie B, und es gilt ρ(b) < 1 ρ(b 1 ) < 1. Es gilt weiter Sei x C n Eigenvektor von B 1 : B 1 = (1 + L 1 ) 1 L 1 mit L 1 = D 1 2 LD 1 2. B 1 x = λx, x H x = 1. Dann gilt: L 1 x = λ(1 + L 1)x = x H L 1 x = λ(1 + xh L 1 x). 87
Sei x H L 1 x = a + bi, mit a, b R. = λ 2 = a bi 1 + a + bi 2 = a 2 + b 2 1 + 2a + a 2 + b 2. D 1 2 AD 1 2 = 1 + L1 + L 1 pos. def. = 0 < 1 + x H L 1 x + x H L T 1 x = 1 + 2a = λ < 1. 4.3 Relaxationsverfahren. JOR und SOR-Verfahren Eine Verallgemeinerung des Jacobi-Verfahrens ist die sogenannte Überrelaxationsmethode (oder JOR von Jacobi Overrelaxation), bei der man zuerst die Näherung (4.2.9), die mit x (k+1) J = D 1 (b Lx (k) Ux (k) ) bezeichnet sei, berechnet, und dann mit einem Relaxationsparameter ω > 0 die neue Näherung x (k+1) berechnet nach x (k+1) = ω x (k+1) J + (1 ω) x (k). Für ω = 0 erhält man x (k+1) = x (k), ω = 1 ergibt offensichtlich das Jacobi-Verfahren; für ω > 1 geht man weiter in Richtung des Jacobischritts x (k+1), und man spricht von Überrelaxation, für ω < 1 resultiert die sogenannte Unterrelaxation. Es gilt x (k+1) = B J ω x(k) + f mit B J ω = ω B J + (1 ω) I und B J = D 1 (L + U) = I D 1 A, Das JOR Verfahren lässt sich auch als Residualkorrektur x (k+1) = x (k) + ωd 1 r (k), r (k) = b Ax (k). schreiben. Theorem 4.3.1 Für A R n n SPD konvergiert JOR für 0 < ω < 2/ρ(D 1 A). Beweis: Übung. Sei A R n n SPD zerlegt wie in (4.2.8): A = D + L + L. (4.3.1) Dann ist das Gauss-Seidel Verfahren für Ax = b 88
nach (4.2.10): x (k+1) GS = D 1 (b Lx (k+1) L x (k) ). (4.3.2) Das SOR(ω)-Verfahren erhält man durch dämpfen bzw. verlängern eines GS Schrittes. Sei dazu wieder ω > 0 ein sog. Relaxations-Parameter. Dann gilt Fixpunktform: wo x (k+1) SOR := (1 ω) x(k) + ω x (k+1) GS = (1 ω) x (k) + ω D 1( b Lx (k+1) L x (k)). (4.3.3) x (k+1) = B SOR (ω) x (k) + c(ω) (4.3.4) B SOR (ω) := (D + ωl) 1 [ (1 ω) D ωl ], c(ω) := ω(d + ωl) 1 b. (4.3.5) Theorem 4.3.2 Sei A R n n SPD. Genau dann konvergiert SOR(ω) für alle x (0) R n, wenn 0 < ω < 2. Beweis: Sei λ Eigenwert von B(ω) in (4.4.4). Dann existiert 0 z C n mit B(ω) z = λz, woraus mit (4.3.5) und A = D + L + L = D + L + U folgt ( (1 ω)d ωu ) z = λ(d + ωl)z. (4.3.6) Aber 2(1 ω)d 2ωU = (2 ω)d ωa + ω(l U), 2(D + ωl) = (2 ω)d + ωa + ω(l U). Einsetzen in (4.3.6) und multiplizieren von (4.3.6) von links mit z H = (2 ω) z H Dz ωz H Az ωz H (U U) z = λ [ (2 ω) z H Dz + ωz H Az ωz H (U U) z ]. (4.3.7) A SPD, z 0 und a ii > 0 = d := z H Dz > 0, a := z H Az > 0. Weiter ist (U U) schiefsymmetrisch = z H (U U) z = ir, r R. Damit ist (4.3.7): und es folgt (2 ω)d ωa + iωr = λ [ (2 ω)d + ωa + iωr ] λ = (2 ω)d ωa + iωr (2 ω)d + ωa + iωr. (4.3.8) Nun ist (2 ω)d ωa < (2 ω)d + ωa 0 < ω < 2, während die Imaginärteile von Zähler und Nenner in (4.3.8) gleich sind. Daher λ(ω) < 1 für 0 < ω < 2 und ρ ( B(ω) ) < 1, da λ beliebiger Eigenwert von B(ω) war. 89
4.4 Konvergenzraten und Stoppkriterien. Für kontrahierende Iterationsmatrizen B konvergiert also die Fixpunktiteration (4.1.4) für alle Startvektoren x (0) C n gegen den eindeutigen Fixpunkt x von (4.1.2). Für die Numerik ist neben der Konvergenz vor allem folgendes wichtig: a) wie genau ist x (k) nach k-schritten, d.h. wie schnell der Fehler e (k) = x (k) x (0) gegen Null strebt; dies ist die Konvergenzgeschwindigkeit, und b) wie die Iteration gestoppt werden soll, d.h. das sog. Abbruchkriterium. Der folgende Satz gibt hierüber Auskunft. Proposition 4.4.1 Sei B C n n kontrahierend, d.h. ρ(b) < 1, und sei {x (k) } k=0 Folge sukzessiver Approximationen (4.1.4) des Fixpunkts x von (4.1.2). Dann gilt: Für alle α (ρ(b), 1) und jede Vektornorm auf C n existiert C(n, α) derart, dass die a-priori Fehlerschätzung x (k) x C(n, α) gilt. Weiterhin gilt die (im allgemeinen genauere) a-posteriori Fehlerabschätzung x (k) x C(n, α) sowie die residualbasierte Fehlerschätzung x (k) x C(n, α) α k 1 α x(1) x (0) (4.4.1) α 1 α x(k) x (k 1) (4.4.2) α 1 α r(k) (4.4.3) wo r (k) := x (k) Bx (k) f das (berechenbare!) Residuum der Iterierten x (k) in der Fixpunktgleichung (4.1.2) ist. Beweis: i) B kontrahierend = ρ(b) < 1. Nach Theorem 3.5.1 existiert für alle 0 < ε < 1 ρ(b) eine Norm auf C n derart, dass B = sup 0 x C n Bx x ρ(b) + ε < 1. ii) Sei die gegebene Norm auf C n. Wegen der existieren c 1 (n), c 2 (n) > 0 mit Äquivalenz von Normen auf dem Cn x C n : c 1 x x c 2 x. 90
iii) Aus der Fehlerrekurrenz (4.1.5) folgt und, für k 1, e (k+1) B e (k) (ρ(b) + ε) e (k) x (k+1) x (k) = B(x (k) x (k 1) ) (ρ(b) + ε) x (k) x (k 1). (ρ(b) + ε) k x (1) x (0). iv) Sei α := ρ(b) + ε < 1. Dann gilt für alle p 1, p ganz, p x (k+p) x (k) x (k+i) x (k+i 1) ) i=1 (1 + α + + α p 1 ) x (k+1) x (k) (4.4.4) 1 αp 1 α αk x (1) x (0). Für p und beliebiges, festes k 1 folgt wegen α p 0 und x (k+p) x, dass Aus Schritt ii) erhalten wir dann x x (k) c 1 (n) x x (k) x x (k) woraus (4.4.1) mit C(n) = c 2 (n)/c 1 (n) folgt. αk 1 α x(1) x (0). αk 1 α x(1) x (0) c 2 (n) v) Zum Beweis von (4.4.2) gehen wir aus von (4.4.4) in der Form und lassen p. vi) Um (4.4.3) zu zeigen, beachten wir (4.1.2): und die Definition des Residuums gibt x (k+p) x (k) 1 αp 1 α x(k+1) x (k), α k 1 α x(1) x (0) x = Bx + c (4.4.5) x (k) = Bx (k) + c + r (k). (4.4.6) 91
Vergleich von (4.4.5), (4.4.6) zeigt, dass das Residuum r (k) misst um wieviel die Iterate x (k) die Fixpunktgleichung (4.1.2) verletzt. Genauer: (4.4.6) - (4.4.5) = r (k) = 0 x (k) = x e (k) = 0. x (k) x = B ( x (k) x ) + r (k) (I B) ( x (k) x ) = r (k) r (k) = (I B) e (k) Wegen ρ(b) < 1 existiert (I B) 1 (Korollar 3.5.2) und nach Korollar 3.5.2 ii): e (k) = (I B) 1 r (k) (1 B ) 1 r (k) (1 α) 1 r (k). Dann folgt (4.4.3) aus ii) mit C = c 2 /c 1. In obigen Abschätzungen war α im Wesentlichen gleich ρ(b). Wir sehen aus (4.4.1), dass die Fehlerreduktion pro Schritt der Fixpunktiteration (4.1.4) bestimmt ist durch ρ(b). Wir sehen weiter aus (4.4.3), dass das Residuum bis auf einen Faktor, der von ρ(b) sowie von n abhängt, gleich ist dem Fehler in der Iterierten x (k). Bemerkung 4.4.2 Die Wichtigkeit des Vorkonditionierers P ist damit klar: falls der Spektralradius von B = P 1 N = P 1 (P A) = I P 1 A wesentlich kleiner ist als der von I A, wird die Fixpunktiteration (4.1.4) schneller konvergieren und (4.4.3) wird ein besseres Stoppkriterium sein. Das Finden von Vorkonditionierern P die einfach zu invertieren sind und für die ρ(i P 1 A) klein ist, ist daher für die effiziente iterative Lösung grosser Gleichungssysteme wesentlich. Entweder man benutzt Information über die Herkunft von A oder man versucht sog. Black-Box Vorkonditionierer zu schreiben. Standardzugang ist hier die sog. unvollständige LU-Zerlegung, siehe [QSS1], Kap 4.3. Neuere Zugänge basieren auf Konstruktion von P durch rekursive Niedrigrangapproximation von A, den sog. H-Matrizen. 4.5 Instationäre Iterationsverfahren 4.5.1 Richardson-Verfahren Alle bisher betrachteten Methoden liessen sich als Fixpunktiteration mit fester Iterationsmatrix B schreiben. Dies sind sogenannte stationäre Verfahren. Alternativ dazu können wir auch instationäre Verfahren betrachten, bei denen B = B k ist. Das einfachste instationäre Verfahren ist das sogenannte Richardson-Verfahren. Wir leiten es wie folgt her: x (k+1) = x (k) + α P 1 r (k), (4.5.1) 92
wobei α > 0 ein Relaxationsparameter und r (k) = b Ax (k) (4.5.2) das Residuum von x (k) ist. Die Iterationsmatrix lautet hier B = I αp 1 A, also in (4.5.1) stationär. Ist α von Schritt k abhängig, also α = α k, dann erhalten wir die Iterationsmatrizen B k = I α k P 1 A. Beachte, dass das Jacobi- sowie das GS-Verfahren Spezialfälle des stationären Richardson- Verfahrens sind mit α = 1, P = D bzw. P = D + L. Theorem 4.5.1 Sei P nichtsingulär und λ i C die Eigenwerte von P 1 A: λ i σ(p 1 A). Dann konvergiert das stationäre Richardson-Verfahren (4.5.1) genau dann, wenn gilt. Beweis: Es gilt B α = I αp 1 A und daher gilt 2 Rλ i > 1, i = 1 : n, (4.5.3) α λ i 2 ρ(b α ) = max{ λ i (B α ) : i = 1 : n} = max{ 1 α λ i (P 1 A) : i = 1 : n} < 1 genau dann, wenn 1 αλ i < 1. Daraus folgt (1 α Rλ i ) 2 + (αiλ i ) 2 < 1, was (4.5.3) beweist. Theorem 4.5.2 Sei P nichtsingulär und P 1 A habe positive reelle Eigenwerte λ 1 λ 2 λ n > 0. Dann konvergiert das stationäre Richardson-Verfahren (4.5.1) genau dann, wenn 0 < α < 2/λ 1. Für α = α opt := 2/(λ 1 + λ n ), ist der Spektralradius von B minimal, d.h. ρ opt = min α>0 ρ(b α) = λ 1 λ n λ 1 + λ n. (4.5.4) Beweis: Die Eigenwerte der Matrix B α sind durch λ i (B α ) = 1 αλ 1 gegeben, so dass (4.5.1) genau dann konvergiert, wenn λ i (B α ) < 1 für i = 1,..., n gilt, d.h. wenn 0 < α < 2/λ 1. Es folgt (siehe Fig. 4.1), dass ρ(b α ) minimal für 1 αλ n = αλ 1 1 wird, d.h. für α = 2/(λ 1 +λ n ), was den gewünschten Wert für α opt liefert. Durch Substitution erhält man den gewünschten Wert von ρ opt. 93
1 αλ 1 ρ = 1 1 αλ k fig4.1.eps 142 96 mm ρ opt 1 αλ n 1 α opt 2 1 λ 1 λ 1 λ n α Fig. 4.1: Spektralradius von R α als Funktion der Eigenwerte von P 1 A Bemerkung 4.5.3 Für P 1 A SPD gilt cond 2 (P 1 A) = λ 1 /λ n. Damit folgt aus (4.5.4), dass ρ opt = λ 1/λ n 1 λ 1 /λ n + 1 = cond 2(P 1 A) 1 cond 2 (P 1 A) + 1 (4.5.5) ist - somit hängt die Konvergenzgeschwindigkeit des Richardson Verfahrens (4.5.1) ausschliesslich von cond 2 (P 1 A) ab. Die Konstruktion eines billigen Vorkonditionierers kann man z.b. mit der unvollständigen LU-Zerlegung (sogenannte ILU-Belegung ) von A erhalten (vgl. [QSS1], Kap. 4.3.2 für Details). 4.5.2 Gradientenverfahren Sei A R n n SPD, b R n gegeben. Dann ist die Lösung vom LGS Ax = b (4.5.6) charakterisiert durch das Minimum des quadratischen Potentials zu A: Φ(y) = 1 2 y Ay y b; (4.5.7) denn wegen A SPD ist Φ( ) strikt konvex: für alle y 1, y 2 R n, y 1 y 2, und für 0 < θ < 1 gilt Φ(θy 1 + (1 θ)y 2 ) < θφ 1 (y 1 ) + (1 θ) Φ(y 2 ). 94
Deshalb hat Φ( ) ein eindeutiges Minimum x auf R d mit Beachte, dass für alle y x R d und x = A 1 b R d gilt ( Φ)(x) = Ax b! = 0. (4.5.8) Φ(y) Φ(x) = 1 2 (y x) A (y x) = 1 2 y x 2 A > 0 (4.5.9) (nachrechnen!), so dass x in der Tat das Minimum von Φ( ) auf R d realisiert. Das Gradientenverfahren zur iterativen Lösung von (4.5.6) basiert hierauf. Sei x (0) Näherung für x. Wir suchen nun a) eine Abstiegsrichtung ( descent direction ) d (0) und b) eine Schrittweite α > 0 derart, dass die Bedingung Φ(x (1) )! < Φ(x (0) ) erfüllt. Wegen x (1) := x (0) + α d (0) (4.5.10) Wahl von d (0) : wähle die Richtung d (0), in der Φ(x (0) ) am kleinsten ist: also d (0) 2 = 1 Φ d (0) (x(0) ) = d (0) ( Φ)(x (0) )! = min. (4.5.11) ist die Richtung des steilsten Abstiegs von Φ an x (0) gerade Für d 2 = 1 ist ja die Richtungsableitung von Φ( ) an x (0) Φ(x (0) ) = Ax (0) b = r (0) (4.5.12) d (0) := r (0) / r (0) 2 : (4.5.13) d ( Φ)(x (0) ) = r (0) d = cos ϕ r (0) 2 wo ϕ der von r (0) und d eingeschlossene Winkel ist: d ϕ fig4.2.eps 55 19 mm r (0) Also wird Φ(x(0) ) d für ϕ = 0 oder für d (0) = r (0) / r (0) 2 minimal, und (4.5.11) lautet x (1) = x (0) + α r (0), α > 0. (4.5.14) Wir bestimmen das optimale α > 0, α 0 aus der Liniensuche Φ(x (0) + α 0 r (0) ) = min α>0 Φ(x(0) + αr (0) ). (4.5.15) 95
Dies ist, für gegebenes x (0) und r (0), ein quadratisches Polynom ϕ(α). Es gilt woraus ϕ (α 0 ) = α folgt (nachrechnen!). Iteration ergibt Algorithmus 4.5.4 (Gradientenverfahren) x (0) R n gegeben. Für k = 0, 1, 2,..., berechne ( Φ(x (0) + αr (0) ) ) α=α0 = ( Φ)(x (0) + αr (0) ) r (0) α=α0! = 0 α 0 = r(0) r (0) r (0) Ar (0) r (k) := b Ax (k) α k := r(k) r (k) r (k) Ar (k) (4.5.16) x (k+1) := x (k) + α k r (k). Theorem 4.5.5 Sei A R n n SPD. Dann ist das Gradientenverfahren, Algorithmus 4.5.4, für alle x (0) R n konvergent und es gilt e (k+1) A cond 2(A) 1 cond 2 (A) + 1 e(k) A, k = 0, 1, 2,... (4.5.17) 4.5.3 Konjugierte Gradienten (cg) Verfahren ([QSS1, 4.3.4]) Wir verallgemeinern das Gradientenverfahren, Algorithmus 4.5.4, indem wir von x (k) in eine Richtung p (k) die nicht mehr notwendig gleich der Richtung des steilsten Abstiegs des Potentials Φ( ) ist, um die Länge α > 0 gehen. Insbesondere ist p (k) nicht mehr gleich r (k). Analog zu (4.5.16) erhält man α k = p(k) r (k). (4.5.18) p (k) Ap (k) Da die exakte Lösung das Potential Φ( ) minimiert, verlangen wir nach wie vor, dass die Richtung p (k) eine Abstiegsrichtung des Potentials Φ ist. Die Schrittlänge α > 0 bestimmen wir wieder so, dass das Potential in Richtung p (k) minimiert wird. Die folgende Definition formalisiert dies. Definition 4.5.6 Ein Punkt x (k) R n heisst optimal bezüglich 0 p R n λ R : Φ(x (k) ) Φ(x (k) + λp). (4.5.19) Falls (4.5.19) für alle p V R d, heisst x (k) optimal bezüglich dem Unterraum V R n. 96
Bemerkung 4.5.7 Es gilt r (k) = b Ax (k) p, denn 0 = Φ λ (x(k) + λp) λ=0 = p (Ax (k) b) + λp Ap λ=0 p r (k) = 0. Idee des cg: erzeuge {x (k) } k=0 so, dass x(k) optimal bezüglich V k R n mit dim V k = k. Dann ist r (k) V k, k = 1, 2,... und r (n) V n r (n) = 0. Dazu: sei x (k) optimal bezüglich p V k. Dann ergibt die Forderung x (k+1) optimal bezüglich p V k, dass r (k+1) p sein muss, also dass gelten muss 0 = p r (k+1) = p ( b Ax (k+1)) = p ( b A(x (k) + q) ) = p ( r (k) Aq ) = p Aq. Definition 4.5.8 Zwei Richtungen p, q R n heissen A konjugiert p Aq = 0. Idee: Erzeuge eine Folge A-konjugierter Richtungen p (k). Da A SPD, sind die p (k) linear unabhängig und k = dimv k = dim span{p (1),..., p (k) }. Sei dazu (Ansatz): p (k+1) = r (k+1) β k p (k), k = 0, 1, 2,... (4.5.20) mit β k R so, dass Ap (j) p (k+1), j = 0, 1,..., k, also 0 = (Ap (j) ) p (k+1) = (p (j) ) Ap (k+1) j = 0, 1,..., k. (4.5.21) (4.5.21) für j = k = β k = (Ap(k) ) r (k+1) (Ap (k) ) p (k), k = 0, 1, 2,.... Dann gilt (4.5.21) auch für alle j < k. (Übung!). Der folgende Algorithmus formalisiert diese Konstruktion. Wichtig ist dabei, dass in jedem Schritt nur eine Matrix-Vektor Multiplikation ausgeführt werden muss. Residuum r (k) und die Abstiegsrichtung d (k) werden direkt mit der Näherung x (k) aktualisiert. Algorithmus 4.5.9 b, x (0) R n, A R n n SPD gegeben. r (0) := b Ax (0), p (0) := r (0). 97
Für k = 0, 1, 2,... do: α k = p(k) r (k) p (k) Ap (k) x (k+1) = x (k) + α k p (k) r (k+1) = r (k) α k Ap (k) β k = (Ap(k) ) r (k+1) (Ap (k) ) p (k) p (k+1) = r (k+1) β k p (k) end; Theorem 4.5.10 Sei A R n n SPD, b R n. Dann gilt: a) Jede Methode, die A konjugierte Richtungen verwendet, bricht in exakter Arithmetik nach max. n Schritten ab. b) Für x (k) aus cg-algorithmus 4.5.9 gilt mit e (k) A c = 2ck 1 + c 2k e(0) A (4.5.22) cond2 (A) 1 cond2 (A) + 1 < 1. 4.5.4 Vorkonditioniertes cg-verfahren Die Abschätzung (4.5.22) zeigt, dass die Konvergenz des cg-verfahrens durch die Kondition cond 2 (A) bestimmt ist. In der Praxis sind cg-verfahren nur dann erfolgreich für sehr grosse SPD Matrizen A, wenn sie in wesentlich weniger als n Schritten schon sehr gute Näherungen liefern. Dies ist, nach der Abschätzung (4.5.22), genau dann der Fall, wenn die Konstante c dort deutlich kleiner als 1 ist. Hierzu ist es notwendig, die Kondition der Matrix A klein zu machen. Idee: Sei A R n n SPD und P R n n SPD ein Vorkonditionierer: Vor Anwendung des cg-verfahrens schreiben wir das lineare System Ax = b um wie folgt: Ax = b P 1 2 AP 1 2 }{{} P 1 2 x = P }{{} 1 2 b. }{{} B y c und wenden das cg-verfahren auf das LGS mit der Vorkonditionierten Matrix B := P 1 2 AP 1 2 an. 98
Wichtig hierbei ist, dass das vorkonditionierte cg-verfahren algorithmisch realisiert werden kann, ohne dass jemails die Matrix B explizit gebildet wird! Falls nämlich A sowie P dünn besetzt sind, ist in der Regel B voll besetzt, und die Berechnung von B sowie x Bx benötigt wesentlich mehr Speicher und Arbeitsaufwand als die Speicherung von A, P beziehungsweise die Operationen x y := Ax und y z := P 1 y (die natürlich als Lösung des Hilfsgleichungssystems P z = y realisiert wird). Auf den ersten Blick nicht offensichtlich ist ebenfalls, dass im Vorkonditionierten cg-verfahren P 1/2 niemals gebildet werden muss. Algorithmus 4.5.11 (pccg). Seien A, P in R n n und b, x (0) R n gegeben. Setze: Berechne für k = 0, 1, 2,...: r (0) = b Ax (0), z (0) = P 1 r (0), p (0) = z (0) α k = (p(k) ) r (k) (p (k) ) Ap (k) x (k+1) = x (k) + α k p (k) r (k+1) = r (k) α k Ap (k) P z (k+1) = r (k+1) β k := (Ap(k) ) z (k+1) (Ap (k) ) p (k) p (k+1) := z (k+1) β k p (k). Als Übungsaufgabe rechne man nach, dass Algorithmus 4.5.11 in der Tat das cg-verfahren Algorithmus 4.5.9 angewandt auf die Matrix B = P 1/2 AP 1/2 ergibt. 99