III. Iterative Löser III.1 Direkte Löser und ihre Nachteile III.2 Klassische lineare Iterationsverfahren Typeset by FoilTEX 1
Erinnerung: Lineares Gleichungssystem bei FDM Diskretisierung einer linearen PDGL 2. Ordnung mit Finiten Differenzen/FEM führt zu einem linearen Gleichungssystem A h u h = f h, welches groß ist (typischerweise: Dimension = O(h 2d )), dünn besetzt ist (O(h d ) nicht-null Einträge) schlecht konditioniert ist (κ(a h ) = O(h 2 )), häufig symmetrisch, positiv definit ist, und bei geeigneter Nummerierung eine Bandstruktur besitzt. Typeset by FoilTEX 2
Verschiedene Löser: MATLAB Aus der Matlab Dokumentation: Direkte Löser Typeset by FoilTEX 3
Verschiedene Löser: MATLAB Aus der Matlab Dokumentation: Iterative Löser Typeset by FoilTEX 4
Gauß-Elimination Zerlege die invertierbare Matrix A R n n in das Produkt zweier Dreiecksmatrizen L (untere Dreiecksmatrix mit 1 als Diagonaleinträge) und U (obere Dreiecksmatrix), so dass PA = LU, mit einer Permutationsmatrix P. Damit lässt sich das Gleichungssystem durch Substitution lösen: Lz = P T b, Ux = z Aufwand bei vollbesetzten Matrizen: Berechnung der LU Zerlegung: O(n 3 ) Rückwärts/Vorwärts Substitution: O(n 2 ) Typeset by FoilTEX 5
Einfluss der Bandstruktur auf Fill-In Permutationsmatrizen P erlauben die Vertauschung der Zeilen (bei Multiplikation von links) und der Spalten (bei Multiplikation von rechts) einer Matrix A. Für diese gelten P 1 = P. Ax = b (PA)x = Pb, AP Px = b (AP )ˆx = b mit ˆx = Px. Die Bandstruktur der Matrix A bleibt bei der LU-Zerlegung erhalten, d.h. außerhalb der Bandstruktur treten keine weiteren Einträge auf, jedoch können die Nulleinträge innerhalb der Bandstruktur verschwinden (Fill-In). Ziel: Finden von geeigneten Permutationen der Matrix A, so dass möglichst geringe Bandbreite entsteht. Hierzu gibt es Minimierungsalgorithmen z.b. von Cuthill-McKee. Typeset by FoilTEX 6
LU Zerlegung: Matrix-Struktur Beispiel: 5-Punkte-Stern aus Finite-Differenzen-Diskretisierung (lexikographische Nummerierung) n = 64 n = 256 n = 1024 A nz = 288 nz = 1216 nz = 4992 L nz = 519 nz = 4111 nz = 32799 Typeset by FoilTEX 7
LU Zerlegung: Matrix-Struktur Beispiel: 5-Punkte-Stern aus Finite-Differenzen-Diskretisierung (Zufalls-Nummerierung) n = 64 n = 256 n = 1024 A nz = 288 nz = 1216 nz = 4992 L nz = 622 nz = 5900 nz = 79321 Typeset by FoilTEX 8
LU Zerlegung: Rechenzeit 40 Zufall Lexikographisch 30 20 10 0 0 1000 2000 3000 4000 n Rechenzeit stark (asymptotisch) von Nummerierung abhängig! Typeset by FoilTEX 9
III. Iterative Löser III.1 Direkte Löser und ihre Nachteile III.2 Klassische lineare Iterationsverfahren Typeset by FoilTEX 10
Lineare Iterationsverfahren Vorüberlegung: Eigentlich ist man gar nicht an einer exakten Lösung des Gleichungssystems interessiert, sondern an einer guten Approximation der PDGL. Sei u h eine Näherung von u h mit A h u h = f h, so gilt für den Fehler u u h h u u h h + u h u h h d. h. es genügt, wenn u h u h h u u h h. Idee: Berechneu h nicht direkt, sondern wiederumüber ein Näherungsverfahren. Typeset by FoilTEX 11
Lineare Iterationsverfahren: Definitionen 1. Ein Lösungsverfahren zur Berechnung von Ax = b heißt iterativ, falls ausgehend von einem Startwert x 0 eine Folge x k von Iterierten bestimmt wird. 2. Ein Iterationsverfahren heißt konvergent, falls unabhängig vom Startwert gilt wobei x die exakte Lösung ist. lim k xk = x, 3. Es heißt konsistent, falls aus x k = x folgt, dass x k+1 = x. 4. Es heißt linear, falls x k+1 linear von x k und b abhängt, d.h. es gibt zwei Matrizen M,N R n n mit x k+1 = Mx k +Nb Typeset by FoilTEX 12
Lineare Iterationsverfahren Ein allgemeines konsistentes lineares Iterationsverfahren zur Lösung von Ax = b hat die Form x k+1 = Mx k +Nb mit M = (Id NA). Mit der Zerlegung A = L+D +U erhalten wir folgende Verfahren: Jacobi-Verfahren: N = D 1 x k+1 = D 1 (L+U)x k +D 1 b vorwärtiger Gauß Seidel: N = (D +L) 1 x k+1 = (D+L) 1 Ux k +(D +L) 1 b rückwärtiger Gauß Seidel: N = (D+U) 1 x k+1 = (D +U) 1 Lx k +(D+U) 1 b SOR-Verfahren für ω (0,2): N = ω(d +ωl) 1 (D +ωl)x k+1 = ( (1 ω)d ωu ) x k +ωb Typeset by FoilTEX 13
Definition: Konvergenzrate und Fehlerreduktion Sei ρ(m) := max{ λ j : λ j EW von M} der Spektralradius der Matrix M. 1. ρ(m) heißt Konvergenzrate 2. It(M) := 1 ln(ρ(m)) definiert ein Maß für die Fehlerreduktion Bemerkung: 1. Je kleiner ρ(m), desto weniger Iterationen werden benötigt, um den Fehler um einen vorgegebenen Faktor zu reduzieren. 2. It(M) gibt an, wieviele Iterationen notwendig sind, um den Fehler um den Faktor 1 e zu reduzieren. Folgerung: ρ(m 1 ) = ρ(m 2 ) 2 It(M 1 ) = 1 2 It(M 2) Typeset by FoilTEX 14
Historische Bemerkungen C.F. Gauß in einem Brief vom 26.12.1823 an Gerling: Ich empfehle Ihnen diesen Modus zur Nachahmung. Schwerlich werden Sie je wieder direct eliminieren, wenigstens nicht, wenn Sie mehr als 2 Unbekannte haben. Das indirecte Verfahren lässt sich halb im Schlafe ausführen, oder man kann während desselben an andere Dinge denken. [C.F. Gauß: Werke Bd. 9, S. 280f, Göttingen 1903] Block Gauß Seidel Verfahren: (1819-1822) Supplementum theoriae combinationis observationum erroribus minime obnoxiae C.G. Jacobi: 1845 Über eine neue Auflösungsart der bei der Methode der kleinsten Quadrate vorkommenden linearen Gleichungen Typeset by FoilTEX 15
A h R N2 h N2 h,a h = A T h, Vergleich iterativer Lösungsverfahren Poisson-Matrix A h := B I I............ I I B mit I,B R N h N h, B := 4 1 1............ 1. 1 4 Typeset by FoilTEX 16
Iterative Löser: Einführung Aufwandsabschätzung Bandbreite: ω = O(N h ) Die Anzahl der Nicht-Nulleinträge wächst mit O(N h ) Anwendung von z.b. LU-Zerlegung erfordert Aufwand von O(Nh 2) Matrix-Vektor-Multiplikation hat Aufwand von O(N h ) Typeset by FoilTEX 17
Iterative Löser: Einführung Poisson-Matrix 0.6 0.4 Zeit, bis Fehler < 10 8 LU (voll) GS CG Zeit 0.2 0 0 200 400 600 800 1000 n 2 Gut geeignet um große, gut konditionierte, dünnbesetzte Matrizen zu lösen Das Verfahren der konjugierten Gradienten (CG) ist ein nichtlineares Krylovraum-Verfahren, welches für spd Matrizen besonders schnell konvergiert. Typeset by FoilTEX 18
SOR für verschiedene Dämpfungsparameter Poisson-Matrix Fehlernorm 10 0 10 4 w = 0.2 w = 0.6 w = 1 w = 1.4 w = 1.8 Fehlernorm 10 0 10 4 w = 0.8 w = 0.9 w = 1 w = 1.1 w = 1.2 10 8 0 50 100 150 200 Anzahl der Iterationen Figure 1: Dämpfungsparameter im Bereich [0.2, 1.8] 10 8 0 10 20 30 Anzahl der Iterationen Figure 2: Dämpfungsparameter im Bereich [0.8, 1.2] Typeset by FoilTEX 19
Konvergenz für SOR-Verfahren Für die Matrix M ω des SOR-Verfahrens gilt M ω = (D+ωL) 1( (1 ω)d ωu ). Konvergenz liegt vor, falls für den Spektralradius ρ(m ω ) < 1 0 < ω < 2 gilt. Der Spektralradius ρ(m ω ) nimmt sein Minimum für den optimalen Dämpfungsparameter 2 ω opt = 1+ 1 ρ 2 J an, wobei ρ J den Spektralradius der Iterationsmatrix M J = D 1 (L+U) des Jacobi-Verfahrens bezeichnet. Dann gilt für die Konvergenzrate Allgemein gilt ρ(m ωopt ) = 1 1 ρ 2 J 1+. 1 ρ 2 J ρ(m ω ) = { ω 1 für ωopt ω 2, 1 ω + 1 2 ω2 ρ 2 J +ωρ J 1 ω + 1 4 ω2 ρ 2 J für 0 ω ω opt. Typeset by FoilTEX 20
Asymptotische Konvergenzrate für SOR-Verfahren 1 Konvergenzrate ρ 0.8 0.6 0.4 0.2 ρ J = 0.3 ρ J = 0.5 ρ J = 0.7 ρ J = 0.9 0 0 0.5 1 1.5 2 Dämpfungsparameter ω Typeset by FoilTEX 21
Jacobi, Gauß-Seidel und optimales SOR im Vergleich Poisson-Matrix Number of iterations 7000 6000 5000 4000 3000 2000 1000 opt. SOR Gauss Seidel Jacobi 0 0 20 40 60 Number of unknowns n 2 Anzahl d. Iterationen η Faustregel: 1 0.9 0.8 0.7 0.6 0.5 0.4 0 10 20 30 40 50 60 Konvergenzraten ρ Faustregel: η J 2η GS ρ GS ρ 2 J ρ J 1 c J h 2 ρ SOR 1 c SOR h Typeset by FoilTEX 22
Vergleich iterativer Lösungsverfahren Poisson-Matrix, Fehler gegen Anzahl der Iterationen, n = p = 100 Lösung des linearen Gleichungsystems A h u h = f h mit Jacobi, Gauß-Seidel, symmetrischer Gauß-Seidel Methode und mit dem Verfahren der konjugierten Gradienten (CG) 10 0 10 4 10 8 Jacobi GS SGS CG 0 20 40 60 80 Typeset by FoilTEX 23