Lineare Gleichungssysteme 4. Vorlesung 170 004 Numerische Methoden I Clemens Brand und Erika Hausenblas Montanuniversität Leoben 17. März 2016
Lineare Gleichungssysteme 1 Wiederholung: Normen, Jacobi-Matrix, Newton-Verfahren 2 Lineare Gleichungssysteme Vergleich: direkte und iterative Lösungsverfahren 3 Elementare iterative Verfahren Jacobi-Verfahren Beispiel: Wärmeleitungsgleichung Gauß-Seidel-Verfahren SOR-Verfahren 4 Matrix Splitting 5 Prüfungsbeispiel Clemens Brand und Erika Hausenblas 17. März 2016 2 / 31
Gliederung 4. Vorlesung 1 Wiederholung: Normen, Jacobi-Matrix, Newton-Verfahren 2 Lineare Gleichungssysteme Vergleich: direkte und iterative Lösungsverfahren 3 Elementare iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren 4 Matrix Splitting 5 Prüfungsbeispiel Clemens Brand und Erika Hausenblas 17. März 2016 3 / 31
Wiederholung Normen, Jacobi-Matrix, Newton-Verfahren Vektornorm misst Größe des Vektors: 1-, 2-, -Norm Vektornorm definiert Distanz x y Matrixnorm misst maximalen Vergrößerungsfaktor Fixpunkt-Iteration konvergiert für kontrahierende Abbildungen Jacobi-Matrix D f einer Funktion f : R n R m D Φ < 1 Abbildung Φ wirkt kontrahierend Newton-Verfahren
Jacobi-Matrix einer Funktion f : R m R n verallgemeinert die Ableitung einer Funktion f : R R Die Matrix der partiellen Ableitungen f 1 f 1... x 1 x 2 f 2 f 2 D f =... x 1 x 2.. f n f n... x 1 x 2 f 1 x m f 2 x m. f n x m heißt die Jacobi-Matrix der Abbildung f : R m R n. Clemens Brand und Erika Hausenblas 17. März 2016 5 / 31
Jacobi-Matrix noch einige Punkte kleine Änderung x in den Eingabewerten bewirkt Änderung f D f x in den Funktionswerten f(x + x) = f(x) + D f x +Terme proportional x 2 D f vorhin definiert für Abbildungen R m R n. Wir haben es meist mit quadratischen Jacobi-Matrizen von Abbildungen R n R n zu tun. D Φ im Fixpunkt bestimmt Konvergenzverhalten der Fixpunkt-Iteration D f tritt auch im Newton-Verfahren auf. (Aber in anderer Rolle als D Φ in einer Fixpunkt-Iteration) Clemens Brand und Erika Hausenblas 17. März 2016 6 / 31
Newton-Verfahren Standard-Verfahren und Varianten Standard-Version Iterationsvorschrift x (k+1) = x (k) + x (k) mit x (k) als Lösung von D f (x (k) ) x (k) = f(x (k) ) Gedämpft reduziere Korrekturvektor um Faktor ω mit 0 < ω < 1: x (k+1) = x (k) + ω x (k) Fixe Jacobi-Matrix bestimme nicht in jedem Schritt neue Jacobi-Matrix. x (k) ist Lösung von D f x (k) = f(x (k) ) mit fixem D f Clemens Brand und Erika Hausenblas 17. März 2016 7 / 31
Newton-Verfahren und Varianten Eigenschaften Standard-Version quadratische Konvergenz in der Nähe der Nullstelle. Gute Startwerte sind notwendig. Gedämpftes Newton-Verfahren langsamere, nur lineare, aber verlässlichere Konvergenz. Wenn Startwerte nicht nahe genug bei Nullstelle liegen. Typisch: ω 0.5. Fixe Jacobi-Matrix weniger Rechenaufwand beim Lösen des Gleichungssystems. Clemens Brand und Erika Hausenblas 17. März 2016 8 / 31
Gliederung 4. Vorlesung 1 Wiederholung: Normen, Jacobi-Matrix, Newton-Verfahren 2 Lineare Gleichungssysteme Vergleich: direkte und iterative Lösungsverfahren 3 Elementare iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren 4 Matrix Splitting 5 Prüfungsbeispiel Clemens Brand und Erika Hausenblas 17. März 2016 9 / 31
Lineares Gleichungssystem mit n Gleichungen und Unbekannten a 11 x 1 + a 12 x 2 +... +a 1n x n = b 1 a 21 x 1 + a 22 x 2 +... +a 2n x n = b 2... a n1 x 1 + a n2 x 2 +... +a nn x n = b n In Matrixschreibweise: Ax = b. Gleichungssysteme lassen sich in Matrix-Schreibweise übersichtlich und prägnant formulieren. Machen Sie sich mit den Bezeichnungen und Regeln der Matrizenrechnung vertraut!
Lösungsverfahren für lineare Gleichungssysteme Grundlegende Unterscheidung: direkte und iterative Verfahren Direkte Verfahren sind Varianten des Gaußschen Eliminationsverfahrens (LR-Zerlegung). Üblich bis n 10.000 Unbekannten. Direkte Verfahren sind allgemeiner anwendbar und rechnen zumeist schneller, sofern die Matrix im schnell zugänglichen Speicher des Rechners Platz hat. Iterative Verfahren finden schrittweise verbesserte Näherungslösungen. Üblich für n 10.000. Iterative Methoden sind nur für spezielle Matrixtypen anwendbar, die beispielsweise bei partiellen Differentialgleichungen auftreten. Clemens Brand und Erika Hausenblas 17. März 2016 11 / 31
Gliederung 4. Vorlesung 1 Wiederholung: Normen, Jacobi-Matrix, Newton-Verfahren 2 Lineare Gleichungssysteme Vergleich: direkte und iterative Lösungsverfahren 3 Elementare iterative Verfahren Jacobi-Verfahren Beispiel: Wärmeleitungsgleichung Gauß-Seidel-Verfahren SOR-Verfahren 4 Matrix Splitting 5 Prüfungsbeispiel Clemens Brand und Erika Hausenblas 17. März 2016 12 / 31
Jacobi-Verfahren Idee: Löse jede Gleichung nach ihrem Diagonal-Term auf. Standard-Form, 3 3-Beispiel a 11 x 1 + a 12 x 2 + a 13 x 3 = b 1 a 21 x 1 + a 22 x 2 + a 23 x 3 = b 2 a 31 x 1 + a 32 x 2 + a 33 x 3 = b 3 Auflösen nach Diagonal-Term Fixpunkt-Form a 11 x 1 = b 1 a 12 x 2 a 13 x 3 a 21 x 2 = b 2 a 21 x 1 a 23 x 3 a 31 x 3 = b 3 a 31 x 1 a 32 x 2
Jacobi-Verfahren Idee: Löse jede Gleichung nach ihrem Diagonal-Term auf. Standard-Form, 3 3-Beispiel a 11 x 1 + a 12 x 2 + a 13 x 3 = b 1 a 21 x 1 + a 22 x 2 + a 23 x 3 = b 2 a 31 x 1 + a 32 x 2 + a 33 x 3 = b 3 Auflösen nach Diagonal-Term Fixpunkt-Form 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
Jacobi-Verfahren Idee: Löse jede Gleichung nach ihrem Diagonal-Term auf. Standard-Form, 3 3-Beispiel a 11 x 1 + a 12 x 2 + a 13 x 3 = b 1 a 21 x 1 + a 22 x 2 + a 23 x 3 = b 2 a 31 x 1 + a 32 x 2 + a 33 x 3 = b 3 Auflösen nach Diagonal-Term Fixpunkt-Form 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 setze Startwerte ein, iteriere
Beispiel: Stationäre Wärmeleitungs-Aufgabe Bilanzgleichungen für Temperaturen in neun Zellen eines Finite-Volumen-Rechengitters Randtemperaturen sind vorgegeben, gesucht sind T 1,..., T 9. 0 0 0 100 T 7 T 8 T 9 0 100 T 4 T 5 T 6 0 100 T 1 T 2 T 3 0 0 0 0 Die Finite-Volums-Diskretisierung der Wärmeleitungsgleichung liefert neun Bilanzgleichungen. 4T 1 T 2 T 4 = 100 T 1 + 4T 2 T 3 T 5 = 0 T 2 + 4T 3 T 6 = 0 T 1 + 4T 4 T 5 T 7 = 100 T 2 T 4 + 4T 5 T 6 T 8 = 0 T 3 T 5 + 4T 6 T 9 = 0 T 4 + 4T 7 T 6 = 100 T 5 T 7 + 4T 8 T 6 = 0 T 6 T 8 + 4T 9 = 0
Stationäre Wärmeleitung: Matrix-Struktur So eine Matrix-Struktur tritt in vielen Modellproblemen auf 4 1 0 1 0 0 0 0 0 T 1 100 1 4 1 0 1 0 0 0 0 T 2 0 0 1 4 0 0 1 0 0 0 T 3 0 1 4 1 0 1 T 4 100 1 1 4 1 1 T 5 = 0 1 0 1 4 1 T 6 0 1 4 1 0 T 7 100 1 1 4 1 T 8 0 1 0 1 4 T 9 0 (Matrix-Elemente 0 sind großteils gar nicht mehr aufgeschrieben). Sehr große Gleichungssysteme! Ein 2D-Rechengittet mit n n Gitterpunkten führt zu n 2 Gleichungen in n 2 Unbekannten. Matrix dieses Systems hat Größe n 2 n 2. In 3D: n n n Gitterpunkte n 3 Gleichungen.
Stationäre Wärmeleitung: Matrix-Struktur So eine Matrix-Struktur tritt in vielen Modellproblemen auf 4 1 0 1 0 0 0 0 0 T 1 100 1 4 1 0 1 0 0 0 0 T 2 0 0 1 4 0 0 1 0 0 0 T 3 0 1 4 1 0 1 T 4 100 1 1 4 1 1 T 5 = 0 1 0 1 4 1 T 6 0 1 4 1 0 T 7 100 1 1 4 1 T 8 0 1 0 1 4 T 9 0 (Matrix-Elemente 0 sind großteils gar nicht mehr aufgeschrieben). Sehr große Gleichungssysteme! Ein 2D-Rechengittet mit n n Gitterpunkten führt zu n 2 Gleichungen in n 2 Unbekannten. Matrix dieses Systems hat Größe n 2 n 2. In 3D: n n n Gitterpunkte n 3 Gleichungen.
Matrix-Struktur bei größeren n n-rechengittern Die typische Fünf-Band-Struktur eines diskreten Poisson-Problems 0 n n = 5 5 10 10 20 20 0 0 5 10 10 20 30 40 50 100 150 15 50 60 200 250 20 70 80 300 25 0 5 10 15 20 25 nz = 105 90 100 0 10 20 30 40 50 60 70 80 90 100 nz = 460 350 400 0 50 100 150 200 250 300 350 400 nz = 1920 Schwach besetzte Matrix Die meisten Positionen sind mit Nullen besetzt Für schwach besetzte Matrizen lassen sich auch Systeme mit Millionen von Unbekannten lösen. Bei voll besetzten Matrizen dieser Größe wäre Gauß-Elimination völlig unmöglich.
Matrix-Struktur bei größeren n n-rechengittern Die typische Fünf-Band-Struktur eines diskreten Poisson-Problems 0 n n = 5 5 10 10 20 20 0 0 5 10 10 20 30 40 50 100 150 15 50 60 200 250 20 70 80 300 25 0 5 10 15 20 25 nz = 105 90 100 0 10 20 30 40 50 60 70 80 90 100 nz = 460 350 400 0 50 100 150 200 250 300 350 400 nz = 1920 Schwach besetzte Matrix Die meisten Positionen sind mit Nullen besetzt Für schwach besetzte Matrizen lassen sich auch Systeme mit Millionen von Unbekannten lösen. Bei voll besetzten Matrizen dieser Größe wäre Gauß-Elimination völlig unmöglich.
Iterative Lösungsverfahren Wir lösen die Gleichungen nach den Diagonal-Termen auf 4T 1 T 2 T 4 = 100 T 1 + 4T 2 T 3 T 5 = 0 T 2 + 4T 3 T 6 = 0 T 1 + 4T 4 T 5 T 7 = 100 T 2 T 4 + 4T 5 T 6 T 8 = 0 T 3 T 5 + 4T 6 T 9 = 0 T 4 + 4T 7 T 6 = 100 T 5 T 7 + 4T 8 T 6 = 0 T 6 T 8 + 4T 9 = 0
Iterative Lösungsverfahren Wir lösen die Gleichungen nach den Diagonal-Termen auf 4T 1 T 2 T 4 = 100 T 1 + 4T 2 T 3 T 5 = 0 T 2 + 4T 3 T 6 = 0 T 1 + 4T 4 T 5 T 7 = 100 T 2 T 4 + 4T 5 T 6 T 8 = 0 T 3 T 5 + 4T 6 T 9 = 0 T 4 + 4T 7 T 6 = 100 T 5 T 7 + 4T 8 T 6 = 0 T 6 T 8 + 4T 9 = 0 4T 1 = 100 + T 2 + T 4 4T 2 = 0 + T 1 + T 3 + T 5 4T 3 = 0 + T 2 + T 6 4T 4 = 100 + T 1 + T 5 + T 7 4T 5 = 0 + T 2 + T 4 + T 6 + T 8 4T 6 = 0 + T 3 + T 5 + T 9 4T 7 = 100 + T 4 + T 6 4T 8 = 0 + T 5 + T 7 + T 6 4T 9 = 0 + T 6 + T 8
Iterative Lösungsverfahren Wir lösen die Gleichungen nach den Diagonal-Termen auf 4T 1 T 2 T 4 = 100 T 1 + 4T 2 T 3 T 5 = 0 T 2 + 4T 3 T 6 = 0 T 1 + 4T 4 T 5 T 7 = 100 T 2 T 4 + 4T 5 T 6 T 8 = 0 T 3 T 5 + 4T 6 T 9 = 0 T 4 + 4T 7 T 6 = 100 T 5 T 7 + 4T 8 T 6 = 0 T 6 T 8 + 4T 9 = 0 T 1 = (100 + T 2 + T 4 )/4 T 2 = (T 1 + T 3 + T 5 )/4 T 3 = (T 2 + T 6 )/4 T 4 = (100 + T 1 + T 5 + T 7 )/4 T 5 = (T 2 + T 4 + T 6 + T 8 )/4 T 6 = (T 3 + T 5 + T 9 )/4 T 7 = (100 + T 4 + T 6 )/4 T 8 = (T 5 + T 7 + T 6 )/4 T 9 = (T 6 + T 8 )/4
Iterative Lösungsverfahren Wir lösen die Gleichungen nach den Diagonal-Termen auf 4T 1 T 2 T 4 = 100 T 1 + 4T 2 T 3 T 5 = 0 T 2 + 4T 3 T 6 = 0 T 1 + 4T 4 T 5 T 7 = 100 T 2 T 4 + 4T 5 T 6 T 8 = 0 T 3 T 5 + 4T 6 T 9 = 0 T 4 + 4T 7 T 6 = 100 T 5 T 7 + 4T 8 T 6 = 0 T 6 T 8 + 4T 9 = 0 T 1 = (100 + T 2 + T 4 )/4 T 2 = (T 1 + T 3 + T 5 )/4 T 3 = (T 2 + T 6 )/4 T 4 = (100 + T 1 + T 5 + T 7 )/4 T 5 = (T 2 + T 4 + T 6 + T 8 )/4 T 6 = (T 3 + T 5 + T 9 )/4 T 7 = (100 + T 4 + T 6 )/4 T 8 = (T 5 + T 7 + T 6 )/4 T 9 = (T 6 + T 8 )/4 Einsetzen von Startwerten rechts liefert verbesserte Werte links iteriere!
Ablauf der Iteration bei 3 3 inneren Zellen 0 0 0 100 0 0 0 0 100 0 0 0 0 100 0 0 0 0 0 0 0 Anfangsbedingung 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5
Ablauf der Iteration bei 3 3 inneren Zellen In dieser Form ein Jacobi-Verfahren: alle Gitter-Werte werden gleichzeitig aktualisiert. Gut für Parallelrechner geeignet, aber nur langsam konvergierend. 0 0 0 100 25 0 0 0 100 25 0 0 0 100 25 0 0 0 0 0 0 Schritt 1 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5
Ablauf der Iteration bei 3 3 inneren Zellen 0 0 0 100 31 6 0 0 100 38 6 0 0 100 31 6 0 0 0 0 0 Schritt 2 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5
Ablauf der Iteration bei 3 3 inneren Zellen 0 0 0 100 36 9 2 0 100 42 13 2 0 100 36 9 2 0 0 0 0 Schritt 3 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5
Ablauf der Iteration bei 3 3 inneren Zellen 0 0 0 100 38 13 3 0 100 46 16 4 0 100 38 13 3 0 0 0 0 Schritt 4 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5
Ablauf der Iteration bei 3 3 inneren Zellen 0 0 0 100 40 14 4 0 100 48 19 5 0 100 40 14 4 0 0 0 0 Schritt 5 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5
Ablauf der Iteration bei 3 3 inneren Zellen 0 0 0 100 42 18 7 0 100 52 24 9 0 100 42 18 7 0 0 0 0 Schritt 10 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5
Stationäre Temperaturverteilung 100 100-Gitter, insgesamt 10.000 Jacobi-Iterationen 10 20 30 40 50 60 70 80 90 100 20 40 60 80 100
Gauß-Seidel-Verfahren Idee: Im Prinzip wie das Jacobi-Verfahren, nur: setze neue Werte, soweit verfügbar, schon im aktuellen Schritt ein Fixpunkt-Form, 3 3-Beispiel, Ablauf der Iteration Startwerte x 1, x 2, x 3, neu berechnete Werte x 1, x 2, x 3 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
Gauß-Seidel-Verfahren Idee: Im Prinzip wie das Jacobi-Verfahren, nur: setze neue Werte, soweit verfügbar, schon im aktuellen Schritt ein Fixpunkt-Form, 3 3-Beispiel, Ablauf der Iteration Startwerte x 1, x 2, x 3, neu berechnete Werte x 1, x 2, x 3 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
Gauß-Seidel-Verfahren Idee: Im Prinzip wie das Jacobi-Verfahren, nur: setze neue Werte, soweit verfügbar, schon im aktuellen Schritt ein Fixpunkt-Form, 3 3-Beispiel, Ablauf der Iteration Startwerte x 1, x 2, x 3, neu berechnete Werte x 1, x 2, x 3 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
Gauß-Seidel-Verfahren Idee: Im Prinzip wie das Jacobi-Verfahren, nur: setze neue Werte, soweit verfügbar, schon im aktuellen Schritt ein Fixpunkt-Form, 3 3-Beispiel, Ablauf der Iteration Startwerte x 1, x 2, x 3, neu berechnete Werte x 1, x 2, x 3 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
SOR-Verfahren SOR bedeutet successive over-relaxation Idee Jeweils neuer Näherungswert zuerst als Zwischenresultat aus Gauß-Seidel-Schritt; endgültiger Näherungswert durch Extrapolation (Überrelaxation) aus alter Näherung und Zwischenresultat. Extrapolationsfaktor ω Der neue Wert liegt (hoffentlich) näher am Ziel als der alte. Extrapoliere den Schritt von alt auf neu um den Faktor ω. Schwierig ist, den Faktor ω im Bereich 1 < ω < 2 gut zu wählen. Zu klein: bringt wenig Verbesserung. Zu groß: schießt übers Ziel hinaus.
SOR-Verfahren 3 3-Beispiel, Ablauf der Iteration Alte Werte x 1, x 2, x 3 Zwischenresultate x 1, x 2, x 3 nach Gauß-Seidel-Schritt Extrapolierte Werte x 1, x 2, x 3 GS-Schritt x 1 = (b 1 a 12 x 2 a 13 x 3 )/a 11 Extrapolation x 1 = ωx 1 + (1 ω)x 1 GS-Schritt x 2 = (b 2 a 21 x 1 a 23 x 3 )/a 22 Extrapolation x 2 = ωx 2 + (1 ω)x 2 GS-Schritt x 3 = (b 3 a 31 x 1 a 32 x 2 )/a 33 Extrapolation x 3 = ωx 3 + (1 ω)x 3
SOR-Verfahren 3 3-Beispiel, Ablauf der Iteration Alte Werte x 1, x 2, x 3 Zwischenresultate x 1, x 2, x 3 nach Gauß-Seidel-Schritt Extrapolierte Werte x 1, x 2, x 3 GS-Schritt x 1 = (b 1 a 12 x 2 a 13 x 3 )/a 11 Extrapolation x 1 = ωx 1 + (1 ω)x 1 GS-Schritt x 2 = (b 2 a 21 x 1 a 23 x 3 )/a 22 Extrapolation x 2 = ωx 2 + (1 ω)x 2 GS-Schritt x 3 = (b 3 a 31 x 1 a 32 x 2 )/a 33 Extrapolation x 3 = ωx 3 + (1 ω)x 3
SOR-Verfahren 3 3-Beispiel, Ablauf der Iteration Alte Werte x 1, x 2, x 3 Zwischenresultate x 1, x 2, x 3 nach Gauß-Seidel-Schritt Extrapolierte Werte x 1, x 2, x 3 GS-Schritt x 1 = (b 1 a 12 x 2 a 13 x 3 )/a 11 Extrapolation x 1 = ωx 1 + (1 ω)x 1 GS-Schritt x 2 = (b 2 a 21 x 1 a 23 x 3 )/a 22 Extrapolation x 2 = ωx 2 + (1 ω)x 2 GS-Schritt x 3 = (b 3 a 31 x 1 a 32 x 2 )/a 33 Extrapolation x 3 = ωx 3 + (1 ω)x 3
SOR-Verfahren 3 3-Beispiel, Ablauf der Iteration Alte Werte x 1, x 2, x 3 Zwischenresultate x 1, x 2, x 3 nach Gauß-Seidel-Schritt Extrapolierte Werte x 1, x 2, x 3 GS-Schritt x 1 = (b 1 a 12 x 2 a 13 x 3 )/a 11 Extrapolation x 1 = ωx 1 + (1 ω)x 1 GS-Schritt x 2 = (b 2 a 21 x 1 a 23 x 3 )/a 22 Extrapolation x 2 = ωx 2 + (1 ω)x 2 GS-Schritt x 3 = (b 3 a 31 x 1 a 32 x 2 )/a 33 Extrapolation x 3 = ωx 3 + (1 ω)x 3
SOR-Verfahren 3 3-Beispiel, Ablauf der Iteration Alte Werte x 1, x 2, x 3 Zwischenresultate x 1, x 2, x 3 nach Gauß-Seidel-Schritt Extrapolierte Werte x 1, x 2, x 3 GS-Schritt x 1 = (b 1 a 12 x 2 a 13 x 3 )/a 11 Extrapolation x 1 = ωx 1 + (1 ω)x 1 GS-Schritt x 2 = (b 2 a 21 x 1 a 23 x 3 )/a 22 Extrapolation x 2 = ωx 2 + (1 ω)x 2 GS-Schritt x 3 = (b 3 a 31 x 1 a 32 x 2 )/a 33 Extrapolation x 3 = ωx 3 + (1 ω)x 3
SOR-Verfahren 3 3-Beispiel, Ablauf der Iteration Alte Werte x 1, x 2, x 3 Zwischenresultate x 1, x 2, x 3 nach Gauß-Seidel-Schritt Extrapolierte Werte x 1, x 2, x 3 GS-Schritt x 1 = (b 1 a 12 x 2 a 13 x 3 )/a 11 Extrapolation x 1 = ωx 1 + (1 ω)x 1 GS-Schritt x 2 = (b 2 a 21 x 1 a 23 x 3 )/a 22 Extrapolation x 2 = ωx 2 + (1 ω)x 2 GS-Schritt x 3 = (b 3 a 31 x 1 a 32 x 2 )/a 33 Extrapolation x 3 = ωx 3 + (1 ω)x 3
Konvergenz Iterative Verfahren konvergieren nicht für beliebige Matrizen! Konvergenzaussagen für Jacobi- und Gauß-Seidel existieren für Matrizen, bei denen in jeder Zeile die Beträge in der Hauptdiagonalen im Vergleich zur Summe der restlichen Element-Beträge dominieren. Stark diagonaldominante Matrix A = [a ij ] n a ii > a ij j = 1,..., n j=1, j i In praktisch relevanten Fällen reicht normaler Weise auch (schwach diagonaldominante Matrix) für Konvergenz. Clemens Brand und Erika Hausenblas 17. März 2016 23 / 31
Gliederung 4. Vorlesung 1 Wiederholung: Normen, Jacobi-Matrix, Newton-Verfahren 2 Lineare Gleichungssysteme Vergleich: direkte und iterative Lösungsverfahren 3 Elementare iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren 4 Matrix Splitting 5 Prüfungsbeispiel Clemens Brand und Erika Hausenblas 17. März 2016 24 / 31
Matrix Splitting Spalte Matrix auf in einfachen Teil + Rest. A = à + E Wenn Gleichungssystem mit Matrix A nicht leicht lösbar ist, ersetze A durch eine Matrix Ã, mit der es leichter geht. Forme um, so dass nur System mit à zu lösen ist und der Rest auf der anderen Seite steht Fixpunkt-Gleichung! Ax = b (à + E)x = b Ãx + Ex = b Ãx = b E x diese Gleichung lösen! x = à 1 (b Ex) Fixpunkt-Gleichung; Clemens Brand und Erika Hausenblas 17. März 2016 25 / 31
Matrix Splitting Spalte Matrix auf in einfachen Teil + Rest. A = à + E Wenn Gleichungssystem mit Matrix A nicht leicht lösbar ist, ersetze A durch eine Matrix Ã, mit der es leichter geht. Forme um, so dass nur System mit à zu lösen ist und der Rest auf der anderen Seite steht Fixpunkt-Gleichung! Ax = b (à + E)x = b Ãx + Ex = b Ãx = b E x diese Gleichung lösen! x = à 1 (b Ex) Fixpunkt-Gleichung; Clemens Brand und Erika Hausenblas 17. März 2016 25 / 31
Matrix Splitting A = à + E Jacobi-, Gauß-Seidel- und SOR-Verfahren sind von dieser Art Jacobi-Verfahren wählt à = D a 11 a 12 a 13 a 21 a 22 11 a 23 = a a 22 a 31 a 32 a 33 a 33 a 12 a 13 + a 21 a 23 a 31 a 32 Gauß-Seidel-Verfahren wählt à = L a 11 a 12 a 13 a 11 a 21 a 22 a 23 = a 21 a 22 + a 31 a 32 a 33 a 31 a 32 a 33 a 12 a 13 a 23 SOR-Verfahren wählt à = L + ( 1 ω 1)D Clemens Brand und Erika Hausenblas 17. März 2016 26 / 31
Matrix Splitting A = à + E Jacobi-, Gauß-Seidel- und SOR-Verfahren sind von dieser Art Jacobi-Verfahren wählt à = D a 11 a 12 a 13 a 21 a 22 11 a 23 = a a 22 a 31 a 32 a 33 a 33 a 12 a 13 + a 21 a 23 a 31 a 32 Gauß-Seidel-Verfahren wählt à = L a 11 a 12 a 13 a 11 a 21 a 22 a 23 = a 21 a 22 + a 31 a 32 a 33 a 31 a 32 a 33 a 12 a 13 a 23 SOR-Verfahren wählt à = L + ( 1 ω 1)D Clemens Brand und Erika Hausenblas 17. März 2016 26 / 31
Matrix Splitting A = à + E Jacobi-, Gauß-Seidel- und SOR-Verfahren sind von dieser Art Jacobi-Verfahren wählt à = D a 11 a 12 a 13 a 21 a 22 11 a 23 = a a 22 a 31 a 32 a 33 a 33 a 12 a 13 + a 21 a 23 a 31 a 32 Gauß-Seidel-Verfahren wählt à = L a 11 a 12 a 13 a 11 a 21 a 22 a 23 = a 21 a 22 + a 31 a 32 a 33 a 31 a 32 a 33 a 12 a 13 a 23 SOR-Verfahren wählt à = L + ( 1 ω 1)D Clemens Brand und Erika Hausenblas 17. März 2016 26 / 31
Iteration, Grundschema 1 Für ein Matrix Splitting A = Ã + E Beginne mit Startvektor x (0) iteriere für k = 0, 1, 2,... löse Ãx (k+1) = b Ex (k) bis x (k+1) x (k) < ɛ Ergebnis: Näherungslösung x (k+1)
Iteration, Grundschema 2 Ablaufschema einer Iteration in einem Rechenprogramm Diese Formulierung ist mathematisch äquivalent zum Grundschema 1. Vorteil: Residuum (Rest-, Fehlervektor) wird in jedem Schritt mitberechnet) Beginne mit Startvektor x (0) setze r (0) = b Ax (0) iteriere für k = 0, 1, 2,... löse Ãd (k+1) = r (k) setze x (k+1) = x (k) + d (k+1) setze r (k+1) = r (k) Ad (k+1) bis r (k+1) < ɛ Ergebnis: Näherungslösung x (k+1)
Beispiel Siehe Zusatz-Material: animierte GIF-Dateien Matrix A, rechte Seite b und Startvektor x (0) 2 1 0 1 1 A = 1 2 1 b = 0 x (0) = 1 0 1 2 0 1 Clemens Brand und Erika Hausenblas 17. März 2016 29 / 31
Gliederung 4. Vorlesung 1 Wiederholung: Normen, Jacobi-Matrix, Newton-Verfahren 2 Lineare Gleichungssysteme Vergleich: direkte und iterative Lösungsverfahren 3 Elementare iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren SOR-Verfahren 4 Matrix Splitting 5 Prüfungsbeispiel Clemens Brand und Erika Hausenblas 17. März 2016 30 / 31
Prüfungs-Beispiel Gegeben ist das System Ax = b und ein Startvektor x (0). 1 2 0 1 0 A = 2 2 2, b = 4, x (0) = 0. 0 2 3 8 0 1 Berechnen Sie iterativ Näherungslösungen x (1) und x (2) mit dem Gauß-Seidel-Verfahren. 2 Berechnen Sie iterativ Näherungslösungen x (1) und x (2) mit dem Jacobi-Verfahren. 3 Ein Maß für die Güte der Näherungen ist die Norm des Residuumsvektors r (n) = b Ax (n). Berechnen Sie für Aufgabe (1) die Residuumsvektoren und deren -Normen. 4 Welche Konvergenzbedingung kennen Sie für Jacobi- und Gauß-Seidel-Verfahren? Erfüllt die hier gegebene Matrix diese Bedingung? Clemens Brand und Erika Hausenblas 17. März 2016 31 / 31