(für Informatiker) M. Grepl J. Berger & J.T. Frings Institut für Geometrie und Praktische Mathematik RWTH Aachen Wintersemester 2010/11
Problemstellung Lineare Gleichungssysteme, iterative Verfahren geg.: A R n n, b R n, n 1, A dünnbesetzt; ges.: x R n, so dass Ax = b, wobei a 1,1 a 1,2 a 1,n x 1 b 1 a 2,1 a 2,2 a 2,n A =......, x = x 2., b = b 2. a n,1 a n,2 a n,n x n b n und die meisten a i,j = 0 sind. Annahme: A nichtsingulär, d.h. det(a) 0 Spalten von A bilden eine Basis in R n Ax = b eindeutig lösbar.
Suchmaschinenranking PageRank Internet mit 3 Webseiten A B C Gegeben: Webseiten A, B und C Verlinkung der Seiten Gesucht: PageRank PR( ) von A, B und C Modell des Zufalls-Surfers: PR(A) PR(B) = 1 d 1 1 3 PR(C) 1 }{{}}{{} x = 0 0 1 1 + d 0 0 2 1 1 0 2 }{{} PR(A) PR(B) PR(C) }{{} 1 d 3 e + d Ḡ x
Suchmaschinenranking PageRank Internet mit 3 Webseiten A B C Gegeben: Webseiten A, B und C Verlinkung der Seiten Gesucht: PageRank PR( ) von A, B und C Modell des Zufalls-Surfers: PR(A) PR(B) = 1 d 1 0 0 1 1 1 + d 0 0 2 3 1 PR(C) 1 1 0 2 PR(A) PR(B) PR(C) (I d Ḡ) x = 1 d 3 e (LGS)
Suchmaschinenranking PageRank Größe des Index bei Google: September 2005: > 8 Milliarden Anzahl der indizierten Seiten seitdem nicht mehr gelistet. The World s Largest Matrix Computation (C. Moler) Berechnungsverfahren: PR(p i ) = 1 d N + d oder in Matrix-Vektor-Notation p j I(p i ) x = 1 d N e + d Ḡ x. mit x = [PR(p 1 ) PR(p 2 )...] T. PR(p j ) O(p j ).
Suchmaschinenranking PageRank Berechnungsverfahren: Iterativ Initialisiere: x(t = 0) = 1 N Löse (Fixpunktgleichung) x(t + 1) = 1 d N e + d Ḡ x(t). bis x(t + 1) x(t) < ε. Algebraisch Für t (stationärer Zustand) ergibt sich x = 1 d N e + d Ḡ x. Lösung des Gleichungssystems (I d Ḡ) x = 1 d N e.
Suchmaschinenranking PageRank Power Method Gleichung lässt sich auch schreiben als ( ) 1 d x = N E + d Ḡ x = G x. da Ḡ Übergangswahrscheinlichkeiten darstellt, und N x eine Wahrscheinlichkeitsverteilung mit i=1 x i = 1 ist. Lösung mit Power Method Initialisiere: x(t = 0) = 1 N Löse (Fixpunktgleichung) x(t + 1) = G x(t). bis x(t + 1) x(t) < ε. Hier: eindeutiger max. EW λ max = 1 (Perron-Frobenius)
Suchmaschinenranking PageRank Connectivity Matrix G von "Harvard 500" (Stand: August 2003) 0 50 100 150 200 250 300 350 400 450 500 0 100 200 300 400 500 nz = 2636 Elemente: 250000, nnz(g) = 2636, density = 0.0105
Poisson-Gleichung Gesucht u C 2 (Ω) C( Ω), Ω = [0, 1] 2, so daß Beispiel 12.4.: Lösung der diskretisierten Poisson-Gleichung u = 1 in Ω, Für den Fall f 1, g 0, h = 2 6 (n = 64): u = 0 auf Ω. Typisches Beispiel: Wärmeleitungsgleichung, Diffusionsgleichung. 0.08 0.07 0.06 0.05 0.04 0.03 0.02 0.01 0 1 0.8 0.6 0.4 0.2 0 0 0.2 0.4 0.6 0.8 1
Poisson-Gleichung Diskretisierung mit Finite Differenzen Verfahren: Regelmäßiges quadratisches Gitter mit Schrittweite h = 1 n Ersetzen der Ableitungen durch Finite Differenzen Gesucht ist x R m, m = (n 1) 2, so dass Ax = b mit A R m m T I 4 1 A = 1 I T I 1 4 1 h 2........., T =......... I T I 1 4 1 I T 1 4, T R (n 1) (n 1) und der Identitätsmatrix.I R (n 1) (n 1).
Anzahl der Unbekannten ist bei d Ortsvariablen proportional zu h d. Dünnbesetzte lineare Gleichungssysteme Dünnbesetztheit: Poisson-Gleichung Steifigkeitsmatrizen sind immer dünnbesetzt, d. h. nur eine gleichmäßig beschränkte Anzahl von Einträgen pro Zeile ist von Null verschieden. Diskretisierung mit Finite Differenzen Verfahren: spy(a) 0 50 100 150 200 0 50 100 150 200 nz = 1065 Dahmen-Reusken Elemente: 50625, nnz(g) = 1065, Kapitel density 13 = 0.021 3
Poisson-Gleichung Eigenschaften von Steifigkeitsmatrizen: Hochdimensionalität Anzahl der Unbekannten h d bei d Ortsvariablen Dünnbesetztheit Blockstruktur Bei Diskretisierung auf regelmäßigen Rechteckgittern Schlechte Kondition Diskrete Poisson-Gleichung: κ(a) = ( ) 2 2 πh Symmetrie, Positiv-Definitheit Diagonaldominanz (strikt für <) a i,j a i,i für alle i, j i
Poisson-Gleichung Nichtnullelemente von L bei der Cholesky-Zerlegung der Matrix A 1 : Problem des "fill in" bei Cholesky-Zerlegung A = LDL T : spy(l) 0 50 Fill-in bei einem direkten Löser 100 150 Bemerkung 13.2. Als direkter Löser für ein Gleichungssystem mit der Matrix A 1 würde sich die Cholesky-Zerlegung A 1 = LDL T anbieten. 200 Nichtnulleinträge der Matrizen A 1 und L: 0 50 100 150 200 nz = 3389 h 1/16 1/32 1/64 1/128 nz(a 1 ) 1065 4681 19593 80137 5h 2 nz(l) 3389 29821 250109 2048509 h 3 Dahmen-Reusken Kapitel 13 6 Das Verhalten nz(l) h 3 gegenüber nz(a 1 ) 5h 2 zeigt den ungünsti-
Dünnbesetzte Matrizen in Matlab Löse A x = b x = inv(a)b x = Aˆ(-1)b x = A\b Sparse Matrices Matlab is slow only if you use it incorrectly. (Mathworks) Wenn A dünnbesetzt ist, ist der Code langsam, wenn man den folgenden Befehl zu oft benutzt : A(i, j) = Warum? Hat damit zu tun, wie Matlab Matrizen speichert...
Dünnbesetzte Matrizen in Matlab Beispiel, wie dünnbesetzte Matrizen in Matlab gespeichert werden: Was passiert, wenn wir den folgenden Befehl eingeben? C(3,1) = 42
Dünnbesetzte Matrizen in Matlab Vorher: Nachher:
Dünnbesetzte Matrizen in Matlab Der Befehl C(3,1) = 42 benötigt Zeit, die proportional zu den Einträgen in C ist, die ungleich null sind Besseres Vorgehen: drei Vektoren generieren, die die Reihen und Spalten und zugehörige Einträge beinhalten: I(...) =... ; J(...) =... ; X(...) =... ; Zusammenbau der Matrix mit: A = sparse(i,j,x,n,n); Doppelte Einträge werden summiert (z.b. beim Finite Differenzen Code) Preallocate memory (spalloc).
Aufgabe Für A R n n (nichtsingulär) und b R n ist das Gleichungssystem A x = b zu lösen. Wir nehmen an, daß n groß (n 1000) und A dünnbesetzt ist. Beispiele: Google-Matrix Markov-Ketten Netzwerkanalyse Diskretisierung von (partiellen) DGL (Finite Differenzen, Finite Elemente, Finite Volumen)...
Erinnerung: Nachiteration Sei x 0 eine näherungweise Lösung von A x = b mit Residuum r 0 = b Ax 0.
Erinnerung: Nachiteration Sei x 0 eine näherungweise Lösung von A x = b mit Residuum r 0 = b Ax 0. Der Fehler, δ 0 = x x 0, erfüllt A δ 0 = A x A x 0 = b A x 0 = r 0
Erinnerung: Nachiteration Sei x 0 eine näherungweise Lösung von A x = b mit Residuum r 0 = b Ax 0. Der Fehler, δ 0 = x x 0, erfüllt A δ 0 = A x A x 0 = b A x 0 = r 0 Exakte Lösung ergibt sich aus x = x 0 + δ 0 = x 0 + A 1 (b A x 0 )
Erinnerung: Nachiteration Sei x 0 eine näherungweise Lösung von A x = b mit Residuum r 0 = b Ax 0. Der Fehler, δ 0 = x x 0, erfüllt A δ 0 = A x A x 0 = b A x 0 = r 0 Exakte Lösung ergibt sich aus x = x 0 + δ 0 = x 0 + A 1 (b A x 0 ) Problem: Lösung des LGS benötigt. A δ 0 = b A x 0
Erinnerung: Nachiteration Sei x 0 eine näherungweise Lösung von A x = b mit Residuum r 0 = b Ax 0. Der Fehler, δ 0 = x x 0, erfüllt A δ 0 = A x A x 0 = b A x 0 = r 0 Exakte Lösung ergibt sich aus x = x 0 + δ 0 = x 0 + A 1 (b A x 0 ) Problem: Lösung des LGS benötigt. aber... A δ 0 = b A x 0
Annahme: wir haben eine näherungweise Lösung x 0 Idee: x = x 0 + A 1 (b A x 0 )
Annahme: wir haben eine näherungweise Lösung x 0 x = x 0 + C(b A x 0 ) Idee: Ersetze A 1 durch C, wobei A 1 durch C "gut" approximiert wird, und der Aufwand der Matrix-Vektor Multiplikation Cy gering ist.
Annahme: wir haben eine näherungweise Lösung x 0 x k+1 = x k + C(b A x k ), k = 0, 1, 2,... Idee: Ersetze A 1 durch C, wobei A 1 durch C "gut" approximiert wird, und der Aufwand der Matrix-Vektor Multiplikation Cy gering ist. Führe Iteration für k = 0, 1, 2,... ein.
Annahme: wir haben eine näherungweise Lösung x 0 x k+1 = x k + C(b A x k ), k = 0, 1, 2,... Idee: Ersetze A 1 durch C, wobei A 1 durch C "gut" approximiert wird, und der Aufwand der Matrix-Vektor Multiplikation Cy gering ist. Führe Iteration für k = 0, 1, 2,... ein. Fixpunktiteration: x k+1 = x k + C(b A x k ) := Φ(x k ), k = 0, 1, 2,....
Fixpunktgleichung Φ(x) := x + C(b A x) mit geeignetem C R n n nichtsingulär. Fixpunktiteration x k+1 = Φ(x k ) = x k + C(b A x k ) = (I CA)x k + Cb, k = 0, 1, 2,...
Fixpunktgleichung Φ(x) := x + C(b A x) mit geeignetem C R n n nichtsingulär. Fixpunktiteration x k+1 = Φ(x k ) = x k + C(b A x k ) = (I CA)x k + Cb, k = 0, 1, 2,... Für den Fehler e k := x k x ergibt sich also e k+1 = x k+1 x = Φ(x k ) Φ(x ) = (I CA)e k e k = (I CA) k e 0, k = 0, 1, 2,...
Satz 13.3 Das Verfahren konvergiert für jeden Startwert x 0 gegen die Lösung x des Gleichungssystems genau dann, wenn ρ(i CA) < 1 gilt, wobei ρ(i CA) der Spektralradius, also der betragsmäßig größte Eigenwert, von I CA ist.
Satz 13.3 Das Verfahren konvergiert für jeden Startwert x 0 gegen die Lösung x des Gleichungssystems genau dann, wenn ρ(i CA) < 1 gilt, wobei ρ(i CA) der Spektralradius, also der betragsmäßig größte Eigenwert, von I CA ist. Folgerung 13.5 Für eine beliebige Vektornorm mit zugehöriger Operatornorm gilt: x k x I CA k x 0 x, k = 0, 1, 2,... Die Konvergenz ist für jeden Startwert x 0 gesichert, falls für irgendeine Norm die Bedingung erfüllt ist. I CA < 1
Konvergenzrate Dünnbesetzte lineare Gleichungssysteme Maß für die Konvergenzgeschwindigkeit: ρ(i CA).
Konvergenzrate Maß für die Konvergenzgeschwindigkeit: ρ(i CA). Je kleiner ρ(i CA) ist, desto schneller wird der Fehler reduziert.
Konvergenzrate Dünnbesetzte lineare Gleichungssysteme Maß für die Konvergenzgeschwindigkeit: ρ(i CA). Je kleiner ρ(i CA) ist, desto schneller wird der Fehler reduziert. Mittlere Fehlerreduktion in k Iterationsschritten ( ) e k 1 k σ k = λ e 0 1 = ρ(i CA) für k
Konvergenzrate Dünnbesetzte lineare Gleichungssysteme Maß für die Konvergenzgeschwindigkeit: ρ(i CA). Je kleiner ρ(i CA) ist, desto schneller wird der Fehler reduziert. Mittlere Fehlerreduktion in k Iterationsschritten ( ) e k 1 k σ k = λ e 0 1 = ρ(i CA) für k Reduktion des Anfangfehlers e 0 um Faktor 1 e benötigt k = ( ln σ k ) 1 Iterationsschritte
Konvergenzrate Dünnbesetzte lineare Gleichungssysteme Maß für die Konvergenzgeschwindigkeit: ρ(i CA). Je kleiner ρ(i CA) ist, desto schneller wird der Fehler reduziert. Mittlere Fehlerreduktion in k Iterationsschritten ( ) e k 1 k σ k = λ e 0 1 = ρ(i CA) für k Reduktion des Anfangfehlers e 0 um Faktor 1 e benötigt k = ( ln σ k ) 1 Iterationsschritte Asymptotische Konvergenzrate ln(ρ(i CA))
Wahl von C Zu A R n n wähle C R n n so, daß A 1 durch C genügend gut in dem Sinne approximiert wird, daß ρ(i CA) möglichst klein ist. die Operation y Cy mit möglichst geringem Aufwand durchführbar ist. Beachte: Bei den meisten iterativen Verfahren wird die Operation y Cy durchgeführt, ohne daß die Matrix C explizit berechnet wird.
Komplexität Zum Vergleich der unterschiedliche Verfahren, gehen wir davon aus, daß eine Klasse von Gleichungssytemen Ax = b vorliegt vorgegeben ist, mit welchem Faktor R ein (beliebiger) Startfehler reduziert werden soll ( e k = 1 R e0 ) Komplexität eines iterativen Verfahrens Größenordnung der Anzahl arithmetischer Operationen, die benötigt werden, um für das vorliegende Problem eine Fehlerreduktion um den Faktor R zu erreichen.
Jakobi Gauß-Seidel SOR Conjugate Gradients (später)
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Problemstellung Lineare Gleichungssysteme, iterative Verfahren geg.: A R n n, b R n, det(a) 0, und n 1, A dünnbesetzt; ges.: x R n, so dass Ax = b, wobei a 1,1 a 1,2 a 1,n x 1 b 1 a 2,1 a 2,2 a 2,n A =......, x = x 2., b = b 2. a n,1 a n,2 a n,n x n b n und die meisten a i,j = 0 sind. Vorgehen x k+1 = x k + C(b A x k ), k = 0, 1, 2,....
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Definition Definiere die Zerlegung A = D L U wobei a 1,1 0 0 0 a 2,2 0 D =......, 0 0 a n,n 0 0 0 a 1,2 a 1,n. L = a. 2,1.........., U =............ an 1,n. a n,1 a n,n 1 0 0 0
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Definition Diagonaldominanz Eine Matrix A R n n heißt strikt diagonaldominat, falls gilt n a i,j < a i,i. j=1 j i Zeilen-/Spaltensummenkriterium Eine Matrix A R n n erfüllt das starke Zeilensummenkriterium (bzw. Spaltensummenkriterium), wenn n a max i,j i a i,i < 1, n a bzw. max i,j j a i,i < 1. j=1 j i i=1 j i
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Jacobi-Verfahren Beim Jacobi- oder Gesamtschrittverfahren: Die Iterationsvorschrift lautet C = (diag(a)) 1 = D 1. x k+1 = (I D 1 A) x k + D 1 b, d.h. in Komponentenschreibweise ergibt sich: Algorithmus 13.7 (Jacobi-Verfahren) Gegeben: Startvektor x 0 R n. Für k = 0, 1,... berechne: ( x k+1 i = a 1 i,i b i n ) a i,j x k j, i = 1, 2,..., n j=1 j i
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Jacobi-Verfahren Vorgehen: Löse i-te Gleichung nach der i-ten Unbekannte x i auf. Verwende Werte aus dem vorherigen Iterationsschritt für die übrigen Unbekannten (x j, j i). Beachte: x k und x k+1 müssen gespeichert werden Verfahren leicht parallelisierbar Rechenaufwand. Der Rechenaufwand pro Iterationsschritt ist beim Jacobi-Verfahren angewandt auf eine dünnbesetzte Matrix A R n n vergleichbar mit einer Matrix-Vektor-Multiplikation A x, beansprucht also O(n) Operationen.
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Konvergenz Satz 13.9 Für das Jacobi-Verfahren gelten folgende Konvergenzkriterien: Falls A als auch 2D A symmetrisch positiv definit sind, folgt ρ(i D 1 A) < 1. Falls A irreduzibel diagonaldominant ist, gilt ρ(i D 1 A) I D 1 A < 1. Satz: hinreichende Bedingung Das Jacobi-Verfahren konvergiert, falls A das starke Zeilensummen- oder Spaltensummenkriterium erfüllt.
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Beispiel 13.10 Beispiel 13.10. Das Diffusionsproblem mit der Matrix A 1. Es gilt ρ(i CA) = ρ(i D 1 A 1 ) = max{ 1 1 4 h2 λ λ Eigenwert von A 1 } = 1 2 sin 2 ( 1 2 πh) = cos(πh) 1 2 1 π2 h 2. Für die asymptotische Konvergenzrate gilt somit ln(ρ(i D 1 A 1 )) ln(1 1 2 π2 h 2 ) 1 2 π2 h 2. Um einen Startfehler um einen Faktor R zu reduzieren, sind etwa K = Iterationsschritte erforderlich. ln R ln ρ(i D 1 A 1 ) 2 π 2 h 2 ln R Beachte: Die geschätzte Anzahl der notwendigen Iterationsschritte wächst in Abhängigkeit der Schrittweite h wie die Konditionszahlen der betreffenden Matrizen. Dahmen-Reusken Kapitel Numerisches 13 Rechnen 15
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Beispiel 13.10 Sei # die Anzahl von Iterationsschritten, die zur Reduktion des Startfehlers um einen Faktor R = 10 3 benötigt werden, und K die theoretische Schätzung von # aus: Ergebnisse: K = ln 103 ln(cos πh) 2 π 2 h 2 ln 103. h 1/40 1/80 1/160 1/320 # 2092 8345 33332 133227 K 2237 8956 35833 143338 Komplexität. Da m h 2, folgt, daß K m Iterationsschritte benötigt werden. Da jeder Schritt einen zu m proportionalen Aufwand erfordert, ergibt sich, daß die Komplexität des Jacobi-Verfahrens (für diese Problemstellung) etwa c m 2 ist.
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Beispiel Gleichungssystem 4 1 0 1 0 1 4 1 0 1 0 1 4 1 0 1 0 1 4 1 0 1 0 1 4 x 1 x 2 x 3 x 4 x 5 = 100 100 100 100 100
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Beispiel Konvergenz
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Gauß-Seidel-Verfahren Beim Gauß-Seidel- oder Einzelschrittverfahren: Die Iterationsvorschrift lautet C = (D L) 1. x k+1 = (I (D L) 1 A) x k + (D L) 1 b, oder (D L) x k+1 = U x k + b, d.h. in Komponentenschreibweise ergibt sich: Algorithmus 13.12 (Gauß-Seidel-Verfahren) Gegeben: Startvektor x 0 R n. Für k = 0, 1,... berechne: ( x k+1 i = a 1 i,i b i i 1 a i,j x k+1 j n ) a i,j x k j, i = 1, 2,..., n. j=1 j=i+1
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Gauß-Seidel-Verfahren Vorgehen: Löse i-te Gleichung nach der i-ten Unbekannte x i auf. Verwende die bereits vorher berechneten Komponenten der neuen Annäherung. Beachte: Nur ein Vektor muss gespeichert werden Verfahren nicht mehr einfach parallelisierbar Ergebnis hängt von der Reihenfolge der Berechnung ab. Rechenaufwand. Für eine dünnbesetzte Matrix A R n n ist der Rechenaufwand pro Iterationsschritt beim Gauß-Seidel-Verfahren vergleichbar mit dem Aufwand beim Jacobi-Verfahren, beträgt also O(n) Operationen.
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Konvergenz Satz 13.13 Für das Gauß-Verfahren gelten folgende Konvergenzkriterien: Falls A symmetrisch positiv definit sind, folgt ρ(i (D L) 1 A) < 1 Falls A irreduzibel diagonaldominant ist, gilt ρ(i (D L) 1 A) I (D L) 1 A < 1. Satz: hinreichende Bedingung Das Gauß-Seidel-Verfahren konvergiert, falls A das starke Zeilensummen- oder Spaltensummenkriterium erfüllt.
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Beispiel 13.15 Beispiel 13.15. Das Diffusionsproblem mit der Matrix A 1. Dafür gilt: ρ(i CA 1 ) = ρ(i (D L) 1 A 1 ) = (ρ(i D 1 A 1 )) 2 Hieraus ergibt sich: ρ(i CA 1 ) = cos 2 (πh) 1 π 2 h 2. ln(ρ(i (D L) 1 A 1 )) ln(1 π 2 h 2 ) π 2 h 2. Um einen Startfehler um einen Faktor R zu reduzieren sind (asymptotisch) etwa K Iterationsschritte erforderlich, wobei Ergebnisse: K = ln R ln(ρ(i (D L) 1 A 1 )) 1 π 2 ln R. h2 h 1/40 1/80 1/160 1/320 # 1056 4193 16706 66694 K 1119 4478 17916 71669 Dahmen-Reusken Kapitel Numerisches 13 Rechnen 20
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Beispiel 13.15 Komplexität Für das Gauß-Seidel-Verfahren angewandt auf die diskrete Poisson- Gleichung A 1 x = b, A 1 R m m, m = (n 1) 2, n = 1 h ist die Komplexität c m 2 Operationen. Dahmen-Reusken Kapitel 13 21
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Beispiel Konvergenz
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Successive Over-Relaxation In vielen Fällen ist die Veränderung der x i von Iteration zu Iteration immer in die gleiche Richtung Korrektur ("over-relaxing") des Iterationsschritts kann die Konvergenz verbessern
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Successive Over-Relaxation Iterationsvorschrift bei Gauß-Seidel-Verfahren: ( x k+1 i = x k i + a 1 i,i b i i 1 a i,j x k+1 j n ) a i,j x k j, i = 1,..., n. j=1 Algorithmus 13.17 (SOR-Verfahren) j=i Gegeben: Startvektor x 0 R n, Parameter ω (0, 2). Für k = 0, 1,... berechne: ( = x k i + ω a 1 i,i b i i 1 a i,j x k+1 j n a i,j x k j x k+1 i j=1 Dies entspricht der Iterationsvorschrift j=i ( 1 ω D L) xk+1 = ( 1 ω D L) xk A x k + b, d.h. C = ( 1 ω D L) 1. ), i = 1,..., n.
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Successive Over-Relaxation Rechenaufwand. Beim SOR-Verfahren ist der Rechenaufwand pro Iterationsschritt vergleichbar mit dem Aufwand beim Gauß- Rechenaufwand. Seidel-Verfahren, Beim also O(n) SOR-Verfahren Operationen ist der für Rechenaufwand ein dünnbesetztes pro Iterationsschritt A R n n. vergleichbar dem Aufwand beim Gauß-Seidel- Verfahren, also O(n) Operationen für eine dünnbesetzte Matrix Konvergenz A R n n. Satz 13.18. Sei M ω := I ( 1 ω D L) 1 A die Iterationsmatrix des SOR-Verfahrens. Es gilt: ρ(m ω ) ω 1. Für A s.p.d. gilt: ρ(m ω ) < 1 für alle ω (0, 2). Sei A irreduzibel diagonaldominant mit a i,j 0 für alle i j und a i,i > 0 für alle i. Dann gilt: ρ(m ω ) < 1 für alle ω (0, 1]. Dahmen-Reusken Numerisches Kapitel 13Rechnen 24
Beispiel 13.19. Jacobi-Verfahren Gauß-Seidel-Verfahren Die Diffusionsgleichung wie in den Beispielen SOR-Verfahren13.10 und 13.15 für den Fall h = 160 1. Beispiel 13.19 Anzahl der Iterationen in Abhängigkeit von ω: Anzahl der Iterationen in Abhängigkeit von ω (h = 1 160 ) 10 5 10 4 10 3 10 2 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 Dahmen-Reusken Numerisches Kapitel 13Rechnen 25
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Optimaler Wert von ω Optimaler Wert von ω Der optimale Wert von ω ist stark problemabhängig. Für die meisten Probleme ist dieser optimale Wert nicht bekannt. Eine Ausnahme bildet die diskretisierte Poisson-Gleichung (Matrix A 1 ): Der optimale Wert von ω ist stark problemabhängig Für die meisten Probleme ist der optimal Wert nicht bekannt Ausnahme: diskrete Poisson-Gleichung (Matrix A 1 ) Satz 13.20. Wir betrachten die diskretisierte Poisson-Gleichung A 1 x = b. Sei µ := ρ(i D 1 A 1 ) < 1 der Spektralradius der Iterationsmatrix des Jacobi-Verfahrens. Sei M ω die Iterationsmatrix des SOR-Verfahrens. Dann ist ρ(m ω ) für den Relaxationsparameter 2 2 ω opt := 1 + 1 = 1 + µ µ 2 1 + 1 µ 2 optimal und ρ(m ωopt ) = ω opt 1.
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Komplexität Komplexität. Für die diskretisierte Poisson-Gleichung A 1 x = b ergibt sich beim SOR-Verfahren mit dem optimalen ω-wert eine sehr große Komplexitätsverbesserung im Vergleich zum Jacobi- und zum Gauß-Seidel- Verfahren. ( ) 2 cos(πh) ρ(m ωopt ) = ω opt 1 = = 1 sin(πh) 1 + sin(πh) 1 + sin(πh) 1 2πh. ln R K = ln ρ(m ωopt ) 1 2πh ln R ln R m. 2π Da der Aufwand pro Iteration proportional zu m ist, hat dieses Verfahren eine Komplexität (für die vorliegende Problemstellung) von c m 1.5 Operationen.
Beispiel 13.21 Dünnbesetzte lineare Gleichungssysteme Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Beispiel 13.21. Poisson-Gleichung A 1 x = b mit x 0, b und R wie in Beispiel 13.10. Wir verwenden das SOR-Verfahren mit ω = ω opt. Ergebnisse: h 1/40 1/80 1/160 1/320 # 73 146 292 585 K 44 88 176 352 Dahmen-Reusken Kapitel 13 29
Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren Beispiel Konvergenz
Viele Problem in der Praxis führen auf große dünnbesetzte lineare Gleichungssysteme Direkte Verfahren Berechnung der Lösung bis auf Rundungsfehler in O(n 3 ) Operationen Problem des "fill-in" bei dünnbesetzten Matrizen Bestimmung der Lösung näherungweise Konvergenz hängt von Spektralradius ρ(i CA) ab Wenn A das strenge Zeilen- oder Spaltensummenkriterium erfüllt, konvergieren das Jacobi-Verfahren, das Gauss- Seidel-Verfahren, und Succesive Over-Relaxation.