Einführung in die Numerik Dr. Ole Klein Interdisziplinäres Zentrum für Wissenschaftliches Rechnen (IWR) Universität Heidelberg email: ole.klein@iwr.uni-heidelberg.de Basierend auf den Vorlesungsunterlagen von Prof. Dr. Peter Bastian Wintersemester 2021/22 Lizenz und Copyright Dieses Werk ist unter der Creative Commons-Lizenz 4.0 (CC BY-SA) veröffentlicht. Bis auf einzelne Ausnahmen, die jeweils entsprechend gekennzeichnet sind, gilt für den Inhalt dieses Skripts: Text, Illustrationen © 2021 Ole Klein, Peter Bastian Falls Sie in Ihren wissenschaftlichen Arbeiten Bezug auf den Inhalt dieses Skripts nehmen möchten, referenzieren Sie es bitte via “Klein, O., and Bastian, P., 2021: Einführung in die Numerik, Lecture Notes, Heidelberg University” unter Angabe des Links, unter dem dieses Dokument online zu finden ist: https://conan.iwr.uni-heidelberg.de/people/oklein/ Inhaltsverzeichnis Inhaltsverzeichnis 1 Motivation 3 1.1 Die Wissenschaftliche Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Ein Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Lösungsansätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4 Numerische Resultate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5 Weitere Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.6 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2 Fließkommazahlen 15 2.1 Zahlendarstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2 Runden und Rundungsfehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3 Fließkommaarithmetik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4 Fehleranalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.5 Die quadratische Gleichung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.6 Auslöschung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.7 Die Exponentialfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.8 Rekursionsformel für Integrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3 Motivation linearer Gleichungssysteme 37 3.1 Strömung in Rohrleitungsnetzen . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.2 Die Kirchhoffschen Gesetze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.3 Das Knotenpotentialverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.4 Partielle Differentialgleichungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.5 Radiosity-Methode in der Computergraphik . . . . . . . . . . . . . . . . . . . . 45 4 Kondition linearer Gleichungssysteme 50 4.1 Lösbarkeit linearer Gleichungssysteme . . . . . . . . . . . . . . . . . . . . . . . 50 4.2 Vektornormen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.3 Matrixnormen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.4 Eigenwerte und Eigenvektoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.5 Die Spektralnorm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.6 Positiv definite Matrizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.7 Störungstheorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme 61 5.1 Dreieckssysteme (gestaffelte Gleichungssysteme) . . . . . . . . . . . . . . . . . . 61 5.2 Gauß-Elimination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.3 LR-Zerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.4 Rundungsfehleranalyse der LR-Zerlegung . . . . . . . . . . . . . . . . . . . . . . 71 5.5 Pivotisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.6 Spezielle Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5.7 Nichtreguläre Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 1 Inhaltsverzeichnis 6 Interpolation und Approximation 92 6.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 6.2 Polynominterpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 6.3 Anwendungen der Polynominterpolation . . . . . . . . . . . . . . . . . . . . . . 100 6.4 Bernstein-Polynome und Kurvendarstellung . . . . . . . . . . . . . . . . . . . . 104 6.5 Splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.6 Trigonometrische Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 6.7 Gauß-Approximation von Funktionen . . . . . . . . . . . . . . . . . . . . . . . . 120 6.8 Tschebyscheff-Approximation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 7 Numerische Integration 131 7.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 7.2 Newton-Cotes-Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 7.3 Summierte Quadraturformeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 7.4 Quadraturen höherer Ordnung . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 7.5 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 8 Iterative Lösung von Gleichungssystemen 141 8.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 8.2 Newton-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 8.3 Sukzessive Approximation (Fixpunktiteration) . . . . . . . . . . . . . . . . . . . 145 8.4 Iterationsverfahren zur Lösung linearer Gleichungssysteme . . . . . . . . . . . . 146 9 Schlussbemerkungen 156 2 1 Motivation 1.1 Die Wissenschaftliche Methode • Experiment: Beobachte (und messe) was passiert. • Theorie: Versuche die Beobachtung mit Hilfe von Modellen zu erklären. • Theorie und Experiment werden sukzessive verfeinert und verglichen, bis eine akzeptable Übereinstimmung vorliegt. • In Naturwissenschaft und Technik liegen Modelle oft in Form mathematischer Gleichun- gen vor, z. B. gewöhnliche oder partielle Differentialgleichungen. • Oft können die Modellgleichungen nicht geschlossen (mit Papier und Bleistift, oder Ma- thematica . . . ) gelöst werden. ⇒ Numerische Simulation und Optimierung Simulation Simulation: Gleichungen numerisch lösen. • Undurchführbare Experimente ermöglichen (z.B. Galaxienkollisionen). • Einsparung teurer Experimente (z.B. Windkanal). • Parameterstudien schneller durchführbar. • (Automatische) Optimierung von Prozessen. • Identifikation von Modellparametern aus Messungen. • Abschätzung von Unsicherheiten. • Vielfältiger Einsatz in Naturwissenschaft, Technik und Industrie: Strömungsberechnung (Wetter, Klima), Festigkeit von Bauwerken . . . • Grundlage für alle diese Anwendungen sind numerische Algorithmen! • Auch Informatiker sind beteiligt: Software-Engineering, High-Performance (Parallel) Com- puting, . . . Die prinzipielle Herangehensweise im Wissenschaftlichen Rechnen zeigt Abbildung 1. Die er- folgreiche Durchführung einer Simulation erfordert die interdisziplinäre Zusammenarbeit von Naturwissenschaftlern oder Ingenieuren mit Mathematikern und Informatikern. 3 1 Motivation konzeptionelles Modell mathematisches Modell wesentliche Prozesse algebraische Gleichungen Differentialgleichungen Realität Transport von Materie Wahrscheinlichkeiten Wellenausbreitung Reaktion Objekte: reelle Zahlen, Phasenübergänge Funktionen, ... ... ? Computerprogramm numerisches Modell Komplexe SW Näherungsverfahren SW−Engineering, Qualität zur Lösung oben Simulation Effizienz ("Teraflop") genannter Gleichungen High Performance Comp. Visualisierung Abbildung 1: Prinzipielles Vorgehen im Wissenschaftlichen Rechnen. 4 1.2 Ein Beispiel Fehlerquellen Unterschiede zwischen Experiment und Simulation haben verschiedene Gründe: • Modellfehler: Ein relevanter Prozess wurde nicht oder ungenau modelliert (Temp. kon- stant, Luftwiderstand vernachlässigt, . . . ) • Datenfehler: Messungen von Anfangsbedingungen, Randbedingungen, Werte für Parame- ter sind fehlerbehaftet. • Abschneidefehler: Abbruch von Reihen oder Iterationsverfahren, Approximation von Funk- tionen (z.B. stückweise Polynome). • Rundungsfehler: Reelle Zahlen werden im Rechner genähert dargestellt. Untersuchung von Rundungsfehlern und Abschneidefehlern ist ein zentraler Aspekt der Vorle- sung! 1.2 Ein Beispiel Pisa, 1582 Der Student Galileo Galilei sitzt in der Kirche und ihm ist langweilig. Er beobachtet den langsam über ihm pendelnden Kerzenleuchter und denkt: „Wie kann ich nur die Bewegung dieses Leuchters beschreiben?“. Konzeptionelles Modell Welche Eigenschaften (physikalischen Prozesse) sind für die gestellte Frage relevant? • Leuchter ist ein Massenpunkt mit der Masse m. • Der Faden der Länge ` wird als rigide und masselos angenommen. • Der Luftwiderstand wird vernachlässigt. Nun entwickle mathematisches Modell. 5 1 Motivation (0, 0) φ ` m Kräfte • Annahme: Pendel läuft auf Kreisbahn: Nur Tangentialkraft ist relevant. • Tangentialkraft bei Auslenkung φ: cos(φ) F~T (φ) = −m g sin(φ) . sin(φ) • Also etwa: 0 F~T (0) = −mg , 0 0 F~T (π/2) = −mg . 1 • Vorzeichen kodiert Richtung. (0, 0) φ ` F~T m F~N F~ 6 1.3 Lösungsansätze Weg, Geschwindigkeit, Beschleunigung • Weg s(t), Geschwindigkeit v(t), Beschleunigung a(t) erfüllen: ds(t) dv(t) v(t) = , a(t) = . dt dt • Für den zurückgelegten Weg (mit Vorzeichen!) gilt s(t) = `φ(t). • Also für die Geschwindigkeit d s(φ(t)) d `φ(t) dφ(t) v(t) = = =` dt dt dt • und die Beschleunigung d v(φ(t)) d2 φ(t) a(t) = =` . dt dt2 Bewegungsgleichung • Einsetzen in das 2. Newton’sche Gesetz m a(t) = F (t) liefert nun: d2 φ(t) m` = −mg sin(φ(t)) ∀t > t0 . dt2 • Die Kraft ist hier skalar (vorzeichenbehafteter Betrag der Tangentialkraft), da wir nur den zurückgelegten Weg betrachten. • Ergibt gewöhnliche Differentialgleichung 2. Ordnung für die Auslenkung φ(t): d2 φ(t) g 2 = − sin(φ(t)) ∀t > t0 . (1.1) dt ` • Eindeutige Lösung erfordert zwei Anfangsbedingungen (t0 = 0): dφ φ(0) = φ0 , (0) = u0 . (1.2) dt 1.3 Lösungsansätze Lösung bei kleiner Auslenkung • Allgemeine Gleichung für das Pendel ist schwer „analytisch“ zu lösen. • Für kleine Winkel φ gilt sin(φ) ≈ φ, z.B. sin(0, 1) = 0, 099833417. 7 1 Motivation • Diese Näherung reduziert die Gleichung auf d2 φ(t) g = − φ(t). dt2 ` • Ansatz φ(t) = A cos(ωt) liefert mit φ(0) = φ0 , dφ dt (0) = 0 dann die aus der Schule bekannte Formel r g φ(t) = φ0 cos t (1.3) ` Volles Modell; Verfahren 1 • Löse das volle Modell mit zwei numerischen Verfahren. • Ersetze Gleichung zweiter Ordnung durch zwei Gleichungen erster Ordnung: dφ(t) d2 φ(t) du(t) g = u(t), = = − sin(φ(t)). dt dt2 dt ` • Ersetze Ableitungen durch Differenzenquotienten: φ(t + ∆t) − φ(t) dφ(t) ≈ = u(t), ∆t dt u(t + ∆t) − u(t) du(t) g ≈ = − sin(φ(t)). ∆t dt ` • Mit φn = φ(n∆t), un = u(n∆t) erhält man Rekursion (Euler): φn+1 = φn + ∆t un φ0 = φ0 (1.4) un+1 = un − ∆t (g/`) sin(φn ) u0 = u0 (1.5) Volles Modell; Verfahren 2 • Nutze Näherungsformel für die zweite Ableitung, sogenannter zentraler Differenzenquo- tient: φ(t + ∆t) − 2φ(t) + φ(t − ∆t) d2 φ(t) g 2 ≈ 2 = − sin(φ(t)). ∆t dt ` • Auflösen nach φ(t + ∆t) ergibt Rekursionsformel (n ≥ 2): φn+1 = 2φn − φn−1 − ∆t2 (g/`) sin(φn ) (1.6) mit der Anfangsbedingung φ0 = φ0 , φ1 = φ0 + ∆t u0 . (1.7) (Die zweite Bedingung kommt aus dem Eulerverfahren oben). 8 1.4 Numerische Resultate Konvergenz Differenzenquotient (Euler), phi=0.1 0.2 vereinfachtes Modell dt=0.2 0.15 dt=0.1 dt=0.01 dt=0.001 0.1 0.05 Auslenkung 0 -0.05 -0.1 -0.15 -0.2 0 0.5 1 1.5 2 2.5 3 3.5 4 Zeit Abbildung 2: Simulation des Fadenpendels (volles Modell) bei φ0 = 0.1 ≈ 5.7◦ mit dem Euler- verfahren. 1.4 Numerische Resultate Abbildung 2 zeigt das Eulerverfahren in Aktion. Für festen Zeitpunkt t und ∆t → 0 konvergiert das Verfahren. Für festes ∆t und t → ∞ nimmt das Verfahren immer größere Werte an. Abbildung 3 zeigt zum Vergleich das zentrale Verfahren für die gleiche Anfangsbedingung. Im Unterschied zum expliziten Euler scheint der Fehler bei festem ∆t und t → ∞ nicht unbe- schränkt zu wachsen. Nun können wir das volle Modell mit dem vereinfachten Modell vergleichen und sehen welche Auswirkungen die Annahme sin φ ≈ φ auf das Ergebnis hat. Abbildung 4 zeigt die numerische Simulation. Selbst bei 28.6◦ ist die Übereinstimmung noch einigermaßen passabel. Für größere Auslenkungen ist das vereinfachte Modell völlig unbrauchbar, die Form der Schwingung ist kein Kosinus mehr. 1.5 Weitere Anwendungen Eine Geothermieanlage Wir betrachten die Modellierung und Simulation einer Geothermieanlage. Den schematischen Aufbau zeigt die Abbildung 5. Kaltes Wasser fließt in einer Bohrung nach unten, wird erwärmt und in einem isolierten Innenrohr wieder nach oben geführt. • Grundwasserströmung gekoppelt mit Wärmetransport. 9 1 Motivation Konvergenz zentriertes Verfahren, phi=0.1 0.15 vereinfachtes Modell dt=0.2 dt=0.1 0.1 dt=0.01 dt=0.001 0.05 Auslenkung 0 -0.05 -0.1 -0.15 0 0.5 1 1.5 2 2.5 3 3.5 4 Zeit Abbildung 3: Simulation des Fadenpendels (volles Modell) bei φ0 = 0.1 ≈ 5.7◦ mit dem zen- tralen Verfahren. • Welche Leistung erzielt so eine Anlage? Modell für eine Geothermieanlage • Strömung des Wassers in und um das Bohrloch ∇ · u = f, K u=− (∇p − %w G) µ • Transport der Wärme durch Konvektion und Wärmeleitung ∂(ce %e T ) + ∇ · q + cw %w f T = g, ∂t q = cw %w uT − λ∇T in Abhängigkeit diverser Parameter: Bodendurchlässigkeit, Wärmekapazität, Dichte, Wär- meleitfähigkeit, Pumprate sowie Rand- und Anfangsbedingungen. Abbildung 5 zeigt die Entzugsleistung so einer Anlage für die ersten hundert Tage Betriebszeit. Dabei wurden plausible Werte für die Modellparameter gewählt. 10 1.5 Weitere Anwendungen Zentriertes Verfahren, phi=0.5 0.6 vereinfachtes Modell dt=0.01 dt=0.0001 0.4 0.2 Auslenkung 0 -0.2 -0.4 -0.6 0 0.5 1 1.5 2 2.5 3 3.5 4 Zeit Zentriertes Verfahren, phi=3.0 4 vereinfachtes Modell dt=0.0001 3 2 1 Auslenkung 0 -1 -2 -3 -4 0 0.5 1 1.5 2 2.5 3 3.5 4 Zeit Zentriertes Verfahren, phi=3.14 4 vereinfachtes Modell dt=0.0001 3 2 1 Auslenkung 0 -1 -2 -3 -4 0 2 4 6 8 10 Zeit Abbildung 4: Vergleich von vollem und vereinfachtem Modell (jeweils in rot) bei den Winkeln φ = 0.5, 3.0, 3.14 gerechnet mit dem zentralen Verfahren. 11 1 Motivation Ruecklauf Vorlauf Wasserstrom Waermestrom Abbildung 5: Schematischer Aufbau einer Geothermieanlage. Entzugsleistung im kalibrierten System 1.3e+06 1.2e+06 1.1e+06 Entzugsleistung [Watt] 1e+06 900000 800000 700000 600000 500000 400000 300000 0 10 20 30 40 50 60 70 80 90 100 Zeit [Tage] Abbildung 6: Entzugsleistung der Geothermieanlage über die Zeit für bestimmte Systempara- meter. 12 1.6 Ausblick Abbildung 7: Ausbreitung eines mit Wasser nicht mischbaren Schadstoffes im Boden. Schadstoffausbreitung Als weiteres Beispiel nennen wir die Modellierung und Simulation einer Schadstoffausbreitung im Boden, siehe Abbildung 7. Der Schadstoff wird hier als nicht mit Wasser mischbar und schwerer als Wasser angenommen (Bestimmte Reinigungsmittel haben diese Eigenschaften). • Wo erreicht der Schadstoff welche Konzentrationen? • Wie bekommt man den Schadstoff wieder weg? • Wohin bewegt sich gelöster Schadstoff? 1.6 Ausblick Wir werden in dieser Vorlesung die folgenden Themengebiete behandeln: • Grundbegriffe, Gleitpunktzahlen, Gleitpunktarithmetik • Direkte Methoden zur Lösung linearer Gleichungssysteme • Interpolation und Approximation • Numerische Integration • Iterationsverfahren zur Lösung linearer Gleichungssysteme 13 1 Motivation • Iterationsverfahren zur Lösung nichtlinearer Gleichungssysteme • Eigenwerte und Eigenvektoren 14 2 Fließkommazahlen 2.1 Zahlendarstellung Stellenwertsystem Definition 2.1 (Stellenwertsystem / Positionssystem). System, das Zahlen x ∈ R wie folgt darstellt: x = ± . . . m2 β 2 + m1 β + m0 + m−1 β −1 + m−2 β −2 . . . X = mi β i i∈Z β ∈ N, β ≥ 2 heißt Basis, mi ∈ {0, 1, 2, . . . , β − 1} heißen Ziffern Geschichte: [Knuth, Band 2, S. 194] • Babylonier (≈ −1750), β = 60 • Basis 10 ab ca. 1580 • Pascal: alle β ≥ 2 möglich Festkommazahlen Festkommazahlen: brich Reihe nach endlich vielen Einträgen ab n X x=± mi β i i=−k Problem: wissenschaftl. Anwendungen brauchen Zahlen sehr unterschiedlicher Größe Plancksches Wirkungsquantum h: 6.626093 · 10−34 Js Avogadro-Konstante NA : 1 6.021415 · 1023 mol Ruhemasse Elektron me : 9.109384 · 10−31 kg Lichtgeschwindigkeit c: 2.997925 · 108 ms Fließkommazahlen können unterschiedlich große Zahlen hinreichend genau und effizient dar- stellen 15 2 Fließkommazahlen Fließkommazahlen Definition 2.2 (Fließkommazahlen). Sei β, r, s ∈ N und β ≥ 2. Das Fließkommagitter F(β, r, s) ⊂ R besteht aus den Zahlen mit folgenden Eigenschaften: 1. ∀x ∈ F(β, r, s) : x = m(x) · β e(x) mit r X s−1 X −i m(x) = ± mi β , e(x) = ± ej β j i=1 j=0 mit Ziffern mi und ej . m heißt Mantisse, e heißt Exponent. 2. ∀x ∈ F(β, r, s) : x = 0 ∨ m1 6= 0. m1 6= 0 heißt Normierung und macht die Darstellung eindeutig. Eigenschaften Ist x ∈ F(β, r, s) und x 6= 0, dann gilt wegen Punkt 2: β −1 ≤ |m(x)| < 1 und damit β e(x)−1 ≤ |x| < β e(x) (2.1) Größte / kleinste darstellbare Zahl in F(β, r, s): s −1 X+/− = ±(1 − β −r ) · β β Kleinste positive / größte negative Zahl: s x+/− = ±β −β Beweis: Tafel Beispiel Beispiel 2.3. 1. F(10, 3, 1) besteht aus Zahlen der Form: x = ±(m1 · 0.1 + m2 · 0.01 + m3 · 0.001) · 10±e0 mit m1 6= 0 ∨ (m1 = m2 = m3 = 0), z.B. 0, 0.999 · 104 , und 0.123 · 10−1 , aber nicht 0.140 · 10−10 , da Exponent zu klein 2. F(2, 2, 1) besteht aus Zahlen der Form: x = ±(m1 · 0.5 + m2 · 0.25) · 2±e0 3 3 1 3 1 1 3 1 3 3 =⇒ F(2, 2, 1) = − , −1, − , − , − , − , 0, , , , , 1, 2 4 2 8 4 4 8 2 4 2 16 2.1 Zahlendarstellung Abstände zwischen Fließkommazahlen Sei x0 ∈ F die nächstliegende Fließkommazahl zu x ∈ F, x > 0. Dann gilt: |x| 1. Für m(x) 6= β −1 : |x − x0 | = |m(x)| β −r 2. Für m(x) = β −1 : |x − x0 | = |x|β −r Für den relativen Abstand gilt: |x − x0 | β −r ≤ ≤ β 1−r |x| Schwankt um Faktor β je nach Größe von |x|. Nennt man wobble. Daher: kleine β besser! Beweis: Tafel Standard: IEEE 754 / IEC 559 Ziel: Portabilität von Programmen mit Fließkommaarithmetik Standard IEEE 754 / IEC 559, verabschiedet 1985 β = 2, mit vier Genauigkeitsstufen und normierter Darstellung: single single-ext double double-ext emax 127 ≥ 1024 1023 ≥ 16384 emin -126 ≤ -1021 -1022 ≤ -16381 Bits Expon. 8 ≤ 11 11 ≥ 15 Bits total 32 ≥ 43 64 ≥ 79 Der Standard definiert vier Rundungsarten: nach −∞, nach +∞, nach 0, nearest Seit 2008: zusätzlich half precision und quadruple precision 17 2 Fließkommazahlen Double Precision Betrachte double precision genauer: • Insgesamt 64 bit • 11 bit für Exponent, der vorzeichenlos als Zahl c ∈ [1, 2046] gespeichert wird • Setze e := c − 1023 =⇒ e ∈ [−1022, 1023], kein Vorzeichen nötig • Die Werte c ∈ {0, 2047} werden anderweitig genutzt: – c = 0 ∧ m = 0 kodiert die Null – c = 0 ∧ m 6= 0 kodiert denormalisierte Darstellung – c = 2047 ∧ m = 0 kodiert ∞ (Überlauf) – c = 2047 ∧ m 6= 0 kodiert NaN = “not a number”, z.B. bei Division durch Null • 64 − 11 = 53 bit für Mantisse, eines für Vorzeichen, bleiben 52 Nachkommastellen • Wegen β = 2 gilt immer m1 = 1 • Diese Ziffer heißt hidden bit und wird nicht gespeichert • Somit r = 53 im Sinne der Definition von Fließkommazahlen Bis auf die Spezialcodes entspricht double precision somit F(2, 53, 10). 2.2 Runden und Rundungsfehler Rundungsfunktion Um x ∈ R in F(β, r, s) zu approximieren, brauchen wir rd : D(β, r, s) → F(β, r, s), (2.2) wobei D(β, r, s) ⊂ R der Bereich ist, der F(β, r, s) enthält: D := [X− , x− ] ∪ {0} ∪ [x+ , X+ ] Achtung: das setzt voraus, dass x im darstellbaren Bereich liegt! Bei Über-/Unterlauf sind r,s zu ändern. Sinnvollerweise soll für rd gelten: ∀x ∈ D : |x − rd(x)| = min |x − y| (Bestapproximation) y∈F 18 2.2 Runden und Rundungsfehler Mit l(x) := max{y ∈ F|y ≤ x} und r(x) := min{y ∈ F|y ≥ x} gilt dann: x l(x) = r(x), x ∈ F l(x) |x − l(x)| < |x − r(x)| rd(x) = r(x) |x − l(x)| > |x − r(x)| ? |x − l(x)| = |x − r(x)| Im letzten Fall ist eine Rundung nötig. Dafür gibt es verschiedene Möglichkeiten. Natürliche Rundung P∞ Definition 2.4 (Natürliche Rundung). Sei x = sign(x) · −i β e die normierte Dar- i=1 mi β stellung von x ∈ D. Setze ( Pr −i β e l(x) = sign(x) · i=1 mi β falls 0 ≤ mr+1 < β/2 rd(x) := r(x) = l(x) + β e−r (letzte Stelle) falls β/2 ≤ mr+1 < β Das ist die übliche Rundung, die jeder kennt. Gerade Rundung Definition 2.5 (Gerade Rundung). Setze (mit Notation wie bei natürlicher Rundung) l(x) falls |x − l(x)| < |x − r(x)| rd(x) := l(x) falls |x − l(x)| = |x − r(x)| ∧ mr gerade r(x) sonst Damit ist mr in rd(x) immer gerade, wenn gerundet wurde. • Für rd(x) = l(x) ist das nach Definition so. • Sonst rd(x) = r(x) = l(x) + β e−r , mr in l(x) ungerade, und Addition von β e−r ändert die letzte Stelle um Eins. Diese Wahl von Rundung vermeidet eine mögliche Drift beim Aufrunden. Entspricht “round to nearest” im Standard. 19 2 Fließkommazahlen Beispiel Beispiel 2.6. Stelle die Zahl x = (106)10 in F(4, 3, 2) dar, d.h. konvertiere ins Vierersystem (β = 4) und runde. • log4 (106) = 3.36 Exponent 4, damit Mantisse < 1 ist • Berechne r + 1 = 4 Ziffern, um runden zu können m1 = 1, m2 = 2, m3 = 2, m4 = 2 • =⇒ (106)10 = 0.1222 · (10)10 4 (exakt, Ziffern zur Basis 4) • Natürliche Rundung: (x0 )4 = 0.123 · 410 , da mr+1 = 2 = 4/2 • Gerade Rundung: (x0 )4 = 0.122 · 410 , da mr = 2 gerade Absoluter und relativer Fehler Definition 2.7 (absoluter und relativer Fehler). Sei x0 ∈ R eine Näherung von x ∈ R. Dann heißt ∆x := x0 − x absoluter Fehler und für x 6= 0 ∆x x0 := relativer Fehler x Umformen liefert: 0 ∆x x = x + ∆x = x · 1 + = x · (1 + x0 ) x Motivation Motivation: Es sei ∆x = x0 − x = 100 km. Für x = Entfernung Erde—Sonne ≈ 1.5 · 108 km ist 102 km x0 = ≈ 6.6 · 10−7 1.5 · 108 km relativ klein. Für x = Entfernung Heidelberg—Paris ≈ 460 km ist 102 km x0 = ≈ 0.22 (22%) 4.6 · 102 km dagegen relativ groß. 20 2.3 Fließkommaarithmetik Fehlerabschätzung Lemma 2.8 (Rundungsfehler). Bei der Rundung in F(β, r, s) gilt für den absoluten Fehler 1 |x − rd(x)| ≤ β e(x)−r (2.3) 2 und für den relativen Fehler (x 6= 0) |x − rd(x)| 1 ≤ β 1−r . |x| 2 Diese Abschätzung ist scharf (d.h. der Fall “=” existiert). Die Zahl eps := 12 β 1−r heißt Maschinengenauigkeit. Beweis: Tafel 2.3 Fließkommaarithmetik Wir benötigen eine Arithmetik auf F: ~ : F × F → F mit ~ ∈ {⊕, , , } die den bekannten Operationen ∗ ∈ {+, −, ·, /} auf R entsprechen. Problem: in der Regel x, y ∈ F =⇒ 6 x∗y ∈F Daher muss das Ergebnis wieder gerundet werden. Wir definieren ∀x, y ∈ F : x ~ y := rd(x ∗ y) (2.4) Man sagt: ~ ist “exakt gerundet”. Das ist nicht trivial! Guard digit Beispiel 2.9 (Guard digit). Sei F = F(10, 3, 1), x = 0.215·108 , y = 0.125·10−5 . Wir betrachten die Subtraktion x y = rd(x − y). 1. Subtraktion und anschließendes Runden benötigt extrem hohe Stellenzahl O(β s )! 2. Runden vor der Subtraktion liefert das selbe Ergebnis. Gute Idee? 3. Aber: betrachte z.B. x = 0.101 · 101 , y = 0.993 · 100 =⇒ relativer Fehler 18% ≈ 35 eps 4. Mit ein, zwei zusätzlichen Stellen erreicht man exakte Rundung! 5. Diese Stellen heißen guard digits und werden auch in der Praxis (CPU) genutzt. 21 2 Fließkommazahlen Tabellenmacher-Dilemma Algebraische Funktionen: √ z.B. Polynome, 1/x, x, rationale Funktionen,. . . grob: endliche Kombination der Grundrechenarten und Wurzeln Transzendente Funktionen: der Rest, z.B. exp(x), ln(x), sin(x), xy , . . . Tabellenmacher-Dilemma: Es lässt sich nicht im Voraus entscheiden, wie viele guard digits für eine bestimmte Kombination von transzendenter Funktion f und Argument x benötigt werden, um f (x) exakt gerundet zu berechnen. √ IEEE754 garantiert exakte Rundung für ⊕, , , , ebenso x. Weitere Probleme / Eigenschaften Die folgenden Punkte sind zu beachten: • Assoziativ- und Distributivgesetz gelten nicht, es kommt auf die Reihenfolge von Opera- tionen an! • Es gibt y ∈ F, y 6= 0, so dass x ⊕ y = x • Beispiel: ( ⊕ 1) 1=1 1 = 0 6= = ⊕ 0 = ⊕ (1 1) • Das Kommutativgesetz gilt jedoch: x ~ y = y ~ x für ~ ∈ {⊕, } • Weitere einfache gültige Regeln: – (−x) y = −(x y) – 1 x=x⊕0=x – x y = 0 =⇒ x = 0 ∨ y = 0 – x z≤y z falls x ≤ y ∧ z > 0 22 2.4 Fehleranalyse 2.4 Fehleranalyse Rundungsfehler pflanzen sich in Rechnungen fort. F1 (x1 , . . . , xm ) • Sei F : Rm → Rn , in Komponenten F (x) = .. . Fn (x1 , . . . , xm ) • Zur Berechnung von F im Rechner nutze numerische Realisierung F 0 : Fm → Fn . F 0 wird durch einen Algorithmus realisiert, d.h. aus – endlich vielen (= Terminierung) – elementaren (= bekannten, d.h. ⊕, , , ) Rechenoperationen zusammengesetzt: F 0 (x) = ϕl (. . . ϕ2 (ϕ1 (x)) . . . ) Wichtig: 1. Zu einem F gibt es in der Regel viele Realisierungen, im Sinne unterschiedlicher Reihen- folgen a + b + c ≈ (a ⊕ b) ⊕ c 6= a ⊕ (b ⊕ c)! 2. Jeder Schritt ϕi steuert einen (unbekannten) Fehler bei. 3. Im Prinzip kann die Rechengenauigkeit beliebig gesteigert werden, d.h. eigentlich Folge m n (F 0 )(k) : (F(k) ) → (F(k) ) . Das machen wir aber nicht so formal. F (x) − F 0 (rd(x)) = F (x) − F (rd(x)) + F (rd(x)) − F 0 (rd(x)) (2.5) | {z } | {z } Konditionsanalyse Rundungsfehleranalyse • F (x): exaktes Ergebnis • F 0 (rd(x)): numerische Auswertung • F (rd(x)): exaktes Ergebnis für rd(x) ≈ x Von hier aus: • Analyse “in erster Näherung” • absolute / relative Fehler • Normen bilden, das lassen wir aber i.d.R. weg 23 2 Fließkommazahlen Differentielle Konditionsanalyse Wir nehmen an, dass F : Rm → Rn zweimal stetig differenzierbar. Nach dem Satz von Taylor gilt für die Komponenten Fi : m X ∂Fi Fi (x + ∆x) = Fi (x) + (x)∆xj + RiF (x; ∆x) i = 1, . . . , n. ∂xj j=1 Für das Restglied gilt unter diesen Voraussetzungen RiF (x; ∆x) = O k∆xk2 , d.h. der Fehler der Näherung ist quadratisch in ∆x. Definition 2.10 (Landausche Symbole). Man schreibt: g(t) = O(h(t)), (t → 0) falls es t0 > 0 und c ≥ 0 gibt, so dass für alle t ∈ (0, t0 ] die Abschätzung |g(t)| ≤ c · |h(t)| gilt. Sprechweise: “g(t) geht wie h(t) gegen 0” (quantifiziert also, “wie schnell” eine Funktion gegen Null geht) Weiter bedeutet g(t) = o(h(t)), (t → 0) dass es t0 > 0 und eine Funktion c(t), limt→0 c(t) = 0 gibt, so dass für alle t ∈ (0, t0 ] die Abschätzung |g(t)| ≤ c(t) · |h(t)| gilt. Bedeutung: “g(t) geht schneller als h(t) gegen 0” (falls h(t) → 0) Somit können wir die Taylorformel umformen: m X ∂Fi Fi (x + ∆x) − Fi (x) = (x)∆xj + RiF (x; ∆x) ∂xj | {z } j=1 höhere Ordnungen | {z } führende (erste) Ordnung . Oft lässt man die Terme höherer Ordnung weg und schreibt dann “ =” statt “=”. Sprechweise: “ist in erster Näherung gleich” 24 2.4 Fehleranalyse Damit gilt: m Fi (x + ∆x) − Fi (x) . X ∂Fi ∆xj = (x) (2.6) Fi (x) ∂xj Fi (x) j=1 m . X ∂Fi xj ∆xj = (x) · , ∂xj Fi (x) xj j=1 | {z } | {z } Verstärkungsfaktor kij (x) ≤eps ∆xj d.h. die Verstärkungsfaktoren kij (x) geben an, wie die (relativen) Eingabefehler xj in den (relativen) Fehler der i-ten Komponente von F eingehen! Kondition Definition 2.11 (Kondition). Wir nennen die Auswertung y = F (x) “schlecht konditioniert” im Punkt x, falls |kij (x)| 1, andernfalls “gut konditioniert”. |kij (x)| < 1 heißt Fehlerdämpfung, |kij (x)| > 1 heißt Fehlerverstärkung. Das Symbol “” steht für “viel größer als”. Meist bedeutet das, dass die eine Zahl mehrere Größenordnungen größer als die andere ist (z.B. 1 Mio. 1). Definition stellt ein Kontinuum dar: es gibt einen fließenden Übergang von “gut konditioniert” zu “schlecht konditioniert”! Warum relative Kondition? Wegen Lemma 2.8 (Rundungsfehler) gilt x − rd(x) 1 ≤ eps = β 1−r , x 2 d.h. es gibt ∈ R, || ≤ eps, so dass x − rd(x) = , x d.h. für die relativen Eingabefehler in Gl. (2.6) gilt gerade ∆xj = j xj 25 2 Fließkommazahlen Beispiel ∂F ∂F Beispiel 2.12. 1. Addition: F (x1 , x2 ) = x1 + x2 , ∂x1 = ∂x2 = 1. Nach obiger Formel: F (x1 + ∆x1 , x2 + ∆x2 ) − F (x1 , x2 ) F (x1 , x2 ) . x1 ∆x1 x2 ∆x2 =1· +1· x1 + x2 x1 x1 + x2 x2 | {z } | {z } =k1 =k2 Schlecht konditioniert für x1 → −x2 ! ∂F ∂F 2. F (x1 , x2 ) = x21 − x22 , ∂x 1 = 2x1 , ∂x 2 = −2x2 . F (x1 + ∆x1 , x2 + ∆x2 ) − F (x1 , x2 ) F (x1 , x2 ) . x1 ∆x1 x2 ∆x2 = 2x1 · 2 + (−2x2 ) · 2 x1 − x22 x1 x1 − x22 x2 | {z } | {z } =k1 =k2 2x21 2x2 =⇒ k1 = , k2 = − 2 2 2 , x21− x22 x1 − x2 schlecht konditioniert für |x1 | ≈ |x2 |. Rundungsfehleranalyse Sogenannte “Vorwärtsrundungsfehleranalyse”, rückwärts: später. Nach Fehler-Aufspaltung, Gl. (2.5): F (x) − F 0 (x) mit x ∈ Fm , F 0 “zusammengesetzt” aus Einzeloperationen ~ ∈ {⊕, , , } Wegen Gl. (2.4) (exakt gerundete Arithmetik) und Lemma 2.8 (Rundungsfehler) gilt (x ~ y) − (x ∗ y) = mit || ≤ eps (x ∗ y) Vorsicht, hängt von x und y ab und ist daher für jede Operation verschieden! =⇒ x ~ y = (x ∗ y) · (1 + ) für ein |(~, x, y)| ≤ eps 26 2.4 Fehleranalyse Beispiel Beispiel 2.13. F (x1 , x2 ) = x21 − x22 mit zwei Realisierungen: 1. Fa (x1 , x2 ) = (x1 x1 ) (x2 x2 ) 2. Fb (x1 , x2 ) = (x1 x2 ) (x1 ⊕ x2 ) Erste Realisierung: u = x1 x1 = (x1 · x1 ) · (1 + 1 ) v = x2 x2 = (x2 · x2 ) · (1 + 2 ) Fa (x1 , x2 ) = u v = (u − v) · (1 + 3 ) Fa (x1 , x2 ) − F (x1 , x2 ) . x2 x2 = 2 1 2 (1 + 3 ) + 2 2 2 (2 + 3 ) F (x1 , x2 ) x1 − x2 x2 − x1 Zweite Realisierung: u = x1 x2 = (x1 − x2 ) · (1 + 1 ) v = x1 ⊕ x2 = (x1 + x2 ) · (1 + 2 ) Fb (x1 , x2 ) = u v = (u · v) · (1 + 3 ) Fb (x1 , x2 ) − F (x1 , x2 ) . x21 − x22 = (1 + 2 + 3 ) = 1 + 2 + 3 F (x1 , x2 ) x21 − x22 =⇒ Zweite Realisierung besser als erste. Numerische Stabilität Definition 2.14 (Numerische Stabilität). Wir nennen einen numerischen Algorithmus “nume- risch stabil”, wenn die im Lauf der Rechnung akkumulierten Rundungsfehler den unvermeidbaren Problemfehler aus der Konditionsanalyse nicht übersteigen. Mit anderen Worten: Verstärkungsfaktoren aus Rundungsfehleranalyse ≤ denen aus Konditionsanalyse =⇒ “nume- risch stabil” Beide Realisierungen a, b aus Bsp. 2.13 sind numerisch stabil. 27 2 Fließkommazahlen 2.5 Die quadratische Gleichung Die Gleichung y 2 − py + q = 0 hat für p2 /4 > q 6= 0 die beiden reellen und verschiedenen Lösungen r p p2 y1,2 = f± (p, q) = ± − q. (Definiert zwei f !) 2 4 q p2 Die Konditionsanalyse liefert mit D := 4 − q: f (p + ∆p, q + ∆q) − f (p, q) f (p, q) . p p ∆p q ∆q = 1± − 2D p ± 2D p D (p ± 2D) q Das heißt: p2 • Für 4 q und p < 0 ist r p p2 f− (p, q) = − −q 2 4 gut konditioniert p2 • Für 4 q und p > 0 ist r p p2 f+ (p, q) = + −q 2 4 gut konditioniert 2 • Für p4 ≈ q sind f+ und f− beide schlecht konditioniert, dieses Problem kann nicht vermieden werden p2 Numerisch geschickte Auswertung für den Fall 4 q: p < 0: q p p2 q Berechne y2 = 2 − 4 − q, y1 = y2 nach Satz von Vieta (q = y1 · y2 ). p > 0: q p p2 q Berechne y1 = 2 + 4 − q, dann y2 = y1 . =⇒ Jedes Problem ist ein Spezialfall! 28 2.6 Auslöschung 2.6 Auslöschung Die obigen Beispiele enthalten das Phänomen der Auslöschung. Dies tritt auf bei • Addition x1 + x2 mit x1 ≈ −x2 • Subtraktion x1 − x2 mit x1 ≈ x2 Bemerkung 2.15. Bei der Auslöschung werden vor der entsprechenden Addition bzw. Sub- traktion eingeführte Fehler extrem verstärkt. Sind x1 , x2 ∈ F Maschinenzahlen, so gilt wie oben gezeigt: (x1 x2 ) − (x1 − x2 ) ≤ eps. (x1 − x2 ) Das ist also kein Problem. Das Problem tritt erst ein, wenn x1 und x2 selbst schon mit Fehlern behaftet sind. Beispiel Beispiel 2.16. Betrachte F = F(10, 4, 1). x1 = 0.11258762 · 102 , x2 = 0.11244891 · 102 =⇒ rd(x1 ) = 0.1126 · 102 , rd(x2 ) = 0.1124 · 102 x1 − x2 = 0.13871 · 10−1 , aber rd(x1 ) − rd(x2 ) = 0.2 · 10−1 Ergebnis hat keine gültige Ziffer! Relativer Fehler: 0.2 · 10−1 − 0.13871 · 10−1 1 −1 ≈ 0.44 ≈ 883 · · 10−3 ! 0.13871 · 10 |2 {z } =eps Grundregel Im Beispiel: Fehler durch Rundung der Eingangsgrößen. Herkunft der Fehler ist egal, tritt ebenso auf, wenn x1 , x2 mit Fehlern vorhergehender Rechen- schritte behaftet sind. Regel 2.17. Setze potentiell gefährliche Operationen möglichst früh im Algorithmus ein. (Ver- gleiche Bsp. 2.13). 29 2 Fließkommazahlen 2.7 Die Exponentialfunktion Die Exponentialreihe Die Funktion exp(x) = ex lässt sich für alle x ∈ R als Potenzreihe darstellen: ∞ X xk exp(x) = k! k=0 Pn xk Naheliegender Ansatz: breche zur Berechnung nach n Gliedern ab, exp(x) ≈ k=0 k! . Verwende Rekursionsvorschrift: y0 := 1, S0 := y0 = 1, x ∀k > 0 : yk := · yk−1 , Sk := Sk−1 + yk k yn : Glieder der Reihe, Sn : Partialsummen Fehler für verschiedene Werte von x Ergebnisse für Rekursionsformel mit float, n = 100: 1*1040 relativer Fehler von exp(x) 1*1035 1*1030 1*1025 1*1020 1*1015 1*1010 1*105 1*100 1*10-5 1*10-10 -50 -40 -30 -20 -10 0 10 20 30 40 50 • Für negative Werte für x wird der relative Fehler beliebig groß • Dieser Effekt hat nichts mit dem Abbruch der Reihe zu tun! 30 2.7 Die Exponentialfunktion Abweichung für imaginäre Argumente 1 2 Einheitskreis Einheitskreis Auswertung exp(z) Auswertung exp(z) 1.5 0.5 1 0.5 0 0 -0.5 -0.5 -1 -1.5 -1 -2 -1 -0.5 0 0.5 1 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 10 Einheitskreis Einheitskreis 4 Auswertung exp(z) Auswertung exp(z) 5 2 0 0 -2 -5 -4 -10 -4 -2 0 2 4 -10 -5 0 5 10 Ergebnisse für das imaginäre Intervall [−50, 50] · i • Für |z| ≤ π ist das Ergebnis noch halbwegs brauchbar • Für |z| → 2π wächst der Fehler weiter an • Danach entfernen sich die Werte vom Kreis (die Trajektorie nähert sich einer Geraden an und kommt auch nicht zurück) 31 2 Fließkommazahlen Visualisierung des Konvergenzverhaltens exp(2πi · 0.1) 4 exp(2πi · 0.2) exp(2πi · 0.3) exp(2πi · 0.4) exp(2πi · 0.5) Einheitskreis 2 0 -2 -4 -4 -2 0 2 4 • gerade Potenzen tragen zum Realteil von exp(2πi · x) bei • ungerade Potenzen tragen zum Imaginärteil bei =⇒ Addieren eines Gliedes ändert abwechselnd Real- und Imaginärteil exp(2πi · 0.6) 40 exp(2πi · 0.7) exp(2πi · 0.8) exp(2πi · 1.0) exp(2πi · 1.0) Einheitskreis 20 0 -20 -40 -40 -20 0 20 40 • Betrag der Zwischenergebnisse wächst exponentiell in x 32 2.8 Rekursionsformel für Integrale • Form der Trajektorie nähert sich immer mehr Quadrat an =⇒ Auslöschung Konditionsanalyse für exp(x) Für die Funktion exp gilt wegen exp0 = exp: exp(x + ∆x) − exp(x) . x ∆x = exp0 (x) · = ∆x exp(x) exp(x) x =⇒ absoluter Fehler von x wird zu relativem Fehler von exp(x) (Vergleiche: exp ist Isomorphismus zwischen (R, +) und (R+ , ·).) Wegen k = x ist exp gut konditioniert, falls x nicht zu groß =⇒ betrachteter Algorithmus ist instabil für x < 0 Gibt es stabileren Algorithmus? Übungsaufgabe 2.8 Rekursionsformel für Integrale Integrale der Form Z 1 Ik = xk exp(x) dx 0 kann man mithilfe einer Rekursionsformel berechnen: I0 = e − 1, ∀k > 0 : Ik = e − k · Ik−1 Für das erste Glied ist wegen exp0 (x) = exp(x) eine Stammfunktion bekannt, die weiteren Glieder kann man dann über die obige Formel bestimmen. Wie gut funktioniert das in der Praxis? Die ersten 26 Werte für Ik , mit endlicher Genauigkeit berechnet: 33 2 Fließkommazahlen k berechnetes Ik Fehler |∆Ik | k berechnetes Ik Fehler |∆Ik | 0 1.718281828459050 2.6 ·10−15 13 0.181983054536145 3.3 · 10−7 1 1 (Null) 14 0.170519064953013 4.6 · 10−6 2 0.718281828459045 1.5 · 10−15 15 0.160495854163853 7.0 · 10−5 3 0.563436343081910 5.5 · 10−16 16 0.150348161837404 1.1 · 10−3 4 0.464536456131406 1.0 · 10−15 17 0.162363077223183 1.9 · 10−2 5 0.395599547802016 6.0 · 10−15 18 -0.204253561558257 3.4 · 10−1 6 0.344684541646949 3.8 · 10−14 19 6.59909949806592 6.7 · 100 7 0.305490036930402 2.7 · 10−13 20 -129.263708132859 1.3 · 101 8 0.274361533015832 2.1 · 10−12 21 2717.25615261851 2.7 · 103 9 0.249028031316559 1.9 · 10−11 22 -59776.9170757787 6.0 · 104 10 0.228001515293454 1.9 · 10−10 23 1374871.81102474 1.4 · 106 11 0.210265160231056 2.1 · 10−9 24 -32996920.7463119 3.3 · 107 12 0.195099905686377 2.5 · 10−8 25 824923021.376079 8.2 · 108 Rekursionsformel Ik = e − k · Ik−1 führt zu Fehlerverstärkung um Faktor k im k-ten Schritt! Bessere Optionen 1. Alle Ik sind von der Form a · e + b, mit a, b ∈ Z. Berechne diese Zahlen über die Rekursi- onsformel, und werte erst ganz am Ende mit Fließkommazahlen aus. 2. Drehe die Rekursionsformel um: wenn Ik → Ik+1 den Fehler um k verstärkt, wird er durch Ik+1 → Ik um den Faktor k reduziert! Wegen 0 ≤ xk ≤ 1 und 0 ≤ exp(x) ≤ 3 auf [0, 1] muss 0 ≤ Ik ≤ 3 gelten. Wenn wir also z.B. I50 := 1.5 setzen, kann der Fehler maximal 1.5 sein. Benutze dann umgedrehte Rekursionsformel Ik = (k + 1)−1 · (e − Ik+1 ). Rekursionsformel für Integrale Die Werte für Ik zwischen k = 25 und 50, rückwärts berechnet: 34 2.8 Rekursionsformel für Integrale k berechnetes Ik Fehler |∆Ik | k berechnetes Ik Fehler |∆Ik | 50 1.5 1.4 ·100 37 0.0697442966294832 2.8 · 10−16 49 0.0243656365691809 2.9 · 10−2 36 0.0715820954548530 1.9 · 10−16 48 0.0549778814671401 5.9 · 10−4 35 0.0735194370278942 2.8 · 10−17 47 0.0554854988956647 1.2 · 10−5 34 0.0755646397551757 2.2 · 10−16 46 0.0566552410545400 2.6 · 10−7 33 0.0777269761383491 2.7 · 10−18 45 0.0578614475522718 5.7 · 10−9 32 0.0800168137066878 1.8 · 10−16 44 0.0591204529090394 1.3 · 10−10 31 0.0824457817110112 2.6 · 10−16 43 0.0604354858079547 2.9 · 10−12 30 0.0850269692499366 2.9 · 10−16 42 0.0618103800616533 6.7 · 10−14 29 0.0877751619736370 4.5 · 10−17 41 0.0632493201999379 1.8 · 10−15 28 0.0907071264305313 4.3 · 10−16 40 0.0647568904453441 1.4 · 10−16 27 0.0938419536438755 4.7 · 10−16 39 0.0663381234503425 2.1 · 10−16 26 0.0972014768450063 1.3 · 10−17 38 0.0679985565386847 1.5 · 10−16 25 0.1008107827543860 1.1 · 10−16 Trotz völlig unbrauchbarer Schätzung für den Startwert I50 führt die neue Rekursionsformel Ik = (k + 1)−1 · (e − Ik+1 ) sehr schnell zu brauchbaren Ergebnissen! Idee der Fehlerabschätzung Nach Fehleranalyse gilt für Startwert Ik+m , m ≥ 1: k! k! |∆Ik | ≈ |∆Ik+m | ≤ · 1.5 ≤ (k + 1)−m · 1.5 (k + m)! (k + m)! Idee: berechne benötigte Anzahl Schritte m aus gewünschter Genauigkeit |∆Ik | < tol. tol (k + 1)−m · 1.5 < tol =⇒ exp(−m · ln(k + 1)) < 1.5 tol ln(tol) − ln(1.5) =⇒ −m · ln(k + 1) < ln =⇒ m > 1.5 ln(k + 1) Beispiel: k = 25, tol = 10−8 =⇒ m > 5.7 Ergebnis für m = 6: k berechnetes Ik Fehler |∆Ik | 31 1.5 1.4 · 100 30 0.0392994138212595 4.6 · 10−2 29 0.0892994138212595 1.5 · 10−3 28 0.0906545660219926 5.3 · 10−5 27 0.0938438308013233 1.9 · 10−6 26 0.0972014073206564 7.0 · 10−8 25 0.1008107854284000 2.9 · 10−9 35 2 Fließkommazahlen • Umgedrehte Rekursionsformel ist im Gegensatz zum naiven Ansatz stabil • Fehlerabschätzung minimiert Aufwand für vorgegebene Genauigkeit =⇒ stabil und effizient 36 3 Motivation linearer Gleichungssysteme 3.1 Strömung in Rohrleitungsnetzen Netzwerk aus Röhren Pumpe Pumpe Betrachte Netzwerk aus Röhren, in denen Flüssigkeit zirkuliert • Um es einfach zu halten: nur durch Pumpen getrieben, keine Quellen und Senken im Kreislauf vorhanden • Mögliche Anwendungen: Trinkwasserversorgung, elektrische Schaltkreise, Blutkreislauf (als Näherung) Pumpe Pumpe Beschrieben durch gerichteten, (schwach) zusammenhängenden Graphen G = (V, E): • Knotenmenge V = {v1 , . . . , vn }, |V | = n • Kantenmenge E = {e1 , . . . , eM } ⊂ V × V, |E| = M • gerichtet “von v nach w”: (v, w) ∈ E =⇒ (w, v) ∈ /E • Röhren ER = {e1 , . . . , em }, Pumpen EP = {em+1 , . . . , eM } 37 3 Motivation linearer Gleichungssysteme Gesetz von Hagen-Poiseuille Fluss durch lange zylindrische Röhre e = (v, w): πre4 qe = ∆pe 8ρde qe : gerichteter Volumenstrom [m3 /s] ∆pe : gerichtete Druckdifferenz [Pa = N/m2 ] re : Radius der Röhre e [m] de : Länge der Röhre e [m] ρ: dynamische Viskosität [Pa s] qe > 0, ∆pe > 0 falls Fluss von v nach w, qe < 0, ∆pe < 0 sonst 3.2 Die Kirchhoffschen Gesetze Quelle: wikipedia.org, gemeinfrei Gustav Robert Kirchhoff (1824–1887): • deutscher Physiker • Beiträge zur Erforschung von – elektrischen Schaltkreisen 38 3.2 Die Kirchhoffschen Gesetze – Spektralanalyse – Schwarzkörperstrahlung • Kirchhoffsche Gesetze (Erhaltungsregeln für Schaltkreise) Knotenregel (1. Kirchhoffsches Gesetz) 1 2 5 3 4 q1 + q4 + q5 = q2 + q3 Knotenregel (Erhaltung der Ladung): Die Summe der zufließenden Ströme ist für jeden Knoten eines elektrischen Netzwerks gleich der Summe der abfließenden Ströme. Hier: Massenerhaltung Flüssigkeit wird in den einzelnen Knoten weder vernichtet noch zwischengespeichert. Definiere für Knoten v ∈ V eingehende und ausgehende Kanten: Ev+ := {(u, w) ∈ E | w = v}, Ev− := {(u, w) ∈ E | u = v} Die Trennung in ein- und ausgehend basiert auf der Orientierung der Kanten und hat nichts mit dem physikalischen Fluss zu tun! Knotenregel: X X qe − qe = 0 ∀v ∈ V (3.1) e∈Ev+ e∈Ev− 39 3 Motivation linearer Gleichungssysteme Das definiert n − 1 = |V | − 1 linear unabhängige Bedingungen, da sich aufgrund globaler Massenerhaltung die Erhaltung im letzten Knoten jeweils automatisch ergibt. Beweis: Tafel Maschenregel (2. Kirchhoffsches Gesetz) 1 2 5 3 4 ∆p3 + ∆p2 = ∆p4 − ∆p5 + ∆p1 Maschenregel (Energieerhaltung): Die Summe der Spannungsdifferenzen entlang eines geschlossenen Pfades ist Null. Anders ge- sagt: Die Spannungsdifferenz zwischen zwei Knoten ist wegunabhängig. (Sonst könnte man entlang des Pfades beliebig Energie erzeugen =⇒ Perpetuum Mobile) Hier: Energieerhaltung Es gibt keine spontanen (d.h. nicht durch Pumpen verursachte) Kreisbewegungen von Flüssig- keit. Betrachte C ⊂ E, c beliebiger geschlossener Pfad. Definiere: C + := {e ∈ C | e genauso wie C orientiert} C − := {e ∈ C | e entgegen C orientiert} (Anmerkung: wir vernachlässigen in der Notation, dass Kanten in C mehrfach vorkommen dürfen, evtl. mit geänderter Orientierung (!)) 40 3.3 Das Knotenpotentialverfahren Maschenregel: X X ∆pe − ∆pe = 0 ∀ geschl. Pfade C ⊂ E (3.2) e∈C + e∈C − 3.3 Das Knotenpotentialverfahren Grundidee des Knotenpotentialverfahrens: 1. Wegen der Maschenregel ist Potentialdifferenz zwischen je zwei Knoten wegunabhängig und somit wohldefiniert Druckdifferenz zu (beliebigem) Referenzknoten als Variablen 2. Da das Potential nur bis auf Konstante eindeutig ist, können wir die Referenz als Null definieren n − 1 Knotendrücke pv als Unbekannte 3. Wegen der Knotenregel gibt es n − 1 unabh. Nebenbedingungen n − 1 lineare Gleichungen für die Unbekannten Stelle System auf und löse nach Unbekannten (Druckdifferenzen) auf, daraus kann man dann die Flüsse berechnen. Wähle Referenzknoten r, ergibt Druckdifferenzen ∆pe der Röhren: pw − pv v 6= r ∧ w 6= r ∀e = (v, w) ∈ ER : ∆pe = −pv w = r (setze pw = 0) pw v = r (setze pv = 0) Wähle feste Anordnung ek , k ∈ {1, . . . , m}, vi , i ∈ {1, . . . , n} der Kanten und Knoten mit Wahl r = vn =⇒ p = (pv1 , . . . , pvn−1 )T , ∆p = (∆pe1 , . . . , ∆pem ) Als lineares Gleichungssystem: [∆p]m = [B]m×(n−1) · [p]n−1 Berechne resultierende Flüsse über Leitfähigkeiten (Hagen-Poiseuille): ∀e ∈ ER : qe = Le · ∆pe 41 3 Motivation linearer Gleichungssysteme Als lineares Gleichungssystem mit Diagonalmatrix L: [q]m = [L]m×m · [∆p]m Setze Umrechnung von p zu ∆p ein: [q]m = [L]m×m · [B]m×(n−1) · [p]n−1 = [L · B]m×(n−1) · [p]n−1 Verwende Knotenregel Gl. (3.1): X X X X qe − qe = qe − qe e∈Ev+ ∩ER e∈Ev− ∩ER e∈Ev− ∩EP e∈Ev+ ∩EP Als lineares Gleichungssystem formuliert: [B T ](n−1)×m · [q]m = [b]n−1 , wobei b = (bv1 , . . . , bvn−1 )T die Pumpströme enthält (die Einträge sind Null für innere Kno- ten) Es handelt sich um B T , weil eine Kante e genau dann zur Bilanz von v beisteuert, wenn v (mit gleichem Vorzeichen) zur Druckdifferenz entlang e beiträgt Kleines Beispiel 1 1 2 2 3 4 3 5 4 42 3.3 Das Knotenpotentialverfahren Resultierende Matrix B für Beispielnetzwerk: −1 1 0 0 −1 1 0 −1 0 1 0 −1 0 1 0 −1 1 0 B = 0 −1 1 0 −1 0 1 0 −1 0 0 0 −1 1 0 0 −1 • Zeilen: Knoten, die von i-ter Kante verbunden werden (mit Vorzeichen) • Spalten: Kanten, die für j-ten Knoten ein- / ausgehend sind (mit Vorzeichen) • Streiche letzte Spalte wegen p4 := 0 (für B) bzw. wegen redundanter Knotenregel (für BT ) Knotenpotentialverfahren Insgesamt: [b]n−1 = [B T ](n−1)×m · [L · B]m×(n−1) · [p]n−1 = [B T · L · B](n−1)×(n−1) · [p]n−1 Eigenschaften des Systems: A := B T LB ist • symmetrisch und positiv definit • damit insbesondere invertierbar • dünn besetzt (Anzahl Kanten meist O(n), nicht O(n2 )) Beweis: Tafel Anmerkungen Das Ohmsche Gesetz besagt: Ie = Re−1 (Uv − Uw ) mit Ie dem elektrischen Strom entlang Leiter e, Re dem Widerstand entlang e, und Uv dem elektrischen Potential im Knoten v. =⇒ die hergeleitete Methode lässt sich völlig analog auf elektrische Netzwerke anwenden Falls das Netzwerk Spulen oder Kondensatoren enthält (RLC-Netzwerk), werden die Zustands- größen komplex: Ax = b mit x, b ∈ Cn , A ∈ Cn×n 43 3 Motivation linearer Gleichungssysteme 3.4 Partielle Differentialgleichungen Grenzübergang zum Kontinuum Wenn man das Röhren- / Leitungsnetz immer feiner und feiner macht, beschreibt man im Limes ein unendlich feines Netzwerk, also ein Kontinuum. Die zugehörige Gleichung ist die Poisson-Gleichung: n n X X ∂2u −∆u := −∇ · (∇u) := − ∂x2i u := − =f i=1 i=1 ∂x2i Das ist ebenfalls ein lineares Gleichungssystem, allerdings über einem unendlich-dimensionalen Funktionenraum. Anwendungen der Gleichung sind zum Beispiel: • Elektrostatik im Vakuum (f : Ladungsdichte, u: resultierendes Potential) • Gravitation (f : Massendichte, u: Gravitationspotential) Poröse Medien Falls die Leitfähigkeit κ (Inverse des Widerstandes) ortsabhängig ist, ergibt sich die Darcy- Gleichung: Xn −∇ · (κ∇u) = − ∂xi (κ∂xi u) = f i=1 Im Allgemeinen lässt sich diese Gleichung nicht geschlossen lösen, daher verwendet man numeri- sche Methoden. Die Diskretisierung führt dabei auf beliebig große lineare Gleichungssysteme. Mögliche Anwendungen: • Stationäre Strömungen in porösen Medien (z.B. Grundwasser) • Elektrostatik in Bauteilen und Materialien • Wärmeleitung durch heterogene Festkörper 44 3.5 Radiosity-Methode in der Computergraphik 3.5 Radiosity-Methode in der Computergraphik Raytracing Aufgabe: stelle beleuchtete Szene graphisch dar (Computergraphik). Grundidee des Raytracing-Algorithmus: Image Camera Light Source View Ray Shadow Ray Scene Object Quelle: Henrik, wikipedia.org, cc-by-sa Beispiele von rekursivem Raytracing: Quelle: Tim Babb, wikipedia.org, cc-by-sa Quelle: Greg L, wikipedia.org, cc-by-sa 45 3 Motivation linearer Gleichungssysteme Raytracing vs. Radiosity-Methode Idee von Raytracing: • Verfolge “Sehstrahlen” vom Auge des Betrachters zu ihrem Ziel • Berücksichtige dabei gerichtete Reflexion, diffuse Reflexion, Brechung, Wurf von Schatten Vorteile / Nachteile von (rekursivem) Raytracing: • Viele verschiedene optische Effekte darstellbar • Aufwand wächst exponentiell mit der Anzahl der Rekursionen • Ergebnis ist auf Blickwinkel festgelegt (!) Idee der Radiosity-Methode: • Berechne das Strahlungsgleichgewicht für die Szene • Beleuchtete Oberflächen erzeugen passive Beleuchtung, indem sie Licht in den Raum zurück werfen Vorteile / Nachteile der Radiosity-Methode: • Weniger Effekte berücksichtigt (z.B. nur diffuse Streuung) • Aufwand ist auch bei dieser Methode sehr hoch • Ergebnis ist unabhängig vom Betrachter ( Animationen) Radiosity-Methode Anwendung der Radiosity-Methode: Quelle: Hugo Elias, wikipedia.org, cc-by-sa 46 3.5 Radiosity-Methode in der Computergraphik Quelle: Hugo Elias, wikipedia.org, cc-by-sa Definiere Oberfläche der Szene: S = {x ∈ R3 | x auf Oberfläche eines Objekts} (Lichtquellen sind dabei ebenfalls Objekte) Bestimme “Energiedichte” B : S → R: Z B dA = von ω ⊂ S abgestrahlte Energie ω E(x): Eigenstrahlung (bei Lichtquellen), Senke (bei Absorption) Benötigte Materialeigenschaften: ρ(x): Reflexionsfaktor Bestimmungsgleichung Bestimmungsgleichung für B(x), x ∈ S: Z cos ϕx,x0 cos ϕx0 ,x B(x) = E(x) + ρ(x) B(x0 ) 0 k2 V (x, x0 ) dx0 S kx − x | {z } “Kern”, “kernel” λ(x, x0 ) mit ϕa,b = ](νa , b − a) ( 1 Licht aus Richtung νa cos ϕa,b = 0 tangential zur Oberfläche ( 1 x0 von x aus sichtbar V (x, x0 ) = 0 sonst (Eigenschaften der beleuchteten Szene) 47 3 Motivation linearer Gleichungssysteme νa a b Integralgleichung Resultierende Integralgleichung: Z B(x) − ρ(x) B(x0 )λ(x, x0 ) dx0 = E(x) S Alternative Formulierung mit Dirac-Delta δ(x, x0 ): Z B(x0 ) δ(x, x0 ) − ρ(x)λ(x, x0 ) dx0 = E(x) S • Aufgabe: finde für gegebene Quellen / Senken E(x) resultierende Energiedichte B(x) • System ist erneut linear in Unbekannten B(x), aber diesmal unendlichdimensional! Kollokationsmethode Zerlege die Oberfläche in eine endliche Menge von Teilgebieten Th = {t1 , . . . , tn }: n [ ti ⊂ S offen, ti ∩ tj = ∅ ∀i 6= j, ti = S i=1 Dieser Vorgang heißt Diskretisierung und ist üblich bei Integral- und Differentialgleichungen. Definiere außerdem xi jeweils als den Mittelpunkt von ti . (Existenz eines solchen Punktes schränkt implizit Wahl der ti ein, aber wir sind sowieso nur an “simplen” Teilgebieten ti interessiert!) 48 3.5 Radiosity-Methode in der Computergraphik Approximiere B : S → R durch diskrete Funktion Bh : S → R: m X Bh (x) = zj ϕj (x) j=1 mit zj ∈ R Koeffizienten und ϕj : S → R Basisfunktionen. Insbesondere: ϕ1 , . . . , ϕm linear unabhängig. Wir verwenden stückweise konstante Funktionen (m = n): ( 1 falls x ∈ tj ϕj (x) = 0 sonst Erfülle Integralgleichung nur für x ∈ Xh = {x1 , . . . , xn }: Z Bh (xi ) − ρ(xi ) Bh (x0 )λ(xi , x0 ) dx = E(xi ) i = 1, . . . , n S n X n Z X ⇐⇒ zj ϕj (xi ) − ρ(xi ) zj ϕj (x0 )λ(xi , x0 ) dx = E(xi ) j=1 S j=1 Xn Z 0 0 ⇐⇒ zj ϕj (xi ) − ρ(xi ) ϕj (x )λ(xi , x ) dx = E(xi ) j=1 S | {z } =:aij ⇐⇒ Az = b mit A = [aij ]n,n n n i,j=1 , z = [zj ]j=1 , b = [E(xi )]i=1 . Anmerkungen • Das Integral in aij wird i.d.R. ebenfalls numerisch berechnet (Stoff der Vorlesung). • Man begeht dabei Diskretisierungsfehler kBh − Bk = O(hα ) mit k·k Norm auf Funktionenräumen, h = maxt∈Th diam(t), und α “Konvergenzordnung”. =⇒ bessere Approx. Bh von B bei feinerer Unterteilung Th =⇒ Gleichungssysteme können beliebig groß werden • Die Matrix A ist in diesem Fall nicht dünn besetzt, sondern voll besetzt! Das ist wichtig bei der Wahl des Lösers. 49 4 Kondition linearer Gleichungssysteme 4 Kondition linearer Gleichungssysteme 4.1 Lösbarkeit linearer Gleichungssysteme Gegeben seien Matrix A ∈ Km×n und Vektor b ∈ Km : a11 · · · a1n b1 .. .. , A = [aij ]m,n i,j=1 = . .. . . b = [bi ]m = ... i=1 am1 · · · amn bm Gesucht ist [xj ]nj=1 = [x1 , . . . , xn ]T ∈ Kn , so dass n X ∀i : aij xj = bi , j=1 beziehungsweise in Kurzschreibweise: Ax = b (4.1) Im folgenden ist stets K = R oder K = C. Das Gleichungssystem (4.1) heißt • unterbestimmt, falls m < n • quadratisch, falls m = n • überbestimmt, falls m > n Es gibt mindestens eine Lösung, falls a11 ··· a1n b1 .. .. .. .. rang(A) = rang([A|b]) = rang . . . . am1 ··· amn bm (Rang = Dimension Spaltenraum = Dimension Zeilenraum) Für quadratische Matrizen sind folgende Aussagen äquivalent: 1. Ax = b ist für jedes b eindeutig lösbar 2. rang(A) = n (Vollrang) 3. det(A) 6= 0 (regulär) 4. A hat keinen Eigenwert Null 50 4.2 Vektornormen 4.2 Vektornormen Die Quantifizierung von Fehlern erfordert Normen. Definition 4.1 (Vektornorm). Eine Abbildung k · k : Kn → R+ heißt Norm, falls gilt: (N1) Definitheit: kxk > 0 für x 6= 0 (N2) Positive Homogenität: kα · xk = |α| · kxk, x ∈ Kn , α ∈ K (N3) Subadditivität: kx + yk ≤ kxk + kyk, x, y ∈ Kn (Dreiecksungleichung) Häufig verwendete Normen Beispiel 4.2 (Häufig verwendete Normen). Euklidische Norm, `2 -Norm: n !1/2 X kxk2 = |xi |2 i=1 Maximumsnorm, `∞ -Norm: kxk∞ = max |xi | 1,...,n `1 -Norm: n X kxk1 = |xi | i=1 Folgerungen Konvergenz in der Maximumsnorm entspricht komponentenweiser Konvergenz: (t) ∀i = 1, . . . , n : lim xi = xi ⇐⇒ lim kx(t) − xk∞ = 0 t→∞ t→∞ Gilt auch im Unendlichdimensionalen, heißt dort aber aus naheliegenden Gründen Supremums- norm. Direkte und wichtige Folge von (N3) ist die inverse Dreiecksungleichung für Normen k · k: kx − yk ≥ |kxk − kyk| =⇒ Stetigkeit der Norm als Abbildung von Kn nach R+ 51 4 Kondition linearer Gleichungssysteme Äquivalenz aller Normen Satz 4.3 (Äquivalenz aller Normen). Seien k · k, k · k0 Normen auf dem endlich-dimensionalen (!) Kn . Dann gibt es Zahlen m, M > 0 aus R, so dass gilt: m · kxk0 ≤ kxk ≤ M · kxk0 ∀x ∈ Kn Anmerkung: die Zahlen m und M sind nicht nur von den betrachteten Normen, sondern auch von der Dimension n abhängig. Insbesondere gilt die Aussage im Unendlichen nicht! Beweis: Tafel Schlussfolgerung Im Endlichdimensionalen entspricht Konvergenz bezgl. einer beliebigen Norm k · k also Kon- vergenz in der Maximumsnorm, so dass wir sagen können: Konvergenz bzgl. einer Norm k · k entspricht komponentenweiser Konvergenz: (t) ∀i = 1, . . . , n : lim xi = xi ⇐⇒ lim kx(t) − xk = 0 t→∞ t→∞ Es gibt also für endlichdimensionale Vektorräume nur einen Konvergenzbegriff. Das ist für nicht endlich erzeugte Vektorräume i.A. falsch! 4.3 Matrixnormen Normen auf Kn×m Der Kn×m ist ein Vektorraum, der mit Kn·m identifiziert werden kann: Kn×m ∼ = Kn·m Daher definiert jede Norm auf Kn·m auch eine Norm auf Kn×m . (t) A(t) → A (t → ∞) meint dann aij → aij (t → ∞) ∀ 1 ≤ i, j ≤ n Nicht jede dieser Normen ist mit der zusätzlichen Verknüpfung, der Matrixmultiplikation, ver- träglich. Wir betrachten daher Normen mit zusätzlichen Eigenschaften. 52 4.3 Matrixnormen Matrixnormen Definition 4.4 (Matrixnormen). Eine Norm k · k auf Kn×n heißt verträglich mit einer Vek- tornorm k · k auf Kn , falls gilt: kAxk ≤ kAk · kxk A ∈ Kn×n , x ∈ Kn Sie heißt Matrixnorm, wenn sie submultiplikativ ist: kABk ≤ kAk · kBk A, B ∈ Kn×n Die Submultiplikativität ergänzt die Subadditivität (Dreiecksungleichung), die für alle Normen gilt. Beispiel Beispiel 4.5. Die Frobeniusnorm 1/2 n X kAkFr := |aij |2 i,j=1 ist eine Matrixnorm, die mit der euklidischen Norm verträglich ist. Die Eigenschaften einer Matrixnorm (Definitheit, positive Homogenität, Subadditivität, Sub- multiplikativität) und die Verträglichkeit kann man direkt nachrechnen ( Übung). Zugeordnete Matrixnormen Definition 4.6 (Zugeordnete Matrixnorm). Es sei k · k eine beliebige Vektornorm auf Kn . Dann heißt kAxk kAk := sup = sup kAxk x∈K \{0} kxk n x∈Kn ,kxk=1 die k · k zugeordnete (oder natürliche) Matrixnorm. Sie ist verträglich und submultiplikativ. Beweis: Tafel 53 4 Kondition linearer Gleichungssysteme Hilfssatz 4.7. Die zugeordneten Matrixnormen zu k · k∞ und k · k1 sind: n X kAk∞ := max |aij | (Zeilensummennorm) i=1,...,n j=1 Xn kAk1 := max |aij | (Spaltensummennorm) j=1,...,n i=1 Beweis: [Rannacher, S. 104], Fall k · k∞ : Tafel 4.4 Eigenwerte und Eigenvektoren Sei A ∈ Kn×n , λ ∈ K, und e ∈ Kn , so dass Ae = λe, dann heißt λ Eigenwert von A und e zugehöriger Eigenvektor. (λ, e) heißt auch Eigenpaar. Die Gleichung (A − λI)e = 0 ist für e 6= 0 nur für P (λ) = det(A − λI) = 0 erfüllbar. Das charakteristische Polynom P (λ) hat genau n Nullstellen in C (Vielfachheit mit- gezählt). Zu jedem Eigenwert λ gibt es mindestens einen Eigenvektor e. Für alle Matrixnormen k · k und Eigenwerte λ von A gilt |λ| ≤ kAk. (4.2) Also: alle Eigenwerte λ ∈ C liegen innerhalb eines Kreises um Null mit Radius kAk. Mit kAk∞ erhält man z.B. eine konkrete Abschätzung für den betragsmäßig größten Eigenwert. Folgerung aus (4.2): kAk ≥ ρ(A) := max {|λ| | λ ist Eigenwert von A} Die Zahl ρ(A) heißt Spektralradius von A (leider ist das keine Norm). Beweis: Tafel 54 4.4 Eigenwerte und Eigenvektoren Beispiele Beispiel 4.8. • Vandermonde-Matrix für die Stützstellen 2, 3, 4: 1 2 4 ( det(A) = (3 − 2) · (4 − 2) · (4 − 3) = 2 A = 1 3 9 1 4 16 λ1 ≈ 18.67, λ2 ≈ 1.25, λ3 ≈ 0.0859 ρ(A) ≈ 18.67, kAkFr ≈ 19.62, kAk∞ = 21, kAk1 = 29 • Drehstreckung um / mit (θ = 45, r = 21/2 ): ( cos( π4 ) − sin( π4 ) 1/2 1 −1 λ1,2 = 1 ± i A=2 · = sin( π4 ) cos( π4 ) 1 1 e1,2 = (±i, 1)T ρ(A) = 21/2 , kAkFr = kAk∞ = kAk1 = 2 • Nilpotente Matrix: 0 1 A= λ = 0 (geometrische Vielfachheit 1) 0 0 ρ(A) = 0, kAkFr = kAk∞ = kAk1 = 1 – A 6= 0, ρ(A) =⇒ ρ ist nicht definit – ρ(A + AT ) = 1 > 0 = ρ(A) + ρ(AT ) =⇒ ρ ist nicht subadditiv Idee: nutze Spektralradius als eine Art “Grenz-Maß” für Matrizen Da ρ wie gezeigt keine Norm ist, funktioniert das leider nicht Gerschgorin-Kreise Man kann aus den Einträgen einer Matrix noch genauere Abschätzungen der Eigenwerte erhal- ten: Definition 4.9 (Gerschgorin-Kreise). Für A ∈ Cn×n heißen die Mengen X Si := z ∈ C | |z − aii | ≤ |aij | j6=i Gerschgorin-Kreise von A. Jeder komplexe Eigenwert λ von A liegt in mindestens einem Gerschgorin- Kreis. (Analog kann man Kreise für die Spalten definieren.) Beweis: Tafel 55 4 Kondition linearer Gleichungssysteme Beispiel 4.10. 5 1 0 A = 1 10 1 λ1 ≈ 10.31, λ2 ≈ 4.82, λ3 ≈ 1.87 0 1 2 ρ(A) ≈ 10.31, kAkFr ≈ 11.53, kAk∞ = kAk1 = 12 Vorgehensweise: alle Eigenwerte liegen. . . • Normen: . . . im Kreis um Null mit Radius 11.53 • Kreise: . . . in den Gerschgorin-Kreisen um 2, 5 und 10 (mit den Radien 1, 1 und 2) • Symmetrie: . . . auf der reellen Achse =⇒ λ1,2,3 ∈ [1, 3] ∪ [4, 6] ∪ [8, 11.53] Spezielle Matrizen Definition 4.11 (Spezielle Matrizen). Zu A ∈ Kn×m heißt AT mit (AT )ij = (A)ji die trans- ponierte Matrix und A mit (A)ij = (A)ij die komplex konjugierte Matrix. T A ∈ Kn×n heißt hermitesch, falls A = A , d.h. aij = aji . Reelle hermitesche Matrizen heißen symmetrisch (dann ist A = AT ). T T Eine komplexw. Matrix A ∈ Cn×n heißt normal, falls AA = A A. T T T Sie heißt unitär, falls zusätzlich AA = A A = I, also A−1 = A . Reelle unitäre Matrizen heißen orthogonal (dann ist A−1 = AT ). Skalarprodukte Definition 4.12 (Skalarprodukte). Eine Abbildung (·, ·) : Kn × Kn → K heißt Skalarprodukt, falls gilt: (S1) Symmetrie: (x, y) = (y, x) (S2) Linearität: (αx + βy, z) = α(x, z) + β(y, z), x, y, z ∈ Kn , α, β ∈ K (S3) Definitheit: (x, x) > 0 für x ∈ Kn \ {0} • (S3) nutzt, dass aus (S1) (x, x) ∈ R folgt • Aus (S1) und (S2) folgt (z, αx + βy) = α(z, x) + β(z, y), also sind Skalarprodukte Biline- arformen für K = R und Sesquilinearformen für K = C. 56 4.5 Die Spektralnorm Ein Skalarprodukt erzeugt immer eine zugehörige Norm p kxk := (x, x), x ∈ Kn . Es gilt die Cauchy-Schwarzsche Ungleichung |(x, y)| ≤ kxk · kyk, x, y ∈ Kn . Das Euklidische Skalarprodukt lautet n X (x, y)2 = xi y i = xT y i=1 (wird im folgenden oft verwendet). Damit gilt: T A=A ⇐⇒ (Ax, y)2 = (x, Ay)2 ∀x, y ∈ Kn (andere Schreibweise für hermitesch, heißt auch selbstadjungiert). 4.5 Die Spektralnorm Die der Euklidischen Norm zugeordnete Matrixnorm kAk2 heißt Spektralnorm. Hilfssatz 4.13. Für die Spektralnorm hermitescher Matrizen gilt kAk2 = max {|λ| | λ ist Eigenwert von A} = ρ(A) Für jede Matrix A ∈ Kn×n gilt n o T kAk2 = max |λ|1/2 | λ ist Eigenwert von A A Beweis: Tafel 57 4 Kondition linearer Gleichungssysteme 4.6 Positiv definite Matrizen Definition 4.14 (Positiv definite Matrizen). Eine Matrix A ∈ Kn×n heißt positiv definit (in K), falls die beiden folgenden Eigenschaften erfüllt sind: • (Ax, x)2 ∈ R ∀x ∈ Kn (trivial falls K = R) • (Ax, x)2 > 0 ∀x ∈ Kn \ {0} (eigentliche Bedingung) Das definiert eine wichtige Klasse von Matrizen mit vorteilhaften Eigenschaften. Ziel: Charak- terisierung positiv definiter Matrizen. Eigenschaft 4.15. Für A ∈ Cn×n gilt (Ax, x)2 ∈ R ∀x ∈ Cn genau dann, wenn A hermitesch ist. Beweis: Übung Positiv definite Matrizen in Cn×n sind also immer hermitesch, aber: positiv definite Matrizen in Rn×n sind nicht notwendigerweise symmetrisch. Lemma 4.16. Eine hermitesche Matrix A ist genau dann positiv definit, wenn alle ihre (reellen) Eigenwerte positiv sind. Alle Hauptdiagonalelemente sind (reell und) positiv. Beweis: Tafel Lemma 4.17. Sei A ∈ Rn×n symmetrisch und positiv definit. Dann liegt der betragsmäßig größte Eintrag auf der Hauptdiagonalen. Normalerweise beschränkt man sich auf symmetrisch positiv definite Matrizen (kurz auch s.p.d.). Manche Autoren verlangen das daher direkt in der Definition. Wir fordern das aber extra. Beweis: Tafel 58 4.7 Störungstheorie 4.7 Störungstheorie Seien A ∈ Kn×n regulär und x, b ∈ Kn . Dann ist F (A, b) = A−1 b “Lösungsoperator” der Gleichung G(x) = Ax − b = 0. Betrachte die relative Kondition von F , zunächst nur bzgl. Änderungen in b: kF (A, b + δb) − F (A, b)k kδbk ≤ kAk · kA−1 k · kF (A, b)k kbk Definition 4.18 (Konditionszahl). Die Zahl cond(A) = kAk · kA−1 k heißt Konditionszahl von A (bzgl. einer verträglichen Matrixnorm k · k). Als nächstes wollen wir Störungen in A selbst zulassen. Dabei stellt sich zunächst die Frage, für welche Störungen überhaupt mit einer (eindeutigen) Lösung zu rechnen ist. Wenn A regulär ist, wann ist dann A + δA regulär? Hilfssatz 4.19. Sei B ∈ Kn×n mit Matrixnorm kBk < 1. Dann ist I + B regulär, und es gilt k(I + B)−1 k ≤ c · (1 − kBk)−1 mit c > 0. Falls die Matrixnorm zugeordnet ist, kann c = 1 gewählt werden. Beweis: Tafel Störungssatz −1 Satz 4.20 (Störungssatz). Sei A ∈ Kn×n regulär und kδAk < kA−1 k (für zugeordnete Ma- trixnorm). Dann ist A e = A + δA ebenfalls regulär, und für den relativen Fehler des gestörten Systems (A + δA) · (x + δx) = b + δb (oder kurz: Ae ex = eb) gilt: kδxk cond(A) kδbk kδAk ≤ kδAk · + kxk 1 − cond(A) · kbk kAk kAk Beweis: Tafel 59 4 Kondition linearer Gleichungssysteme Beispiele kδAk kδbk Beispiel 4.21. Es sei kAk ≈ 10−k und kbk ≈ 10−k , sowie cond(A) ≈ 10s (mit k, s > 0). Weiter nehmen wir an, dass 10s · 10−k 1, also z.B. s − k ≤ −3. Dann gilt kδxk 10s ≤ · 2 · 10−k ≈ 10−k+s kxk 1 − 10s · 10−k Man verliert also bis zu s Stellen an Genauigkeit! Beispiel 4.22 (Kondition und Determinante). • Betrachte Matrix B = 10−10 · I: −10 10 10 0 −1 10 0 B= ,B = 0 10−10 0 1010 Es gilt cond∞ (B) = kBk∞ · kB −1 k∞ = 1, aber det(B) = 10−20 ! • Generell gilt cond(A) = cond(A) für 6= 0, aber det(A) = n det(A) =⇒ Die Determinante einer Matrix sagt nichts über die Fehlerverstärkung beim Lösen des zugehörigen Gleichungssystems aus d1 0 Beispiel 4.23. Für A = ergibt sich cond∞ (A) = max(d1 , d2 )/ min(d1 , d2 ), also z.B. 0 d2 1010 für die Wahl d1 := 1010 , d2 := 1. Andererseits sind alle Gleichungen in A unabhängig und xi = bi /di jeweils gut konditioniert. Was passiert hier? • Bei Fehlern nur in b: das Problem liegt in der Verwendung von Normen, es handelt sich nur um eine Abschätzung, und diese ist für die einzelnen Komponenten hier sehr schlecht. • Bei Fehlern auch in A: kleine Schwankungen in den Nebendiagonaleinträgen führen dazu, dass das gestörte System voll gekoppelt ist. Der Störungssatz behandelt die Auswirkungen. 60 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme 5.1 Dreieckssysteme (gestaffelte Gleichungssysteme) Sei A ∈ Kn×n von oberer Dreiecksgestalt: a11 · x1 + a12 · x2 + · · · + a1n · xn = b1 a22 · x2 + · · · + a2n · xn = b2 .. .. .. . . . ann · xn = bn Dieses System ist genau dann eindeutig lösbar, wenn aii 6= 0, i = 1, . . . , n, gilt. Aufgrund der einfachen Struktur lässt sich das System dann durch “Rückwärtseinsetzen” lö- sen. Lösung durch rückwärts einsetzen: xn = bn /ann xn−1 = bn−1 − a(n−1)n · xn /a(n−1)(n−1) .. . n ! X xi = bi − aik · xk /aii k=i+1 Die Anzahl der benötigten Rechenoperationen ist: n−1 X N∆ (n) = (2i + 1) = n2 i=0 (Gilt für untere Dreieckssysteme natürlich analog.) 5.2 Gauß-Elimination Sei nun A ∈ Kn×n regulär, aber mit beliebiger Struktur. Ziel: Bringe A durch äquivalente Umformungen auf (obere) Dreiecksgestalt, um die Lösung leicht berechnen zu können. Dazu benutzt man: 61 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme • Vertauschen zweier Gleichungen • Addition eines Vielfachen einer Gleichung zu einer anderen (Wir beschränken uns der Einfachheit halber im folgenden auf den Fall K = R, für die komple- xen Zahlen funktioniert es aber analog.) Wir schreiben a11 · · · a1n b1 .. .. .. [A, b] = . . . an1 · · · ann bn (erweiterte Koeffizientenmatrix) Das Gaußsche Eliminationsverfahren erzeugt dann eine endliche Folge von Matrizen h i h i h i [A, b] = A(0) , b(0) , A(1) , b(1) , . . . , A(n−1) , b(n−1) , so dass nach n − 1 Schritten A(n−1) obere Dreiecksgestalt hat. Erster Schritt: A(0) , b(0) (1) (1) A ,b h i Erster Schritt, Teil (a): A(0) , b(0) e(0) , eb(0) A (0) • Bestimme ein r ∈ {1, . . . , n} mit ar1 6= 0 (0) • Dieses Pivotelement ar1 existiert, weil A regulär ist (0) • Vertausche Zeilen 1 und r, dadurch e a11 6= 0 Beispiel: 0 4 −2 −3 1 1 3 0 −2 2 −2 −6 3 1 2 −2 −6 3 1 2 3 7 4 −1 3 3 7 4 −1 3 1 3 0 −2 2 0 4 −2 −3 1 h i Erster Schritt, Teil (b): Ae(0) , eb(0) (1) (1) A ,b (0) (0) • Berechne für i ∈ {2, . . . , n} den Faktor qi1 = e ai1 /e a11 • Ziehe das qi1 -fache der Zeile 1 von Zeile i ab • Dadurch werden alle Einträge der ersten Spalte Null, bis auf den ersten (das Pivotelement) 62 5.2 Gauß-Elimination (1) (0) (0) ∀ j ∈ {1, . . . , n} : aij = e aij − qi1 e a1j (1) (0) (0) bi = ebi − qi1eb1 1 3 0 −2 2 1 3 0 −2 2 −2 −6 3 1 2 0 0 3 −3 6 3 7 4 −1 3 0 −2 4 5 −3 0 4 −2 −3 1 0 4 −2 −3 1 k-ter Schritt: A(k−1) , b(k−1) A(k) , b(k) h i k-ter Schritt, Teil (a): A(k−1) , b(k−1) e(k−1) , eb(k−1) A • Die ersten k − 1 Zeilen und Spalten sind die einer oberen Dreiecksmatrix (k−1) • Finde ein neues r ∈ {k, . . . , n} mit Pivotelement ark 6= 0 • Tauschen der k-ten und r-ten Zeilen ändert die ersten k − 1 Zeilen und Spalten nicht Beispiel für k = 2: 1 3 0 2 −2 1 3 0 −2 2 0 0 3 6 −3 0 −2 4 5 −3 0 −2 4 5 −3 0 0 3 −3 6 0 4 −2 −3 2 0 4 −2 −3 2 h i k-ter Schritt, Teil (b): Ae(k−1) , eb(k−1) A(k) , b(k) (k−1) (k−1) • Berechne für i ∈ {k + 1, . . . , n} den Faktor qik = e aik /e akk • Ziehe das qik -fache der Zeile k von Zeile i ab • Diese Subtraktion ändert die k −1 ersten Zeilen und Spalten nicht (für die Spalten: wegen (k−1) akj e = 0 für j < k) (1) (0) (0) ∀ j ∈ {k, . . . , n} : aij = e aij − qik e akj (1) (0) (0) bi = ebi − qikeb1 1 3 0 −2 2 1 3 0 −2 2 0 −2 4 5 −3 0 −2 4 5 −3 0 0 3 −3 6 0 0 3 −3 6 0 4 −2 −3 2 0 0 6 7 −4 63 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme Aufwand der Gauß-Elimination • In jedem Schritt entsteht eine Zeile (und Spalte), die die korrekte Form hat und danach nicht mehr verändert wird =⇒ das Verfahren bricht nach einer endlichen Zahl Schritte ab • Da es immer mindestens ein geeignetes Pivotelement gibt, lassen sich die einzelnen Teil- schritte stets durchführen =⇒ das Verfahren besteht aus einzelnen, berechenbaren Operationen Formaler Algorithmus Wie aufwändig ist die Gauß-Elimination? Lemma 5.1. Der Aufwand zur Transformation von A auf obere Dreiecksgestalt durch Gauß- Elimination beträgt 2 NGauß (n) = n3 + O(n2 ) 3 Da der Aufwand des Rückwärtseinsetzens vernachlässigbar ist (N∆ (n) = n2 ), ist dies auch der Aufwand für das Lösen eines linearen Gleichungssystems mit dem Gauß-Verfahren. Beweis: Tafel Vollständiger Algorithmus Algorithmus 5.2 (Gauß-Elimination). In Pseudocode: Eingabe : A ∈ Rn×n (wird überschrieben) b ∈ Rn (wird überschrieben) Ausgabe : x ∈ Rn for ( k = 1; k < n; k = k+1 ) { // Schritt (a) // Finde ein geeignetes Pivotelement Finde r in {k,...,n} mit a_rk != 0 (sonst Fehler); if (r != k) { // Tausche Zeilen r und k for ( j = k; j <= n; j = j+1 ) 64 5.2 Gauß-Elimination {t = a_kj; a_kj = a_rj; a_rj = t;} t = b_k; b_k = b_r; b_r = t; } // (... -->) // (...) // Schritt (b) // Subtrahiere Vielfache der Zeile k for ( i = k+1; i <= n; i = i+1 ) { q_ik = a_ik / a_kk; for (j = k; j <= n; j = j+1 ) a_ij = a_ij - q_ik * a_kj; b_i = b_i - q_ik * b_k; } } // A ist jetzt obere Dreiecksmatrix, // löse daher durch Rückwärtseinsetzen Vorsicht: In der Numerik zählen wir üblicherweise ab Eins, aber in C++ ist Null der kleinste Index! Beispiel Beispiel 5.3. Ein weiteres Beispiel, diesmal ohne Vertauschungen: 2 4 6 8 40 2 4 6 8 40 16 33 50 67 330 0 1 2 3 10 4 15 31 44 167 0 7 19 28 87 10 29 63 97 350 0 9 33 57 150 2 4 6 8 40 2 4 6 8 40 0 1 2 3 10 0 1 2 3 10 0 0 5 7 17 0 0 5 7 17 0 0 15 30 60 0 0 0 9 9 Lösung durch Rückwärtseinsetzen: (4, 3, 2, 1)T 65 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme 5.3 LR-Zerlegung Transpositionsmatrizen Ziel: Finde möglichst kompakte Darstellung der Gauß-Elimination abstrakte Formulierung mit Matrixmultiplikationen Definition 5.4 (Transpositionsmatrizen). Eine Matrix Prs ∈ Rn×n , 1 ≤ r, s ≤ n, r 6= s, mit 1 i = j ∧ i 6= r ∧ i 6= s [Prs ]ij = 1 (i = r ∧ j = s) ∨ (i = s ∧ j = r) 0 sonst heißt Transpositionsmatrix. Beispiel: 1 0 0 0 0 0 0 1 P24 = 0 0 1 0 0 1 0 0 Hilfssatz 5.5. Eine Transpositionsmatrix Prs hat die folgenden Eigenschaften: 1. A e = Prs A ist A mit Zeilen r und s vertauscht 2. A e = APrs ist A mit Spalten r und s vertauscht T (symmetrisch) 3. Prs = Prs −1 = P 4. Prs −1 T rs =⇒ Prs = Prs (orthogonal) Endliche Produkte von Transpositionsmatrizen heißen Permutationsmatrizen. Diese sind or- thogonal, aber nicht symmetrisch. Beweis: Tafel 66 5.3 LR-Zerlegung Frobeniusmatrizen Die Transpositionsmatrizen werden für Teil (a) der Eliminationsschritte verwendet, für Teil (b) benötigen wir eine spezielle Form von Matrix. Definition 5.6 (Frobeniusmatrizen). Eine Matrix Gk ∈ Rn×n heißt Frobeniusmatrix, wenn Gk = I + G0k , wobei G0k ∈ Rn×n mit [G0k ]ij = 0 für j 6= k ∨ i ≤ k. Beispiel: 1 0 0 0 0 1 0 0 G2 = 0 3 1 0 0 4 0 1 Hilfssatz 5.7. Eine Frobeniusmatrix Gk hat die folgenden Eigenschaften: ( aij i≤k 1. Für Ae = Gk A gilt e aij = aij + gik akj i > k (Das ist gerade der Eliminationsschritt, wenn gik := −qik ) 2. G0k G0k = 0 3. G−1 0 k = (I − Gk ) Pk und G−1 −1 −1 0 Pk 0 4. G1 G2 · · · Gk = I + j=1 Gj 1 G2 · · · Gk = I − j=1 Gj 5. ∀ k < r ≤ s : Prs Gk = G e k := I + Prs G0 e k Prs mit G k (Ändern der Reihenfolge führt zu neuer Frobeniusmatrix G ek ) Beweis: Tafel LR-Zerlegung Für das Produkt von Matrizen Bi , a ≤ i ≤ b, definieren wir: b Y Bi := Bb Bb−1 · · · Ba+1 Ba i=a (Achtung: von rechts nach links, da Multiplikation nicht kommutativ) Für Transpositionsmatrizen ist dieses Produkt eine Permutationsmatrix, für Frobeniusmatrizen nach dem eben gezeigten eine untere Dreiecksmatrix. 67 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme Satz 5.8 (LR-Zerlegung). Sei A ∈ Rn×n regulär, dann gibt es eine Zerlegung P A = LR, wobei 1 0 ··· 0 r11 r12 · · · r1n .. .. .. l11 1 . . , R = 0 r22 . r2n L= .. .. .. .. . . .. , . . . 0 . . . r(n−1)n ln1 · · · ln(n−1) 1 0 ··· 0 rnn n−1 Q und P = Pα,sα , sα ≥ α, eine Permutationsmatrix ist. Im Fall P = I ist die Zerlegung α=1 eindeutig. Beweis: Tafel Aus dem Beweis ergibt sich, dass 1 n−1 ! ! Y Y L= I− Pα,sα G0k k=n−1 α=k+1 n−1 n−1 ! X Y =I− Pα,sα G0k mit [G0k ]ik = −qik k=1 α=k+1 • Die Nichtnullelemente −qik in G0k nehmen den selben Platz wie die eliminierten Einträge (k−1) aik e ein • Kein zusätzlicher Speicher notwendig, verwende einfach die linke untere Hälfte von A (wird sowieso überschrieben) • Die Einträge von G0k nehmen ebenfalls an späteren Zeilenvertauschungen teil (tausche daher einfach ganze Zeile) Wozu das Ganze? Lösen eines Gleichungssystems Ax = b mittels LR-Zerlegung: Ax = b ⇐⇒ P Ax = P b ⇐⇒ LRx = P b, y := Rx ( Ly = P b (vorwärts einsetzen) ⇐⇒ Rx = y (rückwärts einsetzen) Bei bekannter LR-Zerlegung lässt sich das Gleichungssystem also mit zwei sehr einfachen Schrit- ten lösen. Einzelne Schritte: 68 5.3 LR-Zerlegung 1. Berechne LR-Zerlegung und Matrix P für gegebenes A 2. berechne b0 = P b für gegebenes b 3. Löse Dreieckssystem Ly = b0 4. Löse Dreieckssystem Rx = y Die LR-Zerlegung ist äquivalent zur Gauß-Elimination und hat daher den selben Aufwand NLR (n) = 32 n3 + O(n2 ). Wichtiger Unterschied: Für eine neue rechte Seite Ae x = eb kann die LR-Zerlegung wiederverwendet werden, die Gauß- Elimination müsste erneut durchgeführt werden! Algorithmus Algorithmus 5.9 (LR-Zerlegung). In Pseudocode: Eingabe : A ∈ Rn×n (wird überschrieben) Ausgabe : L, R ∈ Rn×n (ohne Diagonale von L) p : {1, . . . , n} → {1, . . . , n} for ( k = 1; k < n; k = k+1 ) { // Schritt (a) // Finde ein geeignetes Pivotelement Finde r in {k,...,n} mit a_rk != 0 (sonst Fehler); if (r != k) { // Tausche Zeilen r und k // Tausche jetzt auch alte Spalten! for ( j = 1; j <= n; j = j+1 ) {t = a_kj; a_kj = a_rj; a_rj = t;} } p_k = r; // merke Permutation // (... -->) // (...) // Schritt (b) // Subtrahiere Vielfache der Zeile k for ( i = k+1; i <= n; i = i+1 ) { // Verwende jetzt a_ik statt q_ik 69 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme a_ik = a_ik / a_kk; // Subtrahiere weiterhin ab Spalte k // (sonst würden q_ij verändert!) for (j = k; j <= n; j = j+1 ) a_ij = a_ij - a_ik * a_kj; } } (Wir speichern nicht die kompletten Transpositionsmatrizen, sondern nur den Index, mit dem jeweils getauscht werden muss. Die Diagonale von L ist konstant Eins und wird daher nicht gespeichert.) Beispiel Beispiel 5.10 (LR-Zerlegung). Betrachte wieder das Beispiel bei der Gauß-Elimination. Einträge von R sind rot markiert, Einträge von L blau, Permutationsindizes grün. Tausche erste und vierte Zeile, erste Zeile ist damit fertig. Notiere, dass die erste Zeile mit der vierten getauscht wurde: 0 4 −2 −3 1 3 0 −2 −2 −6 3 1 −2 −6 3 1 3 7 4 −1 3 7 4 −1 1 3 0 −2 0 4 −2 −3 (0, 0, 0)T (4, 0, 0)T Eliminiere die verbleibenden Einträge der ersten Spalte, trage stattdessen die Faktoren qi1 ein: 1 3 0 −2 1 3 0 −2 −2 −6 3 1 −2 0 3 −3 3 7 4 −1 3 −2 4 5 0 4 −2 −3 0 4 −2 −3 (da das Pivotelement Eins ist, bleiben hier die Einträge einfach erhalten!) Tausche die zweite Zeile mit der dritten: 1 3 0 −2 1 3 0 −2 −2 0 3 −3 3 −2 4 5 3 −2 4 5 −2 0 3 −3 0 4 −2 −3 0 4 −2 −3 (4, 0, 0)T (4, 3, 0)T 70 5.4 Rundungsfehleranalyse der LR-Zerlegung (wichtig: dabei werden die Einträge von L mitgetauscht!) Eliminiere die verbleibenden Einträge der zweiten Spalte und merke die Faktoren qi2 : 1 3 0 −2 1 3 0 −2 3 −2 4 5 3 −2 4 5 −2 0 3 −3 −2 0 3 −3 0 4 −2 −3 0 −2 6 7 Beobachtung: jeder Tausch-Schritt ergibt eine Zeile von R, jeder Eliminationsschritt eine Spalte von L Im letzten Schritt ist kein Tauschen nötig. Notiere dies durch den Index der aktuellen Zeile. Eliminiere den letzen Eintrag und speichere dort stattdessen q43 : 1 3 0 −2 1 3 0 −2 3 −2 4 5 3 −2 4 5 −2 0 3 −3 −2 0 3 −3 0 −2 6 7 0 −2 2 13 (4, 3, 0)T (4, 3, 3)T Prüfe nach, dass L · R = P · A: 1 0 0 0 1 3 0 −2 · 0 −2 4 5 3 1 0 0 −2 0 1 0 0 0 3 −3 0 −2 2 1 0 0 0 13 0 0 0 1 0 4 −2 −3 · −2 −6 3 0 0 1 0 1 = 0 1 0 0 3 7 4 −1 1 0 0 0 1 3 0 −2 5.4 Rundungsfehleranalyse der LR-Zerlegung Absolutwertnotation Sei A ∈ Rm×n , dann definieren wir die Matrix der Beträge B = |A| durch bij := |aij |, 1 ≤ i ≤ m, 1 ≤ j ≤ n, und analog |x| für x ∈ Rn (Vektor der Beträge). Damit können wir die Abbildung rd auf Rm×n bzw. Rn erweitern: rd(A) = A + A0 mit |A0 | ≤ |A| · eps 71 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme (das sind m · n Ungleichungen), wegen rd(aij ) = aij (1 + ij ) = aij + ij aij , |ij aij | ≤ |aij | · eps fl-Notation Sei E eine Formel, dann bezeichne fl(E) eine Berechnung der Formel in Gleitkommaarithmetik. Die Reihenfolge wird dabei meist offensichtlich sein (von links nach rechts, Klammerung), sonst muss sie angegeben werden. Somit ist zum Beispiel: fl(A + B) = (A + B) + H mit |H| ≤ eps · (|A + B|) wegen fl(aij + bij ) = aij ⊕ bij = (aij + bij )(1 + ij ) = (aij + bij ) + ij (aij + bij ) √ Man kann z.B. auch fl( x) und fl(sin(x)) schreiben, letzteres setzt Angabe von Algorithmus voraus. Rückwärtsanalyse Bisher haben wir die “Vorwärtsanalyse” der Rundungsfehler betrieben, z.B. gilt für das Skalar- produkt xT y: | fl(xT y) − xT y| ≤ n · eps · |x|T |y| + O(eps2 ) (absolut) oder | fl(xT y) − xT y| |x|T |y| ≤ n · eps · + O(eps2 ) (relativ) |xT y| |xT y| Eine Alternative ist die sog. “Rückwärtsanalyse”. Dort versucht man, das Fließkommaergebnis als exaktes Ergebnis eines modifizierten Ausdrucks zu schreiben, z.B.: fl(xT y) = (x + f )T y mit |f | ≤ n · eps · |x| + O(eps2 ) Erinnerung: Ein Algorithmus ist stabil, wenn der akkumulierte Fehler der Rechnung den auf- grund der Problemstellung unvermeidbaren Fehler (→ Kondition) nicht übersteigt (oder zu- mindest in der selben Größenordnung ist). Der tatsächlich auftretende Diskretisierungsfehler hat dann die gleiche Größenordnung wie der kleinste für diese Aufgabe theoretisch mögliche Fehler. 72 5.4 Rundungsfehleranalyse der LR-Zerlegung F(x) k·∆x x ∆x x' F(x') F'(x')-F(x') F'(x') Definition 5.11 (Rückwärtsstabilität). Ein Algorithmus F 0 für eine Funktion F heißt rück- e mit F 0 (x) = F (e wärtsstabil, wenn zu jeder Eingabe x eine modifizierte Eingabe x x) existiert, für die |x − x e| = O(|x − rd(x)|) = O(|x| · eps) gilt. Interpretation: Der Algorithmus löst das gestellte Problem, aber für eine leicht gestörte Einga- be. Man kann zeigen, dass rückwärtsstabile Algorithmen stets stabil sind. F(x) k·∆x x ∆x x' F(x') x~ F'(x')-F(x') F'(x') ~ =F(x) Beispiel 73 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme Beispiel 5.12. Die Berechnungen F 0 (x, y) = x ⊕ y und G0 (x) = x ⊕ 1 sind jeweils stabile Algorithmen für die Addition bzw. das Inkrement. F 0 ist rückwärtsstabil: x ⊕ y = (x + y) · (1 + ) = x · (1 + ) + y · (1 + ) = x e + ye mit xe := x · (1 + ), |x − xe| = |x| · ≤ |x| · eps, ye analog Aber G0 ist nicht rückwärtsstabil: x ⊕ 1 = (x + 1) · (1 + ) = x · (1 + (1 + x−1 ) · ) + 1 = x e+1 mit e := x · (1 + (1 + x−1 ) · ), x e| = |x| · |1 + x−1 | · |x − x Für x 1 wird der relative Fehler beliebig groß (vgl. ⊕ 1 = 1). Skalarprodukt Hilfssatz 5.13. Das Skalarprodukt xT y ∈ R, x, y ∈ Fn , ist rückwärtsstabil: ŝ = fl(xT y) = (x + f )T y mit |f | ≤ n · eps · |x| + O(eps2 ) Bemerkung 5.14. Der Faktor n · eps ist der schlechteste Fall und sehr pessimistisch. Run- dungsfehler von Operationen hängen von den Argumenten ab und können sich auch wegheben (Vorzeichenwechsel!). Eine statistische Betrachtung würde auf einen deutlich geringeren durch- schnittlichen Fehler führen. Beweis: Tafel Dyadisches Produkt Beispiel 5.15. Das dyadische Produkt (äußere Produkt) x · y T ∈ Rn×n hingegen ist zwar stabil, aber nicht rückwärtsstabil. Warum? Ein dyadisches Produkt hat immer Rang Eins, fl(x · y T ) wird jedoch durch die Störungen i.A. einen anderen Rang haben (und kann somit nicht das Ergebnis einer exakten Rechnung sein). Lösen von Dreieckssystemen Satz 5.16 (Lösen von Dreieckssystemen). Es seien x̂ und ŷ die numerischen Lösungen des unteren bzw. oberen Dreieckssystems Lx = b und Ry = c. Dann gilt (L + F )x̂ = b |F | ≤ n · eps · |L| + O(eps2 ) (R + G)ŷ = c |G| ≤ n · eps · |R| + O(eps2 ) Das Lösen von Dreiecksystemen durch Vorwärts- / Rückwärtseinsetzen ist also rückwärtsstabil. Beweis: Übung 74 5.4 Rundungsfehleranalyse der LR-Zerlegung LR-Zerlegung Satz 5.17 (Rückwärtsanalyse der LR-Zerlegung). Sei A ∈ Fn×n . Es werde die LR-Zerlegung von A ohne Zeilentausch berechnet (sofern möglich). Dann gilt für die numerisch berechneten Matrizen L b und R: b b·R L b =A+H mit |H| ≤ 3(n − 1) · eps · |A| + |L| b + O(eps2 ) b · |R| Beweis: Tafel Satz 5.18 (Lösen mittels LR-Zerlegung). Seien L b und R b die numerisch berechnete LR-Zerlegung von A ∈ F n×n n aus Satz 5.17. Sei weiter ŷ ∈ F die numerische Lösung von Ly b = b, und schließ- n lich x̂ ∈ F die numerische Lösung von Rx = ŷ. Dann gilt für x̂ die Beziehung b (A + E)x̂ = b mit |E| ≤ n · eps · (3|A| + 5|L| b + O(eps2 ) b · |R|) Beweis: Tafel Folgerung Nach Satz 5.18 ist x̂ exakte Lösung des modifizierten Systems (A + E)x̂ = b. Mit dem Stö- rungssatz gilt dann in k · k∞ -Norm ( ) kx̂ − xk∞ kLk b ∞ · kRk∞ b ≤ cond∞ (A) · 3n · eps + 5n · eps + O(eps2 ) kxk∞ kAk∞ • Der erste Term ist mit dem aus der Konditionsanalyse vergleichbar und daher gutartig. • Der zweite Term kann problematisch werden, da L b Einträge der Form e aii enthält (und aij /e aii beliebig klein werden kann). e Man kann zeigen, dass R b genauso problematisch sein kann. =⇒ Die Gauß-Elimination / LR-Zerlegung ist in dieser Form nicht numerisch stabil! 75 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme Beispiel Beispiel 5.19. Betrachte die Matrix A gegeben durch 1 −1 0 1 A= , A = 1 0 1 − mit 0 < 1. cond∞ (A) = (1 + )2 , also ist A gut konditioniert, und Rückwärtseinsetzen bietet sich als stabiler Algorithmus an. Die (exakte) LR-Zerlegung ist aber in diesem Fall A = LR mit 1 0 1 L= , R= −1 1 0 −−1 −1 =⇒ kLk b ∞ ≈ kLk∞ = + 1 1, kRk b ∞≈ kRk ∞ = −1 1 5.5 Pivotisierung Die Rundungsfehleranalyse in Satz 5.18 führt auf den unvorteilhaften Term |L| b und wie b · |R|, wir gesehen haben, können diese beiden Faktoren prinzipiell beliebig groß werden. Wählt man im Gauß-Algorithmus (bzw. bei der LR-Zerlegung) den Index r so, dass (k) (k) |ark | ≥ |aik | ∀ k ≤ i ≤ n, dann gilt |ˆlij | ≤ 1 und damit kLk b ∞ ≤n Diese Wahl des Pivotelements nennt man Spaltenpivotisierung. Beispiel Beispiel 5.20. Das Gauß-Verfahren für das lineare Gleichungssystem −10−5 1 x 1 · 1 = 2 1 x2 0 führt in exakter Arithmetik auf −10−5 1 x1 1 · = 0 1 + 2 · 105 x2 2 · 105 mit der Lösung (x1 , x2 )T = (−0.4999975, 0.999995)T ≈ (−0.5, 1)T . 76 5.5 Pivotisierung In F(10, 4, 1) ergibt sich zwar ebenfalls ein Faktor q21 = 2 · 105 = 0.2 · 106 , das dadurch entste- hende System ist aber −0.1 · 10−4 1 x1 1 · = , 0 0.2 · 106 x2 0.2 · 106 (1) der Eintrag a22 ist also (als einziger!) leicht fehlerbehaftet. Als Ergebnis erhält man das völlig inakzeptable (x1 , x2 )T = (0, 1)T . Die berechnete Lösung hat also einen relativen Fehler von 50% in der Maximumsnorm, obwohl die Matrix sehr gut konditioniert ist. Rückwärtsanalyse: Tatsächlich wurde das modifizierte System −10−5 1 x 1 · 1 = , 2 0 x2 0 exakt gelöst, welches aber eine völlig andere Lösung hat. Spaltenpivotisierung (in F(10, 4, 1)) führt in diesem Fall auf das System 2 1 x 0 · 1 = , 0 1 x2 1 mit der vollkommen akzeptablen Antwort (x1 , x2 )T = (−0.5, 1)T . Beachte aber: Multiplikation der ersten Zeile des ursprünglichen Systems mit −106 führt auf ein mathematisch äquivalentes System, das auch bei Spaltenpivotisierung keine Vertauschungen braucht und daher trotzdem das ursprüngliche, unbrauchbare, Ergebnis liefert. Äquilibrierung Solche Probleme kann man oft durch eine Skalierung (Äquilibrierung) des Gleichungssystems vermindern: n X −1 −1 Ax = b ⇐⇒ D Ax = D b mit dii = |aij | j=1 e = eb mit kAk ⇐⇒ Ax ∞ =1 e 77 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme (Vorsicht: keine Aussage über kA e−1 k , es kann durchaus auch cond∞ (A) ∞ e > cond∞ (A) sein!) Spezialfall der allgemeineren Idee der Vorkonditionierung: Transformiere die ursprüngliche Aufgabenstellung in eine neue Formulierung, die besser kon- ditioniert ist und sich stabil lösen lässt, und transformiere danach die Ergebnisse zurück (falls nötig) Beispiel Beispiel 5.21. Betrachte die folgende vom Parameter c 6= 0 abhängige Matrix Ac : 1 2c−1 1 c 0 2 −1 2c −c −1 Ac = · = , Ac = · −1 0 1 −1 2 −1 2 3 c 2 Es gilt cond∞ (Ac ) = 1 + 2 · max{|c|, |c|−1 }. Optimal ist also die Wahl c = 1 mit cond∞ (A1 ) = 3. Für c 6= 1 wird eine der Zeilen mehr betont als die andere, was im Extremfall zu einem sehr unausgeglichenen Gleichungssystem führt. Rundungsfehleranalyse bei Pivotisierung Analog zu Satz 5.18 zeigt man, dass für die Lösung x̂ bei Spaltenpivotisierung gilt: (A + E)x̂ = b mit |E| ≤ n · eps · (3|A| + 5P T · |L| b + O(eps2 ) b · |R|) Nach Konstruktion ist kLk b ∞ ≤ n, und mit der Definition (k) ρ := kAk−1 ∞ · max |âij | i,j,k (sog. “Wachstumsfaktor”) zeigt man kEk∞ ≤ 8n3 kAk∞ ρ · eps + O(eps2 ) Beweis: [Golub, Van Loan: Matrix Computations] Man kann Beispiele mit sehr schlechtem Verhalten für ρ konstruieren: Betrachte A ∈ Rn×n mit 1 j =i∨j =n aij := −1 j < i sonst 0 78 5.5 Pivotisierung Beispiel: 1 0 0 0 1 −1 1 0 0 1 −1 −1 1 A= 0 1 −1 −1 −1 1 1 −1 −1 −1 −1 1 Für diesen Extremfall ist ρ = 2n−1 . In der Praxis wachsen die Einträge aber normalerweise nur um bis zu eine Größenordnung (ρ ≈ 10, [Golub, Van Loan]), daher können Gauss-Verfahren und LR-Zerlegung mit Spaltenpi- votisierung als stabil angesehen werden. Totale Pivotisierung Man kann auch r, s ∈ {k, . . . , n} wählen, so dass (k) |a(k) rs | ≥ |aij | ∀ k ≤ i, j ≤ n und erreicht dann durch Zeilen- und Spaltenvertauschung, dass (k) akk = a(k) e rs Diese Wahl des Pivotelements nennt man totale Pivotisierung. Man kann zeigen, dass damit (k) 1/2 |aij | ≤ k 1/2 (2 · 31/2 · · · k 1/(k−1) ) · max |aij |, also deutlich kleineres Wachstum der Einträge. In Matrixform ergibt sich (mit Prk := Pk,rk und Qsk := Pk,sk ) Schritt 1: G1 Pr1 AQs1 · Qs1 x = G1 Pr1 b Schritt 2: G2 Pr2 G1 Pr1 AQs1 Qs2 · Qs2 Qs1 x = G2 Pr2 G1 Pr1 b .. .. . . "n−1 1 # n−1 n−1 Y Y Y Y Schritt n − 1: (Gk Prk )A Qsk · Qsk x = (Gk Prk )b k=1 k=n−1 k=1 k=1 | {z } =R (obere Dreiecksmatrix) Analog zur Spaltenpivotisierung zeigt man, dass dann P AQT · Qx = P b 79 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme mit der LR-Zerlegung P AQT = LR (beachte QT · Q = I). Setze dazu n−1 Y n−1 Y P := Prk , Q := Qsk , k=1 k=1 n−1 !−1 n−1 Y Y L := P · (Gk Prk ) , R := (Gk Prk ) · A · QT k=1 k=1 R ist obere Dreiecksmatrix nach Konstruktion, und wie zuvor ist L untere Dreiecksmatrix (selbe Argumentation, da unabhängig von Q). Außerdem kann L wieder unten links in A gespeichert werden (Spaltenvertauschungen ändern die bisher berechneten Einträge von L nicht, da sk ≥ k). Lösen bei totaler Pivotisierung Mit diesen Definitionen haben wir P AQT · Qx = LR · Qx = P b Löse mit den folgenden Schritten nach x auf: b0 = P b (Permutation) 0 Ly = b (Dreieckssystem) 0 Rx = y (Dreieckssystem) −1 0 x=Q x (Permutation) Im letzten Schritt muss man dabei Q nicht explizit invertieren. Stattdessen werden die Vertau- schungen einfach in umgekehrter Reihenfolge durchgeführt. Anmerkungen Aufwand der Pivotisierung: • n2 /2 Vergleiche bei Spaltenpivotisierung • n3 /3 Vergleiche bei totaler Pivotisierung =⇒ totale Pivotisierung hat gleiche Komplexität wie eigentliche Zerlegung, während Spalten- pivotisierung vernachlässigbar ist Praktische Erfahrung zeigt trotz höheren Aufwands keine Vorteile für Rundungsfehler bei to- taler Pivotisierung Spaltenpivotisierung mit Zeilenskalierung ist in der Praxis effizient und numerisch stabil. 80 5.6 Spezielle Systeme 5.6 Spezielle Systeme Symmetrisch positiv definite Matrizen Satz 5.22. Eine symmetrisch positiv definite Matrix A ∈ Rn×n ist stets ohne Pivotisierung sta- bil LR-zerlegbar. Für die Diagonalelemente der im Eliminationsprozess auftauchenden Matrizen gilt (k) aii ≥ λmin (A), k ≤ i ≤ n. Die Symmetrie der Matrix kann man ausnutzen, um die Matrix A mit geringerem Aufwand zu zerlegen. Beweis: Tafel, Stabilität: [Golub, Van Loan] Cholesky-Zerlegung Mit D = diag(R) gilt A = LD(D−1 R) = LDU mit U := D−1 R, und wegen der Symmetrie gilt U = LT , also A = LDLT . Da alle Diagonalelemente von D positiv sind, ist die Matrix D1/2 mit 1/2 (D1/2 )ii = dii , (D1/2 )ij = 0 für i 6= j wohldefiniert, und es gilt A = LD1/2 · D1/2 LT = L eLeT mit L e := LD1/2 Diese spezielle Form der Zerlegung heißt Cholesky-Zerlegung. Ein einzelner Schritt der Cholesky-Zerlegung lässt sich über das äußere Produkt darstellen: α vT β β −1 · v T β 0 1 0 A= = −1 · · v B β · v In−1 0 B − α−1 · vv T 0 In−1 mit β := α1/2 . Dieser Prozess kann dann mit B−α−1 ·vv T rekursiv fortgesetzt werden. Die dabei auftretenden Matrizen sind verallgemeinerte Frobenius-Matrizen (β als Diagonaleintrag). Aufgrund der Symmetrie ist dabei der Aufwand halb so groß wie bei der allgemeinen LR- Zerlegung: 1 NChol (n) = n3 + O(n2 ) 3 81 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme Diagonaldominante Matrizen Definition 5.23 (Diagonaldominanz). Eine Matrix A ∈ Rn×n heißt diagonaldominant, falls X |aij | ≤ |aii | i = 1, . . . , n j6=i und strikt diagonaldominant, falls die Summe echt kleiner ist. (vgl. mit Kriterium der Gerschgorin-Kreise, was folgt dann für A?) Satz 5.24. Diagonaldominante reguläre Matrizen erlauben eine LR-Zerlegung ohne Pivotisie- rung. Beweis: Tafel Rangbestimmung und Determinante Für eine allgemeine, nicht unbedingt reguläre Matrix A ∈ Rn×n lässt sich die LR-Zerlegung ebenfalls durchführen, sie bricht aber evtl. mangels Pivotelement frühzeitig ab. • Wenn dies bei totaler Pivotisierung nach k Schritten passiert, dann hat A Rang k. • Da die Einträge aufgrund von Fehlern nie exakt Null werden, muss mit einer Toleranz gearbeitet werden. Falls A Vollrang haben sollte, kann man wegen det(A) = det(P T LR) = det(P T ) · det(L) · det(R) = ± det(R) über die LR-Zerlegung die Determinante von A berechnen (das Vorzeichen hängt davon ab, ob P eine gerade oder ungerade Permutation repräsentiert). 82 5.6 Spezielle Systeme Inversenberechnung Die Inverse einer Matrix A ∈ Rn×n kann wie folgt berechnet werden: • Berechne LR-Zerlegung (Aufwand 23 n3 + O(n2 )) • Löse Axi = ei , i = 1, . . . , n, für die kanonische Basis ei (Aufwand 2n · n2 : n Gleichungen, jeweils 2 Dreieckssysteme) • Forme Matrix der Urbilder: A−1 = [x1 , . . . , xn ] (spaltenweise) Der Gesamtaufwand einer solchen Matrixinversion ist daher 8 NInv (n) = n3 + O(n2 ) 3 Die Matrixinversion spielt in der Praxis keine Rolle — stattdessen beschränkt man sich auf Matrix-Vektor-Produkte mit A−1 ! Tridiagonalsysteme Definition 5.25 (Tridiagonalmatrix). Eine Matrix A ∈ Rn×n heißt Tridiagonalmatrix, falls aij = 0 für |i − j| > 1, 1 ≤ i ≤ n Eine Tridiagonalmatrix ist Spezialfall einer Bandmatrix mit aij = 0 für j < i − ml oder j > i + mr , 1 ≤ i ≤ n Falls sich die LR-Zerlegung einer Tridiagonal- bzw. Bandmatrix ohne Pivotisierung durchführen lässt, sind L und R ebenfalls tridiagonal bzw. Bandmatrizen der selben Bandbreite (ml , mr ). Rechnung für Tridiagonalmatrizen: Tafel 83 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme 5.7 Nichtreguläre Systeme Sei nun A ∈ Rm×n , b ∈ Rm , mit rang(A) beliebig. Dann hat Ax = b genau eine Lösung, gar keine Lösung, oder unendlich viele. Einige Grundbegriffe aus der linearen Algebra: Bild: im(A) = {y ∈ Rm | ∃ x ∈ Rn : y = Ax} Kern: ker(A) = {x ∈ Rn | Ax = 0} Rang: rang(A) = dim(im(A)) = rang(AT ) = dim(im(AT )) Orthogonales Komplement: im(A)⊥ = {y ∈ Rm | ∀ y 0 ∈ im(A) : (y, y 0 )2 = 0} Es gilt im(A)⊥ = ker(AT ) und daher dim(im(A)) + dim(ker(AT )) = m dim(im(AT )) + dim(ker(A)) = n Damit lässt sich der Lösungsbegriff für lineare Gleichungssysteme auf nichtreguläre Systeme erweitern. Least Squares Satz 5.26 (Least Squares). Für allgemeines A ∈ Rm×n , b ∈ Rm , existiert ein x̄ ∈ Rn , so dass kAx̄ − bk2 = minn kAx − bk2 . x∈R Diese Bedingung ist äquivalent dazu, dass x̄ Lösung der folgenden “Normalengleichung” ist: AT Ax̄ = AT b, AT A ∈ Rn×n Falls rang(A) = n (und damit zwingend m ≥ n), ist x̄ eindeutig, sonst hat jede weitere Lösung die Form x̄ + y mit y ∈ ker(A). 84 5.7 Nichtreguläre Systeme Beweis: Tafel AT A ist symmetrisch positiv semidefinit, also könnte man Least Squares prinzipiell über die Cholesky-Zerlegung lösen (mit symmetrischem Pivoting im nicht-definiten Fall). Aber dieses Problem ist i.A. sehr schlecht konditioniert: cond(AT A) ≈ cond(A)2 für m = n Daher verwendet man üblicherweise spezielle Zerlegungen, die ähnlich zur Cholesky-Zerlegung AT A = LLT = RT R zur Verfügung stellen, aber ohne AT A explizit aufzustellen. Householdermatrizen Definition 5.27 (Householderreflektion). Sei v 6= 0 ∈ Rn gegeben, dann heißt die Matrix vv T Qv = I − 2 vT v Householdermatrix oder Householderreflektion. Dabei ist vv T das äußere Produkt, also eine Matrix mit Rang 1, und v T v das innere Produkt, also eine Zahl. Beachte: jedes Vielfache αv, α 6= 0, von v führt auf die gleiche Matrix Qv (Skaleninvarianz). Hilfssatz 5.28. Eine Householdermatrix Qv hat die folgenden Eigenschaften: • Qv ist orthogonal und symmetrisch, d.h. QTv = Q−1 v = Qv • Es gilt für x ∈ Rn : vT x Qv x = x − 2βv, β= ∈R vT v • Speziell gilt x = αv =⇒ Qv x = −x • (x, v)2 = 0 =⇒ Qv x = x • Als Operator aufgefasst bewirkt Qv eine Reflektion an der Ebene mit Normale v 85 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme Beweis: Tafel Sei x 6= 0 ∈ Rn , und sei v := x ± kxk2 e1 , dann gilt Qv x = ∓2kxk2 e1 Wenn x die erste Spalte einer Matrix A ist, dann eliminiert also eine Multiplikation von A mit Qv alle Einträge ai1 , i > 1. Das heißt, dass Householdermatrizen Qv genauso wie Frobeniusmatrizen Gk benutzt werden können, um eine Matrix auf Dreiecksgestalt zu bekommen. Für die Rekursion beschränkt man das obige Vorgehen auf die entsprechenden Unterräume. QR-Zerlegung Satz 5.29 (QR-Zerlegung). Zu jeder Matrix A ∈ Rm×n mit m ≥ n und rang(A) = n existiert eine orthogonale Matrix Q ∈ Rm×m und eine obere Dreiecksmatrix R ∈ Rm×n , so dass A = QR. Diese Zerlegung kann durch n − 1 Multiplikationen mit Householdermatrizen berechnet werden. Die ersten n Spalten von Q bilden eine orthonormale Basis von im(A). Beweis: Tafel Anmerkungen Bemerkung 5.30 (Anmerkungen zur QR-Zerlegung). • Um Auslöschung zu vermeiden, wird das Vorzeichen in v meist so gewählt, dass sich das Vorzeichen des Diagonalein- trags nicht ändert. Falls dieser Eintrag Null ist, kann beliebig eines der beiden Vorzeichen gewählt werden. • Analog zu P bei der LR-Zerlegung wird Q nicht explizit aufgestellt, man skaliert die Nor- malenvektoren vi jeweils so, dass der erste Eintrag Eins ist, und speichert sie dann in der linken unteren Hälfte von A (so wie zuvor die Einträge von L). • Für die Matrix Q−1 = QT existiert, wie wir gesehen haben, eine einfache und effizi- ente Darstellung: sie ist das Produkt der gleichen Qv wie Q selbst, nur in umgekehrter Reihenfolge. • Die QR-Zerlegung benötigt den doppelten Aufwand der LR-Zerlegung: 4 NQR = n3 + O(n2 ) 3 86 5.7 Nichtreguläre Systeme • Man kann zeigen dass die QR-Zerlegung rückwärtsstabil ist, man erhält für die numerisch berechneten Matrizen Q b und R: b b·R Q b =A+H mit kHk ≈ eps · kAk Insbesondere treten hier keine problematischen Terme auf. Das gleiche gilt für das Lösen mittels QR-Zerlegung. Lösen nichtregulärer Systeme 1. Fall m > n (überbestimmt) und rang(A) = n: Nach Satz 5.29 existiert QR-Zerlegung A = QR. A = QR =⇒ AT A = (QR)T QR = RT QT QR = RT R also AT Ax̄ = AT b ⇐⇒ RT Rx̄ = RT QT b Seien R e und Qe die ersten n Zeilen von R, R = R , bzw. Spalten von Q, Q = [QQ e ∗ ], e 0 dann gilt (Rückwärtseinsetzen) Rx̄ e =Qe T b ⇐⇒ AT Ax̄ = AT b 2. Fall m < n (unterbestimmt) und rang(A) = m: Nach Satz 5.29 existiert QR-Zerlegung AT = QR. AT = QR =⇒ AT A = QR(QR)T = QRRT QT also AT Ax = AT b ⇐⇒ QRRT QT x = QRb ⇐⇒ RRT QT x = Rb Seien Re und Q e die ersten m Zeilen von R bzw. Spalten von Q, dann gilt (Rückwärts- einsetzen) eT Q R e T x̄ = b =⇒ AT Ax̄ = AT b Die so bestimmte Lösung x̄ ist jene mit minimaler Norm kx̄k2 . 87 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme 3. Fall m = n (quadratisch) und rang(A) = n: Nach Satz 5.29 existiert QR-Zerlegung A = QR. Da A Vollrang hat, gilt AT Ax̄ = AT b ⇐⇒ Ax̄ = b ⇐⇒ QRx = b Die Least-Squares-Lösung ist also die normale Lösung des Systems, und kann über die QR-Zerlegung berechnet werden. Überbestimmte, quadratische und unterbestimmte Systeme mit maximalem Rang haben also immer eine eindeutig bestimmte Least-Squares-Lösung x̄, für die kx̄k2 minimal ist (in den ersten beiden Fällen, weil es nur eine solche Lösung gibt). Diese lässt sich jeweils mittels der QR-Zerlegung berechnen. 4. Fall rang(A) < min{m, n} (rangdefizitär): Eine solche Lösung mit minimaler Norm gibt es immer, auch wenn der Rang von A nicht maximal ist, allerdings hängt sie nicht mehr stetig von der Problemstellung ab. Kleine Störungen in A oder b führen dann zu beliebig großen Änderungen in x̄ (da die ge- störte Matrix praktisch garantiert regulär ist). So etwas nennt man ein schlecht gestelltes Problem. Moore-Penrose-Inverse Das QR-Verfahren berechnet jeweils die Lösung der Gleichung x̄ = A+ b mit der Moore-Penrose- Inversen A+ von A, gegeben durch −1 T falls m > n und rang(A) = n T (A A) A −1 A+ = AT (AAT ) falls m < n und rang(A) = m falls m = n und rang(A) = n −1 A Für die verbleibenden Fälle (rangdefizitär) ist die Pseudoinverse A+ zwar ebenfalls eindeutig, es gibt aber keine einfache geschlossene Formel, und sie hängt nicht stetig von Änderungen in A ab. 88 5.7 Nichtreguläre Systeme Anwendung: Ausgleichsrechnung Problemstellung der Gaußschen Ausgleichsrechnung: Gegeben: 1. n Funktionen u1 , . . . , un : R → R 2. m ≥ n Datenpunkte (xi , yi ) ∈ R2 , 1 ≤ i ≤ m Gesucht: n Koeffizienten c1 , . . . , cn , so dass n X m X y = u(x) = cj · uj (x) und (u(xi ) − yi )2 minimal j=1 i=1 “Modell” für die Abhängigkeit der Größe y vom Parameter x, mit {u1 , . . . , un } als Ansatz- raum. Formuliere im Rahmen der Linearen Algebra: c = (c1 , . . . , cn )T , y = (y1 , . . . , ym )T , A mit aij = uj (xi ) Dann gilt 2 m X m X Xn (u(xi ) − yi )2 = cj · uj (xi ) − yi = kAc − yk22 i=1 i=1 j=1 Optimale Lösung ist also durch Normalengleichung gegeben: n X u(x) := c̄j · uj (x) mit AT Ac̄ = AT y j=1 • Für m > n, rang(A) = n gibt es eine optimale Kombination der uj , z.B. eine Ausgleichs- gerade y = u(x) = c1 + c2 · x, die die gegebenen Datenpunkte so gut wie möglich repräsentiert (aber i.A. nicht durch die Punkte geht). • Für m = n, rang(A) = n kann das Modell die Datenpunkte exakt darstellen. Im Rahmen der Polynominterpolation werden wir diesen Fall genauer betrachten. • Die Rangdefizienz rang(A) < n entspricht hier einer Redundanz im Modell, d.h. die gleichen Datenpunkte lassen sich auf völlig verschiedene Weisen darstellen. 89 5 Eliminationsverfahren zur Lösung linearer Gleichungssysteme • Ein recht künstliches, aber leicht interpretierbares Beispiel ist u1 (x) = x + 1, u2 (x) = x − 1, u3 (x) = 1 mit einer größeren Zahl Datenpunkten (xi , xi ), 1 ≤ i ≤ n ∈ N. Die Vektoren (1, 0, −1)T und (0, 1, 1)T sind beides gültige Lösungen, und kleine Fehler in den Daten sorgen dafür, dass jeweil einer dieser beiden völlig verschiedenen Vektoren gewählt wird. Singulärwertzerlegung (SVD) Satz 5.31 (Singulärwertzerlegung). Sei A ∈ Rm×n , dann gibt es orthogonale Matrizen U ∈ Rm×m und V ∈ Rn×n und eine Diagonalmatrix D = diag(σ1 , . . . , σp ) ∈ Rm×n mit σ1 ≥ σ2 ≥ · · · ≥ σp ≥ 0 und U T AV = D (und daher A = U DV T ) Die Einträge von D heißen Singulärwerte, sie sind bis auf die Reihenfolge eindeutig. Die Spalten von U und V heißen (linke und rechte) Singulärvektoren. Beweis: Tafel Anmerkungen Anmerkungen zur Singulärwertzerlegung (SVD): • Die SVD kann als Verallgemeinerung der Diagonalisierung von symmetrisch positiv se- midefiniten Matrizen betrachtet werden. • Die SVD zerlegt eine beliebige Matrix A in eine sehr einfache und elegante Kette von drei Operationen: Drehung / Spiegelung — Streckung — Drehung / Spiegelung • Trotz ihrer praktischen Relevanz kann hier auf die Berechnung der SVD aus Zeitgründen nicht weiter eingegangen werden. 90 5.7 Nichtreguläre Systeme Vergleich der Verfahren Alle vorgestellten Verfahren sind zur Lösung regulärer Systeme Ax = b geeignet. Welches sollte man verwenden? Hier eine Gegenüberstellung: Methode Einschränkung Stabilität Aufwand T (n) LR-Zerlegung A quadratisch mit Pivot. 2/3 · n3 Cholesky A s.p.d. stabil 1/3 · n3 QR-Zerlegung — sehr stabil 4/3 · n3 SVD — sehr stabil 12 · n3 LR- und Cholesky-Zerlegung sind am effizientesten, aber die QR-Zerlegung kann sich aus Grün- den der Stabilität anbieten. Die SVD wird bei speziellen Anwendungen verwendet, wo der hohe Aufwand gerechtfertigt ist. 91 6 Interpolation und Approximation 6 Interpolation und Approximation 6.1 Einführung Ziel: Darstellung und Auswertung von Funktionen im Rechner. Anwendungen: • Rekonstruktion eines funktionalen Zusammenhangs aus “gemessenen Funktionswerten”, Auswertung an Zwischenstellen • Teuer auszuwertende Funktionen effizienter auswerten • Darstellung von Fonts (2D), Körpern (3D) im Rechner • Lösung von Differential- und Integralgleichungen • Datenkompression Wir beschränken uns auf Funktionen in einer Variablen, z.B. f ∈ C r [a, b] Dies ist ein unendlichdimensionaler Funktionenraum. Im Rechner betrachten wir Funktionen- klassen, die durch endlich viele Parameter bestimmt sind (nicht unbedingt lineare Unterräume), z.B.: p(x) = a0 + a1 x + · · · + an xn (Polynome) a0 + a1 x + · · · + an xn r(x) = (rationale Funktionen) b0 + b1 x + · · · + bm xm n 1 X t(x) = a0 + (ak cos(kx) + bk sin(kx)) (trigonom. Polynome) 2 k=1 n X e(x) = ak exp(bk x) (Exponentialsumme) k=1 Approximation Grundaufgabe der Approximation: Gegeben eine Menge von Funktionen P (Polynome, rationale Funktionen, . . . ) und eine Funk- tion f (z.B. f ∈ C[a, b]), finde g ∈ P , so dass der Fehler f − g in geeigneter Weise minimiert wird. 92 6.2 Polynominterpolation Beispiele: Z b 1/2 2 (f − g) dx → min (2-Norm) a max |f (x) − g(x)| → min (∞-Norm) a≤x≤b max |f (xi ) − g(xi )| → min für a ≤ xi ≤ b, i = 0, . . . , n i∈{0,...,n} Interpolation Man spricht von Interpolation, wenn g durch g(xi ) = yi := f (xi ) i = 0, . . . , n festgelegt wird. Dies ist ein Spezialfall der Approximationsaufgabe: • Der Fehler f − g wird nur in den Stützstellen xi , i = 0, . . . , n, betrachtet. • In diesen endlich vielen Punkten muss die Abweichung nicht nur minimal, sondern Null sein. 6.2 Polynominterpolation Pn sei die Menge der Polynome über R vom Grad kleiner gleich n ∈ N0 : n X Pn := {p(x) = ai xi | ai ∈ R} i=0 Pn ist ein n + 1-dimensionaler Vektorraum. Die Monome 1, x, x2 , . . . , xn bilden eine Basis von Pn . Zu gegebenen (paarweise verschiedenen) n + 1 Stützstellen x0 , x1 , . . . , xn ist die Interpolations- aufgabe dann Finde p ∈ Pn : p(xi ) = yi := f (xi ), i = 0, . . . , n 93 6 Interpolation und Approximation Das ist äquivalent zum linearen Gleichungssystem x0 x20 · · · xn0 1 a0 y0 1 x1 x21 · · · xn1 a1 y1 .. .. .. . . .. · .. = .. . . . . . . . 1 xn x2n · · · xnn an yn | {z } =:V [x0 ,...,xn ] Die Matrix V [x0 , . . . , xn ] • heißt Vandermonde-Matrix • ist genau dann regulär, wenn alle xi paarweise verschieden sind • ist schlecht konditioniert: cond∞ (V ) = O(2n ) für xi positiv! • benötigt Rechenaufwand in O(n3 ) zum Lösen des LGS Problem: Aufstellen der Vandermonde-Matrix V [x0 , . . . , xn ] und anschließendes Lösen mit den vorgestell- ten Verfahren ist wegen der sehr schlechten Kondition nicht zu empfehlen. Geht das auch besser und einfacher? Ursache ist die Wahl der Monombasis 1, x, x2 , . . . , xn , die auf eine sehr ungünstige Formu- lierung der Interpolationsaufgabe führt. Im folgenden werden wir uns mögliche Alternativen anschauen. Langrange-Interpolation Definition 6.1 (Lagrange-Polynome). Zu den paarweise verschiedenen Stützstellen xi , i = 0, . . . , n, definiere die sog. Lagrange-Polynome: (n) Y x − xj Li (x) := , i = 0, . . . , n (n + 1 Stück) xi − xj j6=i (n) Die Li haben Grad n, es gilt ( (n) 1 i=k Li (xk ) = δik = 6 k 0 i= (n) und die Li bilden eine Basis von Pn . Beweis: Tafel 94 6.2 Polynominterpolation Existenz und Eindeutigkeit In der Lagrange-Basis sind die gesuchten Koeffizienten ai gerade die Werte in den Stützstellen: ai = yi . Die Interpolationsaufgabe ist so also besonders einfach zu lösen. Satz 6.2 (Eindeutigkeit der Polynominterpolation). Zu gegebenen paarweise verschiedenen Stützstellen x0 , . . . , xn gibt es genau ein Polynom p vom Grad n mit p(xi ) = yi i = 0, . . . , n, yi ∈ R Die Interpolationsaufgabe ist also eindeutig lösbar. Beweis: Tafel Newton-Darstellung Nachteil der Lagrange-Polynome: Hinzufügen einer Stützstelle ändert alle bisherigen Basispolynome. Eignet sich daher nicht für die “inkrementelle” Erstellung des Interpolationspolynoms. Besser ist hier die Newton-Darstellung mit Basispolynomen i−1 Y N0 (x) = 1; i = 1, . . . , n : Ni (x) = (x − xj ) j=0 Ni hat jeweils Grad i, es gilt ∀k < i : Ni (xk ) = 0 und die N0 , . . . , Nn bilden eine Basis von Pn . Gestaffelte Berechnung In x0 sind alle Newton-Basispolynome bis auf N0 Null, in x1 alle bis auf N0 und N1 , usw. Die Interpolationsaufgabe n X k X p(xk ) = ai Ni (xk ) = ai Ni (xk ) = yk k = 0, . . . , n i=0 i=0 führt daher auf die folgende gestaffelte Berechnung: k−1 " # X a0 = y0 ; k = 1, . . . , n : ak = yk − ai Ni (xk ) /Nk (xk ) i=0 95 6 Interpolation und Approximation Hintergrund Die Polynominterpolation in der Sprache der Linearen Algebra: • Die Monombasis xi , i = 0, . . . , n, führt auf eine Matrix V [x0 , . . . , xn ] (Vandermonde- Matrix), die dicht besetzt und sehr schlecht konditioniert ist. (n) • Die Lagrange-Basis Li , i = 0, . . . , n, führt stattdessen auf eine Einheitsmatrix, so dass die Lösung trivial ist. Eine Erweiterung der Stützstellen ändert aber alle Basisfunktionen. • Die Newton-Basis Ni , i = 0, . . . , n, wiederum führt auf eine untere Dreiecksmatrix. Die gestaffelte Berechnung entspricht daher gerade dem Vorwärtseinsetzen. Das Lösen ist aufwendiger als bei der Lagrange-Basis, weitere Stützstellen führen aber nur zu einer Erweiterung der unteren Dreiecksmatrix. Dividierte Differenzen Satz 6.3 (Dividierte Differenzen). Man definiert rekursiv die sog. “dividierten Differenzen” ∀i = 0, . . . , n : y[xi ] := yi (Werte an den Stützstellen) ∀k = 1, . . . , n − i : y[xi+1 , . . . , xi+k ] − y[xi , . . . , xi+k−1 ] y[xi , . . . , xi+k ] := xi+k − xi Dann gilt n X p(x) = y[x0 , . . . , xi ]Ni (x) i=0 Beweis: [Rannacher] Die dividierten Differenzen ordnet man in einem Tableau an: y0 = y[x0 ] → y[x0 , x1 ] → y[x0 , x1 , x2 ] → y[x0 , x1 , x2 , x3 ] % % % y1 = y[x1 ] → y[x1 , x2 ] → y[x1 , x2 , x3 ] % % y2 = y[x2 ] → y[x2 , x3 ] % y3 = y[x3 ] In der ersten Zeile finden sich dann die gesuchten Koeffizienten ai , i = 0, . . . , n, der Basispoly- nome. Diese Form der Berechnung benötigt die Werte der Ni (xk ) nicht und ist zudem stabiler. 96 6.2 Polynominterpolation Beispiel Beispiel 6.4. Gegeben seien die folgenden Paare von Stützstellen und Werten: (x0 = 0, y0 = 1), (x1 = 1, y1 = 4), (x2 = 2, y2 = 3) Die Monombasis führt auf das Gleichungssystem 1 0 0 a0 1 1 1 1 · a1 = 4 1 2 4 a2 3 mit der Lösung [1, 5, −2]T , also p(x) = 1 + 5 · x − 2 · x2 Die Lagrange-Basis führt bei diesen Werten auf (2) (2) (2) p(x) = 1 · L0 (x) + 4 · L1 (x) + 3 · L2 (x) x−1 x−2 x−0 x−2 x−0 x−1 =1· · +4· · +3· · 0−1 0−2 1−0 1−2 2−0 2−1 1 3 = · (x − 1) · (x − 2) − 4 · x · (x − 2) + · x · (x − 1) 2 2 Die einzelnen Basispolynome können für eine gegebene Menge von Stützstellen x0 , . . . , xn einmal ausmultipliziert werden, danach sind weitere Interpolationsaufgaben leicht zu lösen. Für die Newton-Basis ergibt sich das Tableau 4−1 (−1)−3 y0 = a0 = 1 → a1 = 1−0 = 3 → a2 = 2−0 = −2 % % 3−4 y1 = 4 → 2−1 = −1 % y2 = 3 und daher p(x) = 1 · N0 (x) + 3 · N1 (x) − 2 · N2 (x) = 1 + 3 · x − 2 · x · (x − 1) Eine weitere Stützstelle kann hier leicht hinzugefügt werden. 97 6 Interpolation und Approximation Auswertung von Polynomen Um ein Polynom der Form n X p(x) = ai xi = a0 + a1 x + · · · + an xn i=0 an einer Stelle x auszuwerten, verwendet man aus Effizienz- und Stabilitätsgründen das sog. Horner-Schema: bn := an ; k = n − 1, . . . , 0 : bk := ak + x · bk+1 ; p(x) = b0 Für ein Polynom in Newton-Darstellung n X p(x) = ai Ni (x) = a0 + a1 N1 (x) + · · · + an Nn (x) i=0 ergibt sich analog die Rekursion bn := an ; k = n − 1, . . . , 0 : bk := ak + (x − xk ) · bk+1 ; p(x) = b0 Interpolationsfehler Sei yi = f (xi ), i = 0, . . . , n, die Auswertung einer Funktion f an n + 1 paarweise verschiedenen Stützstellen, und p(x) das Polynom vom Grad n, das die zugehörige Interpolationsaufgabe löst. Die Differenz e(x) := f (x) − p(x) erfüllt nach Konstruktion die Bedingung e(xi ) = 0 für i = 0, . . . , n Frage: Wie groß kann die Differenz an anderen Stellen werden? Satz 6.5 (Interpolationsfehler). Sei f (x) n + 1-mal stetig differenzierbar auf [a, b] und a ≤ x0 < x1 < · · · < xn ≤ b. Dann gibt es zu jedem x ∈ [a, b] ein ξx ∈ (x0 , . . . , xn , x) (kleinstes Intervall, das alle diese Punkte enthält), so dass n f (n+1) (ξx ) Y f (x) − p(x) = (x − xj ) (n + 1)! j=0 Beweis: Tafel 98 6.2 Polynominterpolation Anmerkungen Für den Spezialfall äquidistanter Stützstellen, d.h. xk+1 − xk = h für k = 0, . . . , n − 1, gilt damit |f (x) − p(x)| ≤ |f (n+1) (ξx )| · hn+1 Für |f (n+1) | beschränkt und n → ∞ gilt also |f (x) − p(x)| → 0. Allerdings sind die höheren Ableitungen auch einfacher Funktionen für n → ∞ oft nicht be- schränkt, sondern wachsen sehr schnell. Runges Gegenbeispiel 1 0.5 0 -0.5 -1 -1 -0.5 0 0.5 1 −1 Polynominterpolation von Runges Funktion f (x) = (1 + 25x2 ) mit äquidistanten Stützstellen (3, 5, 9, 17 bzw. 33 Wertepaare). Die Minima / Maxima der letzten beiden Polynome sind −14.35/1.40 bzw. −5059/2.05 (!). Anmerkungen Bemerkung 6.6. Laut Approximationssatz von Weierstraß lässt sich jede Funktion aus C 0 ([a, b]) gleichmäßig durch Polynome approximieren. Die beobachteten Phänomene sind kein Widerspruch, denn: • Die Approximation muss nicht durch Interpolation erfolgen (der Beweis nutzt Bernstein- Polynome). 99 6 Interpolation und Approximation • Mit nicht-äquidistanten Stützstellen erhält man bereits deutlich bessere Ergebnisse (wenn man weiß, wie sie zu wählen sind. . . ). Bemerkung 6.7. Allgemein gilt für “Methoden hoher (Polynom-) Ordnung”, dass entsprechen- de Differnzierbarkeit vorliegen muss. Konditionierung Wenn p(x; y) das Interpolationspolynom zu den Ordinatenwerten (y0 , . . . , yn )T und festen Ab- szissenwerten (x0 , . . . , xn )T ist, gilt n n (n) (n) X X p(x; y + ∆y) − p(x; y) = (yi + ∆yi )Li (x) − yi Li (x) i=0 i=0 n (n) X = ∆yi Li (x) i=0 Somit ist n (n) p(x; y + ∆y) − p(x; y) X Li (x)yi ∆yi = · p(x; y) p(x; y) yi i=0 (n) Für große n kann Li sehr groß werden, die Interpolationsaufgabe ist dann schlecht konditio- niert! 6.3 Anwendungen der Polynominterpolation Numerische Differentiation Problem: Berechne die Ableitung (der Ordnung k) einer tabellarisch gegebenen Funktion oder einer im Rechner gegebenen Funktion (im Sinne der Informatik). Idee: Erstelle Interpolationspolynom zu bestimmten Stützstellen, leite dieses ab und werte aus. Dabei sei zunächst Ableitungsordnung = Polynomgrad. Die Lagrange-Polynome sind (n) Y x − xj (xi − xj )−1 ·xn + αn−1 xn−1 + · · · + α0 , Y Li (x) = = xi − xj j6=i j6=i | {z } =:λi ∈R 100 6.3 Anwendungen der Polynominterpolation also liefert n-faches Differenzieren: dn (n) L (x) = n! · λi dxn i Somit gilt für die n-te Ableitung eines Interpolationspolynoms vom Grad n: n n ! dn X (n) X yi Li (x) = n! · yi λi (unabh. von x) dxn i=0 i=0 Eine Aussage über den entstehenden Fehler liefert: Satz 6.8. Sei f ∈ C n ([a, b]) und a = x0 < x1 < · · · < xn = b. Dann gibt es ξ ∈ (a, b), so dass n X f (n) (ξ) = n! · yi λ i i=0 Die über das Interpolationspolynom berechnete Ableitung stimmt also in mindestens einem Punkt mit der von f überein. Beweis: Tafel Für äquidistante Stützstellen, xi = x0 + ih, 0 ≤ i ≤ n, erhält man speziell n −n X n−i n y1 − y0 f (n) (x) ≈ h (−1) yi , z.B. f (1) (x) ≈ , i h i=0 y2 − 2y1 + y0 y3 − 3y2 + 3y1 − y0 f (2) (x) ≈ , f (3) (x) ≈ h2 h3 Mittels Taylorentwicklung zeigt man f (x + h) − f (x − h) f 0 (x) = + O(h2 ) für f ∈ C 3 , 2h f (x + h) − 2f (x) + f (x − h) f 00 (x) = + O(h2 ) für f ∈ C 4 h2 101 6 Interpolation und Approximation Extrapolation zum Limes Eine Größe a(h) sei im Rechner für h > 0 berechenbar, nicht jedoch für h = 0. Man möchte a(0) = lim a(h) h→0 mit guter Genauigkeit berechnen. Beispiel 6.9. Mögliche Anwendungen: 1. Regel von de l’Hospital: cos(x) − 1 a(0) = lim (= 0) h→0 sin(x) 2. Numerische Differentiation: f (x + h) − f (x) f 0 (x) = lim h→0 h (für kleine h tritt Auslöschung auf ) 3. Numerische Integration: Z b n X 1 f (x) = lim h·f a+ i− (b − a) · h a h→0 2 i=1 4. Numerische Lösung des Anfangswertproblems y 0 (t) = f (t, y(t)) auf [0, T ]; y(0) = y0 Setze h = N −1 ; yn = yn−1 + h · f (t, yn−1 ); y(T ) ≈ yN Hier ist h → 0 gleichbedeutend mit N → ∞ und entsprechend ansteigendem Aufwand. Grundlegende Idee Idee der Extrapolation: Zu h0 > h1 > · · · > hn > 0 bestimme Interpolationspolynom p(hi ) = a(hi ) i = 0, . . . , n und berechne a(0) ≈ p(0) (Extrapolation statt Interpolation, da 0 6∈ [hn , . . . , h0 ]) 102 6.3 Anwendungen der Polynominterpolation Beispiel Beispiel 6.10. Für a(h) = (cos(h) − 1) · (sin(h))−1 erhält man für h0 = 1/8 : a(h0 ) = −6.258151 · 10−2 h1 = 1/16 : a(h1 ) = −3.126018 · 10−2 h2 = 1/32 : a(h2 ) = −1.562627 · 10−2 (halbieren von h halbiert also a(h)), und bei Extrapolation mit einem Polynom p2 vom Grad 2: a(0) ≈ p2 (0) = −1.02 · 10−5 also sehr viel besser als die ursprünglich berechneten Näherungen oder eine mögliche direkte Auswertung für h 1 (Auslöschung)! Warum ist das so gut? Sei hi = h · ri mit r < 1 (geometrische Verteilung), z.B. r = 1/2, und sei p das Interpolations- polynom von a zu den Stützstellen hi . Dann gilt für den Fehler der Extrapolation |a(n+1) (ξ)| |p(0) − a(0)| ≤ kV −T k∞ hn+1 (n + 1)! · (1 − rn+1 ) mit der Vandermonde-Matrix V und ξ ∈ (0, h), sofern a hinreichend differenzierbar ist. Beweis: Tafel Extrapolation bei Ableitungen Entscheidend ist die Taylor-Entwicklung von a in Null (Mclaurin-Entwicklung). Für den be- kannten Differenzenquotienten der zweiten Ableitung erhält man f (x + h) − 2f (x) + f (x − h) a(h) = h2 h 2 h2n = f 00 (x) + f (4) (x) + · · · + f (2n+2) (x) 2 · 4! 2 · (2n + 2)! h2n+2 + [f (2n+4) (ξ+ ) + f (2n+4) (ξ− )] 2 · (2n + 4)! = px (h2 ) + O(h2(n+1) ) Man kann also (falls f hinreichend differenzierbar ist) mit jeder Auswertung sogar zwei h- Potenzen gewinnen! 103 6 Interpolation und Approximation 6.4 Bernstein-Polynome und Kurvendarstellung Bernstein-Polynome Wir gehen nun von der Interpolation zur Approximation über. Speziell für Kurven, d.h. Funktionen u(t) : [a, b] → Rd , haben sich die Bernstein-Polynome bewährt. Definition 6.11 (Bernstein-Polynome). Die Polynome (n) n βi (t) := (1 − t)n−i ti i = 0, . . . , n i heißen Bernstein-Polynome auf dem Interval [0, 1]. Mittels der affin-linearen Transformation t−a φ : [a, b] → [0, 1], p(t) = b−a definiert man zusätzlich Bernstein-Polynome auf einem allgemeinen Intervall [a, b]: (n) (N ) n βi,[a,b] (t) := βi (φ(t)) = (b − a)−n (b − t)n−i (t − a)i i Eigenschaften Satz 6.12 (Eigenschaften der Bernstein-Polynome). Die Bernstein-Polynome haben die fol- genden Eigenschaften: 1. Zerlegung der Eins: n (n) X βi (t) = 1 i=0 (n) 2. t = 0 ist i-fache Nullstelle von βi (n) 3. t = 1 ist (n − i)-fache Nullstelle von βi 4. Symmetrie: (n) (n) βi (t) = βn−i (1 − t) 5. Positivität: (n) (n) 0 ≤ βi (t) ≤ 1 für t ∈ [0, 1], 0 < βi (t) für t ∈ (0, 1) (n) 6. βi , n 6= 0, hat in [0, 1] genau ein Maximum in i/n. 104 6.4 Bernstein-Polynome und Kurvendarstellung (n) 7. Die βi sind lin. unabh. und bilden eine Basis von Pn . 8. Die Bernstein-Polynome erlauben eine rekursive Darstellung: (n−1) (1 − t)β0 (t) i=0 (n) (n−1) (n−1) βi (t) = tβi−1 (t) + (1 − t)βi (t) 0<i<n (n−1) tβn−1 (t) i=n 9. Für die erste Ableitung gilt die Rekursionsformel: (n−1) d (n) −nβ0 (t) i=0 β = n[βi−1 (t) − βi(n−1) (t)] (n−1) 0<i<n dt i (n−1) nβn−1 (t) i=n Achtung: mit dem Superskript sind hier jeweils die Grade der Polynome gemeint, nicht höhere Ableitungen! Zusammenfassend bilden die Bernstein-Polynome eine “Konvexkombination” (positive Zerle- gung der Eins) mit zusätzlicher Symmetrieeigenschaft und rekursiver Darstellung. Beweis: Tafel Graphische Darstellung Bernstein-Polynome vom Grad 5: 1 0.8 0.6 0.4 0.2 0 0 0.2 0.4 0.6 0.8 1 105 6 Interpolation und Approximation Approximation mit Bernstein-Polynomen Approximation des Datenvektors y = (0, 8, 6, 2, 0, 8)T mit Bernstein-Polynomen: 8 7 6 5 4 3 2 1 0 0 0.2 0.4 0.6 0.8 1 Die Daten werden nirgends im Intervall interpoliert, stattdessen hat jeder Datenpunkt einen “Bereich des Einflusses”. Bézier-Kurven Kurvendarstellung mittels Bernstein-Polynomen: Definition 6.13 (Bézier-Kurven). Für gegebene Punkte b0 , . . . , bn ∈ Rd heißt das vektorwertige Polynom n (n) X B(t) := bi βi (t) i=0 Bézier-Kurve. Bézier war Ingenieur bei Renault, und die nach ihm benannten Kurven sind die Grundlage von Vektorgraphiken. Beispiel Beispiel 6.14. Betrachte die Punkte b0 = (0, 0)T , b1 = (1/3, −1)T , b2 = (2/3, −1)T und b3 = (1, 1)T , die zugehörige Bézier-Kurve ist: 3 X (3) t B(t) = bi βi (t) = t + 3t2 − 3t 3 i=0 106 6.4 Bernstein-Polynome und Kurvendarstellung (1,1) (0,0) (1/3,-1) (2/3,-1) Eigenschaften Es gelten folgende Eigenschaften: 1. Die Bézier-Kurve B(t) liegt in der konvexen Hülle der Bézier-Punkte b0 , . . . , bn . 2. Es ist B(0) = b0 und B(1) = bn . 3. Die Ableitung (Tangente der Kurve) hat an den Endpunkten die Richtung (b1 − b0 ) bzw. (bn − bn−1 ). Dadurch sind also glatte, lokalisierte Kurven mit klar definierten Enden gegeben. Bernstein-Polynome erlauben eine gute Kontrolle über die Werte eines Polynoms durch dessen Koeffizienten. Vergleich mit anderen Polynombasen: • Monom- und Newton-Basis: keine einfache Kontrolle der Werte • Langrange-Basis: exakte Kontrolle an den Stützstellen, dazwischen aber (sehr) große Ab- weichungen Pn (n) • Bernstein-Basis: min{bi } ≤ i=0 bi βi ≤ max{bi } Das ist eine direkte Folge der Konvexkombination. 107 6 Interpolation und Approximation Algorithmus von de Casteljau (0) (0) Für gegebene Bézier-Punkte b0 , . . . , bn ergibt sich mittels der Rekursionsformel aus Satz 6.12: n n−1 (0) (n) (0) (0) (n−i) X X B(t) = bi βi (t) = [bi (1 − t) + bi+1 (t)] βi (t) i=0 i=0 | {z } (1) =:bi Rekursiv setzt man daher die (von t abhängigen) “Koeffizienten” (k) bi := b(k−1) i (k−1) (1 − t) + bi+1 t 0 < k ≤ n, 0 ≤ i ≤ n − k, (n) um B(t) = b0 zu berechnen. Dieser Algorithmus ist nach de Casteljau, Physiker und Mathematiker bei Citroën, benannt. Die Struktur der Auswertung ist mit den dividierten Differenzen vergleichbar: (0) (1) (2) (3) b0 = b0 → b0 → b0 → b0 = B(t) % % % (0) (1) (2) b1 = b1 → b1 → b1 % % (0) (1) b2 = b2 → b2 % (0) b3 = b3 Bei fester Wahl von t ist damit auch ein Verfahren gegeben, um eine Bézier-Kurve in zwei Teilkurven zu zerlegen. Die neuen Bézier-Punkte sind (0) (1) (n) (n) (n−1) b0 , b0 , . . . , b0 bzw. b0 , b1 , . . . , b(0) n (die ersten bzw. letzten Punkte der Rekursionsebenen). (0) (n) (0) Offensichtlich liegen die Start- / Endpunkte b0 , b0 und bn auf der Kurve. Dass die Kurven (j) sich auch tatsächlich überlagern, ist eine Folge der Berechnung der bi und der rekursiven Darstellung der Bernstein-Polynome. Beispiel Am besten lässt sich das an der graphischen Darstellung erkennen: Beispiel 6.15. Zerlegung der Kurve aus Beispiel 6.14 an der Stelle t = 1/3, bzw. Auswertung an dieser Stelle: rekursives Dritteln der Verbindungslinien, resultierende neue Punkte in rot und blau. 108 6.5 Splines 6.5 Splines Wir kehren jetzt wieder zur Interpolation zurück. Bis jetzt galt: • Anzahl Stützstellen = Polynomgrad +1 • Viele Stützstellen =⇒ hoher Polynomgrad =⇒ evtl. starke Abweichung zwischen den Stützstellen Idee: Benutze stückweise Polynome niedrigen Grades. Definition 6.16 (Spline-Raum). Sei X = (x0 , x1 , . . . , xn ) mit a = x0 < x1 < · · · < xn = b eine Zerlegung des Intervalls [a, b] und sei m ∈ N. Die Menge S m (X) := {s ∈ C m−1 ([a, b]) : s|[xi ,xi+1 ] ∈ Pm , 0 ≤ i < n} heißt Spline-Raum vom Grad m über der Zerlegung X. Beispiel Beispiel 6.17. s ∈ S 1 (X) bedeutet: • s ist auf jedem Teilintervall [xi , xi+1 ] ein Polynom vom Grad 1 • S 1 (X) ⊂ C 0 ([a, b]), also ist s stetig 109 6 Interpolation und Approximation Dieser Vektorraum ist relevant beim Lösen partieller Differentialgleichungen, und wird dort als Finite-Elemente-Raum P1 bezeichnet. Kubische Splines In der Praxis ist S 3 (X) sehr beliebt. S 3 (X) heißt Raum der kubischen Splines. Geschichte: “Straklatte” zur Konstruktion glatter Kurven im Schiffs- und Flugzeugbau. Ein dünnes Balsaholz biegt sich unter Energieminimierung b |y 00 (t)|2 b Z Z 2 = dt ≈ |y 00 (t)| dt → min a 1 + |y 0 (t)| a Quelle: Pearson Scott Foresman, gemeinfrei 110 6.5 Splines Eine Funktion s ∈ S 3 (X) besteht stückweise aus n Polynomen: ( pi (x) x ∈ [xi−1 , xi ), i ∈ {1, . . . , n} s(x) = pn (xn ) x = xn (Intervalabschluss) Für die Polynome pi gelten folgende Bedingungen: • Interpolationsbedingung (Stetigkeit) in allen Punkten: ( pi (xi−1 ) = yi−1 2n Bedingungen: i = 1, . . . , n : pi (xi ) = yi • Stetigkeit von erster und zweiter Ableitung an inneren Punkten: ( p0i (xi ) = p0i+1 (xi ) 2(n − 1) Bedingungen: i = 1, . . . , n − 1 : p00i (xi ) = p00i+1 (xi ) =⇒ zusammen 4n − 2 Bedingungen Man hat 4n Freiheitsgrade, pro Polynom pi vier (da Grad 3). Die fehlenden 2 Bedingungen erhält man als Randbedingungen an den Stellen x0 und xn . Dabei gibt es verschiedene Varianten: 1. “Natürliche” Randbedingungen, “Krümmung Null”: p001 (x0 ) = p00n (xn ) = 0 2. Hermite-Randbedingungen: p01 (x0 ) = f 0 (x0 ), p0n (xn ) = f 0 (xn ) (f ist die zu interpolierende Funktion) 3. Periodische Randbedingungen: p01 (x0 ) = p0n (xn ), p001 (x0 ) = p00n (xn ) Wir behandeln im folgenden nur die natürlichen Randbedingungen. 111 6 Interpolation und Approximation Kubische Splines Kubische Splines mit natürlichen Randbedingungen lassen sich über eine Minimierungseigen- schaft charakterisieren: Zu gegebenen Funktionswerten f (xi ) = yi ist der natürliche kubische Spline unter den die Werte interpolierenden Funktionen aus C 2 ([a, b]) jene, die das Funktional Z b 2 |f 00 (x)| dx a minimiert, und somit durch eine besonders geringe Oszillation ausgezeichnet ist. Beweis: [Rannacher] Berechnung kubischer Splines Wir schreiben die Teilpolynome eines kubischen Splines in der Form (i) (i) (i) (i) pi (x) = a0 + a1 (x − xi ) + a2 (x − xi )2 + a3 (x − xi )3 , i = 1, . . . , n und nehmen natürliche Randbedingungen an, also p001 (x0 ) = p00n (xn ) = 0 Dadurch ist der Spline wie eben gezeigt eindeutig festgelegt, aber: (i) Wie bestimmt man die lokalen Koeffizienten aj ? Satz 6.18 (Berechnung kubischer Splines). Definiere die lokale Maschenweite hi := xi − xi−1 (0) (n) (i) und a2 = a2 = 0. Die Koeffizienten a2 der gewählten Darstellung des kubischen Splines sind dann die Lösung des linearen Gleichungssystems (i−1) (i) (i+1) yi+1 − yi yi − yi−1 hi a2 + 2(hi + hi+1 )a2 + hi+1 a2 =3 − hi+1 hi der Dimension n − 1. Die restlichen Koeffizienten ergeben sich zu: (i) (i−1) (i) (i) yi − yi−1 hi (i) (i−1) (i) a2 − a2 a0 = yi , a1 = + (2a2 + a2 ), a3 = hi 3 3hi Beweis: Tafel 112 6.5 Splines Lösung des Tridiagonalsystems Zur Lösung des entstehenden Tridiagonalsystems: • Die Gaußelimination / LR-Zerlegung hat in diesem Fall Aufwand O(n) (Bandstruktur) • Das Gleichungssystem ist symmetrisch und strikt diagonaldominant: X |aij | < |aii | j6=i Die Koeffizienten können also effizient und stabil ohne Pivotisierung berechnet werden. Beispiel Beispiel 6.19. Approximationseigenschaften der verschiedenen Ansätze: Fehlerabschätzung Satz 6.20 (Fehlerabschätzung für kubische Splines). Sei f ∈ C 4 ([a, b]). Erfüllt der kubische Spline s zu f s00 (a) = f 00 (a) und s00 (b) = f 00 (b) (Hermitesche Randbedingungen), so gilt 1 max |f (x) − s(x)| ≤ h4 max |f (4) (x)| a≤x≤b 2 a≤x≤b Selbst unter noch wesentlich schwächeren Voraussetzungen konvergiert die Spline-Interpolation gleichmäßig gegen f . Beweis: siehe [Rannacher] 113 6 Interpolation und Approximation Beispiel Beispiel 6.21. Interpolation der Funktion exp(−x2 ) auf dem Intervall [−10, 10] mit n äquidi- stanten Stützstellen, maximaler Punktfehler: n S1 S3 4 6.0 · 10−1 7.4 · 10−1 8 3.0 · 10−1 3.9 · 10−1 16 1.1 · 10−1 2.8 · 10−2 32 6.9 · 10−2 7.1 · 10−3 64 2.2 · 10−2 3.3 · 10−4 128 6.0 · 10−3 1.9 · 10−5 256 1.5 · 10−3 1.2 · 10−6 512 3.8 · 10−4 7.3 · 10−8 n Pn 4 8.0 · 10−1 6 1.0 · 100 8 2.3 · 100 10 5.9 · 100 Interpolation mit Splines konvergiert mit Ordnung h2 für S 1 bzw. h4 für S 3 . 6.6 Trigonometrische Interpolation Aufgabe: Interpolation “periodischer” Funktionen, d.h. es gebe ein ω ∈ R, ω > 0, so dass f (x + ω) = f (x) ∀x ∈ R Es bietet sich die Interpolation mit “trigonometrischen Summen” m a0 X ak cos(2πkω −1 x) + bk sin(2πkω −1 x) tn (x) = + 2 k=1 an, denn jeder der Summanden hat Periode ω. Es gibt 2m + 1 Parameter, also setze n = 2m (konsistent mit Definition von n bei Polynomin- terpolation). 114 6.6 Trigonometrische Interpolation Der Einfachheit halber betrachten wir nur ω = 2π, also: m a0 X tn (x) = + [ak cos(kx) + bk sin(kx)] 2 k=1 Die Interpolation führen wir dann mit den äquidistanten Stützstellen 2πj xj = j = 0, . . . , n n+1 durch. (Für den allgemeinen Fall transformiere man das Argument und die Stützstellen). Es stellt sich heraus, dass die Interpolationsaufgabe tn (xj ) = f (xj ) = yj j = 0, . . . , n zunächst im Körper C einfacher zu lösen ist, d.h. betrachte das komplexe trigonometrische Polynom Xn ∗ tn (x) = ck eikx k=0 mit i = (−1)1/2 der imaginären Einheit und ck ∈ C komplexen Koeffizienten. Für φ ∈ R gilt die Eulersche Identität: eiφ = cos(φ) + i sin(φ) Komplexe Einheitswurzeln Hilfssatz 6.22 (Komplexe Einheitswurzeln). Die (n + 1)-ten komplexen Einheitswurzeln 2πk wk := eixk = ei n+1 haben für alle j, k ∈ Z die folgenden Eigenschaften: 1. wkn+1 = 1, wkj = wjk und wk−j = wj−k j mod(n+1) j mod(n+1) 2. wkj = wk = wkj mod(n+1) = wk mod(n+1) 3. Es gilt n ( n+1 k mod(n + 1) = 0 wkj X = j=0 0 sonst Beweis: Tafel Die komplexen Einheitswurzeln für n = 7 (also n + 1 = 8): 115 6 Interpolation und Approximation Im i w1 1 0 w0 Re Komplexe Multiplikation ist eine Drehstreckung, und für Werte auf dem Einheitskreis entfällt die Streckung (der Faktor ist Eins). Es handelt sich also um eine Drehung, und die Einheitswurzeln drehen jeweils um ein rationales Vielfaches von 360 Grad. Komplexe Trigonometrische Interpolation Satz 6.23 (Komplexe Trigonometrische Interpolation). Zu gegebenen Zahlen y0 , . . . , yn ∈ C gibt es genau eine Funktion der Gestalt n X ∗ tn (x) = ck eikx , k=0 2πj die den n + 1 Interpolationsbedingungen t∗n (xj ) = yj für xj = n+1 entspricht. Die komplexen Koeffizienten sind bestimmt durch n n ck = (n + 1)−1 yj e−ijxk = (n + 1)−1 yj wk−j k = 0, . . . , n X X j=0 j=0 Beweis: Tafel Aufwand und reeller Fall Mit der Formel aus Satz 6.23 ergibt sich ein Aufwand von O(n2 ) für die Berechnung der Koeffizienten ck . Damit wurde auch die reelle Interpolationsaufgabe gelöst, da man in Satz 6.23 yj ∈ R annehmen kann: aufgrund der Eulerschen Identität eiφ = cos(φ) + i sin(φ) ist dann auch eine passende reelle Funktion gegeben. Wie berechnet man nun die reellen Koeffizienten ak und bk ? 116 6.6 Trigonometrische Interpolation Diskrete Fourier-Analyse Satz 6.24 (Diskrete Fourier-Analyse). Für n ∈ N0 gibt es zu gegebenen reellen Zahlen y0 , . . . , yn genau ein trigonometrisches Polynom der Form m a0 X θ tn (x) = + [ak cos(kx) + bk sin(kx)] + am+1 cos((m + 1)x) 2 2 k=1 das die Interpolationsaufgabe löst, wobei (m = n/2, θ = 0) für n gerade, und (m = (n−1)/2, θ = 1) für n ungerade. Es gilt n n ak = 2(n + 1)−1 bk = 2(n + 1)−1 X X yj cos(jxk ), yj sin(jxk ) j=0 j=0 Beweisskizze: Tafel, genauer: [Rannacher] Diskrete Fouriertransformation (DFT) Die schnelle Fouriertransformation (FFT): Einer der berühmtesten Algorithmen der angewandten Mathematik und Informatik! Entwickelt 1965 von James Cooley und John Tukey. Ergebnis der bisherigen Überlegungen sind zwei Transformationen: N −1 X 2πjk −1 ck = N yj e−i N (Hintransformation) j=0 N −1 X 2πjk yj = ck ei N (Rücktransformation) k=0 mit N := n + 1. Diese beiden Gleichungen bezeichnet man als diskrete Fouriertransformation (DFT). Setze c := (c0 , . . . , cN −1 )T , y := (y0 , . . . , yN −1 )T , dann ist die diskrete Fouriertransformation äquivalent zu den Gleichungssystemen c = N −1 W y, y = U c mit −i 2πjk (W )k,j = e N = wk−j und (U )j,k = wjk Es gilt hier also W −1 = N −1 U , so dass man eine explizite Formel für die Inverse hat. Da beide Matrizen dicht besetzt sind, ist der Aufwand für Hin- und Rücktransformation jeweils O(N 2 ). Grundidee: 117 6 Interpolation und Approximation Quelle: Phonical, wikipedia.org, cc-by-sa Die DFT zerlegt ein (periodisch fortgesetztes) diskretes Signal in sein Frequenzspektrum. Schnelle Fouriertransformation (FFT) Falls N gerade ist, kann man die DFT der Länge N durch zwei DFT der Länge N/2 berechnen (Teile-und-herrsche-Verfahren, divide and conquer). Setze c̃k := N ck (d.h. ignoriere Vorfaktor), dann gilt ( g 2πk c̃k + e−i N c̃uk 0 ≤ k < N/2 c̃k = 2πk c̃gk−N/2 + e−i N c̃uk−N/2 N/2 ≤ k < N mit den geraden und ungeraden Anteilen N/2−1 N/2−1 −i 2πjk −i 2πjk c̃gk := X X y2j e N/2 , c̃uk := y2j+1 e N/2 j=0 j=0 Wenn N eine Zweierpotenz ist, N = 2d , lässt sich die DFT somit rekursiv auf den Fall der Länge 2 zurückführen. Dieser Fall lässt sich sehr einfach direkt lösen. Im Gegensatz zum direkten Ansatz mittels Matrixmultiplikation ergibt sich damit der Auf- wand TFFT (N ) = 2 · TFFT (N/2) + Tmerge (N ) = O(N · log(N )), also deutlich schneller für große N . Dies ist ein Spezialfall des Master-Theorems für rekursiv definierte Funktionen. 118 6.6 Trigonometrische Interpolation Beispiel Beispiel der rekursiven Zerlegung für N = 8: Quelle: Virens, wikipedia.org, cc-by-sa Berechnung der DCT für N/2 = 4 für die geraden bzw. ungeraden Indizes, danach Rekonstruk- tion der Ausgabe durch Zusammenführen von je zwei Zwischenergebnissen. Anwendungen Wichtige Anwendungen der FFT sind: • Spektralanalyse (Zerlegung eines Signals in Frequenzen) • Datenkompression (Vernachlässigung hochfrequenter Anteile) • Lösen partieller Differentialgleichungen (Spektralmethoden) Benutzt wird dies unter anderem für: • Telekommunikation (z.B. WLAN, LTE-Mobilfunk) • Multimedia (Datenformate wie JPEG, MPEG, MP3) • Medizin (Kernspin- und Computertomographie) • Forschung (z.B. digitale Oszilloskope) 119 6 Interpolation und Approximation 6.7 Gauß-Approximation von Funktionen Prähilberträume Wir betrachten nun die Approximation von Funktionen in Prähilberträumen: Definition 6.25 (Prähilbertraum). Ein Vektorraum von Funktionen über R oder C mit Ska- larprodukt (·, ·) heißt Prähilbertraum. Das Skalarprodukt induziert eine zugehörige Norm kf k = (f, f )1/2 . Im folgenden sei H ein Prähilbertraum und S ⊂ H ein endlichdimensionaler Teilraum von H. Beispiele Beispiel 6.26. Beispiele für Prähilberträume: • Raum der stetigen Funktionen C 0 ([a, b]) mit Skalarprodukt Z b (f, g) = f (x)g(x) dx a • Gegeben Ψ = {ψ1 , . . . , ψN }, ψi ∈ C 0 ([a, b]), ist N X S = span(Ψ) = {f | f = ci ψi } i=1 ein endlichdimensionaler Prähilbertraum. Analog für andere Prähilberträume statt C 0 . • Raum der quadratintegrierbaren Funktionen Z b 2 L ((a, b)) = {f | |f (t)|2 dt < ∞} a Rb Dabei ist mit a das “Lebesgue-Integral” gemeint. Im Gegensatz zu C 0 ([a, b]) ist L2 ((a, b)) vollständig bzgl. der Norm kf k = (f, f )1/2 und damit sogar ein Hilbertraum. L2 ((a, b)) ist das Analogon des Rn für Funktionenräume. 120 6.7 Gauß-Approximation von Funktionen Allgemeine Gauß-Approximation Wir betrachten die folgende Aufgabe: Zu f ∈ H finde g ∈ S, so dass kf − gk → min wobei kf k = (f, f )1/2 die durch das Skalarprodukt induzierte Norm bezeichne. Satz 6.27 (Allgemeine Gauß-Approximation). Die obige Aufgabe hat genau eine Lösung g ∈ S. Diese ist charakterisiert durch (g, φ) = (f, φ) ∀φ ∈ S Beweis: Tafel Berechnung der Approximation Wähle Basis Ψ = {ψ1 , . . . , ψN } des endlichdimensionalen Raums S, N = dim(S). Stelle damit die sogenannte Massenmatrix (Gramsche Matrix) A und rechte Seite b mit [A]ij = (ψi , ψj ), [b]i = (f, ψi ) auf. A ist symmetrisch positiv definit bzw. hermitesch. Bestimme die gesuchten Koeffizienten αi durch Lösen des linearen Gleichungssystems Aα = b. Approximation mit Orthonormalbasen Besonders einfach wird die Lösung der Approximationsaufgabe, wenn Ψ eine Orthonormalbasis ist, d.h. (ψi , ψj ) = δij . Dann gilt N X αj (ψj , ψi ) = αi = (f, ψi ) ∀i = 1, . . . , N j=1 und somit N X N X g= αj ψj = (f, ψj )ψj j=1 j=1 121 6 Interpolation und Approximation Beispiel Beispiel 6.28 (Fourierreihe). Für N = 2m + d, m ∈ N ist ΨF = π −1/2 · {2−1/2 , cos(x), . . . , cos(mx), sin(x), . . . , sin(mx)} eine Orthonormalbasis von Funktionen auf dem Interval [−π, π]. Damit gilt dann m a0 X g(x) = + [ak cos(kx) + bk sin(kx)] 2 k=1 Z π Z π mit ak = f (x) cos(kx) dx, bk = f (x) sin(kx) dx −π −π Vorsicht: die ak und bk sind nicht die αi von oben, sondern unterscheiden sich davon um einen Faktor π 1/2 ! Für unendlich viele Glieder nennt man die entstehende Reihe, also ∞ a0 X g(x) = + [ak cos(kx) + bk sin(kx)], 2 k=1 Fourier-Reihe von f . Diese konvergiert gegen ein Element aus L2 ((−π, π)). Die DFT lässt sich als näherungsweie Auswertung der Integrale mittels “Trapezregel” verstehen. Fehlerkontrolle Bisher war S ⊂ H fest gewählt, damit wurde das “optimale” g bestimmt. Der Fehler kf − gk wurde einfach akzeptiert. Daher nun Verfeinerung der Approximationsaufgabe: Finde S ⊂ H mit dim(S) möglichst klein, so dass kf − gk < TOL, wobei TOL eine vorgegebene Zahl (Toleranz) sei. Ein Spezialfall ist die “Kompression”: hier ist H selbst bereits endlichdimensional. Man versucht, das “Signal” f möglichst platzsparend zu speichern. Mittels Orthonormalbasen lässt sich der Fehler recht einfach messen: 122 6.7 Gauß-Approximation von Funktionen Sei SN ⊂ H, N ∈ N, eine Folge von Approximationsräumen mit dim(SN ) = N , und gN die Bestapproximation von f in SN . Sei zusätzlich ΨN eine Orthonormalbasis von SN . Dann gilt N X 0 ≤ kf − gN k2 = (f, f ) − (f, ψi )2 i=1 Oft gilt sogar SN ⊂ SN +1 mit ΨN ⊂ ΨN +1 , das setzen wir aber nicht voraus. Wir möchten N X 2 kf − gN k = (f, f ) − (f, ψi )2 ≤ TOL ·(f, f ), i=1 und das ist äquivalent zu N X (f, ψi )2 ≥ (1 − TOL) · (f, f ) (6.1) i=1 (Frage: “Welche Anteile von f werden von SN bereits repräsentiert?”) Achtung: hier wurde eine relative Toleranz TOL gewählt, diese lässt sich jedoch in eine absolute umrechnen, und umgekehrt. Anmerkungen Bemerkung 6.29. Zur Fehlerkontrolle: • Der Wert (f, f ) wird als (zumindest hinreichend genau) berechenbar angenommen. Dafür kann man z.B. numerische Integration verwenden. • Falls ΨN ⊂ ΨN +1 , sind einfach weitere Basisfunktionen hinzuzufügen bis (6.1) erreicht ist. Das gilt zum Beispiel für die Fourierreihe, Bsp. 6.28. • Bei ΨN ⊂ ΨN +1 folgt aus der Fehlerdarstellung unmittelbar kf − gN +1 k2 ≤ kf − gN k2 , der Fehler ist also monoton fallend! 123 6 Interpolation und Approximation Approximation mit Haar-Wavelets Es bezeichne tr(f ) = {x | f (x) 6= 0} den Träger einer Funktion. Bei der ONB aus Sinus- und Cosinus-Funktionen haben alle ψi im wesentlichen globalen Träger, d.h. tr(f ) = [a, b]. Oft variiert die zu approximierende Funktion aber nur lokal sehr stark. In diesem Fall möchte man ein Funktionensystem mit folgenden Eigenschaften: • (ψi , ψj ) = δij (Orthogonalität) • ΨN ⊂ ΨN +1 (Geschachteltheit) • diam(tr(ψi )) → 0 für i → ∞ Diese Eigenschaften besitzten sogenannte Waveletfunktionen, von denen wir das sogenannte Haar-Wavelet untersuchen. Definition 6.30. Wir definieren das “mother wavelet” ψ(x) und die Abschneidefunktion χ(x) auf (0, 1]: 1 0<x≤1 ( 1 0<x≤1 ψ(x) := −1 1<x≤2, χ(x) := 0 sonst 0 sonst Für l ∈ N0 (Stufe) und 0 ≤ i < 2l−1 (Index) ist das Haar-Wavelet l−1 ψil := max(2 2 , 1) · ψ(2l x − 2i) · χ(x). S2j−1 −1 {ψij }. Sl Die Waveletbasis der Stufe l ist Ψl := {ψ00 } ∪ j=1 i=0 Eigenschaften der Wavelets Wir fassen einige Eigenschaften der Haar-Wavelets zusammen: • Für l > 0 gilt i i+1 0 x≤ 2l−1 ∨x> 2l−1 l−1 i+ 12 ψil = 2 2 i 2l−1 <x≤ 2l−1 i+ 12 −2 l−1 2 <x≤ i+1 2l−1 2l−1 • Speziell für l = 1 gibt es ein einzelnes Wavelet ψ01 = max(1, 1) · ψ(2x) · χ(x) = ψ(2x) • Und speziell für l = 0 gibt es ein einzelnes Wavelet ψ00 = max(2−1/2 , 1) · ψ(x) · χ(x) = χ(x) 124 6.7 Gauß-Approximation von Funktionen Graphische Darstellung 0 ψ0 1 -1 0 1 1 ψ0 1 0 1 -1 2 2 1/2 ψ0 ψ1 2 1/2 0 1 -2 3 3 3 3 ψ0 ψ1 ψ2 ψ3 2 0 1 -2 Darstellung der Haar-Wavelets für l = 0, . . . , 3. Für l = 0 und l = 1 gibt es jeweils nur ein Wavelet (konstante Einsfunktion bzw. gestauchtes “mother wavelet”). Die Wavelets aller weiteren Level sind Kopien des Wavelets ψ01 , die in x- Richtung gestaucht und zur Kompensation in ihrem Wert gestreckt wurden. Weitere Eigenschaften Weiterhin gilt: • Die Wavelets bilden eine Baumstruktur bzgl. ihrer Träger: l+1 tr(ψil ) = tr(ψ2i l+1 ) ∪ tr(ψ2i+1 ), tr(ψil ) ∩ tr(ψjl ) = ∅ für i 6= j • Die Wavelets sind paarweise orthogonal: ( 1 i=j∧l =k (ψil , ψjk ) = 0 sonst • Offensichtlich erfüllt die Konstruktion Ψl ⊂ Ψl+1 , da immer nur Basisfunktionen hinzu- genommen werden. 125 6 Interpolation und Approximation Damit sind alle geforderten Eigenschaften erfüllt. Beweis: Tafel Aufgespannter Raum Um die durch Haar-Wavelets darstellbaren Funktionen etwas anschaulicher zu machen, definie- ren wir die Funktionen ( l 1 2il < x ≤ i+1 2l φi (x) := 0 sonst S2l −1 für l ∈ N0 und 0 ≤ i < 2l , sowie Φl := i=0 {φli }. S l := span(Φl ) ist der Raum der stückweise konstanten Funktionen auf dem Intervall (0, 1] bzgl. der äquidistanten Unterteilung in 2l Teilintervalle. Es gilt span(Ψl ) = span(Φl ) = S l . Beweisskizze: Tafel Darstellung von Funktionen Da die Haar-Wavelets eine Orthonormalbasis bilden, ist die Approximationsaufgabe aus Satz 6.27 analog zur Fourier-Reihe durch Skalarprodukte der Form (f, ψij ) berechenbar: −1 l 2X j (f, ψij ) · ψij X g(x) = j=0 i=0 Im Unterschied zur Fourier-Reihe lassen sich die gesuchten Koeffizienten aus den Mittelwerten von f auf den Trägern der ψij berechnen, was eine stark lokalisierte und zugleich durch Rekursion besonders effiziente Berechnung ermöglicht. 126 6.7 Gauß-Approximation von Funktionen Datenkompression mit Wavelets Anwendung von (6.1), der Formel für die Fehlerkontrolle: Gegeben: f ∈ S l in Basis Ψl Gesucht: Teilraum Se ⊂ S l , so dass kf − f˜k ≤ TOL ·(f, f ) und Se möglichst klein. Algorithmus: • M ← {ψ00 } (Basis von S) e 2 • ρ ← (f, ψ00 ) (repräsentierter Anteil) • while (ρ < (1 − TOL) · (f, f )) do: – wähle Kind ψkl+1 eines ψil ∈ M mit (f, ψkl+1 ) maximal – M ← M ∪ {ψkl+1 } 2 – ρ ← ρ + (f, ψkl+1 ) Ausblick Eine leichte Abänderung der Gaußschen Approximationsaufgabe: Finde u ∈ S (endlich-dimensionaler Funktionenraum), so dass Z Z ∇u · ∇φ = f φ ∀φ ∈ S Ω Ω Dies führt auf die (numerische) Lösung der “Poisson-Gleichung” n X ∂2u −∆u = − =f in Ω ⊂ Rd i=1 ∂x2i (vgl. das Einführungskapitel über lineare Gleichungssysteme) 127 6 Interpolation und Approximation 6.8 Tschebyscheff-Approximation Tschebyscheff-Approximation Zentrales Hilfmittel bei der Gauß-Approximation war die Existenz des Skalarproduktes, das zur Projektion auf endlichdimensionale Teilräume verwendet wurde. Man kann jedoch auch für allgemeine Normen ohne zugehöriges Skalarprodukt eine solche Bestapproximation einführen. Satz 6.31 (Allgemeine Tschebyscheff-Approximation). Sei E ein normierter Vektorraum mit Norm k · k und S ⊂ E ein endlichdimensionaler Teilraum. Dann gibt es zu jedem f ∈ E eine (nicht unbedingt eindeutige) beste Approximation g ∈ S: kf − gk = min kf − φk φ∈S Beweis: Tafel Wir haben für die Polynominterpolation auf [a, b] die Fehlerformel n f (n+1) (ξx ) Y f (x) − p(x) = l(x), l(x) := (x − xj ) (n + 1)! j=0 hergeleitet. Eine “optimale” Wahl der Stützstellen wäre jene, die max |l(x)| = klk∞ a≤x≤b minimiert, den Teil der Formel, der durch die Stützstellen beeinflussbar ist und nicht von f abhängt. (“Optimal” mit Anführungszeichen, da das implizit die Position ξx beeinflusst!) Es gilt l(x) = xn+1 − p(x), p ∈ Pn , daher lässt sich die Minimierung von klk∞ als Tschebys- cheffsche Approximationsaufgabe auffassen: Finde p ∈ Pn : max kxn+1 − p(x)k → min a≤x≤b Dies entspricht dann einer entsprechenden Wahl der Stützstellen {x0 , . . . , xn }, die zu diesem Polynom p ∈ Pn führt. Man kann zeigen, dass die Tschebyscheffsche Approximationsaufgabe in diesem Fall sogar eine eindeutige Lösung hat. 128 6.8 Tschebyscheff-Approximation Optimale Stützstellenwahl Satz 6.32 (Optimale Stützstellen). Auf dem Intervall [a, b] = [−1, 1] ist die Tschebyscheff- Approximation g ∈ Pn zu f (x) = xn+1 bzgl. k · k∞ gegeben durch g(x) = xn+1 − 2−n Tn+1 (x) mit dem (n + 1)-ten Tschebyscheff-Polynom Tn+1 (x) = cos((n + 1) arccos(x)) ∈ Pn+1 . Dass dies tatsächlich ein Polynom (n+1)-ten Grades in x ist, kann man über Winkelidentitäten zeigen. Die Nullstellen π 2k + 1 xk = cos , k = 0, . . . , n 2 n+1 von Tn+1 sind die “optimalen” Stützstellen auf [−1, 1]. Für andere Intervalle [a, b] transformiert man diese affin-linear mittels 1 x̃k = [(b − a) · xk + (a + b)]. 2 Für das Interpolationspolynom p ∈ Pn einer Funktion f ∈ C n+1 [a, b] erhält man dann die Fehlerabschätzung 1 (b − a)n+1 (n+1) kf − pn k∞ ≤ kf k∞ . (n + 1)! 22n+1 Beweis: [Rannacher] Runges Funktion Wir kehren zu Runges Beispielfunktion zurück. Die Stützstellen sind die Projektion äquidistan- ter Punkte auf dem Einheitskreis: Quelle: Stephen G. Johnson, wikipedia.org, cc-by-sa 129 6 Interpolation und Approximation Anschaulich werden dadurch an den Intervallgrenzen, wo sonst große Über- und Unterschwinger auftreten würden, zusätzliche Stützstellen zur Kompensation platziert. 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -1 -0.5 0 0.5 1 −1 Polynominterpolation von Runges Funktion f (x) = (1 + 25x2 ) , diesmal mit “optimalen” Stützstellen (wieder 3, 5, 9, 17 bzw. 33 Wertepaare). Das letzte Polynom verdeckt dabei die eigentliche Funktion. Offensichtlich deutlich bessere Resultate! 130 7 Numerische Integration 7.1 Einführung Numerische Integration (Quadratur) Wir behandeln die numerische Berechnung bestimmter Integrale in einer Raumdimension: Z b I[a,b] (f ) = f (x) dx a Alle von uns behandelten Verfahren führen auf die Form n (n) X I[a,b] (f ) = wi f (xi ) + Fehler, i=0 wobei wi ∈ R die Gewichte und xi ∈ R die Stützstellen der Integrationsformel sind. Gründe für Numerische Integration Es gibt mehrere Gründe, warum die Anwendung von numerischer Integration (numerischer Quadratur) sinnvoll bzw. notwendig sein kann: • Oft ist eine Funktion f nur an endlich vielen Punkten bekannt, z.B. da sie aus Messreihen stammt. Häufig ist man neben der Darstellung der Funktion, z.B. mittels Least Squares oder Splines, auch an ihrer Ableitung oder ihrem Integral interessiert. • Es gibt Funktionen, z.B. f (x) = exp(−x2 ), deren Integral wichtig ist, aber es steht keine geschlossene Formel für dessen Berechnung zur Verfügung. 7.2 Newton-Cotes-Formeln Die Newton-Cotes-Formeln sind sogenannte interpolatorische Quadraturformeln. Idee: Stelle das Interpolationspolynom p zu gewissen Stützstellen auf und berechne das Integral von p exakt. Formal: Stützstellen und Werte (xi , f (xi )), i = 0, . . . , n, Lagrange-Darstellung: n Y x − xj (n) (n) X pn (x) = f (xi )Li (x), Li (x) = xi − xj i=0 j6=i und somit Z b n Z b (n) (n) X I[a,b] (f ) ≈ I[a,b] (f ) = pn (x) dx = f (xi ) Li (x) dx a i=0 a 131 7 Numerische Integration Ordnung einer Quadraturformel Definition 7.1 (Ordnung einer Quadraturformel). Eine Quadraturformel I (n) (f ) hat mindes- tens die Ordnung m, wenn sie Polynome vom Grad m − 1 exakt integriert. Eine Formel zweiter Ordnung integriert beispielsweise lineare Funktionen exakt. Die Newton-Cotes-Formeln benutzen Polynominterpolation und haben daher für n + 1 Stütz- stellen mindestens Ordnung n + 1. Wir werden aber später sehen, dass das noch besser geht. Newton-Cotes-Formeln Die Newton-Cotes-Formeln nutzen äquidistante Stützstellen. Es gibt davon zwei Varianten: Abgeschlossene Formeln: Die Intervallgrenzen a und b sind Stützstellen, es gilt b−a xi = a + iH, i = 0, . . . , n, mit H = n Offene Formeln: Die Grenzen a und b sind keine Stützstellen, und es gilt b−a xi = a + (i + 1)H, i = 0, . . . , n, mit H = n+2 Generell muss für die Summe der Gewichte einer Quadraturformel X n Xn Z b wi = wi · 1 = 1 dx = b − a i=0 i=0 a gelten. Um Gewichte zu erhalten, die unabhängig vom gewählten Intervall sind, wird dieser Term ausgeklammert, und man erhält für die geschlossenen Newton-Cotes-Formeln n (n) X I[a,b] (f ) = (b − a) · w̃i f (xi ) i=0 mit b nY s−j Z Z (n) w̃i = (b − a)−1 Li dx = n−1 ds a 0 i−j j6=i Beweis: Tafel 132 7.2 Newton-Cotes-Formeln Beispiele Abgeschlossene Formeln für n = 1, 2, 3 und H = (b − a)/n sind: Die Trapezregel bzw. Sehnen-Trapezregel: b−a I (1) (f ) = · [f (a) + f (b)] 2 Die Simpsonregel bzw. Keplersche Fassregel: (2) b−a a+b I (f ) = · [f (a) + 4f + f (b)] 6 2 Die 3/8-Regel bzw. Pulcherrima: b−a I (3) (f ) = · [f (a) + 3f (a + H) + 3f (b − H) + f (b)] 8 Offene Formeln für n = 0, 1, 2 und H = (b − a)/(n + 2) sind: Die Mittelpunktregel, Tangenten-Trapezregel bzw. Rechteckregel: (0) a+b I (f ) = (b − a) · f 2 Die zweite offene Regel (kein besonderer Name): b−a I (1) (f ) = · [f (a + H) + f (b − H)] 2 Die dritte offene Regel (ebenfalls kein Name): (2) b−a a+b I (f ) = · [2f (a + H) − f + 2f (b − H)] 3 2 133 7 Numerische Integration Anmerkungen Bemerkung 7.2. Ab n = 7 für die abgeschlossenen bzw. n = 2 für die offenen Formeln treten negative Gewichte auf. Das ist ungünstig, denn: • Für strikt nicht-negative Funktionen f kann I (n) (f ) < 0 sein (Stoffkonzentration, Masse- nerhaltung,. . . ). • Es herrscht erhöhte Gefahr der Auslöschung. • Die Kondition kann schlechter werden, während sie für rein positive Gewichte beschränkt ist. Restgliedabschätzung Satz 7.3 (Restglieder). Den begangenen Fehler kann man folgendermaßen abschätzen: 1. Trapezregel: n = 1, Ordnung 2, Es gilt b−a (b − a)3 00 I(f ) − · [f (a) + f (b)] = − f (ξ), ξ ∈ [a, b] 2 12 für f ∈ C 2 ([a, b]). Es werden also Polynome bis zum Grad 1 exakt integriert, denn für diese ist f 00 (x) = 0 auf [a, b]. Allgemein gilt: die Ordnung der ungeraden Formeln entspricht der Anzahl an Stützstellen, während die Ordnung der geraden Formeln um Eins höher ist. 2. Simpsonregel: n = 2, Ordnung 4, für f ∈ C 4 ([a, b]) gilt (b − a)5 (4) b−a a+b I(f ) − · [f (a) + 4f + f (b)] = − f (ξ) 6 2 2880 3. Mittelpunktregel: n = 0, Ordnung 2, für f ∈ C 2 ([a, b]) gilt (b − a)3 00 a+b I(f ) − (b − a) · f = f (ξ) 2 24 also “halber Fehler der Trapezregel” bei nur einer Auswertung! Beweis: Tafel 134 7.3 Summierte Quadraturformeln 7.3 Summierte Quadraturformeln Das Erhöhen des Polynomgrads ist wenig sinnvoll, da • früh negative Gewichte auftreten • die Lagrange-Interpolation mit äquidistanten Stützstellen nicht punktweise konvergiert • man entsprechende Differenzierbarkeit von f für die Abschätzung benötigt Idee der summierten Quadraturformeln: • Unterteile das Interval [a, b] in N Teilintervalle b−a [xi , xi+1 ], xi = a + ih, i = 0, . . . , N − 1, h = N • Wende eine der obigen Formeln auf jedem Teilintervall an und summiere die Ergebnisse. Beispiele Beispielsweise ergeben sich bei N Teilintervallen der Schrittweite h: Die summierte Trapezregel: N −1 N −1 " # (1) X h f (a) X f (b) Ih (f ) = [f (xi ) + f (xi+1 )] = h · + f (xi ) + 2 2 2 i=0 i=1 Die summierte Simpsonregel: N −1 N −1 " # (2) h f (a) X X xi + xi+1 f (b) Ih (f ) = · + f (xi ) + 2 f + 3 2 2 2 i=1 i=0 Die summierte Mittelpunktregel: N −1 (0) X xi + xi+1 Ih (f ) =h· f 2 i=0 135 7 Numerische Integration Restgliedabschätzung Satz 7.4 (Restglieder für summierte Quadraturen). Für die je Teilintervall verwendete Qua- draturformel gelte (n) I[xi ,xi+1 ] (f ) − I[xi ,xi+1 ] (f ) = αn hm+1 f (m) (ξi ), ξi ∈ [xi , xi+1 ]. Dann gilt für die summierte Quadraturformel (n) I[a,b] (f ) − Ih (f ) = αn (b − a)hm f (m) (ξ), ξ ∈ [a, b]. Beweis: Tafel Wie wir sehen, bleibt bei der Summation die Ordnung der Formel erhalten (da in der Abschät- zung die gleiche Ableitung auftritt). Konkret bedeutet das: • Die Trapezregel und Mittelpunktregel haben Ordnung 2, also haben es die summierten Regeln ebenfalls. Es gilt (1 bzw. 0) b−a |I[a,b] (f ) − Ih (f )| = | max f (2) | · h2 ∈ O(h2 ), α [a,b] mit α = 12 bzw. 24, falls die zweite Ableitung beschränkt ist. • Die Simpsonregel hat Ordnung 4, also gilt das auch für die summierte Simpsonregel, und (2) b−a |I[a,b] (f ) − Ih (f )| = | max f (4) | · h4 ∈ O(h4 ), 2880 [a,b] falls die vierte Ableitung beschränkt ist. Fehlerkontrolle Es gelten (2) 1 (1) 2 (0) Ih (f ) = Ih (f ) + Ih (f ) 3 3 sowie für die halbierte Schrittweite h/2 (1) 1 (1) 1 (0) Ih/2 (f ) = Ih (f ) + Ih (f ). 2 2 Diese Zusammenhänge kann man zur Fehlerkontrolle gemäß der Form |I(f ) − Ih (f )| ≤ TOL verwenden. 136 7.4 Quadraturen höherer Ordnung 7.4 Quadraturen höherer Ordnung Wie wir gesehen haben, sind die Newton-Cotes-Formeln nur bis n = 7 bzw. n = 2 brauchbar. Die summierten Quadraturformeln erlauben zwar beliebig feine Berechnungen, haben aber im- mer die selbe Ordnung wie die zugrundeliegenden Formeln. Wie erreicht man eine höhere Ordnung? Zwei Ansätze: • Extrapolation auf summierte Formeln anwenden • Nicht-äquidistante Stützstellen wählen (Gauß-Quadratur) Romberg-Integration (n) Bei den summierten Formeln ist man an limh→0 Ih (f ) interessiert. Dafür ist Extrapolation zum Limes anwendbar. Herzstück des Ansatzes ist die Euler-Maclaurinsche Summenformel: m−1 (1) X B2k (2k−1) I(f ) − Ih (f ) = h2k (f (b) − f (2k−1) (a)) (2k)! k=1 B2m + h2m (b − a)f (2m) (ξ), ξ ∈ [a, b] (2m)! Speziell die Trapezsumme hat also eine Fehlerentwicklung in geraden Potenzen, was Extra- polation besonders effizient macht. Die in der Formel auftretenden Konstanten Bi sind die sogenannten Bernoulli-Zahlen. Gauß-Integration Frage: Lässt sich durch nicht-äquidistante Stützstellen die Genauigkeit von Quadraturformeln verbessern? Idee: Wähle xi und wi so, dass Polynome von möglichst hohem Grad exakt integriert werden (Ordnungsmaximierung). Satz 7.5. Die maximal erreichbare Ordnung einer Quadraturformel mit n + 1 Stützstellen ist 2n + 2 (d.h. Polynome vom Grad 2n + 1 werden exakt integriert). 137 7 Numerische Integration Beweis: Tafel Satz 7.6. Es gibt genau eine interpolatorische Quadraturformel zu n + 1 paarweise versch. Stützstellen in [−1, 1] mit der Ordnung 2n + 2. Ihre Stützstellen sind die Nullstellen λ0 , . . . , λn ∈ (−1, 1) des (n + 1)-ten Legendre-Polynoms Ln+1 , wobei (2k + 1)x k L0 (x) = 1, L1 (x) = x, Lk+1 (x) = Lk (x) − Lk−1 (x) k+1 k+1 Die Gewichte erhält man mittels Z 1 Y x − λj 2 wi = dx > 0, 0, . . . , n −1 j6=i λi − λj Beweis: [Rannacher] Beispiele Durch Auswerten der Nullstellen der Legendre-Polynome ergeben sich mit b−a a+b h= , c= 2 2 zum Beispiel die folgenden Gauß-Quadraturen: Eine Stützstelle, Ordnung 2: I (0) = (b − a) · f (c) (Mittelpunktsregel) Zwei Stützstellen, Ordnung 4: b−a I (1) = · [f (c − (1/3)1/2 h) + f (c + (1/3)1/2 h)] 2 Drei Stützstellen, Ordnung 6: b−a I (2) = · [5f (c − (3/5)1/2 h) + 8f (c) + 5f (c + (3/5)1/2 h)] 18 Natürlich lassen sich mithilfe der Gauß-Quadraturen wieder summierte Formeln definieren, indem man das Intervall unterteilt und die Ergebnisse summiert. 138 7.5 Ausblick 7.5 Ausblick Adaptive Quadratur Oftmals ist eine äquidistante Aufteilung des Intervals wenig sinnvoll, da die zu integrierende Funktion lokal unterschiedliches Verhalten zeigt. Idee der adaptiven Quadratur: I2 I1 I3 (negativ!) I0 • Berechne sukzessive Updates für die Näherung durch feinere Unterteilung (Prinzip des Archimedes) • Breche Verfeinerung ab, wenn lokales Update |Ij | klein genug Mehrdimensionale Quadratur Im Eindimensionalen gilt: Intervall = zusammenhängende Menge = wegzusammenhängende Menge = einfach zusammenhängende Menge Daher ist es einfach, auf beliebigen “Gebieten” Ω ⊂ R zu integrieren. Im Mehrdimensionalen werden die Intervalle zu (Hyper-) Quadern, die oben genannten Begriffe sind aber nicht mehr äquivalent: Quader 6= zusammenhängende Menge 6= wegzusammenhängende Menge 6= einfach zusammenhängende Menge 139 7 Numerische Integration Ω • Die vorgestellten Formeln lassen sich leicht auf Quader verallgemeinern. • Im allgemeinen muss man diese Quader und die Integrale darauf transformieren (Trans- formationssatz, Verallgemeinerung der Substitutionsregel). • Man kann auch Dreiecke für die Unterteilung verwenden. • Bei komplizierten Geometrien entsteht zusätzlich ein Geometriefehler durch Approxima- tion der Geometrie. Fluch der Dimension Wenn die Dimension d sehr groß ist, sind die hier behandelten Methoden nicht brauchbar. Betrachte Ω = [0, 1]d . Zerlegt man [0, 1] in zwei Teilintervalle je Dimension, so hat man den d-dimensionalen Würfel in 2d Teilwürfel zerlegt. Der Aufwand steigt somit exponentiell in d an. Dies bezeichnet man als “Fluch der Dimension”. Eine Möglichkeit ist dann die Monte-Carlo-Integration N C X I(f ) ≈ f (ξi ) N i=1 mit zufälligen Punkten ξi ∈ Ω. 140 8 Iterative Lösung von Gleichungssystemen 8.1 Einführung In diesem Abschnitt betrachten wir die Lösung von algebraischen Gleichungen f (x) = 0 mit f : Rn → Rn . Dabei beschränken wir uns zunächst auf den Fall n = 1 (skalar). Idee der Intervallschachtelung: Angenommen man kennt ein Teilintervall [a0 , b0 ], so dass f (a0 ) · f (b0 ) < 0 (Vorzeichenwechsel), und f sei stetig. Dann hat f nach dem Zwischenwertsatz mindestens eine Nullstelle in [a0 , b0 ]. Bilde Folge von Teilintervallen durch Bisektion und Prüfen der Bedingung. Algorithmus: Intervallschachtelung Gegeben: I0 = [a0 , b0 ] mit f (a0 ) · f (b0 ) < 0 und > 0 Algorithmus: t = 0; while (bt − at > ) : xt = (at + bt )/2; if (f (xt ) == 0) : at+1 = xt − ; bt+1 = xt ; else if (f (at ) · f (xt ) < 0) : at+1 = at ; bt+1 = xt ; else : at+1 = xt ; bt+1 = bt ; t = t + 1; Idee: • Halbiere das aktuelle Intervall • Falls zufällig in der Mitte eine Nullstelle liegt, beende das Verfahren • Falls die Bedingung für das linke Intervall erfüllt ist, wähle es als nächstes Intervall • Andernfalls muss die Nullstelle im rechten Intervall sein, setze die Suche dort fort 141 8 Iterative Lösung von Gleichungssystemen Analyse Es gilt at ≤ at+1 < bt+1 ≤ bt und (sofern nicht f (xt ) = 0) t+1 1 1 |bt+1 − at+1 | ≤ |bt − at | = |b0 − a0 | 2 2 Anmerkungen: • Die Konvergenz ist linear mit Rate 1/2 • Gut für monotone Funktionen geeignet (globale Konvergenz) • Nur für reelle Funktionen im R1 geeignet 8.2 Newton-Verfahren Die Funktion f sei (mindestens) einmal stetig differenzierbar. Für gegebenes xt gibt es die “Tangente” Tt (x) = f 0 (xt )(x − xt ) + f (xt ) mit der Nullstelle f (xt ) Tt (x) = 0 ⇐⇒ x = xt − . f 0 (xt ) Das führt auf die Iterationsvorschrift f (xt ) xt+1 = xt − . f 0 (xt ) xt x t+1 Offensichtlich ist |f 0 (xt )| > 0 erforderlich, d.h. wir setzen voraus, dass die Nullstelle einfach ist. 142 8.2 Newton-Verfahren Newton-Verfahren im Mehrdimensionalen Das Newton-Verfahren lässt sich auf Systeme f : Rn → Rn erweitern: Es existiere die Taylorentwicklung von f : n X ∂fi fi (x) = fi (xt + ∆x) = fi (xt ) + (xt )∆xi + Ri (xt , ∆x) i = 1, . . . , n ∂xj j=1 oder in vektorieller Schreibweise f (xt + ∆x) = f (xt ) + J(xt )∆x + R(xt , ∆x) mit der “Jacobimatrix” ∂fi [J(xt )]ij = (xt ) ∂xj Das Ignorieren des Restglieds entspricht einer “Linearisierung von f ”. Finde näherungsweise eine Nullstelle von f : f (x) ≈ f (xt ) + J(xt )∆x = 0 ⇐⇒ ∆x = −J −1 (xt )f (xt ) Dies führt auf die Iteration xt+1 = xt − J −1 (xt )f (xt ) Dabei erfordert jeder Schritt die Lösung eines linearen Gleichungssystems mit der Jacobima- trix! Konvergenz des Newton-Verfahrens Satz 8.1 (Newton-Verfahren). Die Funktion f ∈ C 2 ([a, b]) habe in (a, b) (Inneres!) eine Null- stelle z, und es sei m := min |f 0 (x)| > 0, M := max |f 00 (x)|. a≤x≤b a≤x≤b Es sei ρ > 0 so gewählt, dass M q := ρ < 1, Kρ (z) := {x ∈ R | |x − z| ≤ ρ} ⊂ [a, b] 2m Dann sind für jeden Startwert x0 ∈ Kρ (z) die Newton-Iterierten xt ∈ Kρ (z) definiert und konvergieren gegen die Nullstelle z. Dabei gilt die a-priori Fehlerabschätzung 2m (2t ) |xt − z| ≤ q , t∈N M 143 8 Iterative Lösung von Gleichungssystemen und die a-posteriori Fehlerabschätzung M |xt − xt−1 |2 , t ∈ N. |xt − z| ≤ m−1 |f (xt )| ≤ 2m (a-priori: nutzt nur die Voraussetzungen, a-posteriori: nutzt auch die bereits berechneten Ite- rierten) Beweis: Tafel Beispiel: Wurzelberechnung Beispiel 8.2 (Wurzelberechnung mit Newton-Verfahren). Sei a > 0 und n ≥ 1. Löse xn = a, d.h. f (x) = xn − a = 0, f 0 (x) = n · xn−1 . Das führt auf die Iterationsvorschrift xt+1 = n−1 · [(n − 1) · xt + a · x1−n t ]. Nach Satz 8.1 konvergiert die Iteration, falls x0 nahe genug an a1/n ist. Hier konvergiert sie jedoch sogar global, d.h. für alle x0 > 0 (aber nicht unbedingt von Anfang an quadratisch). Anmerkungen Bemerkung 8.3. Zur Konvergenz des Newton-Verfahrens: • Das Newton-Verfahren konvergiert nur lokal, d.h. wenn |x0 − z| ≤ ρ (“Einzugsbereich”). Dabei ist ρ i.d.R. unbekannt und möglicherweise sehr klein. • Das Newton-Verfahren konvergiert quadratisch, |xt − z| ≤ c · |xt−1 − z|2 , im Gegensatz zur Intervallschachtelung, die nur linear konvergiert. • Gedämpftes Newton-Verfahren: Verbesserung der Konvergenz außerhalb des Einzugsbereichs: f (xt ) xt+1 = xt − λt f 0 (xt ) mit der Wahl einer Folge λt ∈ (0, 1] als “Dämpfungsstrategie”. • Mehrfache Nullstellen: Falls z eine p-fache Nullstelle ist, mit p > 1, konvergiert das Newton-Verfahren dennoch, aber nur noch linear. Man kann zeigen, dass die alternative Vorschrift f (xt ) xt+1 = xt − p · f 0 (xt ) in diesem Fall quadratisch konvergiert. 144 8.3 Sukzessive Approximation (Fixpunktiteration) Sekanten-Methode Unter Umständen ist die Berechnung der Ableitungen sehr teuer. Idee der Sekanten-Methode: Ersetze die Tangente durch eine Sekante f (xt ) − f (xt−1 ) s(x) = f (xt ) + (x − xt ) , xt − xt−1 dies führt auf die Iteration xt − xt−1 xt+1 = xt − f (xt ) . f (xt ) − f (xt−1 ) Die Sekanten-Methode konvergiert lokal mit 2m γt |xt − z| ≤ q , t ∈ N, M wobei γt die Fibonacci-Zahlen bezeichnet: γ0 = γ1 = 1, γt+1 = γt + γt−1 Es gilt γt ≈ 0.723 · (1.618)t (“goldener Schnitt”), also liegt die Konvergenzordnung zwischen 1 und 2. Problematisch ist die bei der Auswertung auftretende Auslöschung. 8.3 Sukzessive Approximation (Fixpunktiteration) Fixpunktiteration f (x) Mit g(x) = x − f 0 (x) hat das Newton-Verfahren die Form xt+1 = g(xt ). Da die Nullstelle z wegen f (z) = 0 =⇒ g(z) = z ein Fixpunkt der Iteration xt+1 = g(xt ) ist, nennt man das auch Fixpunktiteration. Hier un- tersuchen wir allgemeine Iterationen dieser Art. Falls die Berechnung von f 0 (x) sehr teuer ist, könnte man z.B. f 0 nur einmal “in der Nähe von z” auswerten, und wie folgt iterieren: f (x) xt+1 = xt − f 0 (c) Frage: Wann konvergiert so eine Iteration? Insbesondere wollen wir dabei auch f : Rn → Rn , n > 1, zulassen. 145 8 Iterative Lösung von Gleichungssystemen Kontraktionen Antwort gibt der sogenannte “Banachsche Fixpunktsatz”. Dafür zunächst eine Definition: Definition 8.4 (Kontraktion). Sei G ⊂ Rn eine nichtleere, abgeschlossene Punktmenge und g : G → G Lipschitz-stetig mit Konstante q < 1, d.h. kg(x) − g(y)k ≤ q · kx − yk mit einer Vektornorm k · k im Rn . Ein solches g nennt man eine Kontraktion auf G. Sukzessive Approximation Satz 8.5 (Sukzessive Approximation). Sei g eine Kontraktion auf G ⊂ Rn . Dann existiert genau ein Fixpunkt z ∈ G von g und für jeden Startpunkt x(0) ∈ G konvergiert die Folge der Iterierten x(t+1) = g(x(t) ) gegen z. Es gelten die a-priori und a-posteriori Fehlerabschätzungen q qt kx(t) − zk ≤ kx(t) − x(t−1) k ≤ kx(1) − x(0) k. 1−q 1−q (wir schreiben den Index oben in Klammern, um bei Vektoren unten Platz für den Komponen- tenindex zu haben.) Beweis: Tafel 8.4 Iterationsverfahren zur Lösung linearer Gleichungssysteme Wir kehren zurück zur Lösung von linearen Gleichungssystemen Ax = b, A ∈ Rn×n regulär, b ∈ Rn . Definition 8.6 (dünn besetzte Matrizen). Eine Folge von Matrizen {A(n) | n ∈ N} heißt dünn besetzt, falls (n) (n) |{aij | aij 6= 0}| =: nnz(A(n) ) = O(n) (nnz = “number of non-zeros”). 146 8.4 Iterationsverfahren zur Lösung linearer Gleichungssysteme Aufgrund von “fill in” ist die Gauß-Elimination für dünn besetzte Matrizen oft schlecht geeignet. Außerdem: für große n nicht mehr tragbarer Aufwand in O(n3 ). Es gilt Lösen von Ax = b ⇐⇒ “Nullstellensuche” f (x) = b − Ax = 0. Definiere mit (zunächst beliebiger) Matrix C die Iteration x(t+1) = g(x(t) ) = x(t) + C −1 f (x(t) ) = x(t) + C −1 (b − Ax(t) ) = (I − C −1 A) x(t) + C −1 b | {z } =:B mit “Iterationsmatrix” B. Für x := A−1 b gilt g(x) = (I − C −1 A)x + C −1 b = x − (C −1 A) · (A−1 b) + C −1 b = x, also ist x Fixpunkt von g. Für die Lipschitz-Konstante der Funktion g gilt kg(x) − g(y)k = kB(x − y)k ≤ kBk · kx − yk, d.h. falls kBk < 1 ist (für verträgliche Matrixnorm k · k), ist g Kontraktion auf Rn . Beispiele für Iterationsverfahren Zerlege A = L + D + R mit L strikte untere Dreiecksmatrix, D Diagonalmatrix und R strikte obere Dreiecksmatrix. Jacobi-Verfahren: Setze C = D und daher B = −D−1 (L + R), also x(t+1) = x(t) + D−1 (b − Ax(t) ) Das Jacobi-Verfahren berechnet für die einzelnen linearen Gleichungen jeweils den Defekt, also die Diskrepanz zwischen linker und rechter Seite, und ändert dann die zugehörige Kompo- nente von x so, dass die Gleichung erfüllt wäre, wenn die anderen Komponenten unverändert blieben. Gauß-Seidel-Verfahren: 147 8 Iterative Lösung von Gleichungssystemen Setze C = L + D und daher B = −(L + D)−1 R, also x(t+1) = x(t) + (L + D)−1 (b − Ax(t) ) (Vorwärtseinsetzen) Das Gauß-Seidel-Verfahren operiert ähnlich, verwendet jedoch die bereits berechneten aktua- lisierten Werte aus vorhergehenden Zeilen, statt wie beim Jacobi-Verfahren alle Korrekturen simultan auszurechnen. Solche Iterationsverfahren konvergieren normalerweise nur für bestimmte Klassen von Matrizen (da C regulär und kBk < 1 sein muss). Konvergenz des Jacobi-Verfahrens Erinnerung: Eine Matrix heißt strikt diagonaldominant, falls X |aij | < |aii | ∀ i = 1, . . . , n. j6=i Beispiele: LGS für kubische Splines, Radiosity-Methode. Satz 8.7. Das Jacobi-Verfahren und das Gauß-Seidel-Verfahren konvergieren für strikt diago- naldominante Matrizen. Beweis: Tafel, Gauß-Seidel: [Rannacher] Aufwand Es gibt viele ähnliche Aussagen für symmetrisch positiv definite Matrizen, schwach diagonal- dominante Matrizen, sogenannte M-Matrizen, . . . Der Aufwand für eine Iteration sei α(n), typischerweise mit α(n) = O(n). Wegen kx(t) − xk ≤ kBkt kx(0) − xk log() sind für eine Reduktion des Fehlers um den Faktor 1 insgesamt t ≥ log(kBk) Iterationen nötig, also ist der Gesamtaufwand log() Tfix (n) = α(n). log(kBk) Problem: hohe Kosten wenn kBk nahe Eins, kBk ist problemabhängig und wächst häufig mit n. 148 8.4 Iterationsverfahren zur Lösung linearer Gleichungssysteme Relaxationsverfahren Man nutzt daher Relaxationsverfahren: Für die Wahl Cω = (L + ω −1 D) mit Relaxationspara- meter ω 6= 0 ergibt sich Bω = −(ωL + D)−1 ((ω − 1)D + ωR). Für ω = 1 erhält man wieder das Gauß-Seidel-Verfahren, es stellt also einen Spezialfall dar. Wie sollte man ω wählen? Satz 8.8. Es gilt kBω k ≥ |ω − 1|, daher muss zwingend ω ∈ (0, 2) sein. Beweis: Tafel Für s.p.d. Matrizen kann man zeigen, dass ω ∈ (0, 2) nicht nur notwendig, sondern auch hinrei- chend ist. Für solche Matrizen konvergiert also das Relaxationsverfahren, und das Gauß-Seidel- Verfahren als Spezialfall. Die Grundidee des SOR-Verfahrens (Successive Over-Relaxation) ist es, ein ω > 1 zu wählen, das möglichst nah am (in der Praxis unbekannten) optimalen Wert liegt, um ein minimales kBω k und somit schnellere Konvergenz als bei Jacobi/Gauß-Seidel zu erhalten. Generell kann man durch Relaxation oft Fixpunktiterationen modifizieren und die Konvergen- zeigenschaften verbessern. Statt x(t+1) = g(x(t) ) = x(t) + (g(x(t) ) − x(t) ) verwendet man dabei x(t+1) = (1 − ω)x(t) + ωg(x(t) ) = x(t) + ω(g(x(t) ) − x(t) ) mit einem Relaxationsparameter ω > 0. Für 0 < ω < 1 erhält man ein robusteres, lang- sameres Verfahren (vgl. Newton), für ω > 1 eine Beschleunigung der Konvergenz langsamer Verfahren. Abstiegsverfahren Für symmetrisch positiv definite Matrizen gibt es eine weitere Klasse von Verfahren, die übli- cherweise deutlich effizienter ist, die sogenannten Abstiegsverfahren. 149 8 Iterative Lösung von Gleichungssystemen Satz 8.9 (Minimierungseigenschaft). Sei A ∈ Rn×n symmetrisch positiv definit. Mit dem qua- dratischen Funktional 1 Q(y) := (Ay, y) − (b, y) 2 ist die Lösung x des Gleichungssystems Ax = b durch die Eigenschaft ∀ y ∈ Rn , y 6= x : Q(x) < Q(y) charakterisiert. Beweis: Tafel Abstiegsverfahren bestehen aus zwei Komponenten: • Einer Folge von Suchrichtungen d(t) , die garantieren, dass Q sukzessive kleiner wird, man setzt x(t+1) = x(t) + αt · d(t) . • Zugehörige Schrittweiten αt , die jeweils Q entlang der Suchrichtung d(t) minimieren: Q(x(t+1) ) = min(x(t) + αd(t) ) α∈R Die Iterierten x(t) konvergieren dann gegen das Minimum von Q, und daher gegen die Lösung von Ax = b. Bestimmung der Schrittweite Der Gradient von Q ist das Residuum des Gleichungssystems, 1 ∇Q(y) = (A + AT )y − b = Ay − b, 2 und es gilt (Kettenregel) d Q(x(t) + αd(t) ) = ∇Q(x(t) + αt · d(t) ) · d(t) dα = (Ax(t) − b, d(t) ) + α · (Ad(t) , d(t) ) Daher sind die Schrittweiten eindeutig durch die Suchrichtungen festgelegt: (r(t) , d(t) ) αt = − mit r(t) := ∇Q(x(t) ) = Ax(t) − b (Ad(t) , d(t) ) 150 8.4 Iterationsverfahren zur Lösung linearer Gleichungssysteme Allgemeines Abstiegsverfahren Definition 8.10 (Allgemeines Abstiegsverfahren). Es sei x(0) ein vorgegebener Startwert mit zugehörigem Gradienten r(0) = Ax(0) − b. Ausgehend von einer vorgegebenen oder sich während des Verfahrens ergebenden Folge von Suchrichtungen d(t) berechnet das Abstiegsverfahren in jeder Iteration t die folgenden Größen: (t) (r ,d ) (t) • Schrittweite αt = − (Ad (t) ,d(t) ) • Neue Iterierte x(t+1) = x(t) + αt d(t) • Neuer Gradient r(t+1) = r(t) + αt Ad(t) Das Verfahren kann abgebrochen werden, sobald r(t) klein genug ist. Beispiele von Abstiegsverfahren Koordinatenrelaxation: Die wohl einfachste Wahl der Suchrichtungen ist d(t) = e(t mod n)+1 (zyklisch die einzelnen Raumdimensionen), dies ist im wesentlichen äquivalent zum Gauß-Seidel- Verfahren (warum?). Bei dieser Wahl kann es passieren, dass in einzelnen Richtungen d(t) keine Verbesserung möglich ist; nach einem vollen Zyklus ist dies aber garantiert der Fall. Gradientenverfahren: Das Gradientenverfahren (Verfahren des steilsten Abstiegs) wählt den negativen Gradienten als Suchrichtung: d(t) = −∇Q(x(t) ) Im Gegensatz zur Koordinatenrelaxation ist dies immer eine Abstiegsrichtung. Satz 8.11 (Konvergenz des Gradientenverfahrens). Sei A ∈ Rn×n symmetrisch positiv defi- nit. Dann konvergiert das Gradientenverfahren für jeden Startwert x(0) gegen die Lösung des Gleichungssystems Ax = b. Beweis: Tafel 151 8 Iterative Lösung von Gleichungssystemen Konvergenzgeschwindigkeit Eine genauere Aussage über die Konvergenzgeschwindigkeit des Gradientenverfahrens liefert der folgende Satz: Satz 8.12 (Fehlerabschätzung Gradientenverfahren). Für das Gradientenverfahren gilt die Feh- lerabschätzung 1 − 1/κ t (0) (t) kx − xkA ≤ kx − xkA 1 + 1/κ mit der Spektralkonditionszahl κ = cond2 (A) und der “A-Norm” kykA := (y, Ay)1/2 . Beweis: Tafel Wie wir sehen können, ist die Spektralnorm der Matrix entscheidend für die Konvergenzrate. Je größer der Unterschied zwischen kleinstem und größtem Eigenwert ist, desto langsamer konvergiert das Verfahren. Im Zweidimensionalen kann man dies besonders gut veranschaulichen: sukzessive Richtungen sind zwar stets orthogonal, was lokal den steilsten Abstieg garantiert, global entsteht jedoch ein “Zickzack-Kurs”, der sich extrem langsam dem Ziel nähert. 2 1.5 Gradientenverfahren 1 Isolinien 0.5 0 -0.5 -1 -1.5 -2 -10 -8 -6 -4 -2 0 2 4 6 8 10 Beobachtung: Für die Einheitsmatrix konvergiert das Verfahren in einem Schritt. Die Äquipo- tentialflächen sind (Hyper-) sphären, die um die Lösung zentriert sind, und der Gradient zeigt stets ins Zentrum. Können wir Problemstellung und Verfahren so transformieren, dass man dem möglichst nahe kommt? Zwei Ansätze: 152 8.4 Iterationsverfahren zur Lösung linearer Gleichungssysteme • Verwendung eines problemspezifischen Skalarproduktes statt der üblichen Orthogonalität (führt auf das Verfahren konjugierter Gradienten), und/oder • explizite Transformation des Vektorraums (Konzept der Vorkonditionierung) Konjugierte Gradienten Definition 8.13 (CG-Verfahren). Das CG-Verfahren ist ein Abstiegsverfahren, es setzt also in jeder Iteration (r(t) , d(t) ) αt = − , x(t+1) = x(t) + αt d(t) , r(t+1) = r(t) + αt Ad(t) . (Ad(t) , d(t) ) Man setzt d(0) = r(0) und definiert für t > 0 die einzelnen Suchrichtungen über (r(t+1) , r(t+1) ) βt = , d(t+1) = −r(t) + βt d(t) . (r(t) , r(t) ) Das Verfahren der konjugierten Gradienten (CG-Verfahren) benutzt Informationen aus vorher- gehenden Iterationen, und lässt sich daher nicht als Fixpunktiteration auffassen. Relevant für die Analyse des Verfahrens sind die Krylow-Räume Kt (y; A) := span{y, Ay, A2 y, . . . , At−1 y} bezüglich eines Vektors y, sowie das “A-Skalarprodukt”, dessen zugehörige “A-Norm” wir bereits kennengelernt haben: (y1 , y2 )A := (Ay1 , y2 ), kykA := (Ay, y)1/2 Satz 8.14 (Konvergenz des CG-Verfahrens). Der t-te Schritt des CG-Verfahrens minimiert Q auf dem affinen Unterraum x(0) + Kt (r(0) , A). Die bisherigen Suchrichtungen bilden dabei eine A-orthogonale Basis des Krylow-Raums Kt (r(0) , A), es gilt ∀i ≤ t, j ≤ t : (d(i) , d(j) )A = 0. Falls Kt+1 (r(0) , A) = Kt (r(0) , A) gelten sollte, folgt r(t) = 0, daher konvergiert das Verfahren in exakter Arithmetik nach spätestens n Schritten. Beweis: [Rannacher] Während das Gradientenverfahren Orthogonalität immer nur für den nächsten Schritt garan- tieren kann, baut das CG-Verfahren also systematisch eine A-orthogonale Basis auf. Wie wir gesehen haben, konvergiert das CG-Verfahren in einer endlichen Anzahl von Schritten, und zählt somit eigentlich zu den direkten Verfahren. In der Praxis wird es jedoch als iteratives Verfahren eingesetzt, und zwar aus zwei Gründen: 153 8 Iterative Lösung von Gleichungssystemen • Bei Fließkommaarithmetik ist die A-Orthogonalität nicht exakt erfüllt, so dass das Ver- fahren nicht abbricht. • Bei sehr großen Matrizen erreicht man oft bereits nach vergleichsweise wenigen Schritten eine brauchbare Näherungslösung. Satz 8.15 (Fehlerabschätzung CG-Verfahren). Für das CG-Verfahren gilt die Fehlerabschät- zung !t 1 − 1/κ1/2 kx(t) − xkA ≤ 2 kx(0) − xkA 1 + 1/κ1/2 mit der Spektralkonditionszahl κ = cond2 (A). Zur Reduktion des Anfangsfehlers um den Faktor sind höchstens 1 t() ≤ κ1/2 ln(2/) + 1 2 Schritte erforderlich. Beweis: [Rannacher] Die Konditionszahl geht im Gegensatz zum Gradientenverfahren also nur über ihre Wurzel ein, so dass bei hohen Konditionszahlen (breites Eigenspektrum, “schwierige” Probleme) mit einer deutlich schnelleren Konvergenz zu rechnen ist. Besonders drastisch sieht dies im Zweidimensionalen aus, da hier das CG-Verfahren nach Kon- struktion stets in zwei Schritten konvergiert. 2 1.5 Gradientenverfahren 1 CG-Verfahren 0.5 Isolinien 0 -0.5 -1 -1.5 -2 -10 -8 -6 -4 -2 0 2 4 6 8 10 154 8.4 Iterationsverfahren zur Lösung linearer Gleichungssysteme Ausblick Die Abstiegsverfahren lassen sich auch zur Minimierung allgemeiner Funktionen verwenden, denen nicht die Lösung eines linearen Gleichungssystems zugrunde liegt (Nichtlineare Optimie- rung). Zu beachten ist dabei: • Es können mehrere lokale Minima vorliegen, die Verfahren konvergieren dann quasi zu- fällig gegen eines davon, oder auch gar nicht (Sattelpunkte!). • Die Herleitung von Fehlerabschätzungen ist deutlich schwieriger. • Bei allgemeinen Funktionen gibt es keine geschlossene Formel für die optimale Schritt- weite αt . Stattdessen muss man mittels Liniensuche (eindimensionale Optimierung) eine hinreichend gute Schrittweite bestimmen. 155 9 Schlussbemerkungen 9 Schlussbemerkungen Top 10 der wichtigsten Algorithmen Die 10 Algorithmen mit “dem größten Einfluss auf Wissenschaft und Technik” im 20. Jahrhun- dert, laut Computing in Science and Engineering (2000): • Metropolis algorithm for Monte Carlo • Simplex method for linear programming • Krylov subspace iteration methods • The decompositional approach to matrix computations • The Fortran optimizing compiler • QR algorithm for computing eigenvalues • Quicksort algorithm for sorting • Fast Fourier transform • Integer relation detection • Fast multipole method In rot: wurde im Rahmen der Vorlesung behandelt / angesprochen. Die Top 10 laut Princeton Companion to Applied Mathematics (2015, größerer Fokus auf angewandte Mathematik): • Newton and quasi-Newton methods • Matrix factorizations (LU, Cholesky, QR) • Singular value decomposition, QR and QZ algorithms • Monte-Carlo methods • Fast Fourier transform • Krylov subspace methods (conjugate gradients, Lanczos, GMRES, minres) • JPEG • PageRank • Simplex algorithm • Kalman filter In rot: wurde im Rahmen der Vorlesung behandelt / angesprochen. 156 Weiterführende Veranstaltungen Auswahl an weiterführenden Veranstaltungen in den Bereichen Numerik und Wissenschaftliches Rechnen: • Numerik 1 (MD1) • Numerische Lineare Algebra (MH5) • Numerik gewöhnlicher Differentialgleichungen (MH6) • Numerik partieller Differentialgleichungen (MH7) • Object-Oriented Prog. for Scientific Computing (IOPWR) • Paralleles Höchstleistungsrechnen (IPHR) • Parallele Lösung großer Gleichungssysteme (IPLGG) 157
Authors Dr. Ole Klein
License CC-BY-SA-4.0