Michael Knorrenschild Mathematik-Studienhilfen Numerische Mathematik Eine beispielorientierte Einführung 5., aktualisierte Auflage
Inhaltsverzeichnis 1 Rechnerarithmetik und Gleitpunktzahlen 9 1.1 Grundbegriffe und Gleitpunktarithmetik............ 9 1.2 Auslöschung............................ 16 1.3 Fehlerrechnung.......................... 17 1.3.1 Fehlerfortpflanzung in arithmetischen Operationen.. 17 1.3.2 Fehlerfortpflanzung bei Funktionsauswertungen.... 18 2 Numerische Lösung von Nullstellenproblemen 25 2.1 Problemstellung.......................... 25 2.2 Das Bisektionsverfahren..................... 25 2.3 Die Fixpunktiteration...................... 27 2.4 Das Newton-Verfahren...................... 32 2.5 Konvergenzgeschwindigkeit................... 36 3 Numerische Lösung linearer Gleichungssysteme 39 3.1 Problemstellung.......................... 39 3.2 Der Gauß-Algorithmus...................... 40 3.3 Fehlerfortpflanzung beim Gauß-Algorithmus und Pivotisierung 45 3.4 Dreieckszerlegungen von Matrizen............... 47 3.4.1 Die LR-Zerlegung.................... 47 3.4.2 Die Cholesky-Zerlegung................. 49 3.5 Fehlerrechnung bei linearen Gleichungssystemen....... 52 3.6 Iterative Verfahren........................ 57 4 Numerische Lösung nichtlinearer Gleichungssysteme 65 4.1 Problemstellung.......................... 65 4.2 Das Newton-Verfahren für Systeme............... 66 5 Interpolation 71 5.1 Problemstellung.......................... 71
Inhaltsverzeichnis 7 5.2 Polynominterpolation...................... 72 5.2.1 Das Neville-Aitken-Schema............... 77 5.2.2 Der Fehler bei der Polynominterpolation........ 78 5.3 Splineinterpolation........................ 82 5.3.1 Problemstellung..................... 82 5.3.2 Interpolation mit kubischen Splines........... 84 6 Ausgleichsrechnung 91 6.1 Problemstellung.......................... 91 6.2 Lineare Ausgleichsprobleme................... 92 6.3 Nichtlineare Ausgleichsprobleme................ 99 6.4 Das Gauß-Newton-Verfahren.................. 101 7 Numerische Differenziation und Integration 105 7.1 Numerische Differenziation................... 105 7.1.1 Problemstellung..................... 105 7.1.2 Differenzenformeln für höhere Ableitungen....... 110 7.1.3 Differenzenformeln für partielle Ableitungen...... 111 7.1.4 Extrapolation....................... 112 7.2 Numerische Integration..................... 119 7.2.1 Problemstellung..................... 119 7.2.2 Interpolatorische Quadraturformeln.......... 123 7.2.3 Der Quadraturfehler................... 123 7.2.4 Transformation auf das Intervall [a,b]......... 125 7.2.5 Der Fehler der summierten Quadraturformeln..... 127 7.2.6 Newton-Cotes-Formeln.................. 129 7.2.7 Gauß-Formeln...................... 129 7.2.8 Extrapolationsquadratur................. 132 7.2.9 Praktische Aspekte.................... 136 8 Anfangswertprobleme gewöhnlicher Differenzialgleichungen 138 8.1 Problemstellung.......................... 138
8 Inhaltsverzeichnis 8.2 Das Euler-Verfahren....................... 140 8.3 Praktische Aspekte........................ 146 8.4 Weitere Einschrittverfahren................... 147 8.5 Weitere Verfahren........................ 153 Lösungen 155 Literaturverzeichnis 173 Sachwortverzeichnis 174 Zum Umgang mit diesem Buch: Ziel des Buches ist es, dem Leser eine selbstständige Aufarbeitung des Stoffes, etwa anlässlich einer Prüfungsvorbereitung, zu ermöglichen. In die Darstellung eingestreut sind Aufgaben, in denen die in Beispielen vorgestellten Methoden einmal selbst angewandt werden sollen. In den ersten Kapiteln wurden darüber hinaus Thesen unter der Überschrift wahr oder falsch? formuliert, die der Leser kritisch auf ihren Wahrheitsgehalt prüfen soll. Auf diese Weise kann das eigene Verständnis überprüft werden. Lösungen zu allen Aufgaben und die Auswertungen der Thesen finden sich am Ende des Bandes.
3 Numerische Lösung linearer Gleichungssysteme 3.1 Problemstellung Eine wichtige Teilaufgabe vieler praktischer Problemstellungen ist die Lösung eines linearen Gleichungssystems. In üblichen Anwendungen haben wir es mit einer relativ großen Anzahl von Gleichungen zu tun, nicht selten geht die Zahl in die tausende, und damit auch die Anzahl der Unbekannten (normalerweise muss die Anzahl der Gleichungen der Anzahl der Unbekannten entsprechen, damit eindeutige Lösbarkeit gegeben ist). Wir benötigen also ein numerisches Verfahren. Wir wollen ein lineares Gleichungssystem mit n linearen Gleichungen in n Unbekannten lösen. Üblicherweise schreibt man ein solches System in der Form Ax = b, wobei A = (a ij ) eine n n-matrixist, b IR n ein bekannter Vektor( rechteseite ),und x IR n dervektormitdenunbekannten Größen x 1,...,x n. Also ist zu lösen: a 11 a 12 a 1n x 1 b 1 a 21 a 22 a 2n x 2.... = b 2. a n1 a n2 a nn x n b n Bei der numerischen Lösung solcher Systeme unterscheidet man zwischen direkten Verfahren Das sind solche, die in endlich vielen Rechen-Schritten eine exakte Lösung des obigen Systems liefern (exakt natürlich nur, wenn man annimmt, dass auf dem Rechner alle Schritte exakt ausgeführt werden, was aber ja nicht der Fall ist) und iterativen Verfahren Das sind solche, die eine Folge von Vektoren erzeugen, die gegen die Lösung des obigen Systems konvergiert. Wir wenden uns zunächst den direkten Verfahren zu. Diese basieren auf der Idee, dass man das obige System in ein leichter zu lösendes anderes System äquivalent umformt (d. h. ohne dass sich dabei die Lösungsmenge ändert).
40 3 Numerische Lösung linearer Gleichungssysteme 3.2 Der Gauß-Algorithmus Beispiel 3.1 Es soll folgendes System gelöst werden 1 2 1 0 10 10 x = 9 40 0 0 2 2 Lösung: Aus der dritten Gleichung erhalten wir sofort: x 3 = 1. Setzt man dies in die zweite Gleichung ein, so lautet diese: 10x 2 10 = 40, d. h. x 2 = 3. Die bereits bekannten x 2 und x 3 in die erste Gleichung eingesetzt ergibt: x 1 +6+1 = 9, alsox 1 = 2. Der Lösungsvektorist also x = (2,3, 1) T. Da hier die Komponenten des Lösungsvektors von unten nach oben berechnet werden, nennt man dieses Verfahren auch Rückwärtseinsetzen. Dieser Typ Gleichungssystem kann folgendermaßen beschrieben werden: a 11 a 12 a 13 a 1n x 1 b 1 0 a 22 a 23 a 2n x 2 b 2 0 0 a 33 a nn x 3 = b 3........ 0 0 0 a nn x n Es gilt dabei also a ij = 0 für alle i > j. Aus offensichtlichen Gründen nennt man die Matrix A dann eine rechts-obere Dreiecksmatrix. Die letzte Gleichung enthält nur eine Unbekannte, nämlich x n, die letzte Komponente des Lösungsvektors. Die letzte Gleichung kann also einfach nach x n aufgelöst werden: x n = b n /a nn. Mit dem nun bekannten x n gibt es in der vorletzten Gleichung nur noch eine Unbekannte x n 1, nach der aufgelöst werden kann. Mit den bekannten Komponenten x n 1 und x n geht man nun in die drittletzte Gleichung, bestimmt x n 2 usw. Wir erhalten: Lösung eines rechts-oberen Dreieckssystems ( Rückwärtseinsetzen ) x n := b n ; für i = n 1 bis 1 : x i := 1 n b i a ij x j a nn a ii Der Aufwand dieser Methode beträgt n(n+1) 2 b n j=i+1 Punktoperationen.
3.2 Der Gauß-Algorithmus 41 Aufgaben 3.1 Welche Voraussetzungen müssen erfüllt sein, damit die Lösung eines rechts-oberen Dreieckssystems mit der obigen Methode berechnet werden kann? 3.2 Verifizieren Sie die Aufwandsangabe für das Rückwärtseinsetzen. In analoger Weise kann man links-untere Dreiecksmatrizen und -systeme definieren und zur Lösung die Methode des Vorwärtseinsetzen verwenden. Was nützt das nun für die Lösung von Systemen Ax = b, bei denen A keine Dreiecksmatrix ist? Ganz einfach: In diesem Fall versucht man, das System ohne Veränderung der Lösungsmenge in ein rechts-oberes Dreieckssystem zu überführen. Das ist die Idee des Gauß-Algorithmus. Bei diesem Verfahren sind folgende Umformungen zugelassen: z j := z j λ z i mit i < j, λ IR, wobei z i die i-te Zeile des Systems bezeichnet z i z j : Vertauschen der i-ten und j-ten Zeile im System Es sind also nur Zeilenvertauschungen erlaubt sowie die Subtraktion des λ- fachen einer Zeile von einer darunter stehenden Zeile. Mit diesen beiden Operationen kann jede Matrix A in eine rechts-obere Dreiecksmatrix überführt werden (natürlich müssen zur Lösung von A x = b die Umformungen auch auf die rechte Seite b angewandt werden). Damit das Verfahren programmiert werden kann, ist eine präzise Formulierung nötig, die eindeutig festlegt, welche Operation wann vorgenommen wird. Man geht dabei wie folgt vor: Zuerst erzeugt man Nullen in der ersten Spalte, unterhalb von a 11, unter Verwendung der ersten Zeile und der ersten der beiden oben aufgeführten Umformungen. Also: z j := z j a j1 a 11 z 1 für j = 2...n Dies geht immer dann, wenn a 11 0 gilt. Ist a 11 = 0, so vertauschen wir die erste Zeile mit der i-ten Zeile, wobei i so gewählt ist, dass a i1 0 ist. Das neue a 11 ist dann das alte a i1 und die obige Umformung kann ausgeführt werden. In dem Fall, dass alle Zeilen der Matrix in der ersten Spalte eine Null besitzen, hilft natürlich auch das Vertauschen nichts. In diesem Fall ist die Matrix aber nicht regulär, d. h. das Gleichungssystem ist nicht eindeutig lösbar oder sogar unlösbar. Die Lösungsmenge kann leer sein, oder auch unendlich viele Elemente enthalten.
42 3 Numerische Lösung linearer Gleichungssysteme Hat man in der ersten Spalte unterhalb der Diagonalen nun Nullen erzeugt, so geht man analog vor, um in der zweiten Spalte unterhalb der Diagonalen Nullen zu erzeugen. Zum Eliminieren der Elemente wird dabei die zweite Zeile benutzt. Setzt man das Verfahren fort, so erhält man schließlich eine rechts-obere Dreiecksmatrix. Der Algorithmus sieht allgemein dann so aus: Gauß-Algorithmus zur Transformation von A x = b auf ein rechts-oberes Dreieckssystem für i = 1,...,n 1: erzeuge Nullen unterhalb des Diagonalelements in der i-ten Spalte { falls nötig und möglich, sorge durch Zeilenvertauschung für a ii 0: wenn a ii 0: tue nichts wenn a ii = 0: wenn a ji = 0 für alle j = i+1,...,n: A ist nicht regulär; stop; wenn a ji 0 für ein j = i+1,...,n : sei j i+1 der kleinste Index mit a ji 0; z i z j Eliminationsschritt: für j = i+1,...,n: eliminiere Element a ji : z j := z j a ji a ii z i (3.1) Der Aufwand des Gauß-Algorithmus beträgt n3 3 n 3 Punktoperationen. Beispiel 3.2 Das Gleichungssystem Ax = b mit A := 1 2 1 4 2 6, b = 9 4 3 1 0 9 soll mit dem Gauß-Algorithmus auf rechts-obere Dreiecksform transformiert werden und anschließend das entstandene Dreieckssystem gelöst werden.
3.2 Der Gauß-Algorithmus 43 Lösung: Der Übersicht halber schreibt man die Matrix und die rechte Seite zusammen in ein Schema: (A b) = 1 2 1 9 4 2 6 4 z2:=z2 4z1 1 2 1 9 0 10 10 40 3 1 0 9 3 1 0 9 z 3:=z 3 3z 1 1 2 1 9 0 10 10 40 0 5 3 18 z3:=z3 0.5z2 1 2 1 9 0 10 10 40 0 0 2 2 Das entstandene Dreieckssystem haben wir schon in Beispiel 3.1 gelöst und dabei x = (2,3, 1) T erhalten. Hat man Ax = b schon einmal mit dem Gauß-Algorithmus gelöst, und soll nun das System noch einmal mit einer anderen rechten Seite c lösen, so führt man natürlich nicht noch einmal den Gauß-Algorithmus für das ganze System durch, sondern wendet die bereits bekannten Operationen nur noch auf die neue rechte Seite c an. Beispiel 3.3 Es soll das Gleichungssystem Ax = c mit der Matrix A aus Beispiel 3.2 und c = (0, 10, 9) T gelöst werden. Lösung: Die nötigen Umformungen sind bereits aus Beispiel 3.2 bekannt, wir lesen sie dort ab und wenden sie auf c an: 0 z2:=z2 4z1 0 z3:=z3 3z1 0 z3:=z3 0.5z2 0 c = 10 9 10 9 10 9 10 4 Als Lösung erhält man analog zu Beispiel 3.2 x = ( 4,3,2) T. Bemerkung: A sei eine n n-matrix, für die der Gauß-Algorithmus durchführbar ist. Am Ende erhält man also eine rechts-obere Dreiecksmatrix R. Dann gilt mit R = (r ij ): n det A = ( 1) l det R = ( 1) l r ii, i=1 wobei l die Anzahl der im Laufe des Gauß-Algorithmus vorgenommenen Zeilenvertauschungen ist.
Sachwortverzeichnis Ableitung, partielle 111 Abschätzung, a-posteriori- 31, 61, a-priori- 31, 61 Abschneidefehler 106 Anfangswertproblem 138 Ansatzfunktion 92 Ausgleichsfunktion 92 Ausgleichsgerade 92 Ausgleichsproblem 91, allgemeines 99, lineares 94 Auslöschung 16, 107 Bisektion 25 Cholesky-Zerlegung 49 Determinante 44 Dezimalzahl 9 diagonaldominant 62 Differenzen, dividierte 74 Differenzenformel 105 Differenzialgleichung, gewöhnl. 138 direkte Verfahren 39 Diskretisierung 140 Diskretisierungsfehler 106 Dreieckszerlegung 47 Dualzahl 9 Einschrittverfahren 147 Einzelschrittverfahren 60 Euler-Verfahren 140, modifiziertes 148 Extrapolation 112 Extrapolation bei Anfangswertproblemen 153 Extrapolation bei Quadratur 132 Fehler, absoluter 12, globaler 144, lokaler 144, relativer 15 Fehler bei Rundung 12 Fehlerfortpflanzung 19 Fehlerfunktional 91 Fehlerordnung 106, 124 Fehlerquadrate, kleinste 92 Fehlerrechnung 17 Fixpunkt 27, abstoßender 30, anziehender 30 Fixpunktiteration 27, 28 Fixpunktsatz, Banachscher 31 Flop (floating point operation) 14 Gauß-Algorithmus 40, 42 Gauß-Formeln 129 Gauß-Newton-Verfahren 101 Gauß-Seidel-Verfahren 60 Gesamtschrittverfahren 58 Gitterpunkte 140 Gleitpunktarithmetik 12 Gleitpunktoperation 14 Gleitpunktzahl 9 IEEE-Format 10, 11
Sachwortverzeichnis 175 Implizite Verfahren 153 Interpolationsfehler 78 Interpolationspolynom 72, Lagrangesches 73, Newtonsches 75 Interpolationsproblem 71 Interpolierende 71 Jacobi-Matrix 66 Jacobi-Verfahren 58 Konditionszahl 21, 54 Konsistenzordnung 144 Konvergenzgeschwindigkeit 36 Konvergenzordnung 36, 144 Laplace-Operator 111 Linearisierung 32, 141 Lipschitzbedingung 145 LR-Zerlegung 48 Mantisse 9 Maschinengenauigkeit 15 Maschinenzahl 10 Mehrschrittverfahren 154 Mittelpunktsregel 121, 126, 148, summierte 121, 128 Momente 85 Neville-Aitken-Schema 77 Newton-Cotes-Formeln 129 Newton-Verfahren 32, 66, vereinfachtes 35 Newton-Verfahren für Systeme 67, vereinfachtes 69 Norm 52, 53 Normalgleichungen 95 O(h k ) 106 positiv definit 49 Punktoperation 14 Quadratmittelproblem 101 Quadratur, adaptive 136 Quadraturfehler 123 Quadraturformel, interpolat. 123 Quadraturverfahren 119 Rückwärtseinsetzen 40 Rechteckregel 121, summierte 121, 128 rechts-obere Dreiecksmatrix 40 Regressionsgerade 92 regula falsi 36 Restglied, Taylorsches 105 Richtungsfeld 139 Romberg-Extrapolation 133 Rundungsfehler 12 Runge-Kutta-Verfahren, allgemeines 151, klassisches 150 Satz von Taylor 105 Schrittweite 140 Schrittweitensteuerung 146 Sekantenverfahren 35 Simpson-Regel 123, 126, summierte 128 Spaltenpivotisierung 45 Spaltensummenkriterium 62 Spektralradius 53 Spline, interpolierender 84, kubischer 83, 84, natürlicher 84, periodischer 84 Splinefunktion 83 Splineinterpolation 82 Stützstellen 71 Trapezregel 121, 126, summierte 121, 128 Verfahren von Heun 149 Zeilensummenkriterium 62 Zwischenwertsatz 25