Einführung in die Numerische Mathematik - Lehrstuhl Numerische ...
Einführung in die Numerische Mathematik - Lehrstuhl Numerische ...
Einführung in die Numerische Mathematik - Lehrstuhl Numerische ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> <strong>Numerische</strong> <strong>Mathematik</strong><br />
Thomas Richter<br />
thomas.richter@iwr.uni-heidelberg.de<br />
Thomas Wick<br />
thomas.wick@iwr.uni-heidelberg.de<br />
Universität Heidelberg<br />
21. März 2013
Inhaltsverzeichnis<br />
Literaturverzeichnis<br />
ii<br />
1 E<strong>in</strong>leitung 1<br />
1.1 Konditionierung von numerischen Problemen . . . . . . . . . . . . . . . . . 5<br />
1.2 Rundungsfehleranalyse und Stabilität von numerischer Algorithmen . . . . 15<br />
2 Nullstellenbestimmung 19<br />
2.1 Motivation und E<strong>in</strong>ordnung . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
2.2 Stabilität und Kondition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
2.3 Intervallschachtelung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />
2.4 Das Newton-Verfahren <strong>in</strong> 1D . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
2.4.1 Das klassische Newton-Verfahren . . . . . . . . . . . . . . . . . . . . 27<br />
2.4.2 Das Newton-Verfahren als Defekt-Korrektur . . . . . . . . . . . . . . 32<br />
2.4.3 Das vere<strong>in</strong>fachte Newton-Verfahren . . . . . . . . . . . . . . . . . . . 33<br />
2.4.4 Das gedämpfte Newton-Verfahren . . . . . . . . . . . . . . . . . . . 33<br />
2.5 Weitere Verfahren zur Nullstellensuche . . . . . . . . . . . . . . . . . . . . . 34<br />
2.6 Konvergenzbegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
2.7 Vier Verfahren im Vergleich . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
3 Interpolation und Approximation 47<br />
3.1 Polynom<strong>in</strong>terpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />
3.1.1 Lagrangesche Darstellung . . . . . . . . . . . . . . . . . . . . . . . . 51<br />
3.1.2 Newtonsche Darstellung . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />
3.1.3 Interpolation von Funktionen und Fehlerabschätzungen . . . . . . . 54<br />
3.2 Spl<strong>in</strong>e Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />
3.3 <strong>Numerische</strong> Differentiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />
3.4 Richardson Extrapolation zum Limes . . . . . . . . . . . . . . . . . . . . . . 67<br />
3.5 <strong>Numerische</strong> Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />
3.5.1 Interpolatorische Quadratur . . . . . . . . . . . . . . . . . . . . . . . 73<br />
3.5.2 Stückweise <strong>in</strong>terpolatorische Quadraturformeln . . . . . . . . . . . . 77<br />
3.5.3 Gauß-Quadratur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />
3.5.4 Romberg-Quadratur . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
3.6 Approximationstheorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98<br />
3.6.1 Gauss-Approximation: Beste Approximation <strong>in</strong> der L 2 -Norm . . . . 99<br />
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra 109<br />
4.1 Grundlagen der l<strong>in</strong>earen Algebra . . . . . . . . . . . . . . . . . . . . . . . . 109<br />
i
Inhaltsverzeichnis<br />
4.2 Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme . . . . . . . . . . . . . . . 116<br />
4.2.1 Störungstheorie & Stabilitätsanalyse von l<strong>in</strong>earen Gleichungssystemen117<br />
4.2.2 Das Gauß’sche Elim<strong>in</strong>ationsverfahren und <strong>die</strong> LR-Zerlegung . . . . . 120<br />
4.2.3 LR-Zerlegung für diagonaldom<strong>in</strong>ante Matrizen . . . . . . . . . . . . 131<br />
4.2.4 Die Cholesky-Zerlegung für positiv def<strong>in</strong>ite Matrizen . . . . . . . . . 132<br />
4.2.5 Dünn besetzte Matrizen und Bandmatrizen . . . . . . . . . . . . . . 134<br />
4.3 Nachiteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140<br />
4.4 Orthogonalisierungsverfahren und <strong>die</strong> QR-Zerlegung . . . . . . . . . . . . . 145<br />
4.4.1 Das Gram-Schmidt Verfahren . . . . . . . . . . . . . . . . . . . . . . 146<br />
4.4.2 Householder-Transformationen . . . . . . . . . . . . . . . . . . . . . 149<br />
4.4.3 Givens-Rotationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155<br />
4.5 Überbestimmte Gleichungssysteme, Gauß’sche Ausgleichrechnung . . . . . . 158<br />
4.6 Berechnung von Eigenwerten . . . . . . . . . . . . . . . . . . . . . . . . . . 164<br />
4.6.1 Konditionierung der Eigenwertaufgabe . . . . . . . . . . . . . . . . . 165<br />
4.6.2 Direkte Methode zur Eigenwertberechnung . . . . . . . . . . . . . . 168<br />
4.6.3 Iterative Verfahren zur Eigenwertberechnung . . . . . . . . . . . . . 169<br />
4.6.4 Das QR-Verfahren zur Eigenwertberechnung . . . . . . . . . . . . . 174<br />
4.6.5 Reduktionsmethoden zur Eigenwertbestimmung . . . . . . . . . . . . 176<br />
5 <strong>Numerische</strong> Iterationsverfahren 181<br />
5.1 Der Banachsche Fixpunktsatz . . . . . . . . . . . . . . . . . . . . . . . . . . 181<br />
5.2 Fixpunkt-Iterationen zum Lösen von nichtl<strong>in</strong>earen Gleichungen . . . . . . . 186<br />
5.2.1 Newton-Verfahren im R n . . . . . . . . . . . . . . . . . . . . . . . . 186<br />
5.2.2 Newton-Kantorovich . . . . . . . . . . . . . . . . . . . . . . . . . . . 187<br />
5.2.3 Vere<strong>in</strong>fachtes und gedämpftes Newton-Verfahren . . . . . . . . . . . 192<br />
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme . . . . . . . . . . . 195<br />
5.3.1 Konstruktion von Fixpunktverfahren . . . . . . . . . . . . . . . . . . 198<br />
5.3.2 Konvergenzkriterium für Jacobi- und Gauß-Seidel-Iteration . . . . . 199<br />
5.3.3 Relaxationsverfahren: das SOR-Verfahren . . . . . . . . . . . . . . . 204<br />
5.3.4 Praktische Aspekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207<br />
5.3.5 Abstiegs & Gra<strong>die</strong>ntenverfahren . . . . . . . . . . . . . . . . . . . . 209<br />
6 Anwendungsbeispiel: dünner Balken 221<br />
6.1 Modellierung e<strong>in</strong>es elastischen Balkens . . . . . . . . . . . . . . . . . . . . . 222<br />
6.2 Diskretisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223<br />
6.2.1 Diskretes Modell mit globaler Interpolation . . . . . . . . . . . . . . 225<br />
6.2.2 Diskretes Modell mit stückweiser Interpolation . . . . . . . . . . . . 225<br />
6.2.3 Vergleich und Diskussion der beiden Modelle . . . . . . . . . . . . . 226<br />
6.3 Lösungsverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227<br />
6.4 E<strong>in</strong> Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228<br />
6.4.1 Globaler Polynomansatz . . . . . . . . . . . . . . . . . . . . . . . . . 228<br />
6.4.2 Stückweiser Polynomansatz . . . . . . . . . . . . . . . . . . . . . . . 230<br />
6.4.3 Analyse und Vergleich . . . . . . . . . . . . . . . . . . . . . . . . . . 233<br />
ii
Literaturverzeichnis<br />
[1] Jörg Bewersdorff. Algebra für E<strong>in</strong>steiger: Von der Gleichungsauflösung zur Galois-<br />
Theorie. Wiesbaden, 2004.<br />
[2] J.F. Epperson. An <strong>in</strong>troduction to numerical methods and analysis. John Wiley &<br />
Sons, 2007.<br />
[3] J. Douglas Faires and Richard L. Burdon. <strong>Numerische</strong> Methoden. Spektrum Akademischer<br />
Verlag, 1994.<br />
[4] A. Grama, A. Gupta, G. Karypis, and V. Kumar. Introduction to Parallel Comput<strong>in</strong>g.<br />
Addison-Wesley, 2003. 2nd edition.<br />
[5] G. Hämmerl<strong>in</strong> and K.-H. Hoffmann. <strong>Numerische</strong> <strong>Mathematik</strong>. Spr<strong>in</strong>ger Verlag, 1992.<br />
[6] M. Hanke-Bourgeois. Grundlagen der numerischen <strong>Mathematik</strong> und des Wissenschaftlichen<br />
Rechnens. Vieweg-Teubner Verlag, 2009.<br />
[7] IEEE. IEEE 754-2008: Standard for float<strong>in</strong>g-po<strong>in</strong>t arithmetic. Technical report, IEEE<br />
Standards Association, 2008. doi:10.1109/IEEESTD.2008.4610935.<br />
[8] Ra<strong>in</strong>er Kress. Numerical Analysis. Spr<strong>in</strong>ger Verlag, 1998.<br />
[9] R. Rannacher. <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> numerische mathematik. Technical report, Universität<br />
Heidelberg, 2006. http://numerik.uni-hd.de/˜lehre/notes.<br />
[10] R. Rannacher. Numerik partieller Differentialgleichungen. Technical report, Universität<br />
Heidelberg, 2008. http://numerik.uni-hd.de/˜lehre/notes.<br />
[11] R. Rannacher. Numerik gewöhnlicher Differentialgleichungen. Technical report, Universität<br />
Heidelberg, 2011. http://numerik.uni-hd.de/˜lehre/notes.<br />
[12] T. Richter. Numerik partieller Differentialgleichungen. Technical report, Universität<br />
Heidelberg, 2011. http://numerik.uni-hd.de/˜richter/teach<strong>in</strong>g.shtml.<br />
[13] H. R. Schwarz and N. Köckler. <strong>Numerische</strong> <strong>Mathematik</strong>. Vieweg-Teubner Verlag,<br />
2011.<br />
[14] Dirk Werner. Funktionalanalysis. Spr<strong>in</strong>ger, 2004.<br />
iii
Literaturverzeichnis<br />
iv
1 E<strong>in</strong>leitung<br />
In der numerischen <strong>Mathematik</strong> werden Verfahren zum konkreten “Lösen” von mathematischen<br />
Problemen entworfen und analysiert. Dabei ist <strong>die</strong> numerische <strong>Mathematik</strong> eng<br />
mit anderen Zweigen der <strong>Mathematik</strong> verbunden und kann auch nicht von dem Anwendungsgebiet,<br />
also z.B. der Chemie, Physik oder Mediz<strong>in</strong> getrennt werden. Der übliche Weg<br />
von Problem zur Lösung ist lang:<br />
1. Mathematische Modellierung Das zugrundeliegende Problem wird mathematisch erfasst,<br />
es werden Gleichungen entwickelt, <strong>die</strong> das Problem beschreiben. Ergebnis des<br />
mathematischen Modells kann e<strong>in</strong> l<strong>in</strong>eares Gleichungssystem se<strong>in</strong>, aber z.B. auch<br />
e<strong>in</strong>e Differentialgleichung.<br />
2. Analyse des Modells Das mathematische Modell muss auf se<strong>in</strong>e Eigenschaften untersucht<br />
werden: existiert e<strong>in</strong>e Lösung, ist <strong>die</strong>se Lösung e<strong>in</strong>deutig? Hier kommen alle<br />
Teilgebiete der <strong>Mathematik</strong> zum E<strong>in</strong>satz, von der L<strong>in</strong>earen Algebra über Statistik,<br />
Gruppentheorie zur Theorie von partiellen Differentialgleichungen.<br />
3. <strong>Numerische</strong> Verfahrensentwicklung E<strong>in</strong> numerisches Lösungs- oder Approximationsverfahren<br />
wird für das Modell entwickelt. Viele mathematische Modelle (etwa Differentialgleichungen)<br />
können nicht exakt gelöst werden und oft kann e<strong>in</strong>e Lösung,<br />
auch wenn sie existiert, nicht angegeben werden. Die Lösung e<strong>in</strong>er Differentialgleichung<br />
ist e<strong>in</strong>e Funktion f : [a, b] → R und zur genauen Beschreibung müsste der<br />
Funktionswert an den unendlich-vielen Punkten des Intervalls [a, b] bestimmt werden.<br />
Jede durchführbare Verfahrensvorschrift kann allerd<strong>in</strong>gs nur aus endlich vielen<br />
Schritten bestehen. Das Problem muss zunächst diskretisiert werden, also auf e<strong>in</strong><br />
endlich-dimensionales reduziert werden. Die <strong>Numerische</strong> <strong>Mathematik</strong> befasst sich<br />
mit der Analyse der numerischen Verfahren, also mit Untersuchung von Konvergenz<br />
und Approximationsfehlern.<br />
4. Implementierung Das numerische Verfahren muss auf e<strong>in</strong>em Computer implementiert<br />
werden. Zur effizienten Implementierung müssen spezielle Algorithmen entwickelt<br />
werden. Um moderne Computer-Architekturen nutzen zu können muss das<br />
Verfahren z.B. für <strong>die</strong> Verwendung von Parallelrechnern modifiziert werden.<br />
5. Auswertung Die numerischen Ergebnisse (etwa das Simulationsergebnis e<strong>in</strong>er Flugzeugumströmung)<br />
müssen ausgewertet werden. Dies be<strong>in</strong>haltet e<strong>in</strong>e grafische Darstellung<br />
der Ergebnisse sowie <strong>in</strong> technischen Anwendungen z.B. <strong>die</strong> Auswertung von<br />
Kräften <strong>die</strong> nur <strong>in</strong>direkt gegeben s<strong>in</strong>d. Anhand von Plausibilitätsanalysen muss <strong>die</strong><br />
Qualität der Ergebnisse beurteilt werden. Unter Umständen führt <strong>die</strong>se Überprüfung<br />
zu neuen mathematischen Modellen oder modifizierten numerischen Verfahren.<br />
1
1 E<strong>in</strong>leitung<br />
Die Teilaspekte dürfen nicht getrennt vone<strong>in</strong>ander gesehen werden. E<strong>in</strong> effizienter Algorithmus<br />
ist nichts wert, wenn das zugrundeliegende Problem überhaupt ke<strong>in</strong>e wohldef<strong>in</strong>ierte<br />
Lösung hat, e<strong>in</strong> numerisches Verfahren für e<strong>in</strong> Anwendungsproblem ist wertlos, wenn der<br />
Computer <strong>in</strong> absehbarer Zeit zu ke<strong>in</strong>er Lösung kommt.<br />
Das Ergebnis e<strong>in</strong>er numerischen Aufgabe ist im Allgeme<strong>in</strong>en e<strong>in</strong>e Zahl, oder e<strong>in</strong>e endliche<br />
Menge von Zahlen. Beispiele für numerische Aufgaben s<strong>in</strong>d das Berechnen der Nullstellen<br />
e<strong>in</strong>er Funktion, <strong>die</strong> Berechnung von Integralen, <strong>die</strong> Berechnung der Ableitung e<strong>in</strong>er<br />
Funktion <strong>in</strong> e<strong>in</strong>em Punkt, aber auch komplexere Aufgaben wie das Lösen e<strong>in</strong>er Differentialgleichung.<br />
Zum Lösen von numerischen Aufgaben werden wir unterschiedliche Verfahren kennenlernen.<br />
Wir grenzen zunächst e<strong>in</strong>:<br />
Def<strong>in</strong>ition 1.1 (<strong>Numerische</strong>s Verfahren, Algorithmus). E<strong>in</strong> numerisches Verfahren ist e<strong>in</strong>e<br />
Vorschrift zum Lösen oder zur Approximation e<strong>in</strong>er mathematischen Aufgabe. E<strong>in</strong> numerisches<br />
Verfahren heißt direkt, falls <strong>die</strong> Lösung bis auf Rundungsfehler exakt berechnet<br />
werden kann. E<strong>in</strong> Verfahren heißt approximativ falls <strong>die</strong> Lösung nur angenähert werden<br />
kann. E<strong>in</strong> Verfahren heißt iterativ, falls <strong>die</strong> Näherung durch mehrfache Ausführung des<br />
Verfahrens verbessert werden kann.<br />
Beispiele für direkte Lösungsverfahren s<strong>in</strong>d <strong>die</strong> p/q-Formel zur Berechnung von Nullstellen<br />
quadratischer Polynome (siehe Kapitel 2) oder der Gauß’sche Elim<strong>in</strong>ationsalgorithmus<br />
(Kapitel 4) zum Lösen von l<strong>in</strong>earen Gleichungssysteme. Approximative Verfahren müssen<br />
z.B. zum Bestimmen von komplizierten Integralen oder auch zum Berechnen von Nullstellen<br />
allgeme<strong>in</strong>er Funktionen e<strong>in</strong>gesetzt werden. Wir betrachten e<strong>in</strong> Beispiel e<strong>in</strong>es direkten<br />
Verfahrens:<br />
Beispiel 1.2 (Polynomauswertung). Es sei durch<br />
p(x) = a 0 + a 1 x + · · · + a n x n<br />
e<strong>in</strong> Polynom gegeben. Dabei sei n ∈ N sehr groß. Wir werten p(x) <strong>in</strong> e<strong>in</strong>em Punkt x 0 ∈ R<br />
mit dem trivialen Verfahren aus:<br />
Algorithmus 1.3 (Polynom-Auswertung).<br />
1. Für i = 0, 1, . . . , n berechne y i := a i x i 0<br />
2. Berechne p = ∑ N<br />
i=0 y i .<br />
Wir berechnen den Aufwand zur Polynom-Auswertung: In Schritt 1. des Algorithmus s<strong>in</strong>d<br />
zur Berechnung der y i i Multiplikationen notwendig, <strong>in</strong>sgesamt<br />
0 + 1 + 2 + · · · + n =<br />
n(n + 1)<br />
2<br />
= n2<br />
2 + n 2 .<br />
2
In Schritt 2 weitere n Additionen notwendig. Der Gesamtaufwand des Algorithmus beträgt<br />
demnach n 2 /2 + n/2 Multiplikationen sowie n Additionen. Wir fassen e<strong>in</strong>e Addition und<br />
e<strong>in</strong>e Multiplikation zu e<strong>in</strong>er elementaren Operation zusammen und erhalten zusammen<br />
als Aufwand der trivialen Polynomauswertung<br />
elementare Operationen.<br />
Wir schreiben das Polynom um<br />
A 1 (n) = n2<br />
n + n 2<br />
p(x) = a 0 + x(a 1 + x(a 2 + · · · + x(a n−1 + xa n ) . . . ))<br />
und leiten hieraus e<strong>in</strong>en weiteren Algorithmus her:<br />
Algorithmus 1.4 (Horner-Schema).<br />
1. Setze p := a n<br />
2. In Schritt i = n − 1 bis 0 berechne p := a i + x · p<br />
Jeder der n Schritte des Verfahrens benötigt e<strong>in</strong>e Multiplikation sowie e<strong>in</strong>e Addition, also<br />
ergibt sich e<strong>in</strong> Aufwand von<br />
A 2 (n) = n<br />
elementare Operationen. Das Horner-Schema benötigt für <strong>die</strong> gleiche Aufgabe wesentlich<br />
weniger Operationen, man denke nur an Polynome n ≫ 1000.<br />
Def<strong>in</strong>ition 1.5 (<strong>Numerische</strong>r Aufwand). Der Aufwand e<strong>in</strong>es numerischen Verfahrens ist<br />
<strong>die</strong> Anzahl der notwendigen elementaren Operationen. E<strong>in</strong>e elementare Operation ist e<strong>in</strong>e<br />
Addition und e<strong>in</strong>e Multiplikation.<br />
Meist hängt der Aufwand e<strong>in</strong>es Verfahrens von der Problemgröße ab. Die Problemgröße<br />
N ∈ N wird von Problem zu Problem def<strong>in</strong>iert, beim Lösen e<strong>in</strong>es l<strong>in</strong>earen Gleichungssystems<br />
Ax = b mit e<strong>in</strong>er Matrix A ∈ R N×N ist <strong>die</strong> Größe der Matrix <strong>die</strong> Problemgröße.<br />
Beim Auswerten e<strong>in</strong>es Polynoms p(x) = a n x n + a n−1 x n−1 + · · · + a 0 <strong>in</strong> e<strong>in</strong>em Punkt x ist<br />
<strong>die</strong> Problemgröße <strong>die</strong> Anzahl der Koeffizienten n.<br />
Zur e<strong>in</strong>fachen Schreibweise def<strong>in</strong>ieren wir:<br />
3
1 E<strong>in</strong>leitung<br />
Def<strong>in</strong>ition 1.6 (Landau-Symbole). (i) Es sei g(n) e<strong>in</strong>e Funktion mit g → ∞ für n → ∞.<br />
Dann ist f ∈ O(g) genau dann, wenn<br />
lim sup<br />
n→∞<br />
f(n)<br />
∣ g(n) ∣ < ∞<br />
sowie f ∈ o(g) genau dann, wenn<br />
lim<br />
n→∞ ∣<br />
f(n)<br />
g(n) ∣ = 0.<br />
(ii) Sei g(h) e<strong>in</strong>e Funktion mit g(h) → 0 für h → 0. Wir def<strong>in</strong>ieren wie oben f ∈ O(g)<br />
sowie f ∈ o(g).<br />
E<strong>in</strong>fach gesprochen: f ∈ O(g), falls f höchstens so schnell gegen ∞ konvergiert wie g und<br />
f ∈ o(g), falls g schneller als f gegen ∞ geht. Entsprechend gilt für g → 0. dass f ∈ O(g),<br />
falls f m<strong>in</strong>destens so schnell gegen Null konvergiert wie g und f ∈ o(g) falls f schneller<br />
als g gegen Null konvergiert. Mit Hilfe der Landau-Symbole lässt sich der Aufwand<br />
e<strong>in</strong>es Verfahrens e<strong>in</strong>facher charakterisieren. Im Fall der trivialen Polynomauswertung <strong>in</strong><br />
Algorithmus 1.3 gilt für den Aufwand A 1 (n) <strong>in</strong> Abhängigkeit der Polynomgröße n:<br />
A 1 (n) ∈ O(n 2 ),<br />
und im Fall des Horner-Schema’s von Algorithmus 1.4<br />
A 2 (n) ∈ O(n).<br />
Wir sagen: der Aufwand der trivialen Polynomauswertung wächst quadratisch, der Aufwand<br />
des Horner-Schema’s l<strong>in</strong>ear. Weiter können mit den Landau-Symbolen Konvergenzbegriffe<br />
quantifiziert und verglichen werden. In den entsprechenden Kapiteln kommen wir<br />
auf <strong>die</strong>sen Punkt zurück.<br />
<strong>Numerische</strong> Lösungen s<strong>in</strong>d oft mit Fehlern behaftet. Fehlerquellen s<strong>in</strong>d zahlreich: <strong>die</strong> E<strong>in</strong>gabe<br />
kann mit e<strong>in</strong>em Messfehler versehen se<strong>in</strong>, das numerische Verfahren approximiert<br />
<strong>die</strong> Lösung nur (ist also ke<strong>in</strong> direktes Verfahren), <strong>die</strong> Aufgabe kann nur mit Hilfe e<strong>in</strong>es<br />
Computers oder Taschenrechners gelöst werden und ist mit Rundungsfehlern versehen.<br />
Wir def<strong>in</strong>ieren:<br />
Def<strong>in</strong>ition 1.7 (Fehler). Sei ˜x ∈ R <strong>die</strong> Approximation e<strong>in</strong>er Größe x ∈ R. Mit |δx| =<br />
|˜x − x| bezeichnen wir den absoluten Fehler und mit |δx|/|x| den relativen Fehler.<br />
Üblicherweise ist <strong>die</strong> Betrachtung des relativen Fehlers von größerer Bedeutung: denn e<strong>in</strong><br />
absoluter Messfehler von 100m ist kle<strong>in</strong>, versucht man den Abstand zwischen Erde und<br />
Sonne zu bestimmen, jedoch groß, soll der Abstand zwischen Mensa und <strong>Mathematik</strong>gebäude<br />
gemessen werden.<br />
4
1.1 Konditionierung von numerischen Problemen<br />
Messung 0.58s 0.61s 0.62s 0.54s 0.64s 0.598s<br />
Messfehler (rel) 4% 0.5% 2% 10% 6% 1%<br />
Größe 1.65m 1.82m 1.89m 1.43m 2.01m 1.76m<br />
Fehler (abs) 0.15m 0.02m 0.09m 0.37m 0.21m 0.04m<br />
Fehler (rel) 8% 1 % 5% 21% 12% 2%<br />
Tabelle 1.1: Experiment 1: Größenbestimmung durch Fallenlassen e<strong>in</strong>es Balles.<br />
Messung 1.60s 1.48s 1.35s 1.53s 1.45s 1.482s<br />
Messfehler (rel) 5% 2.5% 11%
1 E<strong>in</strong>leitung<br />
Mittelwert aller Messergebnisse gewählt. Dies geschieht <strong>in</strong> der Hoffnung den Messfehler<br />
zu optimieren.<br />
Wir führen nun Algorithmus 2 durch und messen 5 mal (exakte Lösung h = 1.80m und t 0 ≈<br />
1.519s). In Tabelle 1.2 s<strong>in</strong>d <strong>die</strong> Messergebnisse und ermittelten Größen zusammengefasst.<br />
In der letzten Spalte wird wieder der Mittelwert aller Messergebnisse betrachtet.<br />
Trotz anfänglicher Zweifel erweist sich Algorithmus 1 als stabiler. Mögliche Fehlerquellen<br />
s<strong>in</strong>d der Messfehler bei der Bestimmung der Zeit t 0 sowie bei Algorithmus 2 <strong>die</strong> Genauigkeit<br />
beim Erreichen der Höhe von 2m. In Algorithmus 1 führt der Messfehler zu etwa dem<br />
doppelten relativen Fehler <strong>in</strong> der Höhe. Bei Algorithmus 2 führen selbst kle<strong>in</strong>e Fehler<br />
≤ 1% <strong>in</strong> den Messungen zu wesentlich größeren Fehlern im Ergebnis. Der immer noch<br />
kle<strong>in</strong>e Fehler von 5% bei der ersten Messung führt zu e<strong>in</strong>em Ergebnisfehler von etwa 40%.<br />
Auch bei Betrachtung des Mittelwerts über alle Messwerte ist <strong>die</strong> ermittelte Größe von<br />
1.49m ke<strong>in</strong>e gute Näherung.<br />
Wir wollen nun untersuchen, welche Auswirkung der Fehler <strong>in</strong> der E<strong>in</strong>gabe e<strong>in</strong>es Algorithmus<br />
auf das Ergebnis hat. Hierzu sei <strong>die</strong> Aufgabe wieder allgeme<strong>in</strong> durch <strong>die</strong> Vorschrift<br />
A : x ↦→ y beschrieben. Die E<strong>in</strong>gabe x sei mit e<strong>in</strong>em Fehler δx behaftet. Die gestörte<br />
E<strong>in</strong>gabe ˜x = x + δx liefert e<strong>in</strong> gestörtes Ergebnis ỹ = y + δy:<br />
ỹ = A(˜x),<br />
δy = ỹ − y = A(˜x) − A(x) = A(x + δx) − A(x).<br />
Wir teilen durch y = A(x) und erweitern rechts mit δx sowie mit x<br />
δy<br />
y<br />
=<br />
A(x + δx) − A(x)<br />
δx<br />
x<br />
A(x)<br />
Auf der l<strong>in</strong>ken Seite verbleibt der relative Fehler im Ergebnis, rechts steht der relative<br />
E<strong>in</strong>gabefehler multipliziert mit e<strong>in</strong>em Differenzenquotienten für <strong>die</strong> ersten Ableitung der<br />
Aufgabe. Wir approximieren:<br />
und nennen <strong>die</strong> Größe<br />
∣<br />
δy<br />
y<br />
∣ ∣∣∣ ∣ ≈ ∂A(x) x<br />
∂x A(x) ∣ ·<br />
∣<br />
κ A,x := ∂A(x)<br />
∂x<br />
δx<br />
x<br />
x<br />
A(x) ,<br />
<strong>die</strong> Konditionszahl der Aufgabe A(·) <strong>in</strong> Bezug auf <strong>die</strong> E<strong>in</strong>gabe x. Die Konditionszahl<br />
beschreibt <strong>die</strong> relative Fehlerverstärkung e<strong>in</strong>er Aufgabe <strong>in</strong> Bezug auf e<strong>in</strong>e E<strong>in</strong>gabegröße.<br />
Wir def<strong>in</strong>ieren:<br />
Def<strong>in</strong>ition 1.9 (Konditionszahl). Es sei A : R n → R m . Wir nennen<br />
κ i,j := ∂A i(x)<br />
∂x j<br />
x j<br />
A i (x)<br />
<strong>die</strong> relative Konditionszahl der Aufgabe. E<strong>in</strong>e Aufgabe heißt schlecht konditioniert, falls<br />
|κ i,j | ≫ 1, ansonsten gut konditioniert. Im Fall |κ i,j | < 1 spricht man von Fehlerdämpfung,<br />
ansonsten von Fehlerverstärkung.<br />
∣ ,<br />
δx<br />
x<br />
6
1.1 Konditionierung von numerischen Problemen<br />
Wir setzen das Beispiel zur experimentellen Größenbestimmung fort:<br />
Beispiel 1.10 (Größenbestimmung, Fortsetzung).<br />
1. Verfahren 1: Zum Durchführen des Verfahrens h(t 0 ) als E<strong>in</strong>gabe <strong>die</strong> gemessene Zeit<br />
t 0 erforderlich. Für <strong>die</strong> Konditionszahl gilt:<br />
κ h,t0 := ∂h(t 0)<br />
∂t 0<br />
t 0<br />
h(t 0 ) = gt 0<br />
t 0<br />
1<br />
2 gt2 0<br />
= 2.<br />
E<strong>in</strong> relativer Fehler <strong>in</strong> der E<strong>in</strong>gabe δt 0 /t 0 kann demnach e<strong>in</strong>en doppelt so großen<br />
relativen Fehler <strong>in</strong> der Ausgabe verursachen.<br />
2. Verfahren 2: Wir bestimmen <strong>die</strong> Konditionszahl <strong>in</strong> Bezug auf <strong>die</strong> Geschw<strong>in</strong>digkeit<br />
<strong>die</strong> Zeit t 0 :<br />
κ h,t0 = (gt 0 − v 0 )<br />
t 0<br />
1<br />
2 gt2 0 − v = 2 gt 0 − v 0<br />
0t 0 gt 0 − 2v 0<br />
Wir wissen, dass bei exaktem Wurf und ohne Messfehler, der Ball t 0 ≈ 1.519 s<br />
unterwegs ist bei e<strong>in</strong>er Startgeschw<strong>in</strong>digkeit von v 0 ≈ 6.26m/s. Dies ergibt:<br />
κ h,t0 ≈ κ h,v0 ≈ 8.<br />
Fehler <strong>in</strong> der E<strong>in</strong>gaben δt 0 /t 0 sowie δv 0 /v 0 werden um den Faktor 8 verstärkt. Die<br />
durch <strong>die</strong> Konditionszahlen vorhergesagten Fehlerverstärkungen lassen sich <strong>in</strong> Tabellen<br />
1.1 und 1.2 zu Beispiel 1.8 gut wiederf<strong>in</strong>den.<br />
Die Analyse von Fehlern und Fehlerfortpflanzungen spielen e<strong>in</strong>e zentrale Rolle <strong>in</strong> der numerischen<br />
<strong>Mathematik</strong>. Fehler treten vielfältig auf, auch ohne ungenaue E<strong>in</strong>gabewerte.<br />
Oft s<strong>in</strong>d numerische Algorithmen sehr komplex, setzen sich aus vielen Operationen zusammen.<br />
Bei der Approximation mit dem Computer treten unweigerlich Rundungsfehler<br />
auf. Da der Speicherplatz im Computer, bzw. <strong>die</strong> Anzahl der Ziffern auf dem Taschenrechner<br />
beschränkt s<strong>in</strong>d, treten Rundungsfehler schon bei der bloßen Darstellung e<strong>in</strong>er Zahl<br />
auf. Auch wenn es für <strong>die</strong> numerische Aufgabe<br />
x 2 = 2, ⇔ x = ± √ 2,<br />
mit x = ± √ 2 e<strong>in</strong>e e<strong>in</strong>fach anzugebene Lösung gibt, so kann <strong>die</strong>se auf e<strong>in</strong>em Computer<br />
nicht exakt dargestellt werden:<br />
√<br />
2 = 1.41421356237309504880 . . .<br />
Der naheliegende Grund für e<strong>in</strong>en zw<strong>in</strong>genden Darstellungsfehler ist der beschränkte Speicher<br />
e<strong>in</strong>es Computers. E<strong>in</strong> weiterer Grund liegt <strong>in</strong> der Effizienz. E<strong>in</strong> Computer kann nicht<br />
mit beliebig langen Zahlen rechnen. Grund ist <strong>die</strong> beschränkte Datenbandbreite (das s<strong>in</strong>d<br />
<strong>die</strong> 8-Bit, 16-Bit, 32-Bit oder 64-Bit der Prozessoren). Operationen mit Zahlen <strong>in</strong> längerer<br />
Darstellung müssen zusammengesetzt werden, ähnlich dem schriftlichen Multiplizieren<br />
oder Ad<strong>die</strong>ren aus der Schule.<br />
7
1 E<strong>in</strong>leitung<br />
Computer speichern Zahlen gerundet <strong>in</strong> B<strong>in</strong>ärdarstellung, also zur Basis 2:<br />
n 2 ∑<br />
rd(x) = ± a i 2 i , a i ∈ {0, 1}.<br />
i=−n 1<br />
Die Genauigkeit der Darstellung, somit der Rundungsfehler hängt von der Anzahl der<br />
Ziffern, also von n 1 und n 2 ab. Die Fixkommadarstellung der Zahl im B<strong>in</strong>ärsystem lautet:<br />
rd(x) = [a n2 a n2 −1 . . . a 1 a 0 .a −1 a −2 . . . a −n1 ] 2<br />
Praktischer ist <strong>die</strong> Gleitkommadarstellung von Zahlen. Hierzu wird <strong>die</strong> B<strong>in</strong>ärdarstellung<br />
normiert und e<strong>in</strong> geme<strong>in</strong>samer Exponent e<strong>in</strong>geführt:<br />
⎛<br />
⎞<br />
0∑<br />
rd(x) = ± ⎝ a i+n2 2 i ⎠ 2 n 2<br />
, a i ∈ {0, 1}.<br />
i=−n 1 −n 2<br />
Der führende Term (<strong>die</strong> a i ) heißt <strong>die</strong> Mantisse und wird von uns mit M bezeichnet, den<br />
Exponenten bezeichnen wir mit E. Der Exponent kann dabei e<strong>in</strong>e positive oder negative<br />
Zahl se<strong>in</strong>. Zur Vere<strong>in</strong>fachung wird der Exponenten E als E = e − b, mit e<strong>in</strong>er positiven<br />
Zahl e ∈ N und dem Bias b ∈ N geschrieben. Der Biaswert b wird <strong>in</strong> e<strong>in</strong>er konkreten<br />
Zahldarstellung fest gewählt. Der variable Exponentanteil e wird selbst im B<strong>in</strong>ärformat<br />
gespeichert. Es bleibt, <strong>die</strong> Anzahl der B<strong>in</strong>ärstellen für Mantisse und Exponent zu wählen.<br />
H<strong>in</strong>zu kommt e<strong>in</strong> Bit für das Vorzeichen S ∈ {+, −}. Die Gleitkommadarstellung im<br />
B<strong>in</strong>ärsystem lautet:<br />
rd(x) = S · [m 0 .m −1 m −2 . . . m −#m ] 2 · 2 [e #e...e 1 e 0 ] 2 −b<br />
Die Mantisse wird üblicherweise mit m 0 = 1 normiert zu M ∈ [1, 2). D.h., <strong>die</strong> führende<br />
Stelle muss nicht explizit gespeichert werden.<br />
Auf modernen Computern hat sich das IEEE 754 -Format zum Speichern von Zahlen<br />
etabliert:<br />
8
1.1 Konditionierung von numerischen Problemen<br />
Def<strong>in</strong>ition 1.11 (Normalisierte Gleitkommazahlen im IEEE 754-Format). Das IEEE-754<br />
Format [7] beschreibt <strong>die</strong> Gleitkommadarstellung e<strong>in</strong>er Zahl im B<strong>in</strong>ärformat:<br />
x = s · M · 2 E−b ,<br />
mit e<strong>in</strong>em Vorzeichen s ∈ {+, −}, e<strong>in</strong>er Mantisse M ∈ [1, 2) sowie e<strong>in</strong>em Exponenten<br />
E ∈ N mit Bias b ∈ N. Die Gleitkommazahl wird <strong>in</strong> B<strong>in</strong>ärdarstellung gespeichert:<br />
se #e . . . e 2 e 1 m #m . . . m 2 m 1<br />
mit #e Bit für den Exponenten und #m Bit für <strong>die</strong> Mantisse. Der Bias wird im Allgeme<strong>in</strong>en<br />
als 2 #e−1 − 1 gewählt. Die Interpretation der Zahlen hängt vom Exponenten<br />
ab:<br />
Null Im Fall E = 0 und M = 0 ist x = ±0. Die Unterscheidung zwischen +0 und −0<br />
entsteht beim Runden kle<strong>in</strong>en Zahlen zur Null. Im direkten Vergleich gilt +0 = −0.<br />
Unendlich Im Fall E = 2 #e − 1 (also alle Bit im Exponenten gleich 1) und M = 0 ist<br />
x = ±∞. Unendlich entsteht etwa beim Teilen durch 0 (mit Vorzeichen!) oder falls<br />
das Ergebnis zu groß (oder negativ zu kle<strong>in</strong>) ist um darstellbar zu se<strong>in</strong>.<br />
NaN Im Fall E = 2 #e − 1 und M > 0 steht der Wert für Not a Number und tritt zum<br />
Beispiel bei der Operation 0/0 oder ∞ − ∞ auf.<br />
Normalisierte Zahl Im Fall 0 ≤ E < 2 #e−1 steht <strong>die</strong> Zahl für<br />
s · 1.m #e . . . m 2 m 1 · 2 E−b .<br />
Das Rechnen mit Gleitkommazahlen kann im Computer effizient realisiert werden. Im<br />
IEEE-754 Format wird <strong>die</strong> Gleitkommadarstellung durch denormalisierte Zahlen erweitert.<br />
Wir erwähnen <strong>die</strong>s zur Vollständigkeit:<br />
Bemerkung 1.12 (Denormalisierte Zahlen). Denormalisierte Zahlen <strong>die</strong>nen zum Schließen<br />
der Lücke zwischen Null und der kle<strong>in</strong>sten positiven darstellbaren Zahl 1.0 . . . 001·2 −b .<br />
Im Fall E = 0 und M > 0 wird <strong>die</strong> Zahl <strong>in</strong>terpretiert als:<br />
s · 0.m #e . . . m 2 m 1 · 2 1−b .<br />
Die Genauigkeit bei der Rechnung mit denormalisierten Zahlen ist reduziert.<br />
In Tabelle 1.3 s<strong>in</strong>d verschiedene Gleitkommadarstellungen zusammengefasst, <strong>die</strong> historisch<br />
und aktuell benutzt werden. Derzeit wird fast ausschließlich das IEEE-Format verwendet.<br />
Hier s<strong>in</strong>d zwei Darstellungen üblich, s<strong>in</strong>gle-precision (<strong>in</strong> C++ float) und double-precision<br />
(<strong>in</strong> C++ double). Durch <strong>die</strong> Normierung der Mantisse wird e<strong>in</strong> Bit, das sogenannte hiddenbit<br />
gewonnen. Historisch wurden <strong>in</strong> Rechensystemern jeweils unterschiedliche Zahlendarstellungen<br />
gewählt. Während <strong>die</strong> ersten Computer noch im Prozessor <strong>in</strong>tegrierte Rechene<strong>in</strong>heiten<br />
für Gleitkomma-Arithmetik, <strong>die</strong> sogenannte float<strong>in</strong>g-po<strong>in</strong>t process<strong>in</strong>g unit (FPU)<br />
9
1 E<strong>in</strong>leitung<br />
Größe Vorzeichen Exponent Mantisse Bias<br />
e<strong>in</strong>fache Genauigkeit (s<strong>in</strong>gle) 32 Bit 1 Bit 8 Bit 23+1 Bit 127<br />
doppelte Genauigkeit (double) 64 Bit 1 Bit 11 Bit 52+1 Bit 1023<br />
Zuse Z1 (1938) 24 Bit 1 Bit 7 Bit 15 Bit —<br />
IBM 704 (1954) 36 Bit 1 Bit 8 Bit 27 Bit 128<br />
i8087 Coprozessor (1980) Erste Verwendung von IEEE (s<strong>in</strong>gle + double)<br />
Intel 486 (1989)<br />
Erste <strong>in</strong>tegrierte FPU <strong>in</strong> Standard PC<br />
NVIDIA G80 (2007)<br />
GPU (s<strong>in</strong>gle)<br />
NVIDIA Fermi (2010) GPU (double)<br />
Tabelle 1.3: IEEE-754 Format <strong>in</strong> e<strong>in</strong>facher und doppelter Genauigkeit sowie Gleitkommaformate<br />
<strong>in</strong> aktueller und historischer Hardware.<br />
hatten, verschwand <strong>die</strong>se zunächst wieder aus den üblichen Computern und war nur <strong>in</strong><br />
speziellen Rechnern vorhanden. In Form von Coprozessoren konnte e<strong>in</strong>e FPU nachgerüstet<br />
werden (z.B. der Intel 8087 zum Intel 8086). Der “486er” war der erste Prozessor für<br />
Heimcomputer mit <strong>in</strong>tegrierter FPU. Heute können Gleitkommaberechnungen effizient auf<br />
Grafikkarten ausgelagert werden. Die Prozessoren der Grafikkarten, <strong>die</strong> graphics process<strong>in</strong>g<br />
unit (GPU) ist speziell für solche Berechnungen ausgelegt (z.B. schnelle Berechnungen<br />
von Lichtbrechungen und Spiegelungen, Abbilden von Mustern auf 3D-Oberflächen). Spezielle<br />
Steckkarten (z.B. NVIDIA Tesla), welche gleich mehrere GPU’s enthalten werden <strong>in</strong><br />
Höchstleistungssystemen e<strong>in</strong>gesetzt. Die Genauigkeit der Darstellung ist im Wesentlichen<br />
von den <strong>in</strong> der Mantisse zu Verfügung stehenden Stellen bestimmt. Größte und kle<strong>in</strong>ste<br />
darstellbare Zahlen s<strong>in</strong>d durch <strong>die</strong> Stellen im Exponenten bestimmt. In numerischen Verfahren<br />
ist <strong>die</strong> Verwendung von doppelt-genauer Zahlendarstellung (double) üblich. Die<br />
Rechene<strong>in</strong>heiten moderner Computer nutzen <strong>in</strong>tern e<strong>in</strong>e erhöhte Genauigkeit zum Durchführen<br />
von elementaren Operationen. (80 Bit bei modernen Intel-CPU’s). Gerundet wird<br />
erst nach Berechnung des Ergebnis.<br />
Beispiel 1.13 (Gleitkommadarstellung). Wir gehen von vierstelliger Mantisse und vier<br />
Stellen im Exponent aus mit Bias 2 4−1 − 1 = 7.<br />
• Die Zahl x = −96 hat zunächst negatives Vorzeichen, also S = 1. Die B<strong>in</strong>ärdarstellung<br />
von 96 ist<br />
normalisiert<br />
96 10 = 1 · 64 + 1 · 32 + 0 · 16 + 0 · 8 + 0 · 4 + 0 · 2 + 0 · 1 = 1100000 2 ,<br />
64 10 = 1.1000 2 · 2 6 10<br />
= 1.1 2 · 2 13 10−7 10<br />
= 1.1 2 · 2 1101 2−b .<br />
Als Gleitkommadarstellung ergibt sich 111011000 2 .<br />
• Die Zahl x = −384 hat wieder negatives Vorzeichen und S = 1. Die B<strong>in</strong>ärdarstellung<br />
von 384 ist:<br />
384 10 = 1 · 256 + 1 · 128 + 0 · 64 + 0 · 32 + 0 · 16 + 0 · 8 + 0 · 4 + 0 · 2 + 0 · 1 = 110000000 2 ,<br />
10
1.1 Konditionierung von numerischen Problemen<br />
also normalisiert<br />
384 10 = 1.1000 · 2 8 10<br />
= 1.1000 · 2 15 10−7 10<br />
= 1.1000 2 · 2 1111 2−b .<br />
Alle Bits im Exponenten s<strong>in</strong>d 1. Der spezielle Wert E = 1111 2 ist jedoch zur Speicherung<br />
von NaN (Not a Number) vorgesehen. Die Zahl 384 ist zu groß um <strong>in</strong> <strong>die</strong>sem<br />
Zahlenformat gespeichert zu werden. Stattdessen wird −∞ oder B<strong>in</strong>är 111110000 2<br />
gespeichert.<br />
• Die Zahl x = 1/3 = 0.33333 . . . ist positiv, also S = 0. Die B<strong>in</strong>ärdarstellung von<br />
1/3 ist<br />
1<br />
3 = 0.01010101 . . . 2 .<br />
Normalisiert, mit vierstelliger Mantisse erhalten wir<br />
1<br />
3 ≈ 1.0101 2 · 2 −2 = 1.0101 2 · 2 5 2−7 2<br />
= 1.0101 2 · 2 0101 2−b ,<br />
also <strong>die</strong> B<strong>in</strong>ärdarstellung 001010101 2 . Wir mussten bei der Darstellung runden und<br />
erhalten rückwärts<br />
1.0101 2 · 2 0101 2−7 = 1.3125 · 2 −2 = 0.328125,<br />
mit dem relativen Fehler:<br />
1<br />
3 − 1.0101 2 · 2 0101 2−b<br />
∣<br />
1<br />
∣ ≈ 0.016<br />
3<br />
• Die Zahl x = √ 2 ≈ 1.4142135623 . . . ist positiv, also S = 0. Gerundet gilt:<br />
√<br />
2 ≈ 1.01112<br />
Diese Zahl liegt bereits normalisiert vor. Mit Bias b = 7 gilt für den Exponenten<br />
e = 0 = 7 − 7 √<br />
2 ≈ 1.01112 · 2 0111 2−b ,<br />
also 001110111. Rückwärts <strong>in</strong> Dezimaldarstellung erhalten wir<br />
1.0111 2 · 2 0111 2−b = 1.4375,<br />
mit dem relativen Darstellungsfehler<br />
√ ∣ 2 − 1.4375∣∣∣∣<br />
√ ≈ 0.016.<br />
∣ 2<br />
• Schließlich betrachten wir <strong>die</strong> Zahl x = −0.003. Mit S = 1 gilt:<br />
0.003 10 ≈ 0.00000000110001 2<br />
11
1 E<strong>in</strong>leitung<br />
und normalisiert<br />
0.003 10 ≈ 1.10001 2 · 2 −9 = 1.110001 2 · 2 −2−7 .<br />
Der Exponent −9 = −2−b ist zu kle<strong>in</strong> und kann <strong>in</strong> <strong>die</strong>sem Format (also vier Stellen<br />
für den Exponenten) nicht dargestellt werden. Die Zahl kann h<strong>in</strong>gegen denormalisiert<br />
dargestellt werden als:<br />
0.003 10 ≈ ·0.0110 2 · 2 0−7 .<br />
B<strong>in</strong>är ergibt <strong>die</strong>s 100000110 2 . Umrechnen <strong>in</strong> Dezimaldarstellung liefert:<br />
0.0110 2 · 2 0−7 = 0.375 · 2 −7 ≈ 0.0029,<br />
mit dem relativen Darstellungsfehler<br />
0.003 − 0.0029<br />
∣ 0.003 ∣ ≈ 0.033.<br />
Aus der begrenzten Anzahl von Ziffern ergibt sich zwangläufig e<strong>in</strong> Fehler bei der Durchführung<br />
von numerischen Algorithmen. Der relative Fehler, der bei der Computer-Darstellung<br />
˜x e<strong>in</strong>er Zahl x ∈ R entstehen kann<br />
∣<br />
rd(x) − x<br />
x<br />
ist durch <strong>die</strong> sogenannte Masch<strong>in</strong>engenauigkeit beschränkt:<br />
∣<br />
Def<strong>in</strong>ition 1.14 (Masch<strong>in</strong>engenauigkeit). Die Masch<strong>in</strong>engenauigkeit eps ist der maximale<br />
relative Rundungsfehler der Zahldarstellung und wird bestimmt als:<br />
eps := <strong>in</strong>f{x > 0 : rd(1 + x) > 1}.<br />
S<strong>in</strong>d im Zahlenformat denormalisierte Zahlen vorgesehen, so verschlechtert sich <strong>die</strong> Genauigkeit<br />
für x → 0.<br />
Da Rundungsfehler zwangsläufig auftreten, gelten grundlegende mathematische Gesetze<br />
wie das Assoziativgesetz oder das Distributivgesetz <strong>in</strong> Computern nicht mehr. Aufgrund<br />
von Rundungsfehlern spielt <strong>die</strong> Reihenfolge, <strong>in</strong> denen Operationen ausgeführt werden e<strong>in</strong>e<br />
wichtige Rolle und verfälscht das Ergebnis. Auch e<strong>in</strong> e<strong>in</strong>facher Vergleich von Zahlen ist oft<br />
nicht möglich, <strong>die</strong> Abfrage if (3.8/10.0==0.38) kann durch Rundung das falsche Ergebnis<br />
liefern und muss durch Abfragen der Art if ( |3.8/10.0 − 0.38| < eps) ersetzt werden.<br />
Bemerkung 1.15. Die Masch<strong>in</strong>engenauigkeit hat nichts mit der kle<strong>in</strong>sten Zahl zu tun,<br />
welche auf e<strong>in</strong>em Computer darstellbar ist. Diese ist wesentlich durch <strong>die</strong> Anzahl der Stellen<br />
im Exponenten bestimmt. Die Masch<strong>in</strong>engenauigkeit wird durch <strong>die</strong> Anzahl der Stellen<br />
<strong>in</strong> der Mantisse bestimmt. Bei der üblichen Gleitkommadarstellung mit doppelter Genauigkeit<br />
(double <strong>in</strong> c++) gilt eps ≈ 10 −16 , bei e<strong>in</strong>facher Genauigkeiten, z.B. auf Grafikkarten<br />
gilt eps ≈ 10 −8 .<br />
12
1.1 Konditionierung von numerischen Problemen<br />
Rundungsfehler treten bei jeder elementaren Operation auf. Daher kommt der Konditionierung<br />
der Grundoperationen, aus denen alle Algorithmen aufgebaut s<strong>in</strong>d, e<strong>in</strong>e entscheidende<br />
Bedeutung zu:<br />
Beispiel 1.16 (Konditionierung von Grundoperationen, Auslöschung).<br />
1. Addition, Subtraktion: A(x, y) = x + y:<br />
∣ κ A,x =<br />
x<br />
∣∣∣∣ ∣x + y ∣ = 1<br />
1 + y ∣<br />
x<br />
Im Fall x ≈ −y kann <strong>die</strong> Konditionszahl der Addition (x ≈ y bei der Subtraktion)<br />
beliebig groß werden. E<strong>in</strong> Beispiel mit vierstelliger Rechnung:<br />
x = 1.021, y = −1.019 ⇒ x + y = 0.002.<br />
Jetzt sei ỹ = 1.020 gestört. Der relative Fehler <strong>in</strong> y ist sehr kle<strong>in</strong>: |1.019−1.020|/|1.019| ≤<br />
0.1%. Wir erhalten das gestörte Ergebnis<br />
x + ỹ = 0.001,<br />
und e<strong>in</strong>en Fehler von 100%. Die enorme Fehlerverstärkung bei der Addition von<br />
Zahlen mit etwa gleichem Betrag wird Auslöschung genannt. Hier gehen wesentliche<br />
Stellen verloren. Auslöschung tritt üblicherweise dann auf, wenn das Ergebnis e<strong>in</strong>er<br />
numerischen Operation verglichen mit den E<strong>in</strong>gabewerten e<strong>in</strong>en sehr kle<strong>in</strong>en Betrag<br />
hat. Kle<strong>in</strong>e relative Fehler <strong>in</strong> der E<strong>in</strong>gabe verstärken sich zu großen relativen Fehlern<br />
im Ergebnis.<br />
2. Multiplikation: A(x, y) = x · y. Die Multiplikation zweier Zahlen ist stets gut konditioniert:<br />
κ A,x =<br />
∣ y x xy ∣ = 1.<br />
3. Division: A(x, y) = x/y. Das selbe gilt für <strong>die</strong> Division:<br />
1 x<br />
κ A,x =<br />
∣y<br />
∣ = 1, κ x y<br />
A,y =<br />
∣y 2 x<br />
∣ = 1.<br />
x<br />
y<br />
y<br />
4. Wurzelziehen: A(x) = √ x:<br />
∣ κ A,x =<br />
1<br />
∣2 √ x ∣∣∣<br />
√ = 1 x x 2 .<br />
E<strong>in</strong> Fehler <strong>in</strong> der E<strong>in</strong>gabe wird im Ergebnis sogar reduziert.<br />
Die meisten numerischen Algorithmen bestehen im Kern aus der wiederholten Ausführung<br />
<strong>die</strong>ser Grundoperationen. Der Aufwand von Algorithmen wird <strong>in</strong> der Anzahl der notwendigen<br />
elementaren Operationen (<strong>in</strong> Abhängigkeit von der Problemgröße) gemessen. Die<br />
13
1 E<strong>in</strong>leitung<br />
CPU Jahr Flops Preis<br />
Zuse Z3 1941 0.3 E<strong>in</strong>zelstücke<br />
IBM 704 1955 5 · 10 3 >10 000 000 Euro<br />
Intel 8086 + 8087 1980 50 · 10 3 2 000 Euro<br />
i486 1991 1.4 · 10 6 2 000 Euro<br />
IPhone 4s 2011 100 · 10 6 500 Euro<br />
2xPentium III 2001 800 · 10 6 2 000 Euro<br />
Core i7 2011 100 · 10 9 1 000 Euro<br />
Helics I (Parallelrechner am IWR) 2002 1 · 10 12 1 000 000 Euro<br />
Nvidia GTX 580 (GPU) 2010 1 · 10 12 500 Euro<br />
K Computer 2011 10 · 10 15 ???<br />
Tabelle 1.4: Gleitkomma-Geschw<strong>in</strong>digkeit sowie Anschaffungskosten e<strong>in</strong>iger aktueller und<br />
historischer Computer.<br />
Laufzeit e<strong>in</strong>es Algorithmus hängt wesentlich von der Leistungsfähigkeit des Rechners ab.<br />
Diese wird <strong>in</strong> FLOPS, also float<strong>in</strong>g po<strong>in</strong>t operations per second gemessen. In Tabelle 1.4<br />
fassen wir <strong>die</strong> erreichbaren FLOPS für verschiedene Computer-Systeme zusammen. Die<br />
Leistung ist im Laufe der Jahre rapide gestiegen, alle zehn Jahre wird etwa der Faktor<br />
1000 erreicht. Die Leistungssteigerung beruht zum e<strong>in</strong>en auf effizienterer Hardware. Erste<br />
Computer hatten Register mit 8 Bit Breite, <strong>die</strong> <strong>in</strong> jedem Takt (das ist <strong>die</strong> MHz Angabe)<br />
verarbeitet werden konnten. Auf aktueller Hardware stehen Register mit 64 Bit zur<br />
Verfügung. H<strong>in</strong>zu kommt e<strong>in</strong>e effizientere Abarbeitung von Befehlen durch sogenanntes<br />
Pipel<strong>in</strong><strong>in</strong>g: <strong>die</strong> übliche Abfolge im Prozessor be<strong>in</strong>haltet “Speicher lesen, Daten bearbeiten,<br />
Ergebnis speichern”. Das Pipel<strong>in</strong><strong>in</strong>g erlaubt es dem Prozessor schon den Speicher für<br />
<strong>die</strong> nächste Operation auszulesen, während <strong>die</strong> aktuelle bearbeitet wird. So konnte <strong>die</strong><br />
Anzahl der notwendigen Prozessortakte pro Rechenoperation erheblich reduziert werden.<br />
Die Komb<strong>in</strong>ation aus Intel 8086 mit FPU 8087 hat bei e<strong>in</strong>em Takt von 8 Mhz und 50 000<br />
Flops etwa 150 Takte pro Fließkommaoperation benötigt. Der 486er braucht bei 66 Mhz<br />
und etwa 1 000 000 Flops nur 50 Takte pro Operation. Der Pentium III liegt bei etwa 5<br />
Takten pro Fließkommaoperation. In den letzten Jahren beruht <strong>die</strong> Effizienzsteigerung<br />
wesentlich auf e<strong>in</strong>em sehr hohen Grad an Parallelisierung. E<strong>in</strong> aktueller Core I7 Prozessor<br />
kann mehrere Operationen gleichzeitig durchführen. E<strong>in</strong>e Nvidia 580 GPU erreicht ihre<br />
Leistung mit über 500 Rechenkernen. Um <strong>die</strong>se Leistung effizient nutzen zu können müssen<br />
<strong>die</strong> Algorithmen entsprechend angepasst werden, so dass auch alle 500 Kerne ausgelastet<br />
werden. Kann e<strong>in</strong> Algorithmus <strong>die</strong>se spezielle Architektur nicht ausnutzen, so fällt <strong>die</strong><br />
Leistung auf etwa e<strong>in</strong> Gigaflop zurück, also auf das Niveau des Pentium III aus dem Jahr<br />
2001. Werden <strong>die</strong> 500 Kerne h<strong>in</strong>gegen optimal ausgenutzt, so erreicht e<strong>in</strong>e Grafikkarte <strong>die</strong><br />
gleiche Leistung wie der Heidelberger L<strong>in</strong>ux-Cluster helics aus dem Jahr 2002. Moderne<br />
Super-Computer wie der K Computer (schnellster Computer der Welt <strong>in</strong> 2012) vernetzen<br />
über 500 000 Kerne.<br />
14
1.2 Rundungsfehleranalyse und Stabilität von numerischer Algorithmen<br />
1.2 Rundungsfehleranalyse und Stabilität von numerischer<br />
Algorithmen<br />
Beim Entwurf von numerischen Algorithmen für e<strong>in</strong>e Aufgabe s<strong>in</strong>d oft unterschiedliche<br />
Wege möglich, welche sich z.B. <strong>in</strong> der Reihenfolge der Verfahrensschritte unterscheiden.<br />
Unterschiedliche Algorithmen zu e<strong>in</strong> und derselben Aufgabe können dabei rundungsfehlerbed<strong>in</strong>gt<br />
zu unterschiedlichen Ergebnissen führen:<br />
Beispiel 1.17 (Distributivgesetz). Wir betrachten <strong>die</strong> Aufgabe A(x, y, z) = x · z − y · z =<br />
(x − y)z und zur Berechnung zwei Vorschriften:<br />
a 1 := x · z a 1 := x − y,<br />
a 2 := y · z a := a 1 · z,<br />
a := a 1 − a 2 .<br />
Es sei x = 0.519, y = 0.521, z = 0.941. Bei vierstelliger Arithmetik erhalten wir:<br />
a 1 := rd(x · z) = 0.4884 b 1 := rd(x − y) = −0.002<br />
a 2 := rd(y · z) = 0.4903 b 2 := rd(a 1 · z) = −0.001882<br />
a 3 := rd(a 1 − a 2 ) = −0.0019<br />
Mit A(x, y, z) = −0.001882 ergeben sich <strong>die</strong> relativen Fehler:<br />
∣ −0.0001882 − a 3<br />
∣∣∣ ∣ 0.0001882 ∣ ≈ 0.01, −0.0001882 − b 2<br />
0.0001882 ∣ = 0.<br />
Das Distributivgesetz gilt auf dem Computer nicht!<br />
Die Stabilität hängt also entscheidend vom Design des Algorithmus ab. E<strong>in</strong>gabefehler,<br />
oder auch Rundungsfehler, <strong>die</strong> <strong>in</strong> e<strong>in</strong>zelnen Schritten entstehen, werden <strong>in</strong> darauffolgenden<br />
Schritten des Algorithmus verstärkt. Wir analysieren nun beide Verfahren im Detail und<br />
gehen davon aus, dass <strong>in</strong> jedem der elementaren Schritte (wir haben hier nur Addition<br />
und Multiplikation) e<strong>in</strong> relativer Rundungsfehler ɛ mit |ɛ| ≤ eps entsteht, also<br />
rd(x + y) = (x + y)(1 + ɛ),<br />
rd(x · y) = (x · y)(1 + ɛ),<br />
Zur Analyse e<strong>in</strong>es gegebenen Algorithmus verfolgen wir <strong>die</strong> <strong>in</strong> Rundungsfehler, welche <strong>in</strong><br />
jedem Schritt entstehen und deren Akkumulation:<br />
Beispiel 1.18 (Stabilität des Distributivgesetzes). Wir berechnen zunächst <strong>die</strong> Konditionszahlen<br />
der Aufgabe:<br />
1<br />
κ A,x =<br />
∣1 − y ∣ , κ 1<br />
A,y =<br />
∣<br />
x<br />
1 − x ∣ , κ A,z = 1.<br />
y<br />
Für x ≈ y ist <strong>die</strong> Aufgabe schlecht konditioniert. Wir starten mit Algorithmus 1 und<br />
schätzen <strong>in</strong> jedem Schritt den Rundungsfehler ab. Zusätzlich betrachten wir E<strong>in</strong>gabefehler<br />
(oder Darstellungsfehler) von x, y und z. Wir berücksichtigen stets nur Fehlerterme<br />
15
1 E<strong>in</strong>leitung<br />
erster Ordnung und fassen alle weiteren Terme mit den Landau-Symbolen (für kle<strong>in</strong>e ɛ)<br />
zusammen:<br />
a 1 =x(1 + ɛ x )z(1 + ɛ z )(1 + ɛ 1 ) = xz(1 + ɛ x + ɛ z + ɛ 1 + O(eps 2 ))<br />
= xz(1 + 3ɛ 1 + O(eps 2 )),<br />
a 2 =y(1 + ɛ y )z(1 + ɛ z )(1 + ɛ 2 ) = yz(1 + ɛ y + ɛ z + ɛ 2 + O(eps 2 ))<br />
= yz(1 + 3ɛ 2 + O(eps 2 )),<br />
a 3 =(xz(1 + 3ɛ 1 ) − yz(1 + 3ɛ 2 ) + O(eps 2 ))(1 + ɛ 3 )<br />
= (xz − yz)(1 + ɛ 3 ) + 3xzɛ 1 − 3yzɛ 2 + O(eps 2 )<br />
Wir bestimmen den relativen Fehler:<br />
a 3 − (xz − yz)<br />
∣ xz − yz ∣ = |(xz − yz)ɛ 3 − 3xzɛ 1 + 3yzɛ 2 |<br />
|xz − yz|<br />
|x| + |y|<br />
≤ eps + 3<br />
|x − y| eps.<br />
Die Fehlerverstärkung <strong>die</strong>ses Algorithmus kann für x ≈ y groß werden und entspricht etwa<br />
(Faktor 3) der Konditionierung der Aufgabe. Wir nennen den Algorithmus daher stabil.<br />
Wir betrachten nun Algorithmus 2:<br />
a 1 =(x(1 + ɛ x ) − y(1 + ɛ y ))(1 + ɛ 1 )<br />
= (x − y)(1 + ɛ 1 ) + xɛ x − yɛ y + O(eps 2 )<br />
a 2 =z(1 + ɛ z ) ( (x − y)(1 + ɛ 1 ) + xɛ x − yɛ y + O(eps 2 ) ) (1 + ɛ 2 )<br />
= z(x − y)(1 + ɛ 1 + ɛ 2 + ɛ z + O(eps) 2 ) + zxɛ x − zyɛ y + O(eps 2 ).<br />
Für den relativen Fehler gilt <strong>in</strong> erster Ordnung:<br />
a 2 − (xz − yz)<br />
∣ xz − yz ∣ = |z(x − y)(ɛ 1 + ɛ 2 + ɛ z ) + zxɛ x − zyɛ y |<br />
|xz − yz|<br />
≤ 3eps +<br />
|x| + |y|<br />
|x − y| eps<br />
Die Fehlerverstärkung kann für x ≈ y wieder groß werden. Der Verstärkungsfaktor ist<br />
jedoch ger<strong>in</strong>ger als bei Algorithmus 1. Insbesondere fällt auf, dass <strong>die</strong>ser zweite Algorithmus<br />
bei Fehlerfreien E<strong>in</strong>gabedaten ke<strong>in</strong>e Fehlerverstärkung aufweist. (Das ist der Fall ɛ x = ɛ y =<br />
ɛ z = 0).<br />
Beide Algorithmen s<strong>in</strong>d stabil, der zweite hat bessere Stabilitätseigenschaften als der erste.<br />
Wir nennen zwei Algorithmen stabil, obwohl der e<strong>in</strong>e wesentlich bessere Stabilitätseigenschaften<br />
hat. Der Stabilitätsbegriff <strong>die</strong>nt daher oft zum relativen Vergleich verschiedener<br />
Algorithmen. Wir def<strong>in</strong>ieren<br />
Def<strong>in</strong>ition 1.19 (Stabilität). E<strong>in</strong> numerischer Algorithmus zum Lösen e<strong>in</strong>er Aufgabe<br />
heißt stabil, falls <strong>die</strong> bei der Durchführung akkumulierten Rundungsfehler den durch <strong>die</strong><br />
Kondition der Aufgabe gegebenen unvermeidlichen Fehler nicht übersteigen.<br />
16
1.2 Rundungsfehleranalyse und Stabilität von numerischer Algorithmen<br />
Wir halten fest: für e<strong>in</strong> schlecht konditioniertes Problem existiert ke<strong>in</strong> stabiler Algorithmus<br />
mit e<strong>in</strong>er ger<strong>in</strong>geren Fehlerfortpflanzung als durch <strong>die</strong> Konditionierung bestimmt. Für gut<br />
konditionierte Problem können jedoch sehr <strong>in</strong>stabile Verfahren existieren.<br />
Der wesentliche Unterschied zwischen beiden Algorithmen aus dem Beispiel ist <strong>die</strong> Reihenfolge<br />
der Operationen. In Algorithmus 1 ist der letzte Schritt e<strong>in</strong>e Subtraktion, deren<br />
schlechte Kondition wir unter dem Begriff Auslöschung kennengelernt haben. Bereits akkumulierte<br />
Rundungsfehler zu Beg<strong>in</strong>n des Verfahrens werden hier noch e<strong>in</strong>mal wesentlich<br />
verstärkt. Bei Algorithmus 2 werden durch <strong>die</strong> abschließende Multiplikation <strong>die</strong> Rundungsfehler<br />
<strong>die</strong> zu Beg<strong>in</strong>n auftreten nicht weiter verstärkt. Aus dem analysierten Beispiel leiten<br />
wir e<strong>in</strong>er Regel her:<br />
“Bei dem Entwurf von numerischen Algorithmen sollen schlecht konditionierte<br />
Operationen zu Beg<strong>in</strong>n durchgeführt werden.”<br />
17
1 E<strong>in</strong>leitung<br />
18
2 Nullstellenbestimmung<br />
2.1 Motivation und E<strong>in</strong>ordnung<br />
Das Lösen von nichtl<strong>in</strong>earen Gleichungen spielt e<strong>in</strong>e grundlegende Rolle <strong>in</strong> der <strong>Mathematik</strong>.<br />
Oft werden solche Aufgabenstellungen als Nullstellenproblem formuliert. Die Nullstellenbestimmung<br />
von l<strong>in</strong>earen und quadratischen Polynomen ist das e<strong>in</strong>fachste Beispiel und<br />
bereits aus der Schule bekannt. Insbesondere kann hierfür noch e<strong>in</strong>e geschlossene Formel<br />
(Auflösen nach der Variablen, p-q-Formel, quadratische Ergänzung) angegeben werden.<br />
Aber schon bei Gleichungen dritten Grades gibt es ke<strong>in</strong>e geschlossene Lösungsformel, <strong>die</strong><br />
lediglich mit reellen Zahlen arbeitet. Es sollte erwähnt werden, dass jedoch e<strong>in</strong>e geschlossene<br />
Formel für kubische Gleichungen unter Zuhilfenahme der komplexen Zahlen existiert<br />
(entdeckt von Cardano im Jahr 1545). E<strong>in</strong>e Zusammenfassung f<strong>in</strong>det der Leser <strong>in</strong> [1].<br />
Um <strong>die</strong>se Art von Gleichungen (numerisch) zu lösen, formulieren wir <strong>die</strong> Aufgabe als<br />
Nullstellensuche (vergleiche zur p-q-Formel). Dies bedeutet, dass wir e<strong>in</strong>e Nullstelle der<br />
Abbildung (Funktion)<br />
f : D(f) ⊂ R → R,<br />
suchen, wobei D(f) den Def<strong>in</strong>itionsbereich von f bezeichnet. Jede nichtl<strong>in</strong>eare Gleichung<br />
g(x) = y<br />
kann durch <strong>die</strong> Transformation f(x) := g(x) − y <strong>in</strong> e<strong>in</strong>e Nullstellenaufgabe geschrieben<br />
werden:<br />
f(x) = 0.<br />
Das allgeme<strong>in</strong>e Nullstellenproblem muss meist mit e<strong>in</strong>em Iterationsverfahren gelöst werden.<br />
Ausgehend von e<strong>in</strong>em Startwert x 0 , der zufällig gewählt se<strong>in</strong> kann (aber Vorsicht!!, <strong>die</strong><br />
akkurate Wahl e<strong>in</strong>es Startwertes ist oft nicht trivial) besser aber klug bestimmt werden sollte,<br />
erhalten wir mit Hilfe der Iterationsvorschrift e<strong>in</strong>e Folge von Punkten x k , k = 1, 2, 3, . . .,<br />
deren Grenzwert gegen <strong>die</strong> Nullstelle ˆx ∈ R konvergiert:<br />
f(x 0 ) → f(x 1 ) → f(x 2 ) · · · → f(ˆx) = 0.<br />
In der Praxis kann der unendliche Grenzprozess nicht durchgeführt werden. Stattdessen<br />
wird <strong>die</strong> Iteration bei e<strong>in</strong>em N ∈ N gestoppt und das Folgenglied x N wird als Approximation<br />
der Nullstelle x N ≈ ˆx betrachtet. Hieraus ergeben sich unmittelbar wichtige<br />
Fragenstellungen, <strong>die</strong> wir <strong>in</strong> <strong>die</strong>sem Kapitel untersuchen wollen und uns <strong>in</strong> den weiteren<br />
Kapiteln wieder begegnen werden. Im E<strong>in</strong>zelnen s<strong>in</strong>d <strong>die</strong>s:<br />
19
2 Nullstellenbestimmung<br />
• Im S<strong>in</strong>ne des ersten Kapitels 1: welche Aussagen können wir zur Stabilität und der<br />
Konditionierung der Nullstellenbestimmung machen?<br />
• Konstruktion e<strong>in</strong>es effizienten numerischen Verfahrens.<br />
• Wie schnell konvergiert (x k ) k∈N gegen ˆx? Das bedeutet <strong>in</strong>sbesondere <strong>die</strong> Quantifizierung<br />
Konvergenzordnung und Konvergenzrate (Maße für <strong>die</strong> Konvergenzgeschw<strong>in</strong>digkeit).<br />
In Analysis I/II haben wir bisher immer von e<strong>in</strong>er Folge x k → ˆx gesprochen,<br />
<strong>die</strong> gegen den Grenzwert konvergiert. Diese Aussage ist <strong>in</strong> der Praxis aber nutzlos,<br />
da wir <strong>in</strong> endlicher Rechenzeit e<strong>in</strong>e Lösung erhalten möchten.<br />
• Konvergiert das ausgewählte numerische Verfahren auf beliebig großen Intervallen<br />
und mit beliebig gewählten Startwerten x 0 , oder nur dann, wenn der Startwert x 0<br />
bereits h<strong>in</strong>reichend nahe an der gesuchten Nullstelle ist? In anderen Worten: ist das<br />
Verfahren lokal oder global konvergent?<br />
• Abschätzung der zu erwartenden Konvergenz mittels e<strong>in</strong>er aussagekräftigen Fehlerschranke<br />
für <strong>die</strong> Approximation |x N − ˆx|. Hier werden wir zwischen der a priori und<br />
a posteriori Fehleranalyse unterscheiden. Bei der a priori Fehleranalyse wird der<br />
Fehler |x N − ˆx| vor der Rechnung abgeschätzt. Dies gibt dem Numeriker e<strong>in</strong>e grobe<br />
Schranke zum Verhalten der Fehlerentwicklung, <strong>die</strong> aber lediglich asymptotisch richtig<br />
ist - und somit für quantitative Aussagen oft nutzlos ist. Dagegen wird bei der<br />
a posteriori Fehleranalyse der Fehler |x N − ˆx| während der Rechnung abgeschätzt,<br />
alle bereits berechneten Approximation x 0 , x 1 , . . . , x N können <strong>in</strong> <strong>die</strong> Abschätzung<br />
e<strong>in</strong>fließen. A posteriori Abschätzungen lassen oft quantitative Aussagen zu, <strong>die</strong> zur<br />
Steuerung des numerischen Verfahrens genutzt werden können.<br />
Im Rest <strong>die</strong>ses Kapitels werden wir <strong>die</strong> oben genannten Fragen anhand verschiedener<br />
Verfahren diskutieren und <strong>die</strong> Schlüsselbegriffe spezifizieren.<br />
Generell lassen sich <strong>die</strong> Verfahren zur Nullstellensuche <strong>in</strong> ableitungsfreie Verfahren (z.B.<br />
Intervallschachtelung, Sekantenmethode, sukzessive Approximation) und ableitungsbehaftete<br />
Verfahren e<strong>in</strong>teilen (Newton-artige Verfahren). Exemplarisch betrachten wir dazu <strong>die</strong><br />
Intervallschachtelung und das klassische Newton-Verfahren. Die weiteren Verfahren werden<br />
am Ende des Kapitels zusammenfassend erläutert mit H<strong>in</strong>weisen auf weiterführende<br />
Literatur.<br />
Der S<strong>in</strong>n <strong>die</strong>ses Kapitels ist e<strong>in</strong>erseits <strong>die</strong> Brücke von bereits bekannten Problemstellungen<br />
<strong>in</strong> der Schule (hier: Nullstellenbestimmung) zu Aussagen der Analysis (z.B. Zwischenwertsatz,<br />
Konvergenz) zu schlagen. Gleichzeitig gehören <strong>die</strong> Algorithmen <strong>die</strong>ses Kapitels zu der<br />
großen Klasse von Fixpunktverfahren. Diese Verfahren werden wir ausführlich <strong>in</strong> Kapitel 5<br />
besprechen. Insbesondere s<strong>in</strong>d <strong>die</strong>se Verfahren auf höherdimensionale Funktionen f ∈ R n<br />
sowie zum Lösen von Differentialgleichungen geeignet (siehe [11, 10] und entsprechende<br />
H<strong>in</strong>weise auf <strong>die</strong> Fachliteratur).<br />
20
2.2 Stabilität und Kondition<br />
2.2 Stabilität und Kondition<br />
Wir werden zunächst auf <strong>die</strong> Stabilität und <strong>in</strong> Bezug auf Kapitel 1 <strong>die</strong> Konditionierung der<br />
Nullstellensuche e<strong>in</strong>gehen. Als Beispiel seien Polynome zweiten Grades gewählt. Hier liegt<br />
mit der p-q-Formel e<strong>in</strong> direktes Lösungsverfahren zur Nullstellenberechnung vor. Trotz<br />
<strong>die</strong>ser auf den ersten Blick e<strong>in</strong>fachen Aufgabe (da sogar exakt lösbar), können numerische<br />
Schwierigkeiten hieran demonstriert werden, <strong>die</strong> bereits mit logischem Vorstellungsvermögen<br />
e<strong>in</strong>leuchtend s<strong>in</strong>d.<br />
Abbildung 2.1: Die vier möglichen Situationen bei der Nullstellensuche quadratischer<br />
Funktionen: stabile Situation, doppelte Nullstelle, zwei Nullstellen nah beie<strong>in</strong>ander<br />
und ke<strong>in</strong>e reellen Nullstellen.<br />
Wir unterscheiden vier Situationen, wie <strong>in</strong> Abbildung 2.3 skizziert:<br />
1. Stabile Situation: <strong>die</strong> beiden Nullstellen liegen h<strong>in</strong>reichend weit ause<strong>in</strong>ander.<br />
2. Doppelte Nullstelle, d.h. f(ˆx) = f ′ (ˆx) = 0: <strong>die</strong> Berechnung e<strong>in</strong>er doppelten Nullstelle<br />
ist immer schlecht konditioniert, denn durch Rundungsfehler (Kapitel 1) könnte e<strong>in</strong><br />
numerisches Verfahren unter Umständen nicht nur <strong>die</strong> e<strong>in</strong>e e<strong>in</strong>zige Nullstelle f<strong>in</strong>den,<br />
sondern entweder zwei (siehe 3.) oder ke<strong>in</strong>e (siehe 4.) Nullstellen liefern.<br />
3. H<strong>in</strong>reichend nah beie<strong>in</strong>ander liegende Nullstellen s<strong>in</strong>d numerisch schwierig zu berechnen.<br />
Insbesondere gilt <strong>die</strong>s, falls mehr als e<strong>in</strong>e e<strong>in</strong>zige Nullstelle gesucht wird.<br />
4. Hier liegen ke<strong>in</strong>e reellen Nullstellen vor. Allerd<strong>in</strong>gs können wir immer noch komplexe<br />
Nullstellen f<strong>in</strong>den (Fundamentalsatz der Algebra). Die Suche nach komplexen<br />
Nullstellen kann ebenfalls schlecht konditioniert se<strong>in</strong>. Dies werden aber nicht weiter<br />
betrachten. E<strong>in</strong>e Beschreibung numerischer Verfahren zur Berechnung komplexer<br />
Nullstellen seien als Übungsaufgabe gestellt.<br />
Beispiel 2.1 (Konditionierung der p-q-Formel). Wir berechnen <strong>die</strong> Konditionierung der<br />
Nullstellenberechnung mit der p-q-Formel <strong>in</strong> Abhängigkeit von den Koeffizienten. Dazu sei<br />
f(x) = x 2 − px + q = 0, x ∈ R.<br />
21
2 Nullstellenbestimmung<br />
Für <strong>die</strong> Wurzeln x 1,2 gilt<br />
√<br />
x 1,2 = x 1,2 (p, q) = p 2 ± p 2<br />
4 − q<br />
und wegen f(x) = (x − x 1 )(x − x 2 ) auch p = x 1 + x 2 sowie q = x 1 · x 2 (Satz von Vieta).<br />
Die Konditionszahlen werden berechnet durch:<br />
k 11 = ∂x 1<br />
∂p<br />
k 12 = ∂x 1<br />
∂q<br />
p<br />
= 1 + x 2/x 1<br />
,<br />
x 1 1 − x 2 /x 1<br />
q 1<br />
= .<br />
x 1 1 − x 2 /x 1<br />
Entsprechende Resultate erhalten wir für k 22 und k 21 . Die Berechnung der Wurzeln von<br />
x 1 , x 2 ist demnach schlecht konditioniert, falls x 1 /x 2 ∼ 1, d.h. wenn <strong>die</strong> Wurzeln vergleichsweise<br />
nah beie<strong>in</strong>ander liegen. Dann s<strong>in</strong>d nämlich <strong>die</strong> Konditionszahlen sehr groß.<br />
Beispiel 2.2. Das vorherige Beispiel wird mit konkreten Zahlenwerten weitergeführt. Es<br />
sei p = 4 und q = 3.999:<br />
f(x) = x 2 − 4x + 3.9999 = 0,<br />
mit den Nullstellen x 1,2 = 2 ± 0.01. Dann gilt für <strong>die</strong> Konditionzahl<br />
k 12 =<br />
1<br />
1 − x 1 /x 2<br />
= 99.5.<br />
Das entspricht e<strong>in</strong>er möglichen Fehlerverstärkung um den Faktor 100. Bei e<strong>in</strong>er Störung<br />
von p um 1% zu ˜p = 4.04 erhalten wir <strong>die</strong> gestörten Nullstellen<br />
mit relativen Fehlern von etwa 15%.<br />
˜x 1 ≈ 2.304, ˜x 2 ≈ 1.736,<br />
Bei e<strong>in</strong>er Störung von p um m<strong>in</strong>us 1% zu ˜p = 3.96 erhalten wir ke<strong>in</strong>e reellen Nullstellen<br />
mehr - sondern <strong>die</strong> komplexen Nullstellen<br />
˜x 1 ≈ 1.98 ± 0.28196i.<br />
Die Nullstellenbestimmung kann also sehr schlecht konditioniert se<strong>in</strong>, falls <strong>die</strong> beiden Nullstellen<br />
nahe beie<strong>in</strong>ander liegen. Wir untersuchen nun <strong>die</strong> Stabilität des gut konditionierten<br />
Falls mit Nullstellen <strong>die</strong> weit separiert s<strong>in</strong>d. Es sei also e<strong>in</strong> Polynom<br />
f(x) = x 2 − px + q,<br />
mit |q| ≪ p 2 /4 gegeben. Die beiden Lösungen lauten:<br />
√<br />
x 1,2 = p 2 ± p 2<br />
4 − q,<br />
also x 1 ≈ p und x 2 ≈ 0. Aus den vorherigen Beispielen haben wir gelernt, dass <strong>die</strong> Aufgabe<br />
für |x 1 /x 2 | ≫ 1 gut konditioniert ist. Wir berechnen <strong>die</strong> Nullstellen mit der p/q-Formel:<br />
22
2.2 Stabilität und Kondition<br />
1 a 1 = p 2 /4<br />
2 a 2 = a 1 − q<br />
3 a 3 = √ a 2 ≥ 0 .<br />
Im Fall p < 0 wird zur Vermeidung von Auslöschung zuerst <strong>die</strong> zweite Wurzel berechnet<br />
˜x 2 = p/2 − a 3 berechnet, ansonsten <strong>die</strong> erste ˜x 1 = p/2 + a 3 . Die (akzeptable) Fehlerfortpflanzung<br />
lautet <strong>in</strong> <strong>die</strong>sem Fall (p > 0):<br />
∣<br />
∣<br />
∆x 1 ∣∣∣<br />
≤<br />
x 1<br />
1<br />
∣1 + 2a 3 /p∣<br />
∣<br />
} {{ }<br />
2 Nullstellenbestimmung<br />
und damit (wegen p > 0) für <strong>die</strong> erste Nullstelle ˜x 1 = 3.998 mit e<strong>in</strong>em Fehler |∆x 1 /x| ≈<br />
0.00013. Die andere Wurzel kann mit den beiden Varianten berechnet werden:<br />
• Exakte Rechnung: x 2 ≈ 0.0002501564,<br />
• Variante 1: ˜x 2 = 0.002, mit e<strong>in</strong>em Fehler |∆x 2 /x 2 | ≈ 0.2<br />
• Variante 2: ˜x 2 = 0.002501, mit e<strong>in</strong>em Fehler |∆x 2 /x 2 | ≈ 0.00023.<br />
Die berechneten Wurzeln der beiden Varianten unterscheiden sich stark. H<strong>in</strong>weis: <strong>die</strong> 4-<br />
stellige Rechengenauigkeit <strong>die</strong>nt hier nur zum Zwecke der Demonstration. Man mache sich<br />
aber bewusst, dass sich <strong>die</strong> Instabilität bei größeren Genauigkeiten überträgt.<br />
2.3 Intervallschachtelung<br />
Das e<strong>in</strong>fachste Verfahren zur Nullstellenbestimmung ist <strong>die</strong> Intervallschachtelung, wurde<br />
bereits <strong>in</strong> Analysis I e<strong>in</strong>geführt, und basiert auf dem Zwischenwertsatz.<br />
Es sei f ∈ C[a, b] und x, y ∈ [a, b] mit x < y. Falls f(x) und f(y) unterschiedliche<br />
Vorzeichen haben, d.h.,<br />
f(x)f(y) < 0,<br />
dann besitzt <strong>die</strong> Funktion f nach dem Zwischenwertsatz m<strong>in</strong>destens e<strong>in</strong>e Nullstelle <strong>in</strong><br />
(a, b). Das folgende Verfahren ermittelt e<strong>in</strong>e Approximation <strong>die</strong>ser Nullstelle.<br />
a2<br />
a1<br />
b2<br />
b1<br />
a0<br />
b0<br />
f<br />
Abbildung 2.2: Geometrische Interpretation der Intervallschachtelung.<br />
24
2.3 Intervallschachtelung<br />
Satz 2.5 (Intervallschachtelung). Es sei f ∈ C[a, b] mit f(a)f(b) < 0. Man def<strong>in</strong>iere e<strong>in</strong>e<br />
Folge von Intervallen [a n , b n ] mit n = 0, 1, 2, . . . , N, durch<br />
[a 0 , b 0 ] = [a, b]<br />
und<br />
⎧<br />
⎪⎨ [a n , x n ] falls f(a n )f(x n ) < 0,<br />
[a n+1 , b n+1 ] = [x n , b n ] falls f(x n )f(b n ) < 0,<br />
⎪⎩<br />
[x n , x n ] falls f(x n ) = 0,<br />
wobei x n = 1 2 (a n + b n ) der Mittelpunkt des Intervalls [a n , b n ] ist. Dann gilt, dass x n →<br />
ˆx (n → ∞) für e<strong>in</strong>e Nullstelle ˆx von f und<br />
|x n − ˆx| ≤ b − a<br />
2 n+1 .<br />
Diese Fehlerschranke verhält sich wie e<strong>in</strong>e geometrische Folge mit dem Quotienten 1 2 (Konvergenzrate)<br />
und hat <strong>die</strong> Konvergenzordnung p = 1 (mehr dazu <strong>in</strong> Abschnitt 2.6).<br />
Beweis: Falls f(x n ) = 0 für e<strong>in</strong> n ∈ N, dann ist <strong>die</strong> Nullstelle exakt gefunden. Im<br />
Folgenden wird <strong>die</strong>ser Fall nicht mehr betrachtet. Nach Konstruktion gilt<br />
a ≤ a 1 ≤ . . . ≤ a n ≤ a n+1 ≤ b n+1 ≤ b n ≤ . . . b 1 ≤ b,<br />
und damit<br />
|b n − a n | = |b n−1 − a n−1 |<br />
= |b n−2 − a b−2 | |b − a|<br />
2<br />
2 2 = . . . =<br />
2 n . (2.1)<br />
Somit ist (a n ) e<strong>in</strong>e monoton wachsende und nach oben beschränkte Folge. Damit ist <strong>die</strong>se<br />
nach dem Monotoniekriterium konvergent (Analysis I). Analog erhalten wir <strong>die</strong> Konvergenz<br />
für <strong>die</strong> Folge (b n ), <strong>die</strong> monoton fallend und nach unten beschränkt ist. Somit gilt<br />
ˆx := lim<br />
n→∞ b n = lim<br />
n→∞ (a n + (b n − a n )) = lim<br />
n→∞ a n + lim<br />
n→∞ (b n − a n ) = lim<br />
n→∞ a n.<br />
Da a n ≤ x n ≤ b n für alle n ∈ N folgt lim n→∞ x n = ˆx. Aus der Stetigkeit von f folgt weiter<br />
f(a n )f(b n ) ≤ 0<br />
∀n ∈ N<br />
und <strong>die</strong>s impliziert<br />
f(ˆx) 2 = lim<br />
n→∞ f(a n)f(b n ) ≤ 0 ⇒ f(ˆx) = 0.<br />
Es bleibt <strong>die</strong> Konvergenzrate zu bestimmen. Es gilt a n ≤ ˆx ≤ b n (∀n) und<br />
x n − a n = b n − x n = b − a<br />
2 n+1 .<br />
Da ˆx ∈ [a n , x n ] oder ˆx ∈ [x n , b n ] folgt <strong>die</strong> Behauptung:<br />
|x n − ˆx| ≤ b − a<br />
2 n+1 . □<br />
25
2 Nullstellenbestimmung<br />
Bemerkung 2.6 (A priori Fehlerabschätzung). Die <strong>in</strong> Satz 2.5 angegebene Fehlerabschätzung<br />
|x n − ˆx| ≤ b − a<br />
2 n+1 .<br />
ist e<strong>in</strong>e a priori Fehlerabschätzung, da <strong>die</strong>se bereits vor der Rechnung angegeben werden<br />
kann.<br />
Abschließend diskutieren wir noch e<strong>in</strong>e a posteriori Fehlerabschätzung, <strong>die</strong> allerd<strong>in</strong>gs <strong>die</strong><br />
stetige Differenzierbarkeit von f voraussetzt:<br />
Satz 2.7 (A posteriori Fehlerabschätzung). Es sei f ∈ C 1 [a, b] mit f(a)f(b) < 0 und für<br />
alle x ∈ [a, b] gilt<br />
0 < m ≤ f ′ (x) ≤ M.<br />
Für <strong>die</strong> Nullstelle ˆx von f und <strong>die</strong> <strong>in</strong> Satz 2.5 def<strong>in</strong>ierte Folge (x n ) n∈N gilt dann<br />
|f(x n )|<br />
M<br />
≤ |x n − ˆx| ≤ |f(x n)|<br />
m .<br />
Beweis: Wird dem fleißigen Leser als Übungsaufgabe überlassen.<br />
Die a posteriori Fehlerschranke kann als Abbruchkriterium zum Beenden der Intervallschachtelung<br />
genutzt werden, allerd<strong>in</strong>gs nur, falls f stetig differenzierbar <strong>in</strong> [a, b] ist. Unabhängig<br />
davon gibt es im Allgeme<strong>in</strong>en Fall drei s<strong>in</strong>nvolle Abbruchkriterien:<br />
• f(x n ) = 0: d.h. <strong>die</strong> Nullstelle ist exakt gefunden.<br />
• [a n , b n ] < T OL<br />
• n = N 0 : d.h. Angabe e<strong>in</strong>er Maximalanzahl von Iterationsschritten (mit dem Nachteil,<br />
dass <strong>die</strong> Nullstelle noch nicht genügend genau approximiert worden ist.<br />
Beispiel 2.8. Es sei b − a = 1, dann liefert <strong>die</strong> a priori Abschätzung<br />
|x 9 − ˆx| < 10 −3 , |x 19 − ˆx| < 10 −6 , |x 29 − ˆx| < 10 −9 .<br />
Das heißt <strong>in</strong> der 29-ten Iteration kann e<strong>in</strong>e Genauigkeit von T OL = 10 −9 erwartet werden.<br />
Wir halten fest, dass <strong>die</strong> Intervallschachtelung e<strong>in</strong> numerisch sehr stabiles Verfahren ist<br />
(d.h. bei Vorzeichenwechsel <strong>in</strong> [a, b] liefert das Verfahren stets e<strong>in</strong>e Nullstelle - Vorteil!),<br />
allerd<strong>in</strong>gs sehr langsam gegen <strong>die</strong> gesuchte Nullstelle konvergiert (Nachteil!), denn 29 Iterationen<br />
für e<strong>in</strong>e Toleranz von 10 −9 ist nicht besonders empfehlenswert. Zweiter Nachteil<br />
ist, dass gute Zwischenlösungen (je nachdem was das Abbruchkriterium ist) von dem Verfahren<br />
nicht wahrgenommen werden [3], S. 33, siehe praktische Übungen, Blatt 1 sowie<br />
Beispiel 2.7. Aufgrund se<strong>in</strong>er Stabilität wird das Intervallschachtelungsverfahren häufig<br />
als Startverfahren für andere Verfahren genutzt (siehe auch Abschnitt 2.7). Allerd<strong>in</strong>gs ist<br />
<strong>die</strong> Intervallschachtelung auf reelle Funktionen beschränkt (im Gegensatz zu den weiteren<br />
Verfahren, <strong>die</strong> wir im Anschluss kennen lernen werden) und das Auff<strong>in</strong>den doppelter<br />
Nullstellen ist nicht möglich.<br />
□<br />
26
2.4 Das Newton-Verfahren <strong>in</strong> 1D<br />
2.4 Das Newton-Verfahren <strong>in</strong> 1D<br />
Das Newtonverfahren ist e<strong>in</strong>es der wichtigsten numerischen Verfahren zur Nullstellenbestimmung.<br />
Es ist nicht nur auf den Fall R d mit d > 1 erweiterbar, sondern wird auch<br />
zur Lösung von Differentialgleichungen häufig genutzt, wobei <strong>die</strong> Differentialgleichungsaufgabe<br />
wiederum <strong>in</strong> Form e<strong>in</strong>es Nullstellenproblems formuliert wird (siehe weiterführende<br />
Literatur [11, 10, 12] und enthaltene Literaturverweise).<br />
Es sei f ∈ C 1 [a, b]. Falls <strong>die</strong> erste Ableitung f ′ (x) ohne große Probleme berechenbar ist<br />
(für 1D Probleme ist das gewöhnlich der Fall, allerd<strong>in</strong>gs kann das bei mehrdimensionalen<br />
Problemstellungen schwieriger werden - trotzdem oft auch noch möglich), dann stellt das<br />
Newton-Verfahren e<strong>in</strong>e sehr effiziente Methodik zur Berechnung e<strong>in</strong>er Nullstelle dar. Das<br />
Newton-Verfahren hat viele Ableger - es gibt nicht das e<strong>in</strong>e e<strong>in</strong>zige Newton-Verfahren.<br />
Das klassische Newton-Verfahren (auch Newton-Raphson-Verfahren genannt) ist durch<br />
folgende Überlegung motiviert. Die Funktion f wird im Näherungswert x k l<strong>in</strong>earisiert und<br />
der iterierte Wert x k+1 als Abzisse des Schnittpunktes der Tangente (an f) mit der x-Achse<br />
def<strong>in</strong>iert.<br />
2.4.1 Das klassische Newton-Verfahren<br />
Verfahren 2.9 (Newton-Verfahren). Es sei f ∈ C 1 [a, b] und x 0 ∈ [a, b] e<strong>in</strong> geeigneter<br />
Startwert. Die Tangente an f ist durch<br />
t(x) = f(x k ) + (x − x k )f ′ (x k ), k = 0, 1, 2, . . . ,<br />
gegeben. Dann ist <strong>die</strong> Nullstelle x k+1 bestimmt durch<br />
x k+1 = x k − f(x k)<br />
f ′ , k = 0, 1, 2, . . . . (2.2)<br />
(x k )<br />
Die Iteration wird bei Erfüllung des Abbruchkriteriums 2.11 beendet.<br />
Diese Iteration ist möglich, solange f ′ (x k ) ≠ 0.<br />
Die Iteration 2.2 gehört (wie <strong>in</strong> der Motivation bereits erwähnt) zur Klasse der Fixpunktiterationen<br />
mit der Iterationsfunktion<br />
Für e<strong>in</strong>en Fixpunkt ˆx = F (ˆx) gilt offenbar f(ˆx) = 0.<br />
Als Hauptresultat des Abschnitts zeigen wir<br />
F (x) := x − f(x)<br />
f ′ (x) . (2.3)<br />
27
2 Nullstellenbestimmung<br />
f<br />
x1<br />
x0<br />
Abbildung 2.3: Geometrische Interpretation des Newton-Verfahrens.<br />
Satz 2.10 (Newton-Verfahren). Die Funktion f ∈ C 2 [a, b] habe im Innern des Intervalls<br />
[a, b] e<strong>in</strong>e Nullstelle ˆx, und es seien<br />
m := m<strong>in</strong><br />
a≤x≤b |f ′ (x)| > 0,<br />
M := max<br />
a≤x≤b |f ′′ (x)|.<br />
Es sei ρ > 0 so gewählt, dass<br />
q := M 2m ρ < 1,<br />
K ρ(ˆx) := {x ∈ R : |x − ˆx| ≤ ρ} ⊂ [a, b].<br />
Dann s<strong>in</strong>d für jeden Startpunkt x 0 ∈ K ρ (ˆx) <strong>die</strong> Newton-Iterierten x k ∈ K ρ (ˆx) def<strong>in</strong>iert<br />
und konvergieren gegen <strong>die</strong> Nullstelle ˆx. Desweiteren gelten <strong>die</strong> a priori Fehlerabschätzung<br />
und <strong>die</strong> a posteriori Fehlerabschätzung<br />
|x k − ˆx| ≤ 2m M q2k , k ∈ N,<br />
|x k − ˆx| ≤ 1 m |f(x k)| ≤ M 2m |x k − x k+1 | 2 , k ∈ N.<br />
Beweis: Wir rekapitulieren zunächst e<strong>in</strong>ige Resultate aus der Analysis. Für zwei Punkte<br />
x, y ∈ [a, b], x ≠ y, gilt aufgrund des Mittelwertsatzes der Differentialrechnung<br />
f(x) − f(y)<br />
∣ x − y ∣ = |f ′ (ζ)| ≥ m,<br />
mit e<strong>in</strong>em ζ ∈ [x, y]. Daraus folgt<br />
|x − y| ≤ 1 |f(x) − f(y)|.<br />
m<br />
28
2.4 Das Newton-Verfahren <strong>in</strong> 1D<br />
Die Nullstelle ˆx von f ist demnach <strong>die</strong> e<strong>in</strong>zige <strong>in</strong> [a, b].<br />
Als zweites Hilfsmittel nutzen wir <strong>die</strong> Taylor-Formel mit Restglied zweiter Ordnung:<br />
Wir setzen<br />
∫ 1<br />
f(y) = f(x) + (y − x)f ′ (x) + (y − x) 2 f ′′ (x + s(y − x))(1 − s) ds. (2.4)<br />
∫ 1<br />
R(y; x) := (y − x) 2 f ′′ (x + s(y − x))(1 − s) ds = f(y) − f(x) − (y − x)f ′ (x). (2.5)<br />
0<br />
Unter Berücksichtigung der Voraussetzung für f ′′ erhalten wir<br />
∫ 1<br />
|R(y; x)| ≤ M|y − x| 2 (1 − s) ds = M 2 |y − x|2 .<br />
Für x ∈ K ρ (ˆx) nutzen wir <strong>die</strong> Iterationsfunktion (5.2), so dass gilt<br />
Mit (2.5) und dort y = ˆx folgt:<br />
Zusammenfassend erhalten wir<br />
0<br />
F (x) − ˆx = x − f(x)<br />
f ′ (x) − ˆx = − 1 ( f(x) + (ˆx − x)f ′<br />
f ′ (x) ) .<br />
(x)<br />
−R(ˆx; x) = ( f(x) + (ˆx − x)f ′ (x) ) .<br />
0<br />
|F (x) − ˆx| ≤ M 2m |x − ˆx|2 ≤ M 2m ρ2 < ρ. (2.6)<br />
Dies impliziert, dass F (x) ∈ K ρ (ˆx). Die Abbildung F ist e<strong>in</strong>e Selbstabbildung <strong>in</strong> K ρ (ˆx).<br />
Insbesondere bedeutet das, dass für x 0 ∈ K ρ (ˆx) auch alle Newton-Iterierten x k <strong>in</strong> K ρ (ˆx)<br />
liegen. Wir setzen<br />
so dass mit Hilfe von (2.6) folgt:<br />
ρ k := M 2m |x k − ˆx|,<br />
ρ k ≤ ρ 2 k−1 ≤ . . . ≤ ρ 2k<br />
0 , |x k − ˆx| ≤ 2m M ρ2k 0 .<br />
Für<br />
ρ 0 = M 2m |x 0 − ˆx| ≤ M 2m ρ < 1<br />
konvergieren <strong>die</strong> Iterierten x k → ˆx für k → ∞. Desweiteren haben wir <strong>die</strong> a priori Abschätzung<br />
gezeigt. Es bleibt <strong>die</strong> a posteriori Fehlerabschätzung zu beweisen. Hierzu nutzen<br />
wir <strong>die</strong> Taylor-Formel (2.4) und setzen dort y = x k , x = x k−1 . Dann<br />
und<br />
f(x k ) = f(x k−1 ) + (x k − x k−1 )f ′ (x k−1 ) +R(x k ; x k−1 )<br />
} {{ }<br />
=0<br />
|x k − ˆx| ≤ 1 m |f(x k) − f(ˆx)| ≤ M 2m |x k − x k−1 | 2 ,<br />
wobei wir f(ˆx) = 0 ausgenutzt haben. Damit haben wir alles gezeigt.<br />
□<br />
29
2 Nullstellenbestimmung<br />
Satz 2.11 (Abbruchkriterium 1 des Newton-Verfahrens). Die Iteration wird beendet (d.h.<br />
wir haben e<strong>in</strong>e akzeptable Lösung x akzeptabel gefunden), falls<br />
|x k+1 − x k |<br />
|x k |<br />
< T OL, (2.7)<br />
wobei <strong>die</strong> Tolerenz T OL beispielsweise durch T OL = 10 −12 gegeben ist. Das Abbruchkriterium<br />
(2.7) misst den relativen Abstand zwischen zwei aufe<strong>in</strong>anderfolgenden Iterierten<br />
x k+1 und x k ; <strong>in</strong> anderen Worten, falls zwei Iterierte nah genug beie<strong>in</strong>ander liegen, dann<br />
ist <strong>die</strong> Nullstelle näherungsweise bestimmt.<br />
Bemerkung 2.12 (Alternatives Abbruchkriterium des Newton-Verfahrens). Aufgrund<br />
der Konstruktion des Newton-Verfahrens gilt:<br />
x k+1 = x k − f(x k)<br />
f ′ , k = 0, 1, 2, . . . ,<br />
(x k )<br />
so dass mit Hilfe der Voraussetzung aus Satz 2.10<br />
gilt<br />
m := m<strong>in</strong><br />
a≤x≤b |f ′ (x)| > 0,<br />
∣ |x k+1 − x k | =<br />
f(x k )<br />
∣∣∣ ∣f ′ (x k ) ∣ ≤ f(x k )<br />
m ∣ .<br />
Das heißt, e<strong>in</strong> kle<strong>in</strong>es Residuum f(x k ) kann ebenfalls (bei festem m) als (absolutes) Abbruchkriterium<br />
genutzt werden:<br />
|f(x k )| < T OL. (2.8)<br />
Bemerkung 2.13. Für e<strong>in</strong>e zweimal stetig differenzierbare Funktion f existiert zu jeder<br />
e<strong>in</strong>fachen Nullstelle ˆx stets e<strong>in</strong>e (evtl. sehr kle<strong>in</strong>e) Umgebung K ρ (ˆx), für <strong>die</strong> <strong>die</strong> Voraussetzungen<br />
von Satz 2.10 erfüllt s<strong>in</strong>d. Das Problem beim Newton-Verfahren ist also <strong>die</strong><br />
Bestimmung e<strong>in</strong>es im E<strong>in</strong>zugsbereich der Nullstelle ˆx gelegenen Startpunktes x 0 (lokale<br />
Konvergenz). Dieser kann z.B. mit Hilfe der Intervallschachtelung (siehe entsprechende<br />
Bemerkung oben) berechnet werden. Dann konvergiert das Newton-Verfahren sehr schnell<br />
(quadratische Konvergenz) gegen <strong>die</strong> Nullstelle ˆx.<br />
Bemerkung 2.14. Das Newton-Verfahren kann auch zur Bestimmung von doppelten<br />
Nullstellen genutzt werden, allerd<strong>in</strong>gs konvergiert das Verfahren dann nur noch schlicht<br />
l<strong>in</strong>ear, d.h. p = 1, was <strong>in</strong> Beispiel 2.31 explizit gezeigt wird.<br />
Bemerkung 2.15 (E<strong>in</strong>ordnung des Newton-Verfahrens). Aufgrund der (möglichen)<br />
schnellen Konvergenz zählt das Newton-Verfahren zu den attraktivsten Verfahren <strong>in</strong> der<br />
numerischen <strong>Mathematik</strong> zur Ermittelung von Nullstellen. Aufgrund des möglicherweise<br />
sehr kle<strong>in</strong>en E<strong>in</strong>zugsbereich und damit der Abhängigkeit von der konkreten Aufgabenstellung<br />
kann das Newton-Verfahren nicht zu den black-box Lösern gezählt werden.<br />
30
2.4 Das Newton-Verfahren <strong>in</strong> 1D<br />
Beispiel 2.16. Falls der Startpunkt x 0 im E<strong>in</strong>zugsbereich des quadratischen Konvergenz<br />
liegt, dann konvergiert das Newton-Verfahren sehr schnell gegen <strong>die</strong> gesuchte Nullstelle.<br />
Es sei z.B. q ≤ 1 2<br />
, dann gilt nach nur 10 Iterationsschritten<br />
|x 10 − ˆx| ≤ 2m M q210 ∼ 2m M 10−300 .<br />
Diese Toleranz ist jenseits jeglicher Rechengenauigkeit, allerd<strong>in</strong>gs vergleiche man <strong>die</strong>ses<br />
Ergebnis mit der a priori berechneten erwarteten Toleranz der Intervallschachtelung!<br />
Beispiel 2.17 (Wurzelberechnung). Die n-te Wurzel e<strong>in</strong>er Zahl a > 0 ist <strong>die</strong> Nullstelle<br />
der Funktion f(x) = x n − a. Das Newton-Verfahren zur Berechnung von ˆx = n√ a > 0<br />
lautet (mit f ′ (x) = nx n−1 ):<br />
x k+1 = x k − xn k − a<br />
nx n−1<br />
k<br />
bzw. als Defektkorrektur-Iteration:<br />
Folgende Spezialfälle leiten sich daraus ab:<br />
= 1 {<br />
(n − 1)x k + a<br />
}<br />
n<br />
x n−1 ,<br />
k<br />
nx n−1<br />
k<br />
δx = x n k − a,<br />
x k+1 = x k − δx.<br />
x k+1 = 1 {x k + a }<br />
, (Quadratwurzel),<br />
2 x<br />
{ k<br />
}<br />
x k+1 = 1 3<br />
2x k + a x 2 k<br />
, (Kubikwurzel),<br />
x k+1 = (2 − ax k )x k , n = −1,<br />
(Kehrwert).<br />
Da stets f ′′ (ˆx) = n(n − 1)ˆx n−2 ≠ 0, erhalten wir <strong>die</strong> Konvergenzordnung p = 2. Die<br />
Fehlerkonstante beträgt<br />
C =<br />
f ′′ (ˆx)<br />
∣2f ′ (ˆx) ∣ = 1<br />
2 √ 2 .<br />
Aufgrund von Satz 2.10 konvergiert x k → ˆx(k → ∞), falls x 0 nahe genug bei ˆx gewählt<br />
wird. Bei <strong>die</strong>sem Beispiel ist <strong>die</strong> Konvergenz allerd<strong>in</strong>gs für alle x 0 > 0 gesichert, da <strong>die</strong><br />
Folge (x k ) k∈N monoton fällt und notwendig gegen ˆx = n√ a konvergiert.<br />
Bemerkung 2.18. Mit dem <strong>in</strong> dem vorangegangen Beispiel wird auf vielen Rechnern<br />
<strong>die</strong> Wurzel<br />
n √ a berechnet. Desweiteren ermöglichte <strong>die</strong> Darstellung zur Berechnung des<br />
Kehrwertes, erstmals <strong>die</strong> Berechnung ohne Ausnutzung der Division sondern lediglich unter<br />
Zuhilfenahme von Multiplikationen und Subtraktionen.<br />
31
2 Nullstellenbestimmung<br />
2.4.2 Das Newton-Verfahren als Defekt-Korrektur<br />
In der Praxis wird das Newton-Verfahren oft als Defektkorrektur-Iteration ausgeführt. Wir<br />
def<strong>in</strong>ieren:<br />
Def<strong>in</strong>ition 2.19 (Defekt). Es sei ˜x ∈ R e<strong>in</strong>e Approximation der Lösung von f(x) = y.<br />
Mit<br />
d(˜x) = y − f(˜x),<br />
wird der Defekt bezeichnet. Der Defekt wird auch als das Residuum bezeichnet.<br />
Es sei im Folgenden y = 0 (falls nicht transformieren wir <strong>die</strong> Gleichung entsprechend<br />
um), so dass wir wie üblich e<strong>in</strong> Nullstellenproblem lösen. Für <strong>die</strong> Approximation x k ist<br />
durch d k := 0 − f(x k ) der Defekt der k-ten Iterierten gegeben und wir schreiben das<br />
Newton-Verfahren <strong>in</strong> der Form:<br />
Def<strong>in</strong>ition 2.20 (Newton-Verfahren als Defektkorrektur).<br />
f ′ (x k )δx = d k , d k := −f(x k ),<br />
x k+1 = x k + δx, k = 0, 1, 2, . . . .<br />
Die Iteration wird bei Erfüllung des Abbruchkriteriums 2.11 beendet.<br />
Diese Art der Berechnung kann bei vielen Fixpunktiterationsverfahren angewendet werden<br />
(nicht bei allen!) und wird uns wieder bei der iterativen Lösung von l<strong>in</strong>earen Gleichungssystemen<br />
begegnen. Insbesondere hat das Defektkorrektur-Verfahren den Vorteil, dass <strong>die</strong><br />
Ableitung nicht mehr im Nenner steht - oder anders gesprochen, wir müssen nicht mehr<br />
<strong>die</strong> Inverse der ersten Ableitung explizit angegeben. Für 1D Funktionen ist <strong>die</strong> explizite<br />
Angabe ke<strong>in</strong> Problem. Wie verhält es sich aber bei höherdimensionalen Funktionen? (wir<br />
verweisen dazu auf Kapitel 5). Der Defekt d(˜x) = y − f(˜x) e<strong>in</strong>er Gleichung ist eng mit<br />
dem Fehler ˜x − ˆx verbunden. Es gilt der folgende allgeme<strong>in</strong>e Satz:<br />
Satz 2.21 (Defekt-Fehler Abschätzung). Es sei f ∈ C 1 [a, b] e<strong>in</strong>e differenzierbare Funktion<br />
und ˆx ∈ (a, b) <strong>die</strong> Lösung von f(x) = y. Für <strong>die</strong> Approximation ˜x ∈ (a, b) gilt <strong>die</strong><br />
Fehlerabschätzung<br />
mit m = m<strong>in</strong> [a,b] |f ′ (x)|.<br />
|˜x − ˆx| ≤ 1 m |d(˜x)|,<br />
Beweis: Es gilt mit e<strong>in</strong>em ξ ∈ [a, b]:<br />
d(˜x) = y − f(˜x) =<br />
Hieraus folgt sofort <strong>die</strong> Behauptung.<br />
f(ˆx) − f(˜x)<br />
(ˆx − ˜x) = f ′ (ξ)(ˆx − ˜x).<br />
ˆx − ˜x<br />
□<br />
32
2.4 Das Newton-Verfahren <strong>in</strong> 1D<br />
2.4.3 Das vere<strong>in</strong>fachte Newton-Verfahren<br />
Häufig ändert sich im Verlauf der Newton-Iteration <strong>die</strong> Ableitung f ′ (x) nicht mehr gravierend.<br />
In <strong>die</strong>sem Fall eignet sich das vere<strong>in</strong>fachte Newton-Verfahren. Die Idee ist recht<br />
e<strong>in</strong>fach: berechne <strong>die</strong> Ableitung f ′ (x) nur wenige Male (im Idealfall nur für x 0 ) und belasse<br />
<strong>die</strong>se für alle weiteren Schritte bei <strong>die</strong>sem Wert:<br />
Def<strong>in</strong>ition 2.22 (Vere<strong>in</strong>fachtes Newton-Verfahren). Zu e<strong>in</strong>em Startwert x 0 ∈ R werden<br />
Approximation durch <strong>die</strong> folgende Vorschrift gebildet:<br />
x k+1 = x k − f(x k)<br />
f ′ , k = 0, 1, 2, . . . .<br />
(c)<br />
Hierbei ist c e<strong>in</strong> fest gewählter Punkt, etwa x = x 0 .<br />
Das vere<strong>in</strong>fachte Newton-Verfahren konvergiert nur noch l<strong>in</strong>ear. Die Konvergenz kann jedoch,<br />
falls f ′ (c) e<strong>in</strong>e gute Approximation für f ′ (x k ) ist sehr gut se<strong>in</strong>. Das vere<strong>in</strong>fachte<br />
Newton-Verfahren spielt dann se<strong>in</strong>e Vorteile aus, falls <strong>die</strong> erste Ableitung aufwendig zu<br />
berechnen ist (was bei den Beispielen <strong>in</strong> <strong>die</strong>sem Kapitel jedenfalls nicht der Fall ist, aber<br />
bei der Nullstellensuche im R n (siehe Kapitel 5) oder bei Problemen mit Differentialgleichungen<br />
oder Optimierungsproblemen).<br />
Dieses Verfahren kann <strong>in</strong> der theoretischen Analyse als e<strong>in</strong> Spezialfall der allgeme<strong>in</strong>en<br />
Fixpunktiteration aufgefasst werden. Wir verweisen hierzu auf Kapitel 5 und [9], S. 162.<br />
2.4.4 Das gedämpfte Newton-Verfahren<br />
Das Hauptproblem bei der Durchführung des Newton-Verfahrens ist <strong>die</strong> Bestimmung e<strong>in</strong>es<br />
geeigneten Startwertes x 0 (siehe obige Bemerkungen), so dass quadratische Konvergenz<br />
erwartet werden kann. Deshalb wird <strong>in</strong> der Praxis häufig mit e<strong>in</strong>er Variante gearbeitet,<br />
dem sogenannten gedämpften Newton-Verfahren:<br />
Def<strong>in</strong>ition 2.23 (Gedämpftes Newton-Verfahren). Es sei x 0 e<strong>in</strong> geeigneter Startwert. Die<br />
Defektkorrektur-Iteration des gedämpften Newton-Verfahrens lautet:<br />
f ′ (x k )δx = f(x k ),<br />
x k+1 = x k − λ k δx, k = 0, 1, 2, . . . ,<br />
wobei λ k ∈ (0, 1] den sog. Dämpfungsparameter bezeichnet.<br />
Je kle<strong>in</strong>er λ k gewählt wird, desto ger<strong>in</strong>ger ist der Abstand zwischen x k+1 und x k . E<strong>in</strong><br />
kle<strong>in</strong>es λ kann helfen, um Konvergenz zu sichern, obwohl der E<strong>in</strong>zugbereich der quadratischen<br />
Konvergenz noch nicht gesichert ist. So wird vermieden, dass <strong>die</strong> Iteration weit aus<br />
dem E<strong>in</strong>zugbereich herausspr<strong>in</strong>gt. E<strong>in</strong>e optimale Wahl von λ k ist (abh. von der Problemstellung)<br />
sehr kompliziert werden. Zum Beispiel gibt es ausgeklügelte Algorithmen zur<br />
33
2 Nullstellenbestimmung<br />
Bestimmung von λ k für Newton-Verfahren, <strong>die</strong> zur Lösung von Optimierungsproblemen<br />
genutzt werden (siehe Nocedal/Wright, Numerical Optimization). Oft hilft <strong>die</strong> e<strong>in</strong>fache<br />
Strategie<br />
λ k,0 = 1, λ k,l+1 = λ k,l<br />
, l = 0, 1, 2, . . . ,<br />
2<br />
solange bis für das neue Residuum gilt<br />
|f(x k+1 )| < |f(x k )|.<br />
Dieser Algorithmus wird L<strong>in</strong>e-Search genannt.<br />
2.5 Weitere Verfahren zur Nullstellensuche<br />
Im <strong>die</strong>sem Abschnitt fassen wir kurz weitere Verfahren zur Nullstellensuche zusammen.<br />
Zum tieferen Verständnis sei auf <strong>die</strong> angegebene Literatur verwiesen.<br />
Sekantenverfahren<br />
Das Sekantenverfahren gehört zur Klasse der Interpolationsmethoden und hat e<strong>in</strong>e direkte<br />
Verb<strong>in</strong>dung zu dem bereits kennengelernten Newtonverfahren. Geometrisch betrachtet<br />
wird bei dem Newton-Verfahren e<strong>in</strong>e Tangente an <strong>die</strong> Funktion gelegt, während bei<br />
dem Sekantenverfahren e<strong>in</strong>e Sekante als Approximation zur Ableitung f ′ (x) genutzt wird.<br />
Hierdurch wird <strong>die</strong> explizite Berechnung von f ′ (x) vermieden. Dies macht S<strong>in</strong>n falls f ′ (x)<br />
schwierig/aufwendig zu berechnen ist. Das Sekantenverfahren ist effizienter als <strong>die</strong> Nullstellenbestimmung<br />
mit Hilfe der Intervallschachtelung und auch e<strong>in</strong>facher zu realisieren<br />
als <strong>die</strong> sukzessive Approximation (Banachscher Fixpunktsatz); siehe nächster Abschnitt<br />
sowie Kapitel 5.<br />
Konkret wird bei dem Sekantenverfahren <strong>die</strong> Ableitung f ′ (x) durch e<strong>in</strong>en Differenzenquotienten<br />
ersetzt, etwa durch<br />
f ′ (x k ) = f(x k) − f(x k−1 )<br />
x k − x k−1<br />
.<br />
Die Iterationsvorschrift erfordert zwei Startwerte x 0 und x 1 , so dass<br />
x k+1 = x k −<br />
x k − x k−1<br />
f(x k ) − f(x k−1 ) f(x k).<br />
E<strong>in</strong>e wichtige Beobachtung ist, dass <strong>die</strong> Sekantenmethode unter Umständen zur Auslöschung<br />
im Nenner neigt (zur Auslöschung siehe Kapitel 1). Analog zum Newton-Verfahren<br />
kann e<strong>in</strong>e Analyse mit entsprechender Fehlerabschätzung durchgeführt werden. Hierzu verweisen<br />
wir auf [9], Satz 5.3 auf S. 167. Das Sekanten-Verfahren ist e<strong>in</strong>e Kuriosität, da ke<strong>in</strong>e<br />
ganzzahlige Konvergenzordnung bewiesen werden kann. Stattdessen gilt asymptotisch:<br />
|x k − ˆx| ≤ Cq γk k , γk → 1 2 (1 + √ 5) ≈ 1.6818,<br />
34
2.5 Weitere Verfahren zur Nullstellensuche<br />
also e<strong>in</strong>e Ordnung von etwa 1.6. Die Konstante q hängt wie beim Newton-Verfahren vom<br />
E<strong>in</strong>zugbereich ab.<br />
In Komb<strong>in</strong>ation mit der bereits diskutierten Intervallschachtelung <strong>in</strong> Abschnitt 2.3 erhalten<br />
wir e<strong>in</strong> stabilisiertes Verfahren:<br />
Def<strong>in</strong>ition 2.24 (Regula falsi). Es sei f e<strong>in</strong>e stetige Funktion auf [a 0 , b 0 ] := [a, b] mit<br />
f(a)f(b) < 0. E<strong>in</strong>e Approximation von f(x n+1 ) = 0 wird mittels<br />
x n+1 := a n − f(a n)(b n − a n )<br />
f(b n ) − f(a n )<br />
bestimmt. Dann ist das nächste Intervall gegeben durch<br />
⎧<br />
⎪⎨ [a n , x n ] falls f(a n )f(x n ) < 0,<br />
[a n+1 , b n+1 ] = [x n , b n ] falls f(x n )f(b n ) < 0,<br />
⎪⎩<br />
[x n , x n ] falls f(x n ) = 0,<br />
In Worten bedeutet <strong>die</strong>s, dass das Verfahren approximierende Geraden (Sekanten) bildet,<br />
aber analog zur Intervallschachtelung <strong>die</strong> Nullstelle durch kle<strong>in</strong>er werdende Intervalle<br />
e<strong>in</strong>schließt.<br />
Die Konvergenzgeschw<strong>in</strong>digkeit ist vergleichbar zu den beiden Verfahren durch <strong>die</strong> <strong>die</strong><br />
regula falsi def<strong>in</strong>iert ist.<br />
Sukzessive Approximation<br />
Die sukzessive Approximation basiert auf dem Banachschen Fixpunktsatz. Das Verfahren<br />
eignet sich <strong>in</strong>sbesondere zur Nullstellenbestimmung höherdimensionaler Funktionen.<br />
Daher verweisen wir auf Kapitel 5 für e<strong>in</strong>e ausführliche Diskussion.<br />
Berechnung komplexer Nullstellen<br />
Nach dem Fundamentalsatz der Algebra besitzt jedes komplexe Polynom n-ten Grades,<br />
n + 1 Nullstellen. Die bisherigen Verfahren eignen sich nicht zur Berechnung von komplexen<br />
Nullstellen. Entsprechende Verfahren werden <strong>in</strong> der Literatur diskutiert und für e<strong>in</strong>e<br />
Diskussion im Rahmen <strong>die</strong>ses Skriptums sei auf <strong>die</strong> Übungsaufgaben verwiesen.<br />
35
2 Nullstellenbestimmung<br />
2.6 Konvergenzbegriffe<br />
In <strong>die</strong>sem Abschnitt wird <strong>die</strong> Konvergenz iterativer Verfahren anhand der bereits diskutierten<br />
Beispiele <strong>in</strong> e<strong>in</strong>em allgeme<strong>in</strong>en Rahmen gefasst. Die theoretischen Resultate werden<br />
allgeme<strong>in</strong> für Fixpunktpunktverfahren hergeleitet, so dass das Newton-Verfahren als e<strong>in</strong><br />
Spezialfall aufgefasst werden kann. Die Aussagen <strong>die</strong>ses Abschnitts s<strong>in</strong>d auf andere iterative<br />
Verfahren <strong>die</strong> wir später kennenlernen ebenfalls anwendbar (z.B. iterative Lösung von<br />
Gleichungssystemen).<br />
Die folgenden Überlegungen s<strong>in</strong>d durch <strong>die</strong> bereits bekannten Abschätzungen motiviert.<br />
Für <strong>die</strong> Intervallschachtelung gilt:<br />
|x n − ˆx| ≤ b − a<br />
2 n+1 ,<br />
mit der Konvergenzrate 1 2<br />
und der Konvergenzordnung p = 1 (l<strong>in</strong>eare Konvergenz).<br />
Das Newtonverfahren besitzt (lokal) <strong>in</strong> der Umgebung e<strong>in</strong>er Nullstelle das Konvergenzverhalten<br />
|x k − ˆx| ≤ c |x k−1 − ˆx| 2 .<br />
Wir sprechen von e<strong>in</strong>em quadratisch konvergenten Verfahren oder auch von e<strong>in</strong>em Verfahren<br />
2-ter Ordnung.<br />
Allgeme<strong>in</strong> gilt<br />
Def<strong>in</strong>ition 2.25 (Konvergenzordnung). Wir nennen e<strong>in</strong> Iterationsverfahren zur Berechnung<br />
e<strong>in</strong>er Nullstelle ˆx von Konvergenz mit der Ordnung p mit p ≥ 1, wenn gilt<br />
|x k − ˆx| ≤ c|x k−1 − ˆx| p ,<br />
mit e<strong>in</strong>er festen Konstanten c > 0. Im Fall p = 1, d.h. l<strong>in</strong>earer Konvergenz heißt <strong>die</strong> beste<br />
Konstante c ∈ (0, 1) <strong>die</strong> l<strong>in</strong>eare Konvergenzrate. Gilt bei l<strong>in</strong>earer Konvergenzrate zusätzlich<br />
c k → 0 (k → ∞), d.h.<br />
|x k − ˆx| ≤ c k |x k−1 − ˆx|,<br />
so sprechen wir von superl<strong>in</strong>earer Konvergenz.<br />
Grundsätzlich gilt (zum<strong>in</strong>dest asymptotisch), dass superl<strong>in</strong>ear konvergente Folgen schneller<br />
als (schlicht) l<strong>in</strong>eare Folgen konvergieren. Außerdem konvergieren Verfahren mit Ordnung<br />
p+1 schneller als Verfahren mit der Ordnung p. Außerdem gilt, je kle<strong>in</strong>er <strong>die</strong> Konvergenzrate<br />
c ist, desto schneller ist <strong>die</strong> Konvergenz. Allerd<strong>in</strong>gs hat <strong>die</strong> Konvergenzordnung<br />
wesentlich größeren E<strong>in</strong>fluss auf <strong>die</strong> Konvergenzgeschw<strong>in</strong>digkeit, als <strong>die</strong> Konvergenzrate.<br />
Letztlich sollte bemerkt werden, dass Verfahren mit p > 3 sehr selten Anwendung f<strong>in</strong>den.<br />
Sehr oft nutzt der Numeriker Newton-artige Verfahren, so dass p ≈ 2 gilt.<br />
36
2.6 Konvergenzbegriffe<br />
Bemerkung 2.26. Die Konvergenzordnung hat e<strong>in</strong>en direkten praktischen Nutzen. Als<br />
Näherung erwartet wir bei e<strong>in</strong>em iterativen Verfahren der Ordnung p > 1 zur Lösung des<br />
Problems g(x) = 0, dass sich <strong>die</strong> Anzahl der korrekten Dezimalstellen bei jeder Iteration<br />
ver-p-facht. Bei Verfahren erster Ordnung erwarten wir, dass sich <strong>die</strong> Anzahl der korrekten<br />
Dezimalstellen <strong>in</strong> etwa um den Summanden | log 10 (g ′ (ˆx))| erhöht.<br />
Im Folgenden betrachten wir Fixpunktprobleme der Form<br />
x k+1 = g(x k ), k = 0, 1, 2, . . . .<br />
Bei Fixpunktiterationen mit stetig differenzierbarer Abbildung g(·) gilt mit dem Mittelwertsatz<br />
der Analysis:<br />
∣ x k+1 − ˆx<br />
∣∣∣ ∣ x k − ˆx ∣ = g(x k ) − g(ˆx)<br />
x k − ˆx ∣ → |g′ (ˆx)| (k → ∞). (2.9)<br />
Hieraus implizieren wir, dass <strong>die</strong> l<strong>in</strong>eare Konvergenzrate asymptotisch (k → ∞) gerade<br />
gleich |g ′ (ˆx)| ist. Dementsprechend liegt im Falle g ′ (ˆx) = 0 (m<strong>in</strong>destens) superl<strong>in</strong>eare<br />
Konvergenz vor.<br />
Aus (2.9) können wir folgende Def<strong>in</strong>ition ableiten:<br />
Def<strong>in</strong>ition 2.27. E<strong>in</strong> Fixpunkt ˆx e<strong>in</strong>er stetig differenzierbaren Abbildung g(·) heißt anziehend,<br />
falls |g ′ (ˆx)| < 1 ist. Im Fall |g ′ (ˆx)| > 1, wird e<strong>in</strong> Fixpunkt abstoßend genannt.<br />
Der folgende Satz liefert e<strong>in</strong> e<strong>in</strong>faches Kriterium zur Bestimmung der Konvergenzordnung<br />
e<strong>in</strong>er differenzierbaren Fixpunktiteration. Er kann auch zur Konstruktion von Verfahren<br />
mit hoher Ordnung genutzt werden:<br />
Satz 2.28 (Iterative Verfahren mit Ordnung p ≥ 2). Die Funktion g(·) sei <strong>in</strong> e<strong>in</strong>er Umgebung<br />
des Fixpunktes ˆx p-mal stetig differenzierbar. Die Fixpunktiteration x k+1 = g(x k )<br />
hat genau dann <strong>die</strong> Ordnung p, wenn<br />
Beweis:<br />
g ′ (ˆx) = . . . = g (p−1) (ˆx) = 0 und g (p) ≠ 0.<br />
• Teil 1 (Rückrichtung)<br />
Es seien g ′ (z) = . . . = g (p−1) (z) = 0. Im Punkt z lautet <strong>die</strong> Taylorformel mit dem<br />
Restglied p-ter Ordnung:<br />
x k+1 − z = g(x k ) − g(z) =<br />
p−1 ∑<br />
j=1<br />
Damit erhalten wir <strong>die</strong> Abschätzung:<br />
(x k − z) j<br />
|x k+1 − z| ≤ 1 p! max |g(p) | |x k − z| p .<br />
j!<br />
g (j) (z) + (x k − z) p<br />
g (p) (ξ k ).<br />
p!<br />
37
2 Nullstellenbestimmung<br />
• Teil 2 (H<strong>in</strong>richtung)<br />
Es sei nun umgekehrt <strong>die</strong> Iteration von p-ter Ordnung, sprich<br />
|x k+1 − z| ≤ c|x k − z| p .<br />
Falls es e<strong>in</strong> m<strong>in</strong>imales m ≤ p − 1 mit g (m) (z) ≠ 0 gäbe, aber g (j) (z) = 0, j =<br />
1, . . . , m−1, so würde jede Iterationsfolge (x k ) k∈N mit h<strong>in</strong>reichend kle<strong>in</strong>em |x 0 −z| ≠<br />
0) notwendig gegen z wie<br />
|x k − z| ≤<br />
1<br />
∣m! g(m) (ξ k )<br />
∣ |x k−1 − z| m ,<br />
also mit der Ordnung m. Hier f<strong>in</strong>den wir aber e<strong>in</strong>en Widerspruch zu der Annahme,<br />
dass <strong>die</strong> Iteration von der Ordnung p ist:<br />
|g (m) (z)| = lim<br />
k→∞ |g(m) (ξ k )| ≤ c m! lim<br />
k→∞ |x k − z| p−m = 0.<br />
Hieraus folgt, dass für g ′ (z) = . . . = g (p−1) (z) = 0, aber g (p) (z) ≠ 0, dass <strong>die</strong> Iteration<br />
nicht von höherer Ordnung als p se<strong>in</strong> kann.<br />
Beispiel 2.29 (Darstellung des Newton-Verfahrens als Fixpunktverfahren). Die allgeme<strong>in</strong>e<br />
Fixpunktiteration lautet<br />
x k+1 = g(x k ), k = 0, 1, 2, . . . . (2.10)<br />
Das bereits diskutierte Newton-Verfahren lässt sich <strong>in</strong> <strong>die</strong>ser Notation wie folgt herleiten.<br />
Es sei wie üblich f <strong>die</strong> Funktion des Nullstellenproblems und h e<strong>in</strong>e h<strong>in</strong>reichend glatte<br />
Funktion, <strong>die</strong> <strong>in</strong> e<strong>in</strong>er Umgebung der Nullstelle ˆx nicht verschw<strong>in</strong>det. Es sei<br />
g(x) := x + h(x)f(x), (2.11)<br />
mit der Fixpunkt-Eigenschaft g(ˆx) = ˆx. <strong>die</strong> zu (2.10) zugehörige Iterationsfunktion. Anwendung<br />
der Produktregel und Satz 2.28 ergeben <strong>in</strong> ˆx:<br />
Hieraus folgt <strong>die</strong> Bed<strong>in</strong>gung an h(x) <strong>in</strong> ˆx:<br />
g ′ (ˆx) := 1 + h ′ (ˆx) f(ˆx) +h(ˆx)f ′ (ˆx) = ! 0.<br />
} {{ }<br />
=0<br />
h(ˆx) = − 1<br />
f ′ (ˆx) .<br />
Wir wählen h(x) nun für alle x gemäß <strong>die</strong>se Vorschrift, so dass<br />
h(x) := − 1<br />
f ′ (x) .<br />
□<br />
38
2.6 Konvergenzbegriffe<br />
E<strong>in</strong>setzen <strong>in</strong> (2.11) liefert <strong>die</strong> Iterationsfunktion<br />
und der Iterationsvorschrift<br />
g(x) := x − f(x)<br />
f ′ (x) ,<br />
x k+1 := g(x k ) = x k − f(x k)<br />
f ′ , k = 0, 1, 2, . . . .<br />
(x k )<br />
Beispiel 2.30 (Konvergenzordnung Newton für e<strong>in</strong>fache Nullstellen). Im umgekehrten<br />
Fall zu Beispiel 2.29 sei das Newton-Verfahren nun als bekannt vorausgesetzt. Mit Hilfe des<br />
Satzes 2.28 kann explizit <strong>die</strong> Konvergenzordnung des Newton-Verfahrens ermittelt werden:<br />
g ′ (ˆx) = 1 − f ′ (ˆx) 2 − f(ˆx)f ′′ (ˆx)<br />
f ′ (ˆx) 2 = 0,<br />
und im Allgeme<strong>in</strong>en g ′′ (ˆx) ≠ 0. Damit ist das Newton-Verfahren (wie bereits vorher diskutiert)<br />
quadratisch konvergent.<br />
Mehrfache Nullstellen<br />
Das Newton-Verfahren kann auch zur Suche von doppelten Nullstellen verwendet werden,<br />
allerd<strong>in</strong>gs konvergiert es nur noch höchstens superl<strong>in</strong>ear bei mehrfachen Nullstellen.<br />
Es sei ˆx e<strong>in</strong>e zweifache Nullstelle der Funktion f, d.h. f(ˆx) = f ′ (ˆx) = 0 und f ′′ (ˆx) ≠ 0.<br />
Dann gilt mit Zwischenwerten ζ k , η k ∈ [x k , ˆx]:<br />
x k+1 = x k − f(x k)<br />
f ′ (x k ) = x k − f(x k) − f(ˆx) x k − ˆx<br />
f ′ (x k ) − f ′ (ˆx) x k − ˆx = x k − f ′ (ζ k )<br />
f ′′ (η k ) .<br />
Beispiel 2.31 (Konvergenzordnung Newton für doppelte Nullstellen). Für das Newton-<br />
Verfahren zur Bestimmung e<strong>in</strong>er e<strong>in</strong>fachen Nullstelle der Funktion f lautet <strong>die</strong> Iterationsfunktion<br />
g(x) = x − f(x)<br />
f ′ (x). Mit Hilfe des Satzes 2.28 gilt<br />
g ′ (ˆx) = 1 − f ′ (ˆx) 2 − f(ˆx)f ′′ (ˆx)<br />
f ′ (ˆx) 2 = 0.<br />
Sei nun ebenfalls f ′ (ˆx) = 0 (doppelte Nullstelle). Hier können wir nun <strong>die</strong> Regel von<br />
L’Hopital verwenden<br />
lim<br />
x→ˆx g′ (x) = f ′′ f(x)<br />
(ˆx) lim<br />
x→ˆx f ′ (x) 2 = f ′′ f ′ (x)<br />
(ˆx) lim<br />
x→ˆx 2f ′ (x)f ′′ (x) = f ′′ 1<br />
(ˆx)<br />
2f ′′ (ˆx) = 1 2 .<br />
Damit ist das Newton-Verfahren nach Satz 2.28 zur Bestimmung doppelter Nullstellen nur<br />
l<strong>in</strong>ear konvergent.<br />
39
2 Nullstellenbestimmung<br />
Im Fall von mehrfachen Nullstellen lässt sich <strong>die</strong> quadratische Konvergenzordnung des<br />
Newton-Verfahrens durch e<strong>in</strong>en Trick erreichen. Wir machen zur Iteration den Ansatz:<br />
x k+1 = x k − ω f(x k)<br />
f ′ (x k )<br />
mit e<strong>in</strong>em Relaxationsparameter ω, ähnlich dem gedämpften Newton-Verfahren. Angenommen,<br />
es liegt e<strong>in</strong>e p-fache Nullstelle vor f(ˆx) = f ′ (ˆx) = . . . = f (p−1) (ˆx) = 0 und<br />
f (p) (ˆx) ≠ 0, so wählen wir ω = p. Da ω > 1 sprechen wir von Überrelaxation. Das so<br />
gewonnene Verfahren konvergiert wieder quadratisch. Der Beweis f<strong>in</strong>det sich <strong>in</strong> der Literatur,<br />
etwa [9], S. 168. Der praktische Nutzen <strong>die</strong>ser Modifikation ist beschränkt, da man<br />
bei der Suche nach e<strong>in</strong>er Nullstelle üblicherweise nicht deren Vielfachheit kennt.<br />
2.7 Vier Verfahren im Vergleich<br />
In <strong>die</strong>sem Beispiel vergleichen wir drei besprochene Verfahren h<strong>in</strong>sichtlich Konvergenz-<br />
Geschw<strong>in</strong>digkeit und -Ordnung sowie Anzahl der Iterationen um e<strong>in</strong>e mögliche Fehlertoleranz<br />
zu erreichen. Wir vergleichen <strong>die</strong> Intervallschachtelung, das klassische Newton-<br />
Verfahren sowie das vere<strong>in</strong>fachte Newton-Verfahren. Zuletzt diskutieren wir das komb<strong>in</strong>ierte<br />
Verfahren, <strong>in</strong> dem <strong>die</strong> Intervallschachtelung als Startiteration für das klassische<br />
Newton-Verfahren genutzt wird.<br />
Konfiguration<br />
Gesucht wird e<strong>in</strong>e Nullstelle der Funktion (siehe auch [3], S. 34ff)<br />
f(x) = x 3 + 4x 2 − 10<br />
im Intervall [1, 2]. Die Abbruchtoleranz ist gegeben durch T OL = 10 −8 . Da f(1) = −5<br />
und f(2) = 14 kann <strong>die</strong> Intervallschachtelung angewendet werden. Als Startwert für das<br />
Newton-Verfahren sei x 0 = 1 gewählt. Die maximale Anzahl der Iterationen (sprich falls<br />
T OL nicht unterschritten wird) sei N = 30. Für das vere<strong>in</strong>fachte Newton-Verfahren sei<br />
<strong>die</strong> Ableitung durch f ′ (x 0 ) approximiert. Die exakte Nullstelle ist auf zehn Dezimalstellen<br />
genau ˆx = 1.3652300134.<br />
Diskussion Intervallschachtelung<br />
Wir erkennen l<strong>in</strong>eare Konvergenz mit e<strong>in</strong>zelnen Ausschlägen, wie sehr gut <strong>in</strong> Grafik 2.4 zu<br />
sehen ist. Dies ist der oben diskutierte zweite Nachteil der Intervallschachtelung: e<strong>in</strong> u. U.<br />
sprunghaftes Konvergenzverhalten. Das Verfahren wird nach 27 Iterationen abgebrochen,<br />
da dann T OL unterschritten wird.<br />
Diskussion Newton<br />
Wir erkennen perfekte quadratische Konvergenz (siehe Grafik 2.5) und das Unterschreiten<br />
von T OL nach bereits 5 Iterationen. Die quadratische Konvergenz bedeutet <strong>in</strong> etwa e<strong>in</strong>e<br />
Verdopplung <strong>in</strong> der Anzahl der richtigen Nachkommastellen <strong>in</strong> jedem Schritt, was gut <strong>in</strong><br />
Tabelle 2.2 zu sehen ist. (Von Iteration 3 auf 4 ist <strong>die</strong> Konvergenz sogar noch etwas besser).<br />
40
2.7 Vier Verfahren im Vergleich<br />
10 0 Bisektions−Methode: f(x) = x 3 +4x 2 −10<br />
10 −1<br />
10 −2<br />
10 −3<br />
|ˆx−xk|<br />
10 −4<br />
10 −5<br />
10 −6<br />
10 −7<br />
10 −8<br />
10 −9<br />
0 5 10 15 20 25 30<br />
Iterationen<br />
Abbildung 2.4: Fehler vs. Iterationen für das Intervallschachtelungsverfahren.<br />
Diskussion vere<strong>in</strong>fachtes Newton<br />
Analog zur Intervallschachtelung erkennen wir l<strong>in</strong>eare Konvergenz des Verfahrens (siehe<br />
Grafik 2.6). Die T OL wird ebenfalls bei 27 Iterationen unterschritten. Die l<strong>in</strong>eare Konvergenz<br />
spiegelt sich ebenfalls im Fehler |ˆx − x k | wieder. L<strong>in</strong>eare Konvergenz bedeutet, dass<br />
sich der Fehler <strong>in</strong> jeder Iteration etwas halbiert.<br />
Diskussion Intervallschachtelung als Startiteration für Newton<br />
Die Intervallschachtelung wird nach 3 Iterationen abgebrochen, um so e<strong>in</strong>en besseren<br />
Startwert als x 0 = 1 für das Newton-Verfahren zu bekommen. Nach drei Iterationen ist<br />
˜x 0 = 1.375. Mit <strong>die</strong>sem Startwert wird nun das klassische Newton-Verfahren gestartet. Im<br />
Vergleich zu vorher können wir <strong>die</strong> Anzahl der Newton-Iterationen tatsächlich verr<strong>in</strong>gern<br />
und erreichen <strong>die</strong> T OL <strong>in</strong> 3 Schritten.<br />
41
2 Nullstellenbestimmung<br />
Tabelle 2.1: Nullstellenbestimmung mit Intervallschachtelung.<br />
Iter x k |ˆx − x k |<br />
1 1.500000000000000 0.134769986600000<br />
2 1.250000000000000 0.115230013400000<br />
3 1.375000000000000 0.009769986600000<br />
4 1.312500000000000 0.052730013400000<br />
5 1.343750000000000 0.021480013400000<br />
6 1.359375000000000 0.005855013400000<br />
7 1.367187500000000 0.001957486600000<br />
8 1.363281250000000 0.001948763400000<br />
9 1.365234375000000 0.000004361600000<br />
10 1.364257812500000 0.000972200900000<br />
11 1.364746093750000 0.000483919650000<br />
12 1.364990234375000 0.000239779025000<br />
13 1.365112304687500 0.000117708712500<br />
14 1.365173339843750 0.000056673556250<br />
15 1.365203857421875 0.000026155978125<br />
16 1.365219116210938 0.000010897189062<br />
17 1.365226745605469 0.000003267794531<br />
18 1.365230560302734 0.000000546902734<br />
19 1.365228652954102 0.000001360445898<br />
20 1.365229606628418 0.000000406771582<br />
21 1.365230083465576 0.000000070065576<br />
22 1.365229845046997 0.000000168353003<br />
23 1.365229964256287 0.000000049143713<br />
24 1.365230023860931 0.000000010460931<br />
25 1.365229994058609 0.000000019341391<br />
26 1.365230008959770 0.000000004440230<br />
27 1.365230016410351 0.000000003010351<br />
Tabelle 2.2: Nullstellenbestimmung mit dem klassischen Newton-Verfahren.<br />
Iter x k |ˆx − x k |<br />
1 1.000000000000000 0.365230013400000<br />
2 1.454545454545455 0.089315441145455<br />
3 1.368900401069519 0.003670387669519<br />
4 1.365236600202116 0.000006586802116<br />
5 1.365230013435367 0.000000000035367<br />
42
2.7 Vier Verfahren im Vergleich<br />
10 0 Newton−Methode: f(x) = x 3 +4x 2 −10<br />
10 −2<br />
10 −4<br />
|ˆx−xk|<br />
10 −6<br />
10 −8<br />
10 −10<br />
10 −12<br />
1 1.5 2 2.5 3 3.5 4 4.5 5<br />
Iterationen<br />
Abbildung 2.5: Fehler vs. Iterationen für das klassische Newton-Verfahren.<br />
10 0 Vere<strong>in</strong>fachte Newton−Methode: f(x) = x 3 +4x 2 −10<br />
10 −1<br />
10 −2<br />
10 −3<br />
|ˆx−xk|<br />
10 −4<br />
10 −5<br />
10 −6<br />
10 −7<br />
10 −8<br />
10 −9<br />
0 5 10 15 20 25 30<br />
Iterationen<br />
Abbildung 2.6: Fehler vs. Iterationen für das vere<strong>in</strong>fachte Newton-Verfahren.<br />
43
2 Nullstellenbestimmung<br />
Tabelle 2.3: Nullstellenbestimmung mit dem vere<strong>in</strong>fachten Newton-Verfahren.<br />
Iter x k |ˆx − x k |<br />
1 1.000000000000000 0.365230013400000<br />
2 1.454545454545455 0.089315441145455<br />
3 1.314527696195615 0.050702317204385<br />
4 1.388762800510863 0.023532787110863<br />
5 1.353026194519825 0.012203818880175<br />
6 1.371237342903140 0.006007329503140<br />
7 1.362192451689584 0.003037561710416<br />
8 1.366745706220543 0.001515692820543<br />
9 1.364468629666006 0.000761383733993<br />
10 1.365611206121441 0.000381192721441<br />
11 1.365038845782882 0.000191167617118<br />
12 1.365325803195075 0.000095789795075<br />
13 1.365181995089162 0.000048018310838<br />
14 1.365254079370617 0.000024065970617<br />
15 1.365217950694894 0.000012062705106<br />
16 1.365236059360180 0.000006045960180<br />
17 1.365226983049599 0.000003030350401<br />
18 1.365231532280867 0.000001518880868<br />
19 1.365229252128885 0.000000761271115<br />
20 1.365230394983596 0.000000381583596<br />
21 1.365229822164451 0.000000191235549<br />
22 1.365230109271854 0.000000095871854<br />
23 1.365229965368448 0.000000048031552<br />
24 1.365230037495444 0.000000024095444<br />
25 1.365230001344089 0.000000012055910<br />
26 1.365230019463803 0.000000006063803<br />
27 1.365230010381875 0.000000003018125<br />
Tabelle 2.4: Nullstellenbestimmung mit Intervallschachtelung als Startiteration für das<br />
Newton-Verfahren.<br />
Iter x k |ˆx − x k |<br />
1 1.375000000000000 0.009769986600000<br />
2 1.365276476101218 0.000046462701218<br />
3 1.365230014472403 0.000000001072403<br />
44
2.7 Vier Verfahren im Vergleich<br />
10 −2 Newton−Methode mit Intervallschachtelung: f(x) = x 3 +4x 2 −10<br />
10 −3<br />
10 −4<br />
10 −5<br />
|ˆx−xk|<br />
10 −6<br />
10 −7<br />
10 −8<br />
10 −9<br />
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3<br />
Iterationen<br />
Abbildung 2.7: Fehler vs. Iterationen für das Newton-Verfahren mit dem Intervallschachtelungsverfahren<br />
als Startiteration.<br />
45
2 Nullstellenbestimmung<br />
46
3 Interpolation und Approximation<br />
In dem ersten großen Kapitel beschäftigen wir uns mit der Frage, wie e<strong>in</strong>e Reihe von<br />
Daten (z.B. aus physikalischen Messungen, experimentelle Beobachtungen, Börse, etc.)<br />
durch e<strong>in</strong>e möglichst e<strong>in</strong>fache Funktion p(x) (z.B. Polynome) angenähert werden kann.<br />
Auf der anderen Seite soll geklärt werden, wie komplizierte Funktionen durch e<strong>in</strong>fachere<br />
Funktionen aus e<strong>in</strong>er bestimmten Klasse (z.B. Raum der Polynome) approximiert werden<br />
können.<br />
Bei der Interpolation wird <strong>die</strong> approximierende Funktion p derart konstruiert, dass <strong>die</strong>se<br />
an den vorliegenden (diskreten) Daten exakt ist:<br />
p(x k ) = y k , k = 0, 1, 2, 3, . . . , n.<br />
Die Stützstellen und Stützwerte (x k , y k ) s<strong>in</strong>d entweder diskrete Datenwerte (z.B. von Experimenten)<br />
oder durch Funktionen bestimmt y k = f(x k ). Mit Hilfe der Interpolation p(x)<br />
können bis dato unbekannte Werte an Zwischenstellen ξ ∈ (x k , x k+1 ) oder das Integral<br />
bzw. <strong>die</strong> Ableitung von p bestimmt werden. Darüberh<strong>in</strong>aus hat <strong>die</strong> Interpolation e<strong>in</strong>e wesentliche<br />
Bedeutung zur Entwicklung weiterer numerischer Verfahren, wie beispielsweise<br />
numerische Quadratur, Differentiation oder <strong>in</strong> weiterführenden Vorlesungen Entwicklung<br />
F<strong>in</strong>iter Elemente [10].<br />
Die Approximation ist allgeme<strong>in</strong>er gefasst. Wieder wird e<strong>in</strong>e e<strong>in</strong>fache Funktion p(x) (also<br />
wieder z.B. e<strong>in</strong> Polynom) gesucht, welche diskrete oder durch Funktionen bestimmte Datenwerte<br />
(x k , y k ) möglichst gut approximiert. Im Gegensatz zur Interpolation wird jedoch<br />
nicht p(x k ) = y k explizit gefordert. Was <strong>die</strong> Approximation auszeichnet wird von Fall<br />
zu Fall entschieden. Möglich ist z.B. bei der Approximation e<strong>in</strong>er Funktion f <strong>die</strong> beste<br />
Approximation bzgl. e<strong>in</strong>er Norm<br />
p ∈ P :<br />
‖p − f‖ = m<strong>in</strong> ‖q − f‖,<br />
q∈P<br />
wobei P <strong>die</strong> Klasse der betrachteten e<strong>in</strong>fachen Funktionen ist (also z.B. alle quadratischen<br />
Polynome). E<strong>in</strong>e Anwendung der Approximation ist das “Fitten” von diskreten Datenwerten,<br />
welche durch Experimente gegeben s<strong>in</strong>d. Oft werden viele tausend Messwerte berücksichtigt,<br />
<strong>die</strong> von der zugrundeliegenden (etwa physikalischen) Formel jedoch aufgrund<br />
von statistischen Messfehlern nicht exakt im S<strong>in</strong>ne der Interpolation, sondern nur approximativ<br />
erfüllt werden sollen. E<strong>in</strong>e zweite Anwendung ist wieder <strong>die</strong> möglichst e<strong>in</strong>fache<br />
Darstellung von gegebenen Funktionen.<br />
Beispiel 3.1 (Interpolation: Personen <strong>in</strong> der Mensa mit e<strong>in</strong>er Stichprobe). Die Studenten,<br />
<strong>die</strong> Numerik 0 bei Thomas hören, schließen e<strong>in</strong>e Wette gegen <strong>die</strong> parallel verlaufende<br />
47
3 Interpolation und Approximation<br />
Vorlesung <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Wahrsche<strong>in</strong>lichkeitstheorie und Statistik ab. Es gilt <strong>die</strong> Anzahl<br />
der Mittagessenden Personen <strong>die</strong>sen Mittwoch um Punkt 12:00 zu schätzen. Allerd<strong>in</strong>gs<br />
gibt es e<strong>in</strong> Problem, dass um <strong>die</strong>se Zeit <strong>die</strong> Vorlesung der Numerik 0 stattf<strong>in</strong>det - und <strong>die</strong><br />
möchte niemand missen.<br />
Daher verabreden sich <strong>die</strong> Studenten kurz vor der Vorlesung um 11:00 Uhr und zählen<br />
alle Personen und dann wieder um 13:00 nach der Vorlesung. Folgende Zahlen haben sie<br />
ermittelt:<br />
(t 1 , y 1 ) = (11.00, 50), (t 2 , y 2 ) = (13.00, 350),<br />
350<br />
Personen<br />
300<br />
250<br />
200<br />
150<br />
100<br />
50<br />
10<br />
11 12 13 14<br />
Uhrzeit<br />
Abbildung 3.1: L<strong>in</strong>eare Interpolation zwischen zweier gegebener Messwerte.<br />
In Vorlesung habe alle gut aufgepasst: durch Aufstellen der Interpolationsfunktion (hier<br />
e<strong>in</strong>e schlichte Gerade) können <strong>die</strong> Studenten nun den Wert (Anzahl der Personen) durch<br />
Ablesen ermitteln. Die Schätzung sagt e<strong>in</strong>e Anzahl von 200 Personen voraus. Dieser Wert<br />
ist natürlich nur e<strong>in</strong>e Schätzung da der Anstieg sich wahrsche<strong>in</strong>lich nicht l<strong>in</strong>ear verhält.<br />
Beispiel 3.2 (Approximation: Personen <strong>in</strong> der Mensa bei mehreren Stichproben). Die<br />
Studenten der Numerik 0 haben auch bei der Approximation gut aufgepasst und machen<br />
an nun jede Woche an verschiedenen Tagen Stichproben von der Anzahl der Personen <strong>in</strong><br />
der Mensa. Die ermittelte Datenmenge kann nicht mehr <strong>in</strong>terpoliert werden, allerd<strong>in</strong>gs<br />
stellen sie nun e<strong>in</strong>e approximierende Funktion auf, <strong>die</strong> <strong>die</strong> wahrsche<strong>in</strong>liche Personenzahl<br />
am letzten Mittwoch <strong>in</strong> der Vorlesungszeit voraussagen soll.<br />
Ablesen der Regressionsgeraden ergibt e<strong>in</strong>e Schätzung von ca. 250 Personen <strong>in</strong> der Mensa.<br />
Grundsätzlich hat <strong>die</strong> Darstellung als e<strong>in</strong>fache Funktion den großen Vorteil, dass Elementaroperationen<br />
(wie bei der Interpolation bereits angemerkt), wie Ableitungsbildung und<br />
Integration, viel e<strong>in</strong>facher ausgeführt werden können. Die Wahl der e<strong>in</strong>fachen Funktion ist<br />
48
350<br />
Personen<br />
300<br />
250<br />
200<br />
150<br />
100<br />
50<br />
10<br />
11 12 13 14<br />
Uhrzeit<br />
Abbildung 3.2: Approximation gegebener Messwerte.<br />
e<strong>in</strong>e der entscheidenden Fragen, <strong>die</strong> es zu klären gilt: Polynom, Spl<strong>in</strong>e, trigonometrische<br />
Funktion? Das hängt im wesentlichen von der gegebenen Aufgabenstellung ab.<br />
E<strong>in</strong>en Zusammenhang zwischen Polynomen und stetigen Funktionen stellt der Weierstraßsche<br />
Approximationssatz her (Analysis I):<br />
Satz 3.3 (Weierstraßsche Approximationssatz). Es sei f ∈ C[a, b]. Dann gibt es zu jedem<br />
ε > 0 e<strong>in</strong> auf [a, b] def<strong>in</strong>iertes Polynom p, so dass<br />
|f(x) − p(x)| < ε<br />
∀x ∈ [a, b].<br />
Der Weierstraßsche Approximationssatz besagt zunächst, dass es möglich ist, jede stetige<br />
Funktion beliebig gut durch e<strong>in</strong> Polynom zu approximieren, hilft jedoch noch nicht bei<br />
der praktischen Durchführung. Auch hier gibt es e<strong>in</strong>en e<strong>in</strong>fachen Ansatz <strong>in</strong> der Analysis:<br />
Satz 3.4 (Taylor-Entwicklung). Es sei f ∈ C n+1 [a, b]. Für das n-te Taylor-Polynom zu<br />
x 0 ∈ (a, b)<br />
n∑ f (k) (x 0 )<br />
t n (x; x 0 ) :=<br />
(x − x 0 ) k<br />
k!<br />
k=0<br />
ist e<strong>in</strong>e Approximation zu f <strong>in</strong> der Umgebung von x 0 . Es gilt <strong>die</strong> Fehlerabschätzung:<br />
mit e<strong>in</strong>er Zwischenstelle ξ x ∈ [a, b].<br />
f(x) − t n (x; x 0 ) = f (n+1) (ξ x )<br />
(x − x 0 ) n+1 ,<br />
(n + 1)!<br />
49
3 Interpolation und Approximation<br />
Hier ist C([a, b]) der Vektorraum der auf dem Intervall [a, b] stetigen Funktionen und<br />
C k ([a, b]) der Raum der auf [a, b] k-mal stetig differenzierbaren Funktionen. Die Taylor-<br />
Entwicklung ermöglicht e<strong>in</strong>e konkrete Vorgehensweise zum Erstellen e<strong>in</strong>es approximativen<br />
Polynoms. Wir sehen jedoch bereits, dass wir e<strong>in</strong>e sehr starke Regularität von f benötigen.<br />
Darüber h<strong>in</strong>aus ist <strong>die</strong> Taylor-Entwicklung nur für Funktionen, nicht aber für diskrete<br />
Datenwerte (x k , y k ) möglich.<br />
Neben der Taylor-Entwicklung von Funktionen stellt <strong>die</strong> Analysis noch <strong>die</strong> Fourier-Analyse<br />
zur Approximation von periodischen Funktionen f mit Hilfe von trigonometrischen Polynomen<br />
zur Verfügung.<br />
3.1 Polynom<strong>in</strong>terpolation<br />
Wir bezeichnen mit P n den Vektorraum der Polynome vom Grad ≤ n:<br />
{<br />
}<br />
n∑<br />
P n := p(x) = a k x k |a k ∈ R, k = 0, . . . , n .<br />
k=0<br />
Def<strong>in</strong>ition 3.5 (Lagrangesche Interpolationsaufgabe). Die Lagrangesche Interpolationsaufgabe<br />
besteht dar<strong>in</strong>, zu n+1 paarweise verschiedenen Stützstellen (Knoten) x 0 , . . . , x n ∈<br />
R und zugehörigen gegebenen Stützwerten y 0 , . . . , y n ∈ R e<strong>in</strong> Polynom p ∈ P n zu bestimmen,<br />
so dass <strong>die</strong> Interpolationsbed<strong>in</strong>gung<br />
erfüllt ist.<br />
p(x k ) = y k , k = 0, . . . , n,<br />
Satz 3.6. Die Lagrangesche Interpolationsaufgabe ist e<strong>in</strong>deutig lösbar.<br />
Beweis: Die E<strong>in</strong>deutigkeit wird zuerst nachgewiesen. Es seien p 1 , p 2 ∈ P n zwei Lösungen.<br />
Dann gilt für das Differenzpolynom p := p 1 − p 2 ∈ P n :<br />
p(x k ) = 0, k = 0, . . . , n,<br />
d.h. p hat n + 1 Nullstellen und ist folglich das Nullpolynom. Dies kann mit Hilfe des Satzes<br />
von Rolle nachgewiesen werden. Zum Nachweis der Existenz betrachten wir <strong>die</strong> Gleichungen<br />
p(x k ) = y k , k = 0, . . . , n. Dies kann als e<strong>in</strong> l<strong>in</strong>eares Gleichungssystem aufgefasst<br />
werden, welches n + 1 Gleichungen für <strong>die</strong> n + 1 unbekannten Koeffizienten a 0 , . . . , a n des<br />
Polynoms p ∈ P n . Wegen der bereits gezeigten E<strong>in</strong>deutigkeit des Interpolationspolynoms<br />
p (also der Injektivität) hat <strong>die</strong>ses System notwendigerweise e<strong>in</strong>e Lösung (Surjektivität).<br />
□<br />
Die gegebenen Stützwerte y k können Werte e<strong>in</strong>er gegebenen Funktion f se<strong>in</strong>, d.h.<br />
f(x k ) = y k , k = 0, 1, . . . , n,<br />
50
3.1 Polynom<strong>in</strong>terpolation<br />
oder auch beliebige diskrete Datenwerte<br />
(x k , y k ), k = 0, 1, . . . , n.<br />
3.1.1 Lagrangesche Darstellung<br />
In <strong>die</strong>sem Abschnitt verwenden wir zur Konstruktion des Interpolationspolynoms <strong>die</strong> Lagrangeschen<br />
Basispolynome<br />
L (n)<br />
k (x) := n ∏<br />
j=0,j≠k<br />
x − x j<br />
x k − x j<br />
∈ P n , k = 0, 1, . . . , n.<br />
Die Basiseigenschaft möge der aufmerksame Leser selbst verifizieren. Als zweite Eigenschaft<br />
erhalten wir<br />
{<br />
L (n)<br />
1, k = l<br />
k (x l) = δ kl :=<br />
0, k ≠ l,<br />
wobei δ kl das Kronecker-Symbol bezeichnet.<br />
Satz 3.7 (Lagrangesche Darstellung). Das Polynom p ∈ P n gemäß<br />
p(x) :=<br />
n∑<br />
k=0<br />
erfüllt <strong>die</strong> Interpolationsbed<strong>in</strong>gung p(x k ) = y k .<br />
y k L (n)<br />
k<br />
(x)<br />
Beweis: Zunächst gilt wegen L (n)<br />
k<br />
∈ P n auch für <strong>die</strong> L<strong>in</strong>earkomb<strong>in</strong>ation p ∈ P n . Weiter<br />
folgt sofort:<br />
n∑<br />
n∑<br />
p(x j ) = y k L (n)<br />
k (x j) = y k δ kj = y j .<br />
k=0<br />
k=0<br />
□<br />
Die Lagrangesche Darstellung des Interpolationspolynoms besticht durch ihre E<strong>in</strong>fachheit.<br />
Sie hat allerd<strong>in</strong>gs den großen Nachteil, das jedes Basispolynom L (n)<br />
k<br />
(x) von sämtlichen<br />
Stützstellen x 0 , x 1 , . . . , x n abhängt. Angenommen zur Steigerung der Genauigkeit<br />
soll e<strong>in</strong>e Stützstelle x n+1 h<strong>in</strong>zugenommen werden, so müssen sämtliche Basispolynome<br />
ausgetauscht werden.<br />
51
3 Interpolation und Approximation<br />
3.1.2 Newtonsche Darstellung<br />
Die Newtonsche Darstellung der Lagrangeschen Interpolationsaufgabe löst <strong>die</strong>ses Problem<br />
durch e<strong>in</strong>e andere Wahl von Basispolynomen:<br />
N 0 (x) := 1,<br />
k−1<br />
∏<br />
N k (x) := (x − x j ), k = 1, . . . , n.<br />
j=0<br />
Das Basispolynom N k (x) hängt nur von den Stützstellen x 0 , . . . , x k ab. Bei H<strong>in</strong>zunahme<br />
e<strong>in</strong>er Stützstelle x k+1 müssen <strong>die</strong> ersten Basispolynome nicht geändert werden. Das<br />
Interpolationspolynom wird nach dem Ansatz<br />
p(x) =<br />
n∑<br />
a k N k (x),<br />
k=0<br />
bestimmt. Für <strong>die</strong> Stützstelle x k gilt N l (x k ) = 0 für alle l > k. Wir gehen rekursiv vor:<br />
y 0<br />
!<br />
= p(x 0 ) = a 0 ,<br />
y 1<br />
!<br />
= p(x 1 ) = a 0 + a 1 (x 1 − x 0 ),<br />
.<br />
y n<br />
!<br />
= p(x n ) = a 0 + a 1 (x n − x 0 ) + . . . + a n (x n − x 0 ) · · · (x n − x n−1 ).<br />
Im Gegensatz zur vorher kennengelernten Lagrangeschen Darstellung kann e<strong>in</strong> weiteres<br />
Datenpaar (x n+1 , y n+1 ) leicht h<strong>in</strong>zugefügt werden. Ist das Interpolationspolynom p n :=<br />
p =∈ P n gegeben, so kann e<strong>in</strong>e Stützstelle x n+1 e<strong>in</strong>fach h<strong>in</strong>zugenommen werden:<br />
y n+1<br />
!<br />
= p n+1 (x n+1 ) = p n (x n+1 )+a n+1 N n+1 (x n+1 ) ⇒ a n+1 = y n+1 − p n (x n+1 )<br />
. (3.1)<br />
N n+1 (x n+1 )<br />
In der Praxis werden <strong>die</strong> Koeffizienten a k auf e<strong>in</strong>e numerisch stabilere und effizientere<br />
Weise bestimmt:<br />
Satz 3.8. Das Lagrangesche Interpolationspolynom zu den Punkten (x k , y k ), k = 0, . . . , n<br />
lautet bezüglich der Newtonschen Polynombasis:<br />
p(x) =<br />
n∑<br />
y[x 0 , . . . , x k ]N k (x).<br />
k=0<br />
Die Notation y[x 0 , . . . , x k ] bezeichnet <strong>die</strong> divi<strong>die</strong>rten Differenzen, welche über <strong>die</strong> folgende<br />
rekursive Vorschrift def<strong>in</strong>iert s<strong>in</strong>d:<br />
1 f ü r k = 0, . . . , n s e t z e y[x k ] := y k<br />
2 f ü r l = 1, . . . , n und<br />
3 f ü r k = 0, . . . , n − l berechne<br />
4 y[x k , . . . , x k+l ] := y[x k+1,...,x k+l ]−y[x k ,...,x k+l−1 ]<br />
x k+l −x k<br />
52
3.1 Polynom<strong>in</strong>terpolation<br />
Beweis: Wir bezeichnen mit p k,k+l <strong>in</strong> P l das Polynom, welches <strong>die</strong> Interpolation zu den<br />
l +1 Punkte (x k , y k ), . . . , (x k+l , y k+l ) darstellt. Insbesondere ist durch p 0,n ist das gesuchte<br />
Polynom p ∈ P n gegeben. Wir zeigen, dass <strong>die</strong> folgende Aussage für alle l = 0, . . . n und<br />
k = 0, . . . , n − l gilt:<br />
p k,k+l (x) = y[x k ]+y[x k , x k+1 ](x−x k )+· · ·+y[x k , . . . , x k+l ](x−x k ) · · · (x−x k+l−1 ). (3.2)<br />
Wir führen den Beweis durch Induktion nach dem Polynomgrad l. Für l = 0 gilt p k,k (x) =<br />
y[y k ] = y k . Angenommen, <strong>die</strong> Behauptung sei richtig für l − 1 ≥ 0. D.h. <strong>in</strong>sbesondere,<br />
das Polynome p k,k+l−1 ist <strong>in</strong> Darstellung (3.2) gegeben und <strong>in</strong>terpoliert <strong>die</strong> Punkte<br />
(x k , y k ), . . . , (x k+l−1 , y k+l−1 ) und das Polynom p k+1,k+l <strong>in</strong>terpoliert <strong>die</strong> Punkte (x k+1 , y k+1 ),<br />
. . . , (x k+l , y k+l ). Dann ist durch<br />
q(x) = (x − x k)p k+1,k+l (x) − (x − x k+l )p k,k+l−1 (x)<br />
x k+l − x k<br />
, (3.3)<br />
e<strong>in</strong> Interpolationspolynom durch <strong>die</strong> Punkte (x k , y k ), . . . , (x k+l , y k+l ) gegeben. Dies macht<br />
man sich durch E<strong>in</strong>setzen von x i <strong>in</strong> q(x) deutlich. Für <strong>in</strong>nere Punkte i = k + 1, . . . , k +<br />
l − 1 gilt p k,k+l−1 (x i ) = p k+1,k+l (x i ) = y i , für x k und x k+l ist jeweils e<strong>in</strong>er der beiden<br />
Faktoren gleich Null. Es gilt somit für das gesuchte Interpolationspolynom p k,k+l = q.<br />
Nach Konstruktion (3.1) gilt jedoch auch <strong>die</strong> folgende Darstellung:<br />
p k,k+l (x) = p k,k+l−1 (x) + a(x − x k ) · · · (x − x k+l−1 ).<br />
Koeffizientenvergleich des führenden Monoms x n zwischen <strong>die</strong>ser Darstellung und (3.3)<br />
liefert mit Hilfe von (3.2) für p k,k+l−1 sowie p k+1,k+l :<br />
a = y[x k+1, . . . , x k+l ] − y[x k , . . . , x k+l−1 ]<br />
x k+l − x k<br />
= y[x k , . . . , x k+l ].<br />
Dieses rekursive Konstruktionspr<strong>in</strong>zip legt sofort e<strong>in</strong>en Algorithmus zum Auswerten der<br />
Interpolation an e<strong>in</strong>er Stelle ξ ∈ R nahe, ohne dass das gesuchte Interpolationspolynom<br />
p(x) zuvor explizit bestimmt werden muss. Wir gehen hierzu von der Darstellung (3.3)<br />
aus:<br />
Algorithmus 3.9 (Neville-Schema). Es seien <strong>die</strong> Stützstellenpaare (x 0 , y 0 ), . . . , (x n , y n )<br />
gegeben sowie der Auswertungspunkt ξ. Berechne p(ξ) = p 0,n :<br />
1 f ü r k = 0, . . . , n s e t z e p k,k := y k<br />
2 f ü r l = 1, . . . , n und<br />
3 f ü r k = 0, . . . , n − l berechne<br />
4 p k,k+l := p k,k+l−1 + (ξ − x k ) p k+1,k+l−p k,k+l−1<br />
x k+l −x k<br />
□<br />
Bei der Durchführung des Neville-Schemas erhalten wir mit p k,l automatisch <strong>die</strong> Approximationen<br />
der Interpolationspolynome durch (x k , y k ), . . . , (x k+l , y k+l ). Wir führen das<br />
Neville-Schema exemplarisch durch:<br />
53
3 Interpolation und Approximation<br />
Beispiel 3.10 (Neville-Schema). Wir betrachten <strong>die</strong> Stützstellenpaare (0, 0), (1, 1), (2, 8), (3, 27),<br />
welche von der Funktion f(x) = x 3 abgegriffen s<strong>in</strong>d. Wir führen das Neville-Schema rekursiv<br />
aus:<br />
p 00 = 0 p 11 = 1 p 22 = 8 p 33 = 27<br />
p 01 = 0.5 p 12 = −2.5 p 23 = −20.5<br />
p 02 = −0.25 p 13 = 2<br />
p 03 = 0.125<br />
Die f<strong>in</strong>ale Approximation p 03 = 0.125 = 0.5 3 ist exakt. Dies ist zu erwarten, da f ∈ P 3 .<br />
Als Stichprobe betrachten wir <strong>die</strong> sehr schlechte Approximation p 23 , welche sich durch das<br />
l<strong>in</strong>earen Interpolationspolynom p 2,3 (x) durch <strong>die</strong> Stützstellen (2, 8) und (3, 27), also durch<br />
ergibt. Es gilt p 2,3 (0.5) = −20.5.<br />
p 2,3 (x) = 8 + 27 − 8 (x − 2) = 19x − 30<br />
3 − 2<br />
3.1.3 Interpolation von Funktionen und Fehlerabschätzungen<br />
In <strong>die</strong>sem Abschnitt diskutieren wir <strong>die</strong> Interpolation von Funktionen. Die Punkte s<strong>in</strong>d nun<br />
nicht mehr durch e<strong>in</strong>en Datensatz gegeben, sondern durch Auswertung e<strong>in</strong>er gegebenen<br />
Funktion f auf [a, b]:<br />
y k = f(x k ), x k ∈ [a, b], k = 0, . . . , n.<br />
Die Durchführbarkeit, also Existenz und E<strong>in</strong>deutigkeit e<strong>in</strong>es Interpolationspolynoms wurde<br />
bereits <strong>in</strong> den vorangehenden Abschnitten beantwortet. Bei der Interpolation von Funktionen<br />
stellt sich hier <strong>die</strong> Frage wie gut das Interpolationspolynom p ∈ P n <strong>die</strong> Funktion f<br />
auf [a, b] approximiert.<br />
Satz 3.11 (Interpolationsfehler mit differenziellem Restglied). Es sei f ∈ C n+1 [a, b] und<br />
p ∈ P n das Interpolationspolynom zu f <strong>in</strong> den n + 1 paarweise verschiedenen Stützstellen<br />
x 0 , . . . , x n . Dann gibt es zu jedem x ∈ [a, b] e<strong>in</strong> ξ ∈ (a, b), so dass<br />
Insbesondere gilt<br />
f(x) − p(x) = f n+1 (ξ)<br />
(n + 1)!<br />
|f(x) − p(x)| ≤ max ξ∈(a,b) |f n+1 (ξ)|<br />
(n + 1)!<br />
n∏<br />
(x − x j ). (3.4)<br />
j=0<br />
n∏<br />
|x − x j |. (3.5)<br />
j=0<br />
Beweis: Falls x mit e<strong>in</strong>er Stützstelle zusammenfällt, d.h. x = x k für e<strong>in</strong> k ∈ {0, . . . , n},<br />
dann verschw<strong>in</strong>det der Fehler und wir s<strong>in</strong>d fertig. Es sei daher x ≠ x k für alle k = 0, 1, . . . , n<br />
54
3.1 Polynom<strong>in</strong>terpolation<br />
und F ∈ C n+1 [a, b] mit<br />
n∏<br />
F (t) := f(t) − p n (t) − K(x) (t − x j ).<br />
j=0<br />
K(x) sei so bestimmt, so dass F (x) = 0. Dies ist möglich, da<br />
n∏<br />
(t − x j ) ≠ 0 ⇒ K(x) = f(t) − p n(t)<br />
∏ nj=0<br />
(t − x<br />
j=0<br />
j ) .<br />
Dann besitzt F (t) <strong>in</strong> [a, b] m<strong>in</strong>destens n+2 verschiedene Nullstellen x 0 , x 1 , . . . , x n , x. Durch<br />
wiederholte Anwendung des Satzes von Rolle hat <strong>die</strong> Ableitung F (n+1) m<strong>in</strong>destens e<strong>in</strong>e<br />
Nullstelle ξ ∈ (a, b). Mit<br />
0 = F (n+1) (ξ) = f (n+1) (ξ) − p (n+1) (ξ) − K(x)(n + 1)! = f (n+1) (ξ) − 0 − K(x)(n + 1)!.<br />
Hieraus folgt <strong>die</strong> Behauptung mittels<br />
K(x) = f (n+1) (ξ)<br />
(n + 1)!<br />
⇒<br />
f(x) − p n (x) = f (n+1) (ξ)<br />
(n + 1)!<br />
n∏<br />
(x − x j )<br />
j=0<br />
Satz 3.12 (Interpolationsfehler mit Integral-Restglied). Es sei f ∈ C n+1 [a, b]. Dann gilt<br />
für x ∈ [a, b] \ {x 0 , . . . , x n } <strong>die</strong> Darstellung<br />
n∏<br />
f(x) − p(x) = f[x 0 , . . . , x n , x] (x − x j ),<br />
j=0<br />
mit den Interpolationsbed<strong>in</strong>gungen f[x i , . . . , x i+k ] := y[x i , . . . , x i+k ] und<br />
f[x 0 , . . . , x n , x] =<br />
∫ 1 ∫ t1<br />
0<br />
0<br />
· · ·<br />
Beweis: Wird folgen.<br />
∫ tn<br />
0<br />
f (n+1)( x 0 + t 1 (x 1 − x 0 ) + . . . + t(x − x n ) ) dt . . . dt 2 dt 1 .<br />
Für den Fehler der Lagrange-Interpolation können <strong>die</strong> folgenden Betrachtungen geführt<br />
werden. In (3.4) wird für großes n der Term 1<br />
(n+1)!<br />
sehr kle<strong>in</strong>. Das Produkt ∏ n<br />
j=0 (x − x j )<br />
wird kle<strong>in</strong>, wenn <strong>die</strong> Stützstellen sehr dicht beie<strong>in</strong>ander liegen. S<strong>in</strong>d alle Ableitungen von<br />
f gleichmäßig (bzgl. der Ableitungsstufe) beschränkt auf [a, b], so gilt mit (3.5), dass<br />
max |f(x) − p(x)| → 0, n → ∞.<br />
a≤x≤b<br />
Haben <strong>die</strong> Ableitungen der zu <strong>in</strong>terpolierenden Funktion jedoch e<strong>in</strong> zu starkes Wachstumverhalten<br />
für n → ∞, z.B.<br />
f(x) = (1 + x 2 ) −1 , |f n (x)| ≈ 2 n n!O(|x| −2−n ),<br />
so konvergiert <strong>die</strong> Interpolation nicht gleichmäßig auf [a, b].<br />
□<br />
□<br />
55
3 Interpolation und Approximation<br />
0.4<br />
0.2<br />
0<br />
-0.2<br />
-0.4<br />
-0.6<br />
-0.8<br />
-1<br />
-1 -0.5 0 0.5 1<br />
0.012<br />
0.01<br />
0.008<br />
0.006<br />
0.004<br />
0.002<br />
0<br />
-0.002<br />
-0.004<br />
-1 -0.5 0 0.5 1<br />
Abbildung 3.3: Interpolationspolynome ˜p m (x) ∈ P 2m . L<strong>in</strong>ks: das komplette Interpolations<strong>in</strong>tervall.<br />
Rechts: Ausschnitt nahe y = 0.<br />
Beispiel 3.13. Die Funktion f(x) = |x|, x ∈ [−1, 1] werde mit Hilfe der Lagrange-<br />
Interpolation <strong>in</strong> den Stützstellen<br />
x k = −1 + kh, k = 0, . . . , 2m, h = 1/m, x ≠ x k<br />
<strong>in</strong>terpoliert. Dies ergibt das globale Verhalten<br />
p m ↛ f(x), m → ∞.<br />
Zwar ist f <strong>in</strong> <strong>die</strong>sem Beispiel nicht differenzierbar, dennoch ist <strong>die</strong>ses Verhalten der<br />
Lagrange-Interpolation auch bei anderen Beispielen zu beobachten. Man betrachte z.B. <strong>die</strong><br />
Funktion<br />
f(x) = (1 + x 2 ) −1 , x ∈ [−5, 5].<br />
Wir fassen <strong>die</strong> bisherigen Ergebnisse zusammen:<br />
Bemerkung 3.14. Der Approximationssatz von Weierstraß besagt, dass jede Funktion<br />
f ∈ C([a, b]) durch e<strong>in</strong> Polynom beliebig gut approximiert werden kann. Die Analysis gibt<br />
jedoch ke<strong>in</strong>e Hilfestellung bei der konkreten Durchführung der Approximation. Die Lagrangesche<br />
Interpolation ist e<strong>in</strong>e Möglichkeit zur Approximation. Die Qualität <strong>die</strong>ser Approximation<br />
wird jedoch wesentlich durch <strong>die</strong> Regularität der Daten, also durch f bestimmt.<br />
E<strong>in</strong>e gleichmäßige Approximation von Funktionen mit Lagrangeschen Interpolationspolynomen<br />
ist im Allgeme<strong>in</strong>en nicht möglich.<br />
Die Lagrangesche Interpolation “krankt” demnach an den gleichen E<strong>in</strong>schränkungen der<br />
Taylor-Entwicklung, Satz 3.4. Von der Möglichkeit, e<strong>in</strong>e nur stetige Funktion f ∈ C([a, b])<br />
beliebig gut zu approximieren s<strong>in</strong>d wir noch weit entfernt.<br />
E<strong>in</strong> zweiter Nachteil der Lagrange-Interpolation ist <strong>die</strong> fehlende Lokalität. E<strong>in</strong>e Störung<br />
von <strong>in</strong> e<strong>in</strong>er Stützstelle (˜x k , ỹ k ) hat Auswirkung auf alle Lagrange-Polynome und <strong>in</strong>sbesondere<br />
auf das gesamte Interpolations<strong>in</strong>tervall. Wir betrachten hierzu e<strong>in</strong> Beispiel:<br />
56
3.1 Polynom<strong>in</strong>terpolation<br />
Beispiel 3.15 (Globaler Fehlere<strong>in</strong>fluss). Wir suchen das Interpolationspolynom zu der<br />
Funktion f(x) = 0 <strong>in</strong> den 2m + 1 Stützstellen<br />
x k = −1 + kh, k = −m, . . . , m, h = 1 m .<br />
Das exakte Interpolationspolynom p ∈ P 2m ist natürlich durch p = 0 gegeben. Wir nehmen<br />
an, dass <strong>die</strong> Funktionsauswertung <strong>in</strong> Nullpunkt gestört ist:<br />
y k =<br />
{<br />
0 k ≠ 0<br />
ɛ k = 0 ,<br />
mit e<strong>in</strong>em kle<strong>in</strong>en ɛ. Das gestörte Interpolationspolynom ist <strong>in</strong> Lagrangescher Darstellung<br />
gegeben durch<br />
m∏ x − x i<br />
˜p(x) =<br />
.<br />
x i<br />
i=−m,i≠0<br />
In Abbildung 3.3 zeigen wir ˜p m ∈ P 2m für <strong>die</strong> Fälle m = 1, 2, 4, 8 mit e<strong>in</strong>er Störung ɛ =<br />
0.01. Trotz <strong>die</strong>ser kle<strong>in</strong>en Störung an der Stelle x = 0 weichen <strong>die</strong> Interpolationspolynom<br />
am Intervallrand sehr stark von y k = 0 ab. In der unteren Abbildung sieht man, dass für<br />
kle<strong>in</strong>e Polynomgrade, also m = 1 und m = 2 der maximale Fehler auf dem Intervall nicht<br />
größer als <strong>die</strong> anfängliche Störung ɛ = 0.01 ist. Die Lagrangesche Interpolation ist <strong>in</strong>stabil<br />
für große Polynomgrade.<br />
Hermite Interpolation<br />
Zum Abschluss der Funktions<strong>in</strong>terpolation erwähnen wir noch e<strong>in</strong>e Verallgeme<strong>in</strong>erung, <strong>die</strong><br />
sogenannte Hermitesche Interpolationsaufgabe. Diese unterscheidet sich von der Lagrange-<br />
Interpolation durch <strong>die</strong> Möglichkeit neben Funktionswerten p(x k ) = f(x k ) auch Gleichheit<br />
von Ableitungswerten p (i) (x k ) = f (i) (x k ) zu fordern. Wir fassen zusammen:<br />
Satz 3.16 (Hermite Interpolation). Es sei f ∈ C (n+1) ([a, b]). Es seien x 0 , . . . , x m paarweise<br />
verschiedene Stützstellen und µ k ∈ N für k = 0, . . . , m e<strong>in</strong> Ableitungs<strong>in</strong>dex. Ferne<br />
gelte n = m + ∑ m<br />
k=0 µ k . Das Hermitesche Interpolationspolynom zu<br />
k = 0, . . . , m : p (i) (x k ) = f (i) (x k ), i = 0, . . . , µ k ,<br />
ist e<strong>in</strong>deutig bestimmt und zu jedem x ∈ [a, b] existiert e<strong>in</strong>e Zwischenstelle ξ ∈ [a, b], so<br />
dass gilt:<br />
m∏<br />
f(x) − p(x) = f[x 0 , . . . , x<br />
} {{ 0 , . . . , x<br />
} m , . . . , x m , x] (x − x<br />
} {{ }<br />
k ) µ k+1<br />
µ 0 +1<br />
µ<br />
k=0<br />
m+1<br />
=<br />
1<br />
(n + 1)! f (n+1) (ξ)<br />
m∏<br />
(x − x k ) µ k+1 .<br />
k=0<br />
57
3 Interpolation und Approximation<br />
3.2 Spl<strong>in</strong>e Interpolation<br />
E<strong>in</strong> wesentlicher Defekt der globalen Interpolation aus dem vorherigen Abschnitt ist, dass<br />
<strong>die</strong> <strong>in</strong>terpolierenden Polynome starke Oszillationen zwischen den Stützstellen mit immer<br />
größeren Werten annehmen. Der Grund ist <strong>die</strong> generische Steifheit, <strong>die</strong> durch <strong>die</strong> implizite<br />
Forderung von C ∞ -Übergängen <strong>in</strong> den Stützstellen gegeben ist. Die Steifheit kann<br />
dadurch reduziert werden, dass <strong>die</strong> globale Funktion als stückweise polynomiale (Teil)-<br />
Funktionen bzgl. der Zerlegung a = x 0 < x 1 < . . . < x n < b zusammengesetzt wird. In<br />
den Stützstellen x i werden dann geeignete Differenzierbarkeitseigenschaften gefordert. Am<br />
häufigsten werden <strong>in</strong> der Literatur sogenannte kubische Spl<strong>in</strong>es verwendet. Allerd<strong>in</strong>gs hat<br />
e<strong>in</strong>e spezielle Klasse, <strong>die</strong> l<strong>in</strong>earen Spl<strong>in</strong>es, e<strong>in</strong>e besondere Bedeutung für <strong>die</strong> numerische<br />
Lösung von Differentialgleichungen mit Hilfe der F<strong>in</strong>ite Elemente Methode [10, 12].<br />
Das wesentliche Ziel <strong>die</strong>ses Abschnitts liegt im Verständnis der stückweisen Approximation.<br />
Dieses Konzept erlaubt <strong>die</strong> gleichmäßige Abschätzung der Konvergenz und verh<strong>in</strong>dert<br />
Oszillationen am Rand des Intervalls, wie sie <strong>in</strong> Beispiel 3.15 auftreten.<br />
y i−1<br />
y i<br />
f(x)<br />
I i<br />
a = x 0 x i−1 x i b = x n<br />
Abbildung 3.4: Spl<strong>in</strong>e-Interpolation.<br />
Das globale Intervall (wie vorher [a, b] =: I) wird <strong>in</strong> Teil<strong>in</strong>tervalle I i = [x i−1 , x i ] mit der<br />
Länge h i = x i −x i−1 unterteilt. Die Fe<strong>in</strong>heit der gesamten Intervallunterteilung wird durch<br />
h := max i=1,...n h i charakterisiert. Zur Def<strong>in</strong>ition der Spl<strong>in</strong>efunktion (kurz Spl<strong>in</strong>e) seien<br />
<strong>die</strong> Vektorräume von stückweisen polynomialen Funktionen wie folgt gegeben:<br />
S k,r<br />
h [a, b] := {p ∈ Cr [a, b], p| Ii ∈ P k (I i )}, k, r ∈ {0, 1, 2, . . .}.<br />
Zu e<strong>in</strong>em Satz gegebener Stützwerte (<strong>die</strong> wie <strong>in</strong> Abschnitt 3.1 aus gegebenen Datenwerten<br />
oder Funktionswerten stammen können) <strong>in</strong> dem Gesamt<strong>in</strong>tervall I, wird e<strong>in</strong>e Interpolierende<br />
p ∈ S k,r<br />
h<br />
[a, b] mit Hilfe von geeigneten Interpolationsbed<strong>in</strong>gungen bestimmt.<br />
Wir diskutieren nun e<strong>in</strong>ige Beispiele, wobei der Fokus auf der Idee des ganzen Prozesses<br />
liegt und weniger auf der Beweisführung bei Fragen zu Existenz, E<strong>in</strong>deutigkeit und<br />
Fehlerabschätzung.<br />
Beispiel 3.17 (Stückweise l<strong>in</strong>eare Interpolation). Die stückweise l<strong>in</strong>eare Lagrange-Interpolierende<br />
(d.h. k = 1, r = 0) approximiert e<strong>in</strong>e gegebene Funktion f auf [a, b] durch e<strong>in</strong>en Polygonzug<br />
58
3.2 Spl<strong>in</strong>e Interpolation<br />
y i−1<br />
p<br />
y i<br />
f(x)<br />
I i<br />
a = x 0 x i−1 x i b = x n<br />
Abbildung 3.5: Stückweise l<strong>in</strong>eare Interpolation p e<strong>in</strong>er Funktion f.<br />
<strong>in</strong> den Stützstellen x i , i = 0, . . . , n:<br />
mit den Interpolationsbed<strong>in</strong>gungen<br />
p ∈ S 1,0<br />
h [a, b] = {p ∈ C[a, b], p| I i<br />
∈ P 1 (I i )},<br />
p(x i ) = f(x i ), i = 0, . . . , n.<br />
Anwendung der Fehlerabschätzung für <strong>die</strong> Lagrange-Interpolation separat auf jedem I i liefert<br />
<strong>die</strong> globale Fehlerabschätzung<br />
Für Schrittweite gilt<br />
max |f(x) − p(x)| ≤ 1<br />
x∈[a,b] 2 h2 max |f ′′ (x)|. (3.6)<br />
x∈[a,b]<br />
max |f(x) − p(x)| → 0 (h → 0),<br />
x∈[a,b]<br />
gleichmäßig auf dem gesamten Intervall. Im Gegensatz hierzu erhalten wir für n → ∞<br />
also für größer werdenden Polynomgrad ke<strong>in</strong>e gleichmäßige Konvergenz!<br />
Bemerkung 3.18. Wir halten fest, dass e<strong>in</strong>e gleichmäßige Approximation für Spl<strong>in</strong>es<br />
durch (3.6) gewährleistet ist, falls h → 0 (d.h. e<strong>in</strong>e immer größer werdende Anzahl von<br />
Stützstellen). Es ist wichtig, dass e<strong>in</strong>e größere Anzahl von Stützstellen bei der Lagrange-<br />
Interpolation nicht hilft, da hier <strong>die</strong> Anzahl Stützstellen an den Polynomgrad gekoppelt<br />
s<strong>in</strong>d. D.h. e<strong>in</strong>e größere Anzahl von Stützstellen impliziert automatisch e<strong>in</strong>en höheren Polynomgrad.<br />
Allerd<strong>in</strong>gs können höhere Ableitungen der zu <strong>in</strong>terpolierenden Funktion f starkes<br />
Wachstum haben, wodurch <strong>die</strong> gleichmäßige Fehlerabschätzung <strong>in</strong> (3.5) nichtig wird.<br />
Die Interpolierende des vorangegangenen Beispiels wird mit Hilfe der sogenannten Knotenbasis<br />
von S (1,0)<br />
h<br />
([a, b]) konstruiert. Diese Knotenbasis besteht aus den Hutfunktionen<br />
φ i ∈ S (1,0)<br />
h<br />
[a, b], i = 0, . . . , n, <strong>die</strong> durch <strong>die</strong> Bed<strong>in</strong>gung<br />
φ i (x j ) = δ ij<br />
59
3 Interpolation und Approximation<br />
1<br />
φ i (x)<br />
I i<br />
x i−1 x i x i+1<br />
Abbildung 3.6: L<strong>in</strong>eare Knotenbasisfunktion - auch Hutfunktion genannt.<br />
e<strong>in</strong>deutig bestimmt s<strong>in</strong>d. Die Interpolierende p von f erlaubt dann <strong>die</strong> Darstellung <strong>in</strong> Form<br />
von<br />
n∑<br />
p(x) = f(x i )φ(x i ).<br />
i=0<br />
Diese Konstruktion stellt <strong>die</strong> Analogie zur Lagrangeschen Darstellung des Lagrange-Interpolationspolynoms<br />
her. Im Gegensatz zu <strong>die</strong>ser globalen Sichtweise arbeiten wir aber bei den<br />
Spl<strong>in</strong>es lokal, da <strong>die</strong> Hutfunktionen φ i nur <strong>in</strong> den direkt an der jeweiligen Stützstelle x i<br />
angrenzenden Teil<strong>in</strong>tervallen von Null verschieden ist (siehe Abbildung 3.6).<br />
Bemerkung 3.19. Aus den bisherigen Betrachtungen der l<strong>in</strong>earen Spl<strong>in</strong>es erhalten wir<br />
<strong>die</strong> Erkenntnis, dass e<strong>in</strong>e höhere globale Glattheit (sprich Differenzierbarkeit) offensichtlich<br />
nicht s<strong>in</strong>nvoll zu erzielen ist. Man mache sich nochmals klar, dass an den Stützstellen<br />
ke<strong>in</strong>e Differenzierbarkeit vorliegen kann (wegen r = 0) und versuche sich den Fall r = 1<br />
vorzustellen.<br />
Bemerkung 3.20. Bei Interesse an höheren Vorlesungen zur Numerik sollte das Konstruktionspr<strong>in</strong>zip<br />
der l<strong>in</strong>earen Spl<strong>in</strong>es nicht vergessen werden, da es <strong>die</strong> Grundlage der<br />
F<strong>in</strong>ite Elemente Technik bildet [10, 12].<br />
Wie <strong>in</strong> Bemerkung 3.19 erläutert, ist <strong>die</strong> Konstruktion von l<strong>in</strong>earen Spl<strong>in</strong>es mit höheren<br />
globalen Glattheitseigenschaften nicht ohne weiteres möglich. Erhöht man jedoch den lokalen<br />
Polynomgrad auf jedem Teil<strong>in</strong>tervall, so kann mit Hilfe der Interpolationsbed<strong>in</strong>gungen<br />
höhere Glattheit erzielt werden. Dies führt auf <strong>die</strong> kubischen Spl<strong>in</strong>es, d.h. k = 3.<br />
Beispiel 3.21 (Stückweise kubische Interpolation). Es sei auf jedem Teil<strong>in</strong>tervall I i e<strong>in</strong><br />
kubisches Polynom vorgeschrieben, d.h. k = 3 mit r = 0, so dass S (3,0)<br />
h<br />
[a, b]. Die Interpolationsbed<strong>in</strong>gungen<br />
für den Fall r = 0 (d.h. globale Stetigkeit) lauten<br />
p(x i ) = f(x i ).<br />
60
3.2 Spl<strong>in</strong>e Interpolation<br />
Zur e<strong>in</strong>deutigen Bestimmung e<strong>in</strong>es kubischen Polynoms s<strong>in</strong>d <strong>in</strong> jedem I i vier Bed<strong>in</strong>gungen<br />
notwendig, so dass zwei zusätzliche Interpolationspunkte vorgegeben werden:<br />
p(x ij ) = f(x ij ),<br />
wobei x ij ∈ I i , i = 1, . . . , j = 1, 2. Durch <strong>die</strong>se stückweise kubische Lagrange-Interpolation<br />
ist e<strong>in</strong>deutig e<strong>in</strong> global stetiger Spl<strong>in</strong>e p ∈ S (3,0)<br />
h<br />
[a, b] festgelegt.<br />
Anstatt <strong>die</strong> Interpolationsbed<strong>in</strong>gung durch Zwischenwerte x ij ∈ (x i−1 , x i ) anzureichern ist<br />
es auch möglich Ableitungswerte vorzugeben:<br />
Beispiel 3.22 (Stückweise kubische Hermite-Interpolation). Es sei wiederum auf jedem<br />
Teil<strong>in</strong>tervall I i e<strong>in</strong> kubisches Polynom vorgeschrieben, d.h. k = 3 und <strong>die</strong>ses Mal mit<br />
r = 1, so dass S (3,1)<br />
h<br />
[a, b]. Die Interpolationsbed<strong>in</strong>gungen für den Fall r = 1 (d.h. globale<br />
Stetigkeit und e<strong>in</strong>malige globale Differenzierbarkeit) lauten<br />
p(x i ) = f(x i ), p ′ (x i ) = f ′ (x i )<br />
Durch <strong>die</strong>se vier Bed<strong>in</strong>gungen p ∈ S (3,1)<br />
h<br />
[a, b] e<strong>in</strong>deutig festgelegt.<br />
Bemerkung 3.23. Nutzt man zusätzlich zu den Punktwerten <strong>die</strong> Ableitungs<strong>in</strong>formation <strong>in</strong><br />
den Stützstellen zur Konstruktion e<strong>in</strong>er Interpolierenden, so wie <strong>in</strong> Beispiel 3.2 geschehen,<br />
dann spricht man von Hermite-Interpolation. Diese Interpolationsaufgabe kann für globale<br />
und lokale Interpolationen genutzt werden, siehe Satz 3.16<br />
Satz 3.24. Für den kubischen Spl<strong>in</strong>e p (d.h. k = 3) mit r = 0 oder r = 1 zur Approximation<br />
der Funktion f gilt <strong>die</strong> globale Fehlerabschätzung<br />
max |f(x) − p(x)| ≤ 1<br />
x∈[a,b] 4! h4 max |f (4) (x)|.<br />
x∈[a,b]<br />
Zur e<strong>in</strong>deutigen Bestimmung e<strong>in</strong>er stückweise kubischen Funktion s<strong>in</strong>d auf jedem Intervall<br />
I i vier Bed<strong>in</strong>gungen erforderlich. Dennoch unterscheiden sich <strong>die</strong> Sätze an Bed<strong>in</strong>gungen <strong>in</strong><br />
den beiden betrachteten Beispielen. Bei der stückweise kubischen Lagrange Interpolation<br />
<strong>in</strong> Beispiel werden <strong>in</strong> den n Intervallen jeweils vier Bed<strong>in</strong>gungen p(x ij ) = f(x ij ) gestellt,<br />
wobei an den Intervallenden x i <strong>die</strong> gleiche Interpolationsbed<strong>in</strong>gung doppelt auftaucht.<br />
Insgesamt ist <strong>die</strong> stückweise kubische Lagrange Interpolation durch 3n + 1 Bed<strong>in</strong>gungen<br />
gegeben. Die stückweise Hermite Interpolation <strong>in</strong> Beispiel hat auch vier Bed<strong>in</strong>gungen pro<br />
Intervall. An den Intervallenden treten nun jedoch 2 Bed<strong>in</strong>gungen doppelt auf, so dass<br />
sich global 2n + 2 Bed<strong>in</strong>gungen ergeben.<br />
Soll <strong>die</strong> globale Regularität der Interpolation weiter gesteigert werden, so schlägt der<br />
triviale Ansatz zusätzlich p ′′ (x i ) = f ′′ (x i ) zu fordern fehl, da <strong>die</strong>s zu sechs Bed<strong>in</strong>gungen<br />
pro Teil<strong>in</strong>tervall führen würde (bei nur vier Unbekannten von e<strong>in</strong>es kubischen Polynoms).<br />
61
3 Interpolation und Approximation<br />
Es ist dennoch möglich für e<strong>in</strong>e stückweise kubische Interpolation global C 2 ([a, b]) zu<br />
erreichen. Dies wird durch den kubischen Spl<strong>in</strong>e realisiert, welcher auf dem Pr<strong>in</strong>zip der<br />
Energiem<strong>in</strong>imierung basiert. Zu Stützstellen x i für i = 0, . . . , n wird e<strong>in</strong>e Funktion s ∈<br />
S (3,2)<br />
h<br />
gesucht mit der Eigenschaft:<br />
s(x i ) = f(x i ) = y i , i = 0, . . . , n,<br />
∫ b<br />
a<br />
s ′′ (x) 2 dx = m<strong>in</strong>!.<br />
Die Ableitungswerte von s(x) müssen <strong>in</strong> den Stützstellen ke<strong>in</strong>er Interpolationsbed<strong>in</strong>gung<br />
genügen, s(x) muss global lediglich stetig zweimal differenzierbar se<strong>in</strong> (d.h., <strong>die</strong> Ableitungswerte<br />
von s(x) müssen an den Enden der Teil<strong>in</strong>tervalle stetig se<strong>in</strong>) und <strong>die</strong> Energie,<br />
also das Integral über <strong>die</strong> zweiten Ableitungen muss m<strong>in</strong>imiert werden.<br />
Hieraus ist wohl auch der Begriff Spl<strong>in</strong>e entsprungen, da se<strong>in</strong>e Übersetzung <strong>in</strong>s Deutsche<br />
der Biegestab ist. Man stelle sich e<strong>in</strong>en elastischen Stab vor, welcher an gewissen Punkten<br />
festgehalten wird, dazwischen jedoch e<strong>in</strong>e freie Form annehmen darf. Nach physikalischen<br />
Grundpr<strong>in</strong>zipien wird <strong>die</strong>se Form <strong>die</strong> Energie des Stabes m<strong>in</strong>imieren. Das Energiem<strong>in</strong>imierungspr<strong>in</strong>zip<br />
ist höchst wichtig und tritt <strong>in</strong> der Natur und Alltag häufig auf (z.B.<br />
Seifenhäute). Man mache sich klar, dass e<strong>in</strong>e m<strong>in</strong>imale Energie den ger<strong>in</strong>gsten Energieverbrauch<br />
bedeutet und damit Treibstoffkosten gespart werden kann.<br />
Diese Form des Spl<strong>in</strong>es ist <strong>die</strong> am häufigsten genutzte Spl<strong>in</strong>e-Interpolationsaufgabe und<br />
hat z.B. große Anwendungen <strong>in</strong> der Computergrafik.<br />
Mathematisch ausgedrückt bedeutet Energiem<strong>in</strong>imierung im Falle des Spl<strong>in</strong>es:<br />
∫ b<br />
a<br />
s ′′ (x) 2 dx = m<strong>in</strong>!<br />
bzgl. aller möglichen <strong>in</strong>terpolierenden (h<strong>in</strong>reichend glatten) Funktionen.<br />
Def<strong>in</strong>ition 3.25 (Kubischer Spl<strong>in</strong>e). E<strong>in</strong>e Funktion s n : [a, b] → R wird kubischer Spl<strong>in</strong>e<br />
bzgl. Zerlegung a = x 0 < x 1 < . . . < x n = b genannt, wenn gilt<br />
i) s n ∈ C 2 [a, b].<br />
ii) s n | [xi−1 ,x] ∈ P 3 , i = 1, . . . n.<br />
Falls zusätzlich<br />
iii) s ′′ n(a) = s ′′ n(b) = 0<br />
gilt, so heißt der Spl<strong>in</strong>e natürlich.<br />
62
3.3 <strong>Numerische</strong> Differentiation<br />
Satz 3.26 (Existenz, Energiem<strong>in</strong>imierung und Fehlerabschätzung kubischer Spl<strong>in</strong>es). Es<br />
sei f e<strong>in</strong>e gegebene zu <strong>in</strong>terpolierende Funktion oder y 0 , . . . , y n e<strong>in</strong>e Reihe von Messwerten.<br />
Durch x 0 , x 1 , . . . , x n seien n + 1 paarweise verschiedene Stützstellen gegeben. Der durch<br />
<strong>die</strong> Interpolationsvorschrift<br />
s n (x i ) = f(x i ) = y i ∈ R, i = 0, . . . , n, s ′′ n(a) = y a ∈ R, s ′′ n(b) = y b ∈ R<br />
beschriebene kubische Spl<strong>in</strong>e existiert. Er ist e<strong>in</strong>deutig bestimmt durch <strong>die</strong> Vorgabe der<br />
zweiten Ableitungs<strong>in</strong>formationen.<br />
Sei weiter g ∈ C 2 ([a, b]) beliebig mit g(x i ) = f(x i ) = y i mit x i ∈ [a, b] sowie y a = g ′′ (a)<br />
und y b = g ′′ (b). Dann gilt das Pr<strong>in</strong>zip der Energiem<strong>in</strong>imierung:<br />
∫ b<br />
a<br />
|s ′′ n(x)| 2 dx ≤<br />
∫ b<br />
Falls f ∈ C 4 [a, b], so gilt <strong>die</strong> Fehlerabschätzung<br />
a<br />
|g ′′ (x)| 2 dx, ∀g ∈ C 2 [a, b].<br />
max<br />
a≤x≤b |f(x) − s n(x)| ≤ 1 2 h4 max<br />
a≤x≤b |f (4) (x)|.<br />
Beweis: Siehe [9], S. 43-47.<br />
□<br />
3.3 <strong>Numerische</strong> Differentiation<br />
In <strong>die</strong>sem Abschnitt befassen wir uns mit e<strong>in</strong>er e<strong>in</strong>fachen numerischen Aufgabe: zu e<strong>in</strong>er<br />
gegebenen Funktion f : [a, b] → R soll <strong>in</strong> e<strong>in</strong>em Punkt x 0 ∈ (a, b) <strong>die</strong> Ableitung f ′ (x 0 )<br />
oder <strong>die</strong> n-te Ableitung f (n) (x 0 ) berechnet werden. Wir gehen davon aus, dass es mit vertretbarem<br />
Aufwand nicht möglich ist, <strong>die</strong> Funktion f(x) symbolisch zu Differenzieren und<br />
<strong>die</strong> Ableitung an der Stelle x 0 auszuwerten. Wir benötigen also Approximationsverfahren<br />
zur Bestimmung der Ableitung. Die grundlegende Idee wird durch das folgende Verfahren<br />
beschrieben:<br />
Verfahren 3.27 (<strong>Numerische</strong> Differentiation). Die Funktion f : [a, b] → R wird durch<br />
e<strong>in</strong> Polynom p(x) <strong>in</strong>terpoliert. Die n-te Ableitung f (n) (x 0 ) wird durch <strong>die</strong> n-te Ableitung<br />
des Polynoms p (n) (x 0 ) approximiert.<br />
Im Folgenden entwickeln wir e<strong>in</strong>ige e<strong>in</strong>fache Verfahren zur Approximation von Ableitungen,<br />
welche auf der Interpolation beruhen.<br />
L<strong>in</strong>eare Interpolation Wir <strong>in</strong>terpolieren f(x) l<strong>in</strong>ear <strong>in</strong> den Stützstellen x 0 sowie x 0 + h:<br />
p 1 (x) = f(x 0 ) x 0 + h − x<br />
h<br />
+ f(x 0 + h) x − x 0<br />
h<br />
, p ′ 1(x) = f(x 0 + h) − f(x 0 )<br />
.<br />
h<br />
63
3 Interpolation und Approximation<br />
Wir approximieren <strong>in</strong> x = x 0 und erhalten mit Taylorentwicklung von f(x 0 + h) um x 0<br />
p ′ 1(x 0 ) = f(x 0 + h) − f(x 0 )<br />
h<br />
= f ′ (x 0 ) + h 2 f ′′ (x 0 ) + O(h 2 ),<br />
bei gegebener Differenzierbarkeit von f e<strong>in</strong>e Approximation der ersten Ableitung von<br />
erster Ordnung, also p ′ 1 (x 0) = f ′ (x 0 ) + O(h). Diese erste Approximation heißt e<strong>in</strong>seitiger<br />
Differenzenquotient . Dabei kann zur Approximation natürlich auch e<strong>in</strong>e Stützstelle x 0 −h<br />
l<strong>in</strong>ks von der Auswertungsstelle gewählt werden:<br />
p 1 (x) = f(x 0) − f(x 0 − h)<br />
h<br />
= f ′ (x 0 ) + h 2 f ′′ (x 0 ) + O(h 2 ).<br />
Insbesondere bei der Diskretisierung von gewöhnlichen Differentialgleichungen haben sich<br />
für <strong>die</strong>se beiden Varianten <strong>die</strong> Begriffe Vorwärtsdifferenzenquotient und Rückwärtsdifferenzenquotient<br />
etabliert (je nachdem, ob <strong>die</strong> weitere Stützstelle nach vorne x 0 + h oder<br />
zurück x 0 − h greift).<br />
Aus Symmetriegründen ersche<strong>in</strong>t es ebenso s<strong>in</strong>nvoll, das Interpolationspolynom <strong>in</strong> der<br />
Mitte zwischen den beiden Stützstellen auszuwerten. Wir legen daher e<strong>in</strong> l<strong>in</strong>eares Interpolationspolynom<br />
durch <strong>die</strong> beiden Stützstellen x 0 − h und x 0 + h:<br />
ˆp 1 (x) = f(x 0 − h) x 0 + h − x<br />
2h<br />
+ f(x 0 + h) x − x 0 + h<br />
2h<br />
, ˆp ′ 1(x) = f(x 0 + h) − f(x 0 − h)<br />
.<br />
2h<br />
Wir approximieren wieder bei x 0 und erhalten mit Taylorentwicklung beider Terme um<br />
den Mittelpunkt x 0 wegen<br />
f(x 0 ± h) = f(x 0 ) ± hf ′ (x 0 ) + h2<br />
2 f ′′ (x 0 ) ± h3<br />
6 f ′′′ (x 0 ) + h4<br />
24 f (iv) (x 0 ) + O(h 5 ),<br />
<strong>die</strong> bessere Approximation von zweiter Ordnung:<br />
ˆp ′ 1(x 0 ) = f(x 0 + h) − f(x 0 − h)<br />
2h<br />
= f ′ (x 0 ) + h2<br />
6 f ′′′ (x 0 ) + O(h 4 ). (3.7)<br />
Diese wichtige Approximation wird zentraler Differenzenquotient genannt. Das Ausnutzen<br />
von Symmetrie beim Entwurf von numerischen Verfahren führt oft zu e<strong>in</strong>er besseren<br />
Konvergenzordnung als zunächst erwartet. So e<strong>in</strong> Verhalten wird im Allgeme<strong>in</strong>en Superapproximation<br />
genannt.<br />
E<strong>in</strong>e l<strong>in</strong>eare Interpolation p 1 ∈ P 1 eignet sich nicht zur Approximation höherer Ableitungen,<br />
da p ′ 1 konstant ist.<br />
Quadratische Interpolation Wir <strong>in</strong>terpolieren f(x) mit Hilfe der drei Stützstellen x 0 −h,<br />
x 0 , x 0 + h durch e<strong>in</strong> quadratisches Polynom:<br />
p 2 (x) = f(x 0 − h) (x 0 − x)(x 0 + h − x)<br />
2h 2<br />
+ f(x 0 ) (x − x 0 + h)(x 0 + h − x)<br />
h 2 + f(x 0 + h) (x − x 0 + h)(x − x 0 )<br />
2h 2 .<br />
64
3.3 <strong>Numerische</strong> Differentiation<br />
In x = x 0 gilt für erste und zweite Ableitungen:<br />
p ′ 2(x 0 ) = f(x 0 + h) − f(x 0 − h)<br />
, p ′′<br />
2h<br />
2(x 0 ) = f(x 0 + h) − 2f(x 0 ) + f(x 0 − h)<br />
h 2 .<br />
Für <strong>die</strong> erste Ableitung ergibt sich erstaunlicherweise wieder der zentralen Differenzenquotienten,<br />
der schon durch l<strong>in</strong>eare Interpolation hergeleitet wurde. Dies ist der Ursprung<br />
der Bezeichnung Superapproximation: mit Hilfe der l<strong>in</strong>earen Interpolierenden wird e<strong>in</strong> Ergebnis<br />
erreicht, das eigentlich erst bei quadratischer Interpolierender zu erwarten wäre.<br />
Für <strong>die</strong> zweite Ableitung erhalten wir mit Taylorentwicklung:<br />
p ′′<br />
2(x 0 ) = −2f(x 0) + f(x 0 − h) + f(x 0 + h)<br />
h 2 = f ′′ (x 0 ) + 1 12 h2 f (iv) (x 0 ) + O(h 4 )<br />
den zentrale Differenzenquotient für <strong>die</strong> zweite Ableitung.<br />
Wir können auf der Basis von p 2 auch e<strong>in</strong>en e<strong>in</strong>seitigen Differenzenquotienten für <strong>die</strong><br />
zweite Ableitung herleiten. Dies erfolgt durch Approximation von f ′′ (x 0 −h) ≈ p ′′<br />
2 (x 0 −h).<br />
Wieder mit Taylorentwicklung erhalten wir<br />
p ′′ (x 0 − h) = f ′′ (x 0 − h) + hf ′′′ (x 0 − h) + O(h 2 )<br />
lediglich e<strong>in</strong>e Approximation erster Ordnung. Neben der Ordnung des Interpolationspolynoms<br />
p(x) kommt es entscheidend auf <strong>die</strong> entsprechende Wahl der Stützstellen an.<br />
Wir betrachten e<strong>in</strong> Beispiel:<br />
Beispiel 3.28. Es sei<br />
f(x) = tanh(x).<br />
Wir suchen e<strong>in</strong>e Approximation von<br />
( )<br />
( )<br />
1 1<br />
f ′ ≈ 0.7864477329659274, f ′′ ≈ −0.7268619813835874.<br />
2<br />
2<br />
Zur Approximation verwenden wir für <strong>die</strong> vier bisher diskutieren Differenzenquotienten zu<br />
verschiedenen Schrittweiten h > 0:<br />
In Abbildung 3.7 tragen wir <strong>die</strong> Fehler der Approximationen gegenüber der Schrittweite<br />
auf. Hier ist deutlich der Unterschied zwischen l<strong>in</strong>earer und quadratischer Ordnung <strong>in</strong> h<br />
zu erkennen.<br />
Stabilität<br />
Abschließend untersuchen wir <strong>die</strong> Stabilität der Differenzenapproximation. Die Koeffizienten<br />
der verschiedenen Formeln wechseln das Vorzeichen, somit besteht <strong>die</strong> Gefahr der<br />
Auslöschung. Exemplarisch führen wir <strong>die</strong> Stabilitätsanalyse für <strong>die</strong> zentralen Differenzenapproximation<br />
zur Bestimmung der ersten Ableitung durch. Wir gehen davon aus, dass <strong>die</strong><br />
65
3 Interpolation und Approximation<br />
h<br />
1<br />
f( 1 2 +h)−f( 1 2 )<br />
h<br />
f( 1 2 +h)−f( 1 2 −h)<br />
2h<br />
f( 1 2 +2h)−f( 1 2 +h)+f( 1 2 )<br />
h 2<br />
f( 1 2 +h)−2f( 1 2 )+f( 1 2 −h)<br />
h 2<br />
2<br />
0.598954 0.761594 −0.623692 −0.650561<br />
1<br />
4<br />
0.692127 0.780461 −0.745385 −0.706667<br />
1<br />
8<br />
0.739861 0.784969 −0.763733 −0.721740<br />
1<br />
16<br />
0.763405 0.786079 −0.753425 −0.725577<br />
1<br />
32<br />
0.775004 0.786356 −0.742301 −0.726540<br />
1<br />
64<br />
0.780747 0.786425 −0.735134 −0.726782<br />
Exakt 0.786448 0.786448 −0.726862 −0.726862<br />
Tabelle 3.1: Differenzenapproximation von f ′ (1/2) (zwei Tabellen l<strong>in</strong>ks) und f ′′ (1/2)<br />
(rechts) der Funktion f(x) = tanh(x). Dabei ist jeweils der e<strong>in</strong>seitige bzw.<br />
der zentrale Differenzenquotient genutzt worden.<br />
1<br />
Approximation der ersten Ableitung E<strong>in</strong>seitig<br />
Zentral<br />
1<br />
Approximation der zweiten Ableitung<br />
E<strong>in</strong>seitig<br />
Zentral<br />
0.1<br />
0.1<br />
0.01<br />
0.01<br />
Fehler<br />
Fehler<br />
0.001<br />
0.001<br />
0.0001<br />
0.0001<br />
h<br />
1e-05<br />
0.01 0.1 1<br />
h<br />
1e-05<br />
0.01 0.1 1<br />
Abbildung 3.7: Fehler bei der Differenzenapproximation der ersten (l<strong>in</strong>ks) und zweiten<br />
(rechts) Ableitung von f(x) = tanh(x) im Punkt x 0 = 1 2 .<br />
Funktionswerte an den beiden Stützstellen nur fehlerhaft (mit relativem Fehler |ɛ| ≤ eps)<br />
ausgewertet werden können und erhalten:<br />
˜p ′ (x 0 ) = f(x 0 + h)(1 + ɛ 1 ) − f(x 0 − h)(1 + ɛ 2 )<br />
(1 + ɛ 3 )<br />
2h<br />
= f(x 0 + h) − f(x 0 − h)<br />
(1 + ɛ 3 ) + ɛ 1f(x 0 + h) − ɛ 2 f(x 0 − h)<br />
+ O(eps 2 ).<br />
2h<br />
2h<br />
Für den relativen Fehler gilt<br />
∣<br />
˜p ′ (x 0 ) − p ′ (x 0 )<br />
p ′ (x 0 )<br />
∣ ≤ eps + |f(x 0 + h)| + |f(x 0 − h)|<br />
|f(x 0 + h) − f(x 0 − h)| eps + O(eps2 ).<br />
Im Fall f(x 0 + h) ≈ f(x 0 − h) also f ′ (x 0 ) ≈ 0 kann der Fehler beliebig stark verstärkt<br />
werden. Je kle<strong>in</strong>er h gewählt wird, umso größer wird <strong>die</strong>ser Effekt, denn:<br />
f(x 0 + h) − f(x 0 − h) = 2hf ′ (x 0 ) + O(h 2 ).<br />
66
3.4 Richardson Extrapolation zum Limes<br />
Dieses Ergebnis ist gegenläufig zur Fehlerabschätzung für den Differenzenquotienten (3.7).<br />
Bei der numerischen Approximation müssen beide Fehleranteile ad<strong>die</strong>rt werden:<br />
|f ′ (x 0 ) − ˜p ′ (x 0 )|<br />
|f ′ (x 0 )|<br />
≤ |f ′ (x 0 ) − p ′ (x 0 )|<br />
|f ′ (x 0 )|<br />
+ |p′ (x 0 ) − ˜p ′ (x 0 )|<br />
|f ′ (x 0 )|<br />
≤ 1 3 h2 + O(h 4 ) + max ξ |f(ξ)|<br />
|f ′ (x 0 )|h eps + O(eps2 ).<br />
Für kle<strong>in</strong>es h steigt der Rundungsfehleranteil. Der Gesamtfehler wird m<strong>in</strong>imal, falls beide<br />
Fehleranteile balanciert s<strong>in</strong>d, also im Fall:<br />
h 2 ≈ eps<br />
h<br />
⇒<br />
h ≈ 3√ eps.<br />
3.4 Richardson Extrapolation zum Limes<br />
E<strong>in</strong>e wichtige Anwendung der Interpolation ist <strong>die</strong> Extrapolation zum Limes. Die Idee lässt<br />
sich am e<strong>in</strong>fachsten anhand e<strong>in</strong>es Beispiels erklären. Wir wollen <strong>die</strong> Ableitung f ′ (x 0 ) e<strong>in</strong>er<br />
Funktion f im Punkt x 0 mit Hilfe des e<strong>in</strong>seitigen Differenzenquotienten berechnen:<br />
a(h) := f(x 0 + h) − f(x 0 )<br />
.<br />
h<br />
Der Schrittweitenparameter h bestimmt <strong>die</strong> Qualität der Approximation a(h) ≈ f ′ (x 0 ).<br />
Für h → 0 gilt (bei Vernachlässigung von Rundungsfehlern) a(h) → f ′ (x 0 ). An der Stelle<br />
h = 0 lässt sich a(h) jedoch nicht auswerten. Die Idee <strong>die</strong> Extrapolation zum Limes ist es<br />
nun, e<strong>in</strong> Interpolationspolynom p(x) durch <strong>die</strong> Stützstellenpaare (h i , a(h i )) für e<strong>in</strong>e Folge<br />
von Schrittweiten h 0 , h 1 , . . . , h n zu legen und den Wert p(0) als Approximation für a(0)<br />
zu verwenden.<br />
Es stellt sich <strong>die</strong> grundlegende Frage: hat <strong>die</strong> Interpolierende <strong>in</strong> den Stützstellen h 0 , . . . , h n<br />
auch Aussagekraft außerhalb des Intervalls I := [m<strong>in</strong> i h i , max i h i ]? Beispiel 3.15 lässt <strong>die</strong>s<br />
zunächst nicht vermuten. Hier war <strong>die</strong> Approximationseigenschaft durch Oszillationen <strong>in</strong><br />
Punkten zwischen den Stützstellen schon am Rande des Intervalls I stark gestört. Wir<br />
betrachten dennoch e<strong>in</strong> e<strong>in</strong>faches Beispiel:<br />
Beispiel 3.29 (Extrapolation des e<strong>in</strong>seitigen Differenzenquotienten). Zu f ∈ C 3 ([a, b])<br />
sei<br />
a(h) = f(x 0 + h) − f(x 0 )<br />
h<br />
= f ′ (x 0 ) + h 2 f ′′ (x 0 ) + h2<br />
6 f ′′′ (ξ x0 ,h), (3.8)<br />
<strong>die</strong> e<strong>in</strong>seitige Approximation der ersten Ableitung. Wir legen durch <strong>die</strong> Stützstellen (h, a(h))<br />
sowie (h/2, a(h/2)) das l<strong>in</strong>eare Interpolationspolynom,<br />
p(t) =<br />
( ) ( )<br />
t −<br />
h<br />
( )<br />
2<br />
t − h h<br />
h − h a(h) +<br />
h<br />
2<br />
2 − h a ,<br />
2<br />
67
3 Interpolation und Approximation<br />
und werten <strong>die</strong>ses an der Stelle t = 0 als Approximation von a(0) aus:<br />
( ) h<br />
a(0) ≈ p(0) = 2a − a(h).<br />
2<br />
Für a(h/2) sowie a(h) setzen wir <strong>die</strong> Taylor-Entwicklung (3.8) e<strong>in</strong> und erhalten mit<br />
(<br />
p(0) = 2 f ′ (x 0 ) + h ) (<br />
4 f ′′ (x 0 ) + h2<br />
24 f ′′′ (ξ x0 ,h/2) − f ′ (x 0 ) + h )<br />
2 f ′′ (x 0 ) + h2<br />
6 f ′′′ (ξ x0 ,h)<br />
= f ′ (x 0 ) + O(h 2 ),<br />
e<strong>in</strong>e Approximation der ersten Ableitung von zweiter Ordnung <strong>in</strong> der Schrittweite h.<br />
Dieses Extrapolationspr<strong>in</strong>zip lässt sich mit weiteren Stützstellen und Interpolation mit<br />
Polynomen von größerem Grad fortsetzen.<br />
Dieses Beispiel zeigt, dass durch das Pr<strong>in</strong>zip der Extrapolation es grundsätzlich möglich<br />
ist, <strong>die</strong> Ordnung e<strong>in</strong>es Verfahrens durch geschickte Komb<strong>in</strong>ation der Ergebnisse a(h i ) zu<br />
verbessern. E<strong>in</strong>e solche Vorgehensweise, bei der Ergebnisse e<strong>in</strong>es numerischen Verfahrens<br />
weiter verarbeitet werden, wird Postprocess<strong>in</strong>g genannt.<br />
Satz 3.30 (E<strong>in</strong>fache Extrapolation). Es sei a(h) : R + → R e<strong>in</strong>e n + 1 mal stetig differenzierbare<br />
Funktion mit der Summenentwicklung<br />
n∑<br />
a(h) = a 0 + a j h j + a n+1 (h)h n+1 ,<br />
j=1<br />
mit Koeffizienten a j ∈ R sowie a n+1 (h) = a n+1 +o(1). Weiter sei (h k ) k=0,1,... mit h k ∈ R +<br />
e<strong>in</strong>e monoton fallende Schrittweitenfolge mit der Eigenschaft<br />
Es sei p (k)<br />
n<br />
0 < h k+1<br />
h k<br />
≤ ρ < 1. (3.9)<br />
∈ P n das Interpolationspolynom zu (h k , a(h k )), . . . , (h k+n , a(h k+n )). Dann gilt:<br />
Beweis: In Lagrangescher Darstellung gilt<br />
a(0) − p (k)<br />
n (0) = O(h n+1<br />
k<br />
) (k → ∞).<br />
p (k)<br />
n (t) =<br />
n∑<br />
i=0<br />
a(h k+i )L (n)<br />
k+i (t),<br />
L(n) k+i =<br />
n ∏<br />
l=0,l≠i<br />
t − h k+l<br />
h k+i − h k+l<br />
. (3.10)<br />
Für <strong>die</strong> Lagrangeschen Basispolynome gilt <strong>die</strong> Beziehung:<br />
n∑<br />
i=0<br />
h r k+iL (n)<br />
k+i (0) = ⎧⎪ ⎨<br />
⎪ ⎩<br />
1 r = 0,<br />
0 r = 1, . . . , n,<br />
(−1) n ∏ n<br />
i=0 h k+i r = n + 1.<br />
(3.11)<br />
68
3.4 Richardson Extrapolation zum Limes<br />
Der Nachweis erfolgt durch Analyse der Lagrangeschen Interpolation von t r für verschiedene<br />
Exponenten r. Wir setzen <strong>die</strong> Entwicklung von a(h) <strong>in</strong> <strong>die</strong> Polynomdarstellung (3.10)<br />
e<strong>in</strong> und erhalten für t = 0:<br />
⎧<br />
⎫<br />
p (k)<br />
n (0) =<br />
n∑ ⎨ n∑<br />
⎬<br />
⎩ a 0 + a j h j k+i + a n+1(h k+i )h n+1<br />
k+i<br />
i=0 j=1<br />
Mit (3.11) und a n+1 (h k+i ) = a n+1 + o(h k+i ) folgt:<br />
p (k)<br />
n n (0) = a 0 + a n+1 (−1) n ∏<br />
h i+k +<br />
i=0<br />
n∑<br />
i=0<br />
⎭ L(n) k+i (0).<br />
o(1)h n+1<br />
k+i L(n) k+i (0).<br />
Mit der Schrittweitenbed<strong>in</strong>gung (3.13) h k+i ≤ ρ i h k gilt für <strong>die</strong> Lagrangeschen Basispolynome<br />
<strong>in</strong> t = 0:<br />
|L (n)<br />
n k+i (0)| =<br />
∏<br />
1<br />
h<br />
l=0,l≠i ∣ k+i<br />
h k+l<br />
− 1<br />
≤<br />
∏ n 1<br />
∣<br />
∣ ρ i−l − 1∣ = c(ρ, n). (3.12)<br />
l=0,l≠i<br />
Insgesamt folgt mit h k+i ≤ h k<br />
p (k)<br />
n = a(0) + (−1) n a n+1 h n+1<br />
k<br />
+ o(h n+1<br />
k<br />
).<br />
Die Schrittweitenbed<strong>in</strong>gung ist notwendig zum Abschätzen von |L (n)<br />
k+i<br />
| = O(1) und verh<strong>in</strong>dert<br />
das starke Oszillieren der Basisfunktionen bei t = 0 wie <strong>in</strong> Beispiel 3.15 beobachtet.<br />
E<strong>in</strong>e zulässige Schrittweitenfolgen zur Extrapolation ist h i = h 0<br />
. Die e<strong>in</strong>fache Wahl<br />
2 i<br />
h i = h 0 /i h<strong>in</strong>gegen ist nicht zulässig, da hier h k+1 /h k → 1 gilt und e<strong>in</strong>e Abschätzung <strong>in</strong><br />
Schritt (3.12) nicht mehr gleichmäßig <strong>in</strong> k möglich ist.<br />
Um <strong>die</strong> Extrapolationsvorschrift auf e<strong>in</strong> gegebenes Verfahren anzuwenden, werden <strong>die</strong><br />
Approximationen p (k)<br />
n (0) mit Hilfe des Neville-Schemas aus Algorithmus berechnet. Wir<br />
führen hierzu Beispiel 3.29 fort:<br />
Beispiel 3.31 (Extrapolation des Differenzenquotienten). Wir approximieren <strong>die</strong> Ableitung<br />
von f(x) = tanh(x) an der Stelle x 0 = 0.5 und berechnen <strong>die</strong> Approximationen mit<br />
dem e<strong>in</strong>seitigen Differenzenquotienten. Exakter Wert tanh ′ (0.5) ≈ 0.78645:<br />
h a(h) p kk p k,k+1 p k,k+2 p k,k+3<br />
2 −1 0.59895 0.59895 0.78530 0.78836 0.78650<br />
2 −2 0.69213 0.69213 0.78759 0.78673<br />
2 −3 0.73986 0.73986 0.78695<br />
2 −4 0.76341 0.76341<br />
□<br />
Die Richardson-Extrapolation spielt ihre Stärke erst dann voll aus, wenn <strong>die</strong> zugrundeliegende<br />
Funktion a(h) e<strong>in</strong>e spezielle Reihenentwicklung besitzt, welche z.B. nur gerade<br />
69
3 Interpolation und Approximation<br />
Potenzen von h be<strong>in</strong>haltet. Für den zentralen Differenzenquotienten gilt bei h<strong>in</strong>reichender<br />
Regularität von f:<br />
a(h) := f(x 0 + h) − f(x 0 − h)<br />
2h<br />
= f ′ (x 0 ) +<br />
n∑<br />
i=1<br />
f (2i+1) x 0<br />
(2i + 1)! h2i + O(h (2n+1) ).<br />
Die Idee ist es nun, <strong>die</strong>se Entwicklung bei der Interpolation auszunutzen und nur Polynome<br />
<strong>in</strong> 1, h 2 , h 4 , . . . zu berücksichtigen. Der zentrale Differenzenquotient ist ke<strong>in</strong> E<strong>in</strong>zelfall.<br />
Bei der numerischen Quadratur werden wir das Romberg-Verfahren kennenlernen, welches<br />
ebenso auf der Extrapolation e<strong>in</strong>er Vorschrift mit Entwicklung <strong>in</strong> h 2 beruht. Auch bei der<br />
Approximation von gewöhnlichen Differentialgleichungen lernen wir mit dem Gragg’schen<br />
Extrapolationsverfahren e<strong>in</strong>e Methode kennen, <strong>die</strong> auf <strong>die</strong>sem Pr<strong>in</strong>zip beruht. Daher formulieren<br />
wir ohne Beweis denn allgeme<strong>in</strong>en Satz zur Richardson-Extrapolation:<br />
Satz 3.32 (Richardson-Extrapolation zum Limes). Es sei a(h) : R + → R für e<strong>in</strong> q > 0<br />
e<strong>in</strong>e q(n + 1) mal stetig differenzierbare Funktion mit der Summenentwicklung<br />
n∑<br />
a(h) = a 0 + a j h qj + a n+1 (h)h q(n+1) ,<br />
j=1<br />
mit Koeffizienten a j ∈ R sowie a n+1 (h) = a n+1 +o(1). Weiter sei (h k ) k=0,1,... e<strong>in</strong>e monoton<br />
fallende Schrittweitenfolge h k > 0 mit der Eigenschaft<br />
0 < h k+1<br />
h k<br />
≤ ρ < 1. (3.13)<br />
Es sei p (k)<br />
n<br />
Dann gilt:<br />
∈ P n (<strong>in</strong> h q ) das Interpolationspolynom zu (h q k , a(h k)), . . . , (h q k+n , a(h k+n)).<br />
a(0) − p (k)<br />
n (0) = O(h q(n+1)<br />
k<br />
) (k → ∞).<br />
Beweis: Der Beweis ist e<strong>in</strong>e e<strong>in</strong>fache Modifikation von Satz 3.31 und kann im Wesentlichen<br />
mit Hilfe der Substitution ˜h k = h q k<br />
übertragen werden. Für Details, siehe [9]. □<br />
Pr<strong>in</strong>zipiell erlaubt <strong>die</strong> Richardson-Extrapolation bei h<strong>in</strong>reichender Regularität e<strong>in</strong>e beliebige<br />
Steigerung der Verfahrensordnung. Üblicherweise werden jedoch nur e<strong>in</strong>ige wenige<br />
Extrapolationsschritte aus den letzten Verfahrenswerten h k , h k+1 , . . . , h k+n verwendet. Die<br />
Extrapolation wird am e<strong>in</strong>fachsten mit dem modifizierten Neville-Schema durchgeführt.<br />
Algorithmus 3.33 (Modifiziertes Neville-Schema zur Extrapolation). Für h 0 , h 1 , . . . , h n<br />
sei a(h i ) bekannt. Berechne:<br />
1 f ü r k = 0, . . . , n s e t z e a k,k := a(h k )<br />
2 f ü r l = 1, . . . , n und<br />
3 f ü r k = 0, . . . , n − l berechne<br />
4 a k,k+l := a k,k+l−1 − a k+1,k+l−a k,k+l−1<br />
h q k+l<br />
h q −1<br />
k<br />
70
3.5 <strong>Numerische</strong> Integration<br />
Wir schließen <strong>die</strong> Richardson-Extrapolation mit e<strong>in</strong>em weiteren Beispiel ab:<br />
Beispiel 3.34 (Extrapolation des zentralen Differenzenquotienten). Wir approximieren<br />
<strong>die</strong> Ableitung von f(x) = tanh(x) an der Stelle x = 0.5 mit dem zentralen Differenzenquotienten<br />
und Extrapolation. Exakter Wert ist tanh ′ (0.5) ≈ 0.7864477329:<br />
h a(h) = p kk p k,k+1 p k,k+2 p k,k+3<br />
2 −1 0.761594156 0.7867493883 0.7864537207 0.7864477443<br />
2 −2 0.780460580 0.7864721999 0.7864478377<br />
2 −3 0.784969295 0.7864493603<br />
2 −4 0.786079344<br />
Bereits <strong>die</strong> jeweils erste Extrapolation p k,k+1 liefert weit bessere Ergebnisse als <strong>die</strong> Extrapolation<br />
des e<strong>in</strong>seitigen Differenzenquotienten. Die beste Approximation verfügt über 8<br />
richtige Stellen.<br />
3.5 <strong>Numerische</strong> Integration<br />
Die numerische Integration (oder auch numerische Quadratur) <strong>die</strong>nt zur approximativen<br />
Berechnung von Integralen. Mögliche Gründe s<strong>in</strong>d<br />
• Die Stammfunktion e<strong>in</strong>es Integrals lässt sich nicht durch e<strong>in</strong>e elementare Funktion<br />
ausdrücken. Z.B. ∫ ∞<br />
∫ ∞<br />
exp(−x 2 s<strong>in</strong>(x)<br />
) dx,<br />
dx.<br />
x<br />
0<br />
• E<strong>in</strong>e Stammfunktion existiert <strong>in</strong> geschlossener Form, aber <strong>die</strong> Berechnung ist derart<br />
aufwendig, so dass numerische Methoden vorzuziehen s<strong>in</strong>d.<br />
• Der Integrand ist nur an diskreten Stellen bekannt; beispielsweise bei Messreihendaten.<br />
Bei der numerischen Integration basieren <strong>die</strong> Methoden auf den bereits kennengelernten<br />
Interpolatonsmethoden. Sie s<strong>in</strong>d somit e<strong>in</strong>e klassische Anwendung der der Polynom-<br />
Interpolation sowie Spl<strong>in</strong>e-Interpolation. Erstere führen auf <strong>die</strong> sogenannten <strong>in</strong>terpolatorischen<br />
Quadraturformeln während <strong>die</strong> Spl<strong>in</strong>e-Interpolation auf <strong>die</strong> stückweise <strong>in</strong>terpolatorische<br />
Quadratur (<strong>die</strong> <strong>in</strong> der Literatur auch häufig unter dem Namen der zusammengesetzten<br />
oder summierten Quadratur zu f<strong>in</strong>den ist).<br />
Bei der <strong>in</strong>terpolatorischen Quadratur e<strong>in</strong>er Funktion f(x) auf dem Intervall [a, b] wird<br />
zunächst e<strong>in</strong>e Interpolationspolynom zu gegebenen Stützstellen x 0 , x 1 , . . . , x n kreiert, welches<br />
dann <strong>in</strong>tegriert wird (basiert dementsprechend auf Abschnitt 3.1). Bei der Gauß<br />
Quadratur wird <strong>die</strong> Position der Stützstellen x i ∈ [a, b] im Intervall so bestimmt, dass <strong>die</strong><br />
resultierende Integrationsformel e<strong>in</strong>e optimale Ordnung erzielt. Zuletzt betrachten wir als<br />
Anwendung der Extrapolation zum Limes (Abschnitt 3.4), dass sogenannte Romberg’sche<br />
Integrationsverfahren <strong>in</strong> Abschnitt 3.5.4.<br />
0<br />
71
3 Interpolation und Approximation<br />
Def<strong>in</strong>ition 3.35 (Quadraturformel). Es sei f ∈ C[a, b]. Unter e<strong>in</strong>er numerischen Quadraturformel<br />
zur Approximation von I(f) := ∫ b<br />
a<br />
f(x) dx verstehen wir <strong>die</strong> Vorschrift:<br />
n∑<br />
I n (f) := α i f(x i ),<br />
i=0<br />
mit n+1 paarweise verschiedenen Stützstellen x 0 , . . . , x n sowie n+1 Quadraturgewichten<br />
α 0 , . . . , α n .<br />
Zunächst br<strong>in</strong>gen wir zur Veranschaulichung e<strong>in</strong>ige e<strong>in</strong>fache Beispiele:<br />
Def<strong>in</strong>ition 3.36 (Boxregel). Die Box-Regel zur Integration auf [a, b] ist <strong>die</strong> e<strong>in</strong>fachste<br />
Quadraturformel und basiert auf Interpolation von f(x) mit e<strong>in</strong>em konstanten Polynom<br />
p(x) = f(a) und Integration von p(x) (siehe Abbildung 3.8):<br />
I 0 (f) = (b − a)f(a).<br />
Neben <strong>die</strong>ser l<strong>in</strong>ksseitigen Boxregel existiert mit I 0 (f) = (b − a)f(b) auch <strong>die</strong> rechtsseitige<br />
Boxregel.<br />
Die Boxregel hat ihre Bedeutung bei der Herleitung des Riemann-Integrals. Die Boxregel<br />
ist vergleichbar mit dem e<strong>in</strong>seitigen Differenzenquotienten. E<strong>in</strong>e bessere Quadraturformel<br />
erhalten wir durch Ausnutzen von Symmetrieeigenschaften:<br />
Def<strong>in</strong>ition 3.37 (Mittelpunktsregel). Zur Herleitung der Mittelpunktregel wird <strong>die</strong> Funktion<br />
f(x) <strong>in</strong> der Mitte des Intervalls mit e<strong>in</strong>em konstanten Polynom <strong>in</strong>terpoliert:<br />
Siehe Abbildung 3.8.<br />
( ) a + b<br />
I 0 (f) = (b − a)f .<br />
2<br />
Diese beiden Regeln basieren auf e<strong>in</strong>er Interpolation von Grad Null. Zur Herleitung der<br />
Trapezregel wird f(x) <strong>in</strong> den beiden Intervallenden l<strong>in</strong>ear <strong>in</strong>terpoliert:<br />
Def<strong>in</strong>ition 3.38 (Trapezregel). Die Trapezregel ist durch Integration der l<strong>in</strong>earen Interpolation<br />
<strong>in</strong> (a, f(a)) sowie (b, f(b)) gebildet:<br />
Siehe auch Abbildung 3.8<br />
I 1 (f) = b − a (f(a) + f(b)).<br />
2<br />
72
3.5 <strong>Numerische</strong> Integration<br />
f(x)<br />
f(x)<br />
f(x)<br />
a<br />
b<br />
a<br />
x 0 = a+b<br />
2 b<br />
a<br />
b<br />
Abbildung 3.8: L<strong>in</strong>ksseitige Boxregel, Mittelpunktsregel und Trapezregel zur<br />
Integralapproximation.<br />
3.5.1 Interpolatorische Quadratur<br />
Die <strong>in</strong>terpolatorischen Quadraturformeln werden über <strong>die</strong> Konstruktion e<strong>in</strong>es geeigneten<br />
Interpolationspolynoms hergeleitet. Zu den gegebenen Stützstellen a ≤ x 0 < . . . < x n ≤ b<br />
wird gemäß Abschnitt 3.1 das Lagrangsche Interpolationspolynom als Approximation der<br />
Funktion f gebildet:<br />
Dieses wird dann <strong>in</strong>tegriert:<br />
Die Quadraturgewichte<br />
I (n) (f) :=<br />
p n (x) =<br />
∫ b<br />
a<br />
n∑<br />
i=0<br />
p n (x) dx =<br />
α i =<br />
∫ b<br />
a<br />
f(x i )L (n)<br />
i (x).<br />
n∑<br />
i=0<br />
∫ b<br />
f(x i ) L (n)<br />
i (x) dx<br />
a<br />
} {{ }<br />
=α i<br />
.<br />
L (n)<br />
i (x) dx (3.14)<br />
hängen offensichtlich nicht von der zu <strong>in</strong>tegrierenden Funktion f(x) ab, dafür vom Intervall<br />
[a, b] sowie von den Stützstellen x 0 , . . . , x n . Dies impliziert <strong>die</strong> Frage, ob durch<br />
geschickte Verteilung der Stützstellen <strong>die</strong> Qualität der Gewichte verbessert werden kann.<br />
(Als Vorwegnahme auf den nach-nachfolgenden Abschnitt kann <strong>die</strong>se Frage <strong>in</strong> der Tag mit<br />
Ja beantwortet werden).<br />
Bevor wir e<strong>in</strong>zelne Quadratur-Formeln analysieren und nach möglichst leistungsfähigen<br />
Formeln suchen, können wir zunächst e<strong>in</strong> e<strong>in</strong>faches aber doch allgeme<strong>in</strong>es Resultat herleiten:<br />
Satz 3.39 (Lagrange-Quadratur). Für <strong>die</strong> <strong>in</strong>terpolatorischen Quadraturformeln I n (f) mit<br />
n + 1 paarweise verschiedenen Stützstellen x 0 , x 1 , . . . , x n gilt zur Approximation des Integrals<br />
I(f) = ∫ b<br />
a<br />
f(x) dx <strong>die</strong> Fehlerdarstellung<br />
mit Newtonscher Restglieddarstellung.<br />
∫ b<br />
n∏<br />
I(f) − I n (f) = f[x 0 , . . . , x n , x] (x − x j ) dx,<br />
a<br />
j=0<br />
73
3 Interpolation und Approximation<br />
Beweis: Der Beweis folgt unmittelbar durch Integration der entsprechenden Fehlerabschätzung<br />
für <strong>die</strong> Lagrange-Interpolation <strong>in</strong> Satz 3.12.<br />
□<br />
Hieraus folgt e<strong>in</strong>e wichtige Eigenschaft der <strong>in</strong>terpolatorischen Quadraturformeln:<br />
Korollar 3.40. Die <strong>in</strong>terpolatorische Quadraturformel I (n) (·) ist exakt für alle Polynome<br />
vom Grad n.<br />
Beweis: Folgt direkt aus der Konstruktion der <strong>in</strong>terpolatorischen Quadraturformeln, da<br />
für jedes f ∈ P n sofort p = f gilt.<br />
□<br />
Die Integrierbarkeit von Polynomen wird genutzt, um <strong>die</strong> Ordnung von Quadraturregeln<br />
zu charakterisieren:<br />
Def<strong>in</strong>ition 3.41 (Ordnung von Quadraturregeln). E<strong>in</strong>e Quadraturformel I (n) (·) wird<br />
(m<strong>in</strong>destens) von der Ordnung m genannt, wenn durch sie m<strong>in</strong>destens alle Polynome<br />
aus P m−1 exakt <strong>in</strong>tegriert werden. D.h. <strong>die</strong> <strong>in</strong>terpolatorischen Quadraturformeln I (n) (·) zu<br />
n + 1 Stützstellen s<strong>in</strong>d m<strong>in</strong>destens von der Ordnung n + 1.<br />
Im Folgenden werden wir <strong>die</strong> bereits e<strong>in</strong>geführten e<strong>in</strong>fachen Quadraturformeln näher analysieren<br />
und ihre Fehlerabschätzung sowie Ordnung bestimmen. Hierzu werden wir <strong>die</strong><br />
Newtonsche Integraldarstellung des Interpolationsfehlers aus Satz 3.39 nutzen.<br />
Satz 3.42 (Boxregel). Es sei f ∈ C 1 [a, b]. Die Boxregel (Def<strong>in</strong>ition 3.36) ist von erster<br />
Ordnung und es gilt <strong>die</strong> Fehlerabschätzung:<br />
mit e<strong>in</strong>er Zwischenstelle ξ ∈ (a, b).<br />
I 0 (f) := (b − a)f(a), I(f) − I 0 (f) =<br />
(b − a)2<br />
f ′ (ξ),<br />
2<br />
Beweis: Die Boxregel basiert auf der Interpolation mit e<strong>in</strong>em konstanten Polynom, hat<br />
daher erste Ordnung. Aus Satz 3.39 folgt mit x 0 = a:<br />
wobei mit Satz 3.12 weiter gilt:<br />
I(f) − I 0 (f) =<br />
I(f) − I 0 (f) =<br />
∫ b ∫ 1<br />
a<br />
0<br />
∫ b<br />
a<br />
f[a, x](x − a) dx,<br />
f ′ (a + t(x − a))(x − a) dt dx.<br />
Wir wenden den Mittelwertsatz der Integralrechnung zweimal an und erhalten<br />
I(f) − I 0 (f) = f ′ (ξ)<br />
∫ b ∫ 1<br />
a<br />
0<br />
(x − a) dt dx = 1 2 f ′ (ξ)(b − a) 2 ,<br />
74
3.5 <strong>Numerische</strong> Integration<br />
mit e<strong>in</strong>em Zwischenwert ξ ∈ (a, b).<br />
□<br />
Die Boxregel ist <strong>die</strong> e<strong>in</strong>fachste Quadraturformel. In Analogie zur Diskussion bei den Differenzenquotienten<br />
können wir bei der Mittelpunktsregel durch geschickte Ausnutzung<br />
der Symmetrie e<strong>in</strong>e bessere Approximationsordnung erwarten. Um <strong>die</strong>se bessere Ordnung<br />
zu erreichen müssen wieder Superapproximationeigenschaften genutzt werden, welche im<br />
Allgeme<strong>in</strong>en etwas Mehraufwand erfordern:<br />
Satz 3.43 (Mittelpunktsregel). Es sei f ∈ C 2 [a, b]. Die Mittelpunktsregel (Def<strong>in</strong>ition 3.37)<br />
ist von Ordnung 2 und es gilt <strong>die</strong> Fehlerabschätzung:<br />
( a + b<br />
I 0 (f) := (b − a)f<br />
2<br />
mit e<strong>in</strong>er Zwischenstelle ξ ∈ (a, b).<br />
)<br />
, I(f) − I 0 (f) =<br />
(b − a)3<br />
f ′′ (ξ),<br />
24<br />
Beweis: Aufgrund der Interpolation mit konstantem Polynom ist zunächst ist nur erste<br />
Ordnung zu erwarten. Es gilt mit Satz 3.4:<br />
∫ b [ ] ( a + b<br />
I(f) − I 0 (f) = f<br />
a 2 , x x − a + b )<br />
dx.<br />
2<br />
Angenommen ¯f(x) e<strong>in</strong> l<strong>in</strong>eares Polynom. Dann ist ¯f ′ konstant und also ¯f [(a + b)/2, x] =<br />
¯f[(a + b)/2, ¯x] mit ¯x ∈ [a, b]. Aus Symmetriegründen folgt:<br />
I(r ¯f) − I 0 ( ¯f) = ¯f[(a + b)/2, ¯x]<br />
} {{ }<br />
konstant<br />
∫ b (<br />
x − a + b )<br />
dx = 0.<br />
2<br />
a<br />
} {{ }<br />
=0<br />
Zur Herleitung der Fehlerabschätzung soll <strong>die</strong>se Argumentation weiter genutzt werden.<br />
Das Restglied e<strong>in</strong>er beliebigen l<strong>in</strong>earen Funktion ¯f verschw<strong>in</strong>det. Daher können wir e<strong>in</strong><br />
beliebiges ¯f (welches wir weiter unten spezifizieren) <strong>in</strong> <strong>die</strong> Fehleridentität (3.15) für allgeme<strong>in</strong>es<br />
f ∈ C 2 ([a, b]) e<strong>in</strong>schieben:<br />
I(f) − I 0 (f) =<br />
=<br />
∫ b<br />
a<br />
∫ b<br />
a<br />
[ ] ( a + b<br />
f<br />
2 , x x − a + b )<br />
dx<br />
2<br />
(<br />
f<br />
[ a + b<br />
2 , x ]<br />
− ¯f<br />
[ a + b<br />
2 , x ]) (<br />
Es gilt mit Taylor-Entwicklung von f ′ um den Mittelwert:<br />
f<br />
[ ] ∫ a + b<br />
t<br />
2 , x =<br />
=<br />
0<br />
∫ t (<br />
0<br />
( a + b<br />
f ′ 2<br />
( a + b<br />
f ′ 2<br />
(<br />
+ t<br />
x − a + b ))<br />
dt<br />
2<br />
x − a + b<br />
2<br />
) (<br />
+ t<br />
x − a + b )<br />
dx.<br />
2<br />
) )<br />
f ′′ (ξ) dt,<br />
75
3 Interpolation und Approximation<br />
mit e<strong>in</strong>em Mittelwert ξ. Wir wählen nun ¯f so, dass ¯f[(a + b)/2, x] = f ′ ((a + b)/2). Dann<br />
folgt (mit nochmaliger Anwendung des Mittelwertsatzes der Integralrechnung):<br />
∫ b ∫ 1 (<br />
I(f) − I 0 (f) = f ′′ (ξ) t x − a + b ) 2<br />
(b − a)3<br />
dt dx = f ′′ (ξ).<br />
2<br />
24<br />
a<br />
0<br />
Die höhere Ordnung der Mittelpunktsregel erhalten wir nur durch E<strong>in</strong>schieben der Null<br />
<strong>in</strong> Form e<strong>in</strong>er l<strong>in</strong>earen Funktion ¯f. Mit dem gleichen Aufwand wie <strong>die</strong> Boxregel, also mit<br />
e<strong>in</strong>er Auswertung der Funktion f(x) erreicht <strong>die</strong> Mittelpunktsregel <strong>die</strong> doppelte Ordnung.<br />
Satz 3.44 (Trapezregel). Es sei f ∈ C 2 ([a, b]). Die Trapezregel (Def<strong>in</strong>ition 3.38) ist von<br />
Ordnung 2 und es gilt <strong>die</strong> Fehlerabschätzung:<br />
I 1 (f) := b − a<br />
2 (f(a) + f(b)), I(f) − I1 (f) =<br />
mit e<strong>in</strong>er Zwischenstelle ξ ∈ (a, b).<br />
Beweis: Mit Satz 3.4 gilt:<br />
I 1 (f) − I(f) =<br />
∫ b<br />
a<br />
(b − a)3<br />
f ′′ (ξ),<br />
12<br />
f[a, b, x](x − a)(x − b) dx. (3.15)<br />
Für f[a, b, x] gilt bei zweimaliger Anwendung des Mittelwertsatzes der Integralrechnung:<br />
f[a, b, x] =<br />
∫ 1 ∫ t1<br />
0<br />
0<br />
f ′′ (a + t 1 (b − a) + t(x − b)) dt dt 1 = 1 2 f ′′ (ξ a,b,x ),<br />
mit e<strong>in</strong>em Zwischenwert ξ x . Hiermit erhalten wir mit nochmaliger Anwendung des Mittelwertsatzes<br />
(da (x − a)(x − b) ≤ 0) <strong>die</strong> Restgliedabschätzung:<br />
I(f) − I 1 (f) = 1 2<br />
∫ b<br />
mit e<strong>in</strong>em weiteren Zwischenwert ξ ∈ (a, b).<br />
a<br />
f ′′ (ξ x )(x − a)(x − b) dx =<br />
(b − a)3<br />
f ′′ (ξ),<br />
12<br />
Die Verwendung e<strong>in</strong>es quadratischen Interpolationspolynoms führt auf <strong>die</strong> Simpson Regel:<br />
Satz 3.45 (Simpson-Regel). Es sei f ∈ C 4 [a, b]. Die Simpson-Regel, basierend auf Interpolation<br />
mit quadratischem Polynom:<br />
I 2 (f) = b − a<br />
6<br />
ist von Ordnung vier und es gilt:<br />
wobei ξ ∈ (a, b).<br />
∫ b<br />
a<br />
(<br />
f(a) + 4f<br />
( a + b<br />
2<br />
) )<br />
+ f(b) ,<br />
f(x) = I(f) − I 2 (f) = f (4) (ξ)<br />
2880 (b − a)5 ,<br />
□<br />
□<br />
76
3.5 <strong>Numerische</strong> Integration<br />
Beweis: Der Beweis folgt analog zu den Beweisen zu Mittelpunkts- und Trapezregel und<br />
sei dem Leser als Übung gestellt. Dabei müssen wieder das Superapproximationspr<strong>in</strong>zip<br />
ausgenutzt werden.<br />
□<br />
Bemerkung 3.46. Wie bei der Mittelpunktsregel ist <strong>die</strong> Ordnung der Simpson-Regel e<strong>in</strong>e<br />
Potenz höher als zu erwarten wäre. Treibt man <strong>die</strong>ses Spiel weiter und konstruiert noch<br />
höhere Quadraturformeln, dann erkennen wir e<strong>in</strong> allgeme<strong>in</strong>es Pr<strong>in</strong>zip: bei Quadratur mit<br />
geraden Interpolationspolynomen, wird <strong>die</strong> Fehlerordnung um e<strong>in</strong>e Potenz erhöht. Dies<br />
folgt jeweils aus Symmetriegründen.<br />
Bei allen bisherigen Quadraturformeln s<strong>in</strong>d <strong>die</strong> Stützstellen gleichmäßig im Intervall [a, b]<br />
verteilt. Diese Formeln werden Newton-Cotes-Formeln genannt:<br />
Def<strong>in</strong>ition 3.47 (Newton-Cotes-Formeln). Quadraturregeln mit äquidistant im Intervall<br />
[a, b] verteilten Stützstellen heißen Newton-Cotes-Formeln. Gehören <strong>die</strong> Intervallenden a<br />
sowie b zu den Stützstellen, so heißen <strong>die</strong> Formeln abgeschlossen, ansonsten offen.<br />
In Tabelle 3.2 fassen wir e<strong>in</strong>ige gebräuchliche Newton-Cotes Formeln zusammen. Ab n ≥ 7<br />
bei den abgeschlossenen Formeln und ab n = 2 bei den offenen Formeln, treten negative<br />
Quadraturgewichte α i auf. Dies führt zu dem Effekt, dass auch bei re<strong>in</strong> positiven Integranden<br />
Auslöschung auftreten kann. Daher s<strong>in</strong>d <strong>die</strong>se Formeln aus numerischer Sicht nicht<br />
mehr anwendbar.<br />
Tabelle 3.2: Eigenschaften und Gewichte der Newton-Cotes Formeln.<br />
n Gewichte α i Name<br />
0 1 offen Boxregel<br />
1<br />
1<br />
2 , 1 2<br />
geschlossen Trapezregel<br />
1<br />
2<br />
6 , 4 6 , 1 6<br />
geschlossen Simpson-Regel<br />
3<br />
3<br />
24 , 9<br />
24 , 9<br />
24 , 3<br />
24<br />
geschlossen Newton’s 3/8-Regel<br />
4<br />
14<br />
180 , 64<br />
180 , 24<br />
180 , 64<br />
180 , 14<br />
180<br />
geschlossen Milne’s-Regel<br />
3.5.2 Stückweise <strong>in</strong>terpolatorische Quadraturformeln<br />
Die <strong>in</strong>terpolatorische Quadratur aus dem vorangegangenen Abschnitt beruht auf der Integration<br />
e<strong>in</strong>es Interpolationspolynoms p. Für <strong>die</strong>ses gilt <strong>die</strong> Fehlererabschätzung (Satz 3.11):<br />
f(x) − p(x) = f (n+1) (ξ)<br />
(n + 1)!<br />
n∏<br />
(x − x i ).<br />
i=0<br />
Die Genauigkeit der Quadratur kann pr<strong>in</strong>zipiell auf zwei Wege verbessert werden: der<br />
Vorfaktor kann durch Wahl von mehr Stützstellen kle<strong>in</strong> gehalten werden, denn es gilt<br />
77
3 Interpolation und Approximation<br />
1/(n + 1)! → 0. Dies führt jedoch nur dann zur Konvergenz des Fehlers, falls <strong>die</strong> Ableitungen<br />
f (n) nicht zu schnell wachsen, siehe Beispiel 3.15. Als zweite Option bleibt das<br />
Produkt der Stützstellen. E<strong>in</strong>e e<strong>in</strong>fache Abschätzung besagt wegen x, x 0 , . . . , x n ∈ [a, b]:<br />
n∏<br />
(x − x<br />
∣<br />
i )<br />
∣ ≤ (b − a)n+1 .<br />
i=0<br />
Interpolationsfehler (und somit auch Quadraturfehler) lassen sich durch Potenzen der Intervallgröße<br />
beschränken. Dies wird zur Entwicklung von stabilen und konvergenten Quadraturformeln<br />
entsprechend dem Vorgehen der summierten Interpolation (Abschnitt 3.2)<br />
genutzt. Hierzu sei<br />
a = y 0 < y 1 < · · · < y m = b, h i := y i − y i−1 ,<br />
e<strong>in</strong>e Zerlegung des Intervalls [a, b] <strong>in</strong> m Teil<strong>in</strong>tervalle mit Schrittweite h i . Auf jedem <strong>die</strong>ser<br />
m Teil<strong>in</strong>tervalle wird <strong>die</strong> Funktion f mit Hilfe e<strong>in</strong>er Quadraturformel approximiert:<br />
m∑<br />
Ih n (f) = I[y n i−1 ,y i ] (f).<br />
i=1<br />
Aus Satz 3.39 folgt sofort e<strong>in</strong>e allgeme<strong>in</strong>e Fehlerabschätzung für <strong>die</strong> summierten Quadraturformeln<br />
Satz 3.48 (Summierte Quadratur für n ungerade). Es sei f ∈ C n+1 ([a, b]) sowie a =<br />
y 0 < · · · < y m = b e<strong>in</strong>e Zerlegung des Intervalls mit Schrittweiten h i := y i − y i−1 sowie<br />
h := max h i . Für <strong>die</strong> <strong>die</strong> summierte Quadraturformeln Ih n (f) gilt <strong>die</strong> Fehlerabschätzung:<br />
mit e<strong>in</strong>er Konstante c(n) > 0.<br />
I(f) − I n h (f) ≤ c max<br />
[a,b] |f (n+1) |h n+1 ,<br />
Beweis: Der Beweis folgt e<strong>in</strong>fach aus Komb<strong>in</strong>ation von Satz 3.39 sowie der differentiellen<br />
Restglieddarstellung der Lagrange-Interpolation.<br />
□<br />
Satz 3.49 (Summierte Quadratur für n gerade). Es sei f ∈ C n+1 ([a, b]) sowie a = y 0 <<br />
· · · < y m = b e<strong>in</strong>e Zerlegung des Intervalls mit Schrittweiten h i := y i − y i−1 sowie h :=<br />
max h i . Für <strong>die</strong> <strong>die</strong> summierte Quadraturformeln Ih n (f) gilt <strong>die</strong> Fehlerabschätzung:<br />
mit e<strong>in</strong>er Konstante c(n) > 0.<br />
I(f) − I n h (f) ≤ c max<br />
[a,b] |f (n+2) |h n+2 ,<br />
Beweis: Der Beweis folgt e<strong>in</strong>fach aus Komb<strong>in</strong>ation von Satz 3.39 sowie der differentiellen<br />
Restglieddarstellung der Lagrange-Interpolation.<br />
□<br />
78
3.5 <strong>Numerische</strong> Integration<br />
y i−1<br />
p<br />
y i<br />
f(x)<br />
I i<br />
a = x 0 x i−1 x i b = x n<br />
Abbildung 3.9: Summierte Trapezregel zur Integralapproximation.<br />
Bemerkung 3.50. Von den e<strong>in</strong>fachen Quadraturregeln überträgt sich demnach <strong>die</strong> verbesserte<br />
Konvergenzordnung bei geraden n auf <strong>die</strong> summierten Quadraturformeln.<br />
Aus <strong>die</strong>sen Resultaten kann e<strong>in</strong> wichtiges Ergebnis abgelesen werden: für h → 0, also<br />
für steigende Fe<strong>in</strong>heit der Intervallzerlegung konvergiert <strong>die</strong> summierte Quadratur für<br />
beliebiges n. Mit Hilfe von summierten Quadraturregeln lassen sich somit auch Funktionen<br />
mit schnell wachsenden Ableitungen <strong>in</strong>tegrieren. Darüber h<strong>in</strong>aus eignen sich summierte<br />
Regeln auch zur Integration von Funktionen, <strong>die</strong> nur e<strong>in</strong>e ger<strong>in</strong>ge Regularität, etwa f ∈<br />
C 1 ([a, b]) aufweisen. Da es möglich ist <strong>die</strong> Ordnung n kle<strong>in</strong> zu halten s<strong>in</strong>d summierte<br />
Quadraturregeln numerisch stabiler. Zur Veranschaulichung betrachten wir <strong>in</strong> Abbildung<br />
3.9 <strong>die</strong> summierte Trapezregel<br />
Im folgenden konkretisieren wir e<strong>in</strong>ige e<strong>in</strong>fache summierte Quadraturregeln. Hierzu betrachten<br />
wir ausschließlich äquidistante Zerlegungen des Intervalls [a, b]:<br />
a = y 0 < · · · < y m = b,<br />
h := b − a<br />
m , y i := a + ih, i = 0, . . . , m. (3.16)<br />
Satz 3.51 (Summierte Boxregel). Es f ∈ C 1 [a, b] sowie durch (3.16) e<strong>in</strong>e äquidistante<br />
Zerlegung des Intervalls gegeben. Für <strong>die</strong> summierte Boxregel<br />
gilt <strong>die</strong> Fehlerabschätzung:<br />
m∑<br />
Ih(f) 0 = h f(y i ),<br />
i=1<br />
|I(f) − I 0 h(f)| ≤ b − a<br />
2 h max<br />
[a,b] |f ′ |.<br />
Beweis: Aus Satz 3.42 folgern wir durch Summation über <strong>die</strong> Teil<strong>in</strong>tervalle<br />
I(f) − I 0 h(f) =<br />
m∑<br />
i=1<br />
h 2<br />
2 f ′ (ξ i ),<br />
79
3 Interpolation und Approximation<br />
mit Zwischenstellen ξ i ∈ [y i−1 , y i ]. Das Ergebnis folgt nun mit (b − a) = ∑ i h i sowie durch<br />
Übergang zum Maximum.<br />
□<br />
Mit der summierten Boxregel haben wir also sogar für nur stückweise stetig differenzierbare<br />
Funktionen e<strong>in</strong>e konvergente Quadraturformel für h → 0. Entsprechend gilt für <strong>die</strong><br />
Trapezregel:<br />
Satz 3.52 (Summierte Trapezregel). Es f ∈ C 2 [a, b] sowie durch (3.16) e<strong>in</strong>e äquidistante<br />
Zerlegung des Intervalls gegeben. Für <strong>die</strong> summierte Trapezregel<br />
gilt <strong>die</strong> Fehlerabschätzung:<br />
Ih(f) 1 = h m∑<br />
(f(y i−1 ) + f(y i )) = h m−1<br />
2<br />
2 f(a) + h ∑<br />
f(y i ) + h 2 f(b)<br />
i=1<br />
i=1<br />
|I(f) − I 1 h(f)| ≤ b − a<br />
12 h2 max<br />
[a,b] |f ′′ |.<br />
Beweis: Übung!<br />
□<br />
Die summierte Trapezregel ist besonders attraktiv, da sich <strong>die</strong> Stützstellen überschneiden:<br />
der Punkt y i ist sowohl Stützstelle im Teil<strong>in</strong>tervall [y i−1 , y i ] als auch [y i , y i+1 ] und f(y i )<br />
muss nur e<strong>in</strong>mal bestimmt werden. Darüber h<strong>in</strong>aus eignet sich <strong>die</strong> summierte Trapezregel<br />
als Grundlage von adaptiven Quadraturverfahren, bei denen <strong>die</strong> Genauigkeit Stück für<br />
Stück dem Problem angepasst wird: wurde auf e<strong>in</strong>er Zerlegung zur Schrittweite h <strong>die</strong> Approximation<br />
I 1 h (f) bestimmt, so kann <strong>die</strong> Genauigkeit durch Intervallhalbierung I1 h/2 (f)<br />
e<strong>in</strong>fach gesteigert werden. Alle Stützstellen f(y i ) können weiter verwendet werden, <strong>die</strong><br />
Funktion f(x) muss lediglich <strong>in</strong> den neuen Intervallmitten berechnet werden. E<strong>in</strong> entsprechendes<br />
Resultat gilt für <strong>die</strong> summierte Simpsonregel:<br />
I 2 h(f) =<br />
m∑<br />
i=1<br />
(<br />
h<br />
f(y i−1 ) + 4f<br />
6r<br />
= h 6 f(a) + m ∑<br />
i=1<br />
h<br />
3 f(y i) +<br />
( yi−1 + y i<br />
m∑<br />
i=1<br />
2<br />
) )<br />
+ f(y i )<br />
( )<br />
2h<br />
3 f yi−1 + y i<br />
+ h 2 6 f(b).<br />
Bei geschickter Anordnung s<strong>in</strong>d nur 2m + 2 statt 3m Funktionsauswertungen notwendig.<br />
3.5.3 Gauß-Quadratur<br />
Wie bereits diskutiert, s<strong>in</strong>d <strong>die</strong> <strong>in</strong>terpolatorischen Quadraturformeln<br />
n∑<br />
I (n) (f) = α i f(x i )<br />
i=0<br />
80
3.5 <strong>Numerische</strong> Integration<br />
zu den Stützstellen x 0 , . . . , x n ∈ [a, b] nach Konstruktion m<strong>in</strong>destens von der Ordnung<br />
n + 1. D.h.:<br />
I(p) = I (n) (p) ∀p ∈ P n .<br />
Wir haben jedoch mit der Mittelpunktsregel n = 0 und der Simpsonregel n = 2 bereits<br />
Quadraturformeln kennengelernt, <strong>die</strong> exakt s<strong>in</strong>d für alle Polynome P n+1 , <strong>die</strong> also von der<br />
Ordnung n + 2 s<strong>in</strong>d.<br />
Wir untersuchen <strong>in</strong> <strong>die</strong>sem Abschnitt <strong>die</strong> Frage, ob <strong>die</strong> Ordnung mit anderen bisher noch<br />
nicht kennengelernten Methoden weiter erhöht werden kann. Bisher lag <strong>die</strong> Freiheit lediglich<br />
<strong>in</strong> der Wahl des Polynomgrads und somit <strong>in</strong> der Anzahl der Stützstellen. Die<br />
Frage nach der optimalen Verteilung der Stützstellen im Intervall [a, b] wurde bisher nicht<br />
untersucht. In <strong>die</strong>sem Abschnitt werden wir mit der Gauß-Quadratur <strong>in</strong>terpolatorische<br />
Quadraturformeln kennenlernen, welche durch optimale Positionierung der Stützstellen<br />
<strong>die</strong> maximale Ordnung 2n + 2 erreichen.<br />
Satz 3.53 (Ordnungsbarriere der Quadratur). E<strong>in</strong>e <strong>in</strong>terpolatorische Quadraturformel zu<br />
n + 1 Stützstellen kann höchstens <strong>die</strong> Ordnung 2n + 2 haben.<br />
Beweis: Angenommen I (n) (·) mit den Stützstellen x 0 , . . . , x n wäre von höherer Ordnung,<br />
<strong>in</strong>sbesondere exakt für Polynome P 2n+2 , also für<br />
n∏<br />
p(x) = (x − x j ) 2 ∈ P 2n+2 .<br />
j=0<br />
Die e<strong>in</strong>deutige Interpolierende p n ∈ P n mit p n (x i ) = p(x i ) = 0 hat n + 1 Nullstellen und<br />
stellt somit <strong>die</strong> Nullfunktion dar. Dies ergibt e<strong>in</strong>en Widerspruch:<br />
0 <<br />
∫ b<br />
a<br />
p(x) dx = I (n) (p) = I (n) (p n ) = 0.<br />
□<br />
Im Folgenden untersuchen wir <strong>in</strong>terpolatorische Quadraturregeln genauer und versuchen<br />
Bed<strong>in</strong>gungen herzuleiten, unter denen <strong>die</strong> höchst mögliche Ordnung 2n + 2 wirklich erreicht<br />
werden kann. Wir müssen demnach e<strong>in</strong>e Quadraturformel <strong>in</strong> n + 1 Stützstellen<br />
f<strong>in</strong>den, welche exakt ist für alle Polynome aus P 2n+1 . Hierzu wählen wir zunächst e<strong>in</strong>e<br />
Quadraturformel mit den 2n + 2 Stützstellen x 0 , x 1 , . . . , x n , x n+1 , . . . , x 2n+1 . Von <strong>die</strong>ser<br />
wissen wir, dass sie auf jeden Fall der Ordnung 2n + 2 ist. Es gilt <strong>in</strong> Newtonscher Darstellung<br />
des Interpolationspolynoms<br />
2n+1<br />
I(f) − I 2n+1 ∑<br />
∫ b<br />
(f) = I(f) − f[x 0 , . . . , x i ]<br />
i=0<br />
= I(f) − I n (f) −<br />
2n+1 ∑<br />
i=n+1<br />
a<br />
i−1 ∏<br />
j=0<br />
f[x 0 , . . . , x i ]<br />
(x − x j ) dx<br />
∫ b i−1 ∏<br />
a<br />
j=0<br />
(x − x j ) dx,<br />
81
3 Interpolation und Approximation<br />
wobei I n (·) <strong>die</strong>jenige Quadraturregel ist, welche durch <strong>die</strong> ersten n+1 Stützstellen x 0 , . . . , x n<br />
gegeben ist. Wir versuchen nun <strong>die</strong> Stützstellen x 0 , . . . , x 2n+1 so zu bestimmen, dass das<br />
Restglied<br />
2n+1 ∑<br />
i=n+1<br />
∫ b<br />
f[x 0 , . . . , x i ]<br />
a<br />
i−1 ∏<br />
j=0<br />
(x − x j ) dx = 0<br />
für alle Funktionen f ∈ C 2n+2 ([a, b]) verschw<strong>in</strong>det. In <strong>die</strong>sem Fall gilt:<br />
I(f) − I 2n+1 (f) = I(f) − I n (f) ⇒ I 2n+1 (f) = I n (f).<br />
und <strong>die</strong> resultierende Formel wäre von Ordnung 2n + 2 bei nur n + 1 Stützstellen. Es gilt<br />
für n < i < 2n + 2:<br />
∫ b i−1 ∏<br />
a<br />
(x − x j ) dx =<br />
∈P 2n+1<br />
j=0<br />
} {{ }<br />
∫ b n∏<br />
i−1 ∏<br />
(x − x j ) (x − x j ) dx.<br />
a<br />
j=0<br />
j=n+1<br />
} {{ } } {{ }<br />
∈P n+1<br />
P n<br />
Die Polynome aus dem zweiten Produkt<br />
⎧<br />
⎨<br />
2n∏<br />
⎩ 1, x − x n+1, (x − x n+1 )(x − x n+2 ), . . . ,<br />
j=n+1<br />
⎫<br />
⎬<br />
(x − x j )<br />
⎭ ,<br />
bilden e<strong>in</strong>e Basis des Polynomraums P n . Ziel ist es, <strong>die</strong> ersten Stützstellen x 0 , . . . , x n so<br />
zu positionieren, dass das Integral<br />
∫ b n∏<br />
(x − x i )q(x) dx = 0 ∀q ∈ P n (3.17)<br />
a<br />
i=0<br />
für alle q aus P n verschw<strong>in</strong>det. Es ist zunächst unklar, ob e<strong>in</strong>e solche Stützstellenwahl<br />
überhaupt möglich ist. Mit<br />
n∏<br />
p n+1 (x) = (x − x i ),<br />
schreibt sich <strong>die</strong> Aufgabe kurz:<br />
mit dem L 2 -Skalarprodukt:<br />
i=0<br />
Suche p n+1 ∈ P n+1 : (p n+1 , q) L 2 ([a,b]) = 0 ∀q ∈ P n ,<br />
(f, g) L 2 ([a,b]) :=<br />
∫ b<br />
a<br />
f(x) g(x) dx.<br />
Geometrisch bedeutet <strong>die</strong>se Aufgabe: suche e<strong>in</strong> Polynom p n+1 ∈ P n+1 , welches auf allen<br />
Polynomen q ∈ P n orthogonal steht.<br />
Bevor wir <strong>die</strong> allgeme<strong>in</strong>e Lösbarkeit <strong>die</strong>ser Aufgabe betrachten untersuchen wir zunächst<br />
als e<strong>in</strong>faches Beispiel <strong>die</strong> Fälle n = 0 sowie n = 1:<br />
82
3.5 <strong>Numerische</strong> Integration<br />
Beispiel 3.54 (Optimale Stützstellenwahl durch Orthogonalisierung). Wir wollen <strong>die</strong><br />
Polynome p 1 (x) = (x − x 0 ) sowie p 2 (x) = (x − x 0 )(x − x 1 ) bestimmen, so dass sie im<br />
L 2 -Skalarprodukt orthogonal auf allen Polynomen von Grad 0 bzw. 1 stehen. Ohne E<strong>in</strong>schränkung<br />
betrachten wir das Intervall [−1, 1]:<br />
Für n = 0 gilt mit q ≡ α 0 ∈ P 0<br />
also muss x 0 = 0 gelten.<br />
Im Fall n = 1 gilt mit q = α 0 + β 0 x:<br />
0 ! = (x − x 0 , α 0 ) L 2 ([−1,1]) = −2x 0 α 0 ∀α 0 ∈ R,<br />
0 ! = ((x − x 0 )(x − x 1 ), α 0 + β 0 x) L 2 [−1,1] = −2(x 0 + x 1 )<br />
3<br />
β 0 + 2(1 + 3x 0x 1 )<br />
α 0 ∀α 0 , β 0 ∈ R.<br />
3<br />
Aus α 0 = 1 sowie β 0 = 0 folgern wir x 0 = −x 1 und aus α 0 = 0 und β 0 = 1 folgt hiermit<br />
x 1/2 = ± 1 √<br />
3<br />
. Die optimalen Gewichte bestimmen wir gemäß Formel (3.14) zu:<br />
α 0 0 =<br />
∫ 1<br />
−1<br />
1 dx = 2, α 1 0 =<br />
∫ 1<br />
−1<br />
x − √ −1<br />
3<br />
√1<br />
3<br />
− √ −1 dx = 1, α1 1 =<br />
3<br />
und wir erhalten <strong>die</strong> beiden ersten Gauß-Quadraturformeln:<br />
(<br />
IG(f) 0 = 2f(0), IG(f) 1 = f −√ 1 ) ( ) 1<br />
+ f √3 .<br />
3<br />
∫ 1<br />
−1<br />
x − √ 1<br />
3<br />
√−1<br />
3<br />
− √ 1 dx = 1,<br />
3<br />
Die erste Formel ist gerade <strong>die</strong> Mittelpunktsregel, von der wir bereits <strong>die</strong> Ordnung zwei<br />
(also 2n + 2 = 2 · 0 + 2) kennen. Die zweite Formel hat <strong>die</strong> Ordnung 4, <strong>die</strong>s kann e<strong>in</strong>fach<br />
durch Integration der Monome 1, x, x 2 , x 3 überprüft werden.<br />
Gauß-Legendre-Quadratur<br />
In <strong>die</strong>sem Abschnitt werden allgeme<strong>in</strong>e Resultate zur Existenz und E<strong>in</strong>deutigkeit von<br />
Gauß’schen Quadraturregeln IG n (f) untersucht. Aus Konventionsgründen betrachtet man<br />
dabei das Intervall [−1, 1] (zur Transformation auf allgeme<strong>in</strong>e Intervalle sei auf Bemerkung<br />
3.71 verwiesen).<br />
Def<strong>in</strong>ition 3.55 (Gauß-Quadratur). E<strong>in</strong>e Quadraturformel zur Integration e<strong>in</strong>er Funktion<br />
f : [a, b] → R mit<br />
n∑<br />
IG(f) n = a k f(x k )<br />
k=0<br />
mit n+1 Quadratur-Stützstellen wird Gauß-Quadraturformel genannt, falls alle Polynome<br />
p ∈ P 2n+1 exakt <strong>in</strong>tegriert werden, d.h. falls gilt:<br />
∫ 1<br />
−1<br />
p(x) dx =<br />
n∑<br />
a k p(x k ) ∀p ∈ P 2n+1 .<br />
k=0<br />
83
3 Interpolation und Approximation<br />
Nach <strong>die</strong>ser Def<strong>in</strong>ition s<strong>in</strong>d <strong>die</strong> beiden Quadraturregeln aus dem vorherigen Beispiel Gauß’sche<br />
Quadraturformeln. Wir wollen im Folgenden <strong>die</strong> Existenz von Gauß’schen Quadraturregeln<br />
mit allgeme<strong>in</strong>er Ordnung, also für beliebige Stützstellenzahl n ∈ N untersuchen.<br />
Zunächst weisen wir nach, dass <strong>die</strong> Stützstellen der Gauß-Quadratur stets Nullstellen von<br />
orthogonalen Polynomen se<strong>in</strong> müssen:<br />
Satz 3.56. Es seien x 0 , . . . , x n paarweise verschiedene Quadratur-Stützstellen e<strong>in</strong>er Gauß-<br />
Quadraturformel I n (·). Dann gilt <strong>die</strong> Orthogonalitätsbeziehung<br />
∫ 1<br />
−1<br />
p n+1 (x)q(x) dx = 0 ∀q ∈ P n , p n+1 (x) := (x − x 0 ) · · · (x − x n ).<br />
Beweis: Das Polynom p n+1 q ∈ P 2n+1 wird von der Gauß-Regel exakt <strong>in</strong>tegriert. Aus<br />
p n+1 (x k ) = 0 folgt:<br />
∫ 1<br />
−1<br />
p n+1 (x)q(x) dx =<br />
n∑<br />
a k p n+1 (x k )q(x k ) = 0 ∀q ∈ P n .<br />
k=0<br />
Dies ist gerade <strong>die</strong> Orthogonalitätsbeziehung.<br />
□<br />
Falls e<strong>in</strong>e <strong>in</strong>terpolatorische Quadratur-Formel also <strong>die</strong> Gauß-Ordnung 2n + 2 besitzt, so<br />
müssen <strong>die</strong> Stützstellen <strong>die</strong> Nullstellen e<strong>in</strong>es orthogonalen Polynoms p n+1 ∈ P n+1 se<strong>in</strong>.<br />
Es bleibt, <strong>die</strong> Rückrichtung zu zeigen, dass also durch <strong>die</strong> Nullstellen von orthogonalen<br />
Polynomen auch immer Gauß-Regeln gegeben s<strong>in</strong>d:<br />
Satz 3.57. Es seien x 0 , . . . , x n paarweise verschiedene Quadratur-Stützstellen. Das Polynom<br />
n∏<br />
p n+1 (x) = (x − x j ),<br />
sei L 2 ([−1, 1])-orthogonal auf allen Polynomen q ∈ P n . Dann ist durch<br />
j=0<br />
n∑<br />
∫ 1 n∏<br />
IG(f) n x − x j<br />
= α k f(x k ), α k =<br />
dx,<br />
k=0<br />
−1 x<br />
j=0,j≠k k − x j<br />
e<strong>in</strong>e Gauß-Quadraturformel I n (f) zur Integration e<strong>in</strong>er Funktion f : [a, b] → R gegeben.<br />
Beweis: Zu gegebener Funktion f ∈ C 2n+2 ([−1, 1]) sei p n ∈ P n das Interpolationspolynom<br />
durch <strong>die</strong> Stützstellen x 0 , . . . , x n und p 2n+1 e<strong>in</strong> Interpolationspolynom durch <strong>die</strong><br />
Stützstellen x 0 , . . . , x n sowie durch weitere (verschiedene) Stützstellen x n+1 , . . . , x 2n+1 .<br />
Durch Integration <strong>die</strong>ses p 2n+1 ist e<strong>in</strong>e Quadraturformel der Ordnung 2n + 2 gegeben. Es<br />
84
3.5 <strong>Numerische</strong> Integration<br />
gilt wie <strong>in</strong> der E<strong>in</strong>leitung zur Gauß-Quadratur:<br />
2n+1 ∑<br />
i−1 ∏<br />
f[x 0 , . . . , x i ]<br />
p 2n+1 (x) =<br />
(x − x i )<br />
i=0<br />
j=0<br />
2n+1 ∑<br />
n∏<br />
i−1 ∏<br />
= p n (x) + f[x 0 , . . . , x i ] (x − x j ) (x − x j ) .<br />
i=n+1<br />
j=0<br />
j=n+1<br />
} {{ } } {{ }<br />
=p n+1 =q∈P n<br />
Aufgrund der angenommenen Orthogonalität von p n+1 auf q ∈ P n folgt, dass bereits durch<br />
Integration von p n e<strong>in</strong>e Quadraturformel der Ordnung 2n + 2, also e<strong>in</strong>e Gauß-Quadratur<br />
gegeben ist.<br />
□<br />
Diese beiden Sätze besagen, dass <strong>die</strong> Charakterisierung von Gauß’schen Quadraturregeln<br />
durch Nullstellen orthogonaler Polynome e<strong>in</strong>deutig ist. Zum Abschluss müssen wir noch<br />
zeigen, dass überhaupt orthogonale Polynome zu beliebiger Stützstellenzahl n existieren,<br />
und dass <strong>die</strong>se Polynome auch reelle Nullstellen haben!<br />
Satz 3.58. Es existiert e<strong>in</strong>e e<strong>in</strong>deutige Folge (p n ) n von Polynomen p n ∈ P n mit<br />
p 0 (x) ≡ 1,<br />
p n (x) = x n + r n−1 (x), n = 1, 2, . . . ,<br />
mit r n−1 ∈ P n−1 , <strong>die</strong> <strong>die</strong> Orthogonalitätsbeziehung<br />
∫ 1<br />
−1<br />
p n (x)p m (x) dx = 0, 0 ≤ m < n,<br />
erfüllen. Durch {p k , k = 0, . . . , n} ist dann e<strong>in</strong>e Orthogonalbasis des P n gegeben.<br />
Beweis: Die Aussage folgt unter Ausnutzung des Satzes von Gram-Schmidt für <strong>die</strong> Monombasis<br />
{1, x, x 2 , . . . } von P n+1 [a, b], Satz 4.51 Mit<br />
p 0 := 1, k = 1, . . . , n + 1<br />
k−1<br />
p k (x) := x k ∑<br />
−<br />
j=0<br />
(x k , p j )<br />
‖p j ‖ 2 p j(x),<br />
wird dann {p 0 , . . . , p n+1 } e<strong>in</strong> Orthogonalsystem <strong>in</strong> P n+1 [a, b], unter Ausnutzung des L 2 -<br />
Skalarprodukts<br />
(f, g) L 2 ([−1,1]) :=<br />
∫ 1<br />
−1<br />
f(x)g(x) dx.<br />
Denn vollständigen Beweis des Gram-Schmidt-Algorithmus werden wir später nachtragen.<br />
Die spezielle Version f<strong>in</strong>det der Leser <strong>in</strong> [9], S. 87.<br />
□<br />
85
3 Interpolation und Approximation<br />
Satz 3.59 (Nullstellen orthogonaler Polynome). Die bezüglich des L 2 ([−1, 1])-<br />
Skalarprodukts orthogonalen Polynome p n besitzen reelle, e<strong>in</strong>fache Nullstellen im Intervall<br />
(−1, 1).<br />
Beweis: Der Beweis wird über Widerspruchsargumente geführt. Es sei darauf h<strong>in</strong>gewiesen,<br />
dass p n e<strong>in</strong> reellwertiges Polynom (nach Standardvoraussetzung <strong>in</strong> <strong>die</strong>sem Kapitel) ist. Wir<br />
nehmen zunächst an, dass p n e<strong>in</strong>e reelle Nullstelle λ hat, <strong>die</strong> nicht im Intervall (−1, 1) liegt.<br />
Dazu def<strong>in</strong>ieren wir<br />
q(x) := p n(x)<br />
x − λ .<br />
Es gilt q ∈ P n−1 (da p n ∈ P n ) und deshalb ist q ⊥ p n . Dies impliziert<br />
0 = (q, p n ) =<br />
∫ 1<br />
−1<br />
p 2 n(x)<br />
x − λ dx.<br />
Dies ist aber e<strong>in</strong> Widerspruch, da p n (x) 2 auf [−1, 1] stets positiv ist (da p n reellwertig ist),<br />
noch <strong>die</strong> Nullfunktion ist, und darüber h<strong>in</strong>aus der Faktor (x − λ) −1 ke<strong>in</strong>en Vorzeichenwechsel<br />
haben kann, da λ außerhalb von [−1, 1] liegt. Deshalb kann p n ke<strong>in</strong>e Nullstelle<br />
außerhalb von (−1, 1) haben.<br />
Im zweiten Teil zeigen wir, dass im Intervall (−1, 1) nur e<strong>in</strong>fache und reelle Nullstellen liegen.<br />
Wir arbeiten wieder mit e<strong>in</strong>em Widerspruchsargument. Wir nehmen an, dass p n e<strong>in</strong>e<br />
Nullstelle λ besitzt, <strong>die</strong> entweder mehrfach oder nicht reell ist. In beiden Fällen def<strong>in</strong>ieren<br />
wir<br />
p n (x)<br />
q(x) :=<br />
(x − λ)(x − ¯λ) = p n(x)<br />
|x − λ| 2 .<br />
Das Polynom q(x) liegt <strong>in</strong> P n−2 . Der komplexwertige Fall ist hier deshalb e<strong>in</strong>geschlossen,<br />
da dann auch ¯λ e<strong>in</strong>e Nullstelle von p n ist. Daher gilt<br />
0 = (p n , q) =<br />
∫ 1<br />
−1<br />
p 2 n(x)<br />
|x − λ| 2 dx.<br />
Mit der gleichen Argumentation wir vorher erhalten wir, dass p n positiv <strong>in</strong> (−1, 1) und<br />
auch nicht identisch zur Nullfunktion ist. Daher s<strong>in</strong>d alle Nullstellen von p n e<strong>in</strong>fach und<br />
reell.<br />
□<br />
Mit <strong>die</strong>sen Vorarbeiten s<strong>in</strong>d wir <strong>in</strong> der Lage den Hauptsatz <strong>die</strong>ses Abschnitts zu aufzustellen:<br />
Satz 3.60 (Existenz und E<strong>in</strong>deutigkeit der Gaußquadratur). Für jedes n = 0, 1, . . . existiert<br />
e<strong>in</strong>e e<strong>in</strong>deutige Gaußquadraturformel der Ordnung 2n+2 zu n+1 paarweise verschiedenen<br />
Stützstellen, <strong>die</strong> als Nullstellen des orthogonalen Polynoms p n+1 ∈ P n+1 gegeben<br />
s<strong>in</strong>d.<br />
Beweis: Der Beweis besteht aus der Zusammenfassung der bisherigen Resultate:<br />
• Satz 3.58 liefert <strong>die</strong> e<strong>in</strong>deutige Existenz des orthogonalen Polynoms p n+1 ∈ P n+1 .<br />
86
3.5 <strong>Numerische</strong> Integration<br />
• Satz 3.59 garantiert, dass <strong>die</strong>ses Polynom n + 1 paarweise verschiedene, reelle Nullstellen<br />
besitzt.<br />
• Satz 3.57 besagt, dass durch Wahl der Nullstellen als Stützstellen bei entsprechenden<br />
Gewichten e<strong>in</strong>e Quadraturformel der Ordnung 2n + 2, also e<strong>in</strong>e Gauß-Quadratur<br />
gegeben ist, siehe Def<strong>in</strong>ition 3.55.<br />
• Schließlich besagt Satz 3.56, dass nur durch <strong>die</strong>se Wahl der Stützstellen e<strong>in</strong>e Gauß-<br />
Quadraturformel erzeugt wird, liefert also <strong>die</strong> E<strong>in</strong>deutigkeit des Konstruktionspr<strong>in</strong>zips.<br />
Damit ist der Beweis geführt.<br />
E<strong>in</strong> Nachteil der Newton-Cotes-Formeln s<strong>in</strong>d negative Gewichte ab n ≥ 7 für geschlossene<br />
Formeln. Im nächsten Resultat zeigen wir, dass <strong>die</strong> Gaußquadraturgewichte stets positiv<br />
s<strong>in</strong>d:<br />
Satz 3.61 (Gewichte der Gauß-Quadratur). Die Gewichte der Gaußquadratur s<strong>in</strong>d stets<br />
positiv.<br />
Beweis: Es sei durch I n G (f) = ∑ k α kf(x k ) <strong>die</strong> Gauß-Quadratur zu den n + 1 Stützstellen<br />
x 0 , . . . , x n gegeben. Für <strong>die</strong> Lagrangeschen Basispolynome gilt<br />
□<br />
L (n)<br />
i (x) = ∏ x − x j<br />
,<br />
x<br />
j≠i i − x j<br />
L (n)<br />
i (x k ) = δ ik .<br />
Es gilt L (n)<br />
i<br />
∈ P n , also wird auch (L (n)<br />
i ) 2 von der Gauss-Formel exakt <strong>in</strong>tegriert:<br />
0 <<br />
∫ 1<br />
−1<br />
(L (n)<br />
i (x)) 2 dx =<br />
n∑<br />
k=0<br />
α k (L (n)<br />
i (x k )) 2 = α k .<br />
Die Gauß’schen Quadraturformeln haben neben der hohen Ordnung den weiteren Vorteil,<br />
dass bei positiven Integranden ke<strong>in</strong>e Auslöschung auftreten wird. Sie s<strong>in</strong>d numerisch sehr<br />
stabil.<br />
Weiter haben wir gesehen, dass <strong>die</strong> <strong>die</strong> Newton-Cotes Formeln unter dem gleichen Mangel<br />
wie <strong>die</strong> Lagrangesche Interpolation leidet: falls <strong>die</strong> Ableitungen des Integranden zu schnell<br />
steigen, so muss ke<strong>in</strong>e Konvergenz bei steigendem Polynomgrad vorliegen. Im Fall der<br />
Gauss-Quadratur erhalten wir h<strong>in</strong>gegen Konvergenz des Integrals:<br />
Satz 3.62 (Konvergenz der Gauss-Quadratur). Es sei f ∈ C ∞ ([−1, 1]). Die Folge<br />
(I (n) (f)) n , n = 1, 2, . . . der Gaußformeln zur Berechnung von<br />
I(f) =<br />
∫ 1<br />
−1<br />
f(x) dx.<br />
□<br />
ist konvergent:<br />
I (n) (f) → I(f)<br />
(n → ∞).<br />
87
3 Interpolation und Approximation<br />
Beweis: Es gilt<br />
I (n) (f) =<br />
n∑<br />
i=0<br />
α (n)<br />
i f(x (n)<br />
i ), α (n)<br />
i > 0,<br />
n∑<br />
i=0<br />
α (n)<br />
i = 2.<br />
Es sei ɛ > 0. Nach dem Approximationssatz von Weierstraß gibt es e<strong>in</strong> p ∈ P m (wobei m<br />
h<strong>in</strong>reichend groß), so dass<br />
max<br />
−1≤x≤1 |f(x) − p(x)| ≤ ɛ 4 .<br />
Für h<strong>in</strong>reichend großes 2n + 2 > m gilt I(p) − IG n (p) = 0. Damit folgern wir<br />
|I(f) − I (n) (f)| ≤ |I(f − p)| + |I(p) − I (n) (p)| + |I (n) (p − f)| ≤ ɛ.<br />
} {{ } } {{ } } {{ }<br />
≤ ɛ 4 ·2<br />
=0<br />
≤ ɛ 4 ·2<br />
Da ɛ > 0 beliebig gewählt worden ist, muss I (n) (f) → I(f) für n → ∞ konvergieren.<br />
Schließlich beweisen wir noch e<strong>in</strong> optimales Resultat für den Fehler der Gauß-Quadratur:<br />
Satz 3.63 (Fehlerabschätzung der Gauß-Quadratur). Es sei f ∈ C 2n+2 [a, b]. Dann lautet<br />
<strong>die</strong> Restglieddarstellung zu e<strong>in</strong>er Gaußquadraturformel der Ordnung 2n + 2 :<br />
R (n) (f) = f (2n+2) (ξ)<br />
(2n + 2)!<br />
für ξ ∈ [a, b] und mit p n+1 = ∏ n<br />
j=0 (x − λ j ).<br />
∫ b<br />
a<br />
p 2 n+1(x) dx<br />
Beweis: Der Beweis erfolgt unter Zuhilfenahme der Hermite-Interpolation (siehe Satz<br />
3.16). Hiernach existiert e<strong>in</strong> Polynom h ∈ P 2n+1 zu e<strong>in</strong>er zu <strong>in</strong>terpolierenden Funktion<br />
f ∈ C 2n+2 [−1, 1], welches <strong>die</strong> Hermitesche Interpolationsaufgabe löst, mit den Interpolationsbed<strong>in</strong>gungen<br />
h(λ i ) = f(λ i ), h ′ (λ i ) = f ′ (λ i ), i = 0, . . . , n.<br />
Hierzu lautet <strong>die</strong> (bereits bekannte) Restglieddarstellung<br />
n∏<br />
f(x) − h(x) = f[λ 0 , λ 0 , . . . , λ n , λ n , x] (x − λ j ) 2 .<br />
j=0<br />
Wendet man nun <strong>die</strong> Gaußsche-Quadraturformel auf h(x) an, dann gilt zunächst I (n)<br />
G (h) =<br />
I(h), und weiter unter Anwendung des Mittelwertsatzes der Integralrechnung<br />
I(f) − I (n)<br />
G<br />
(f) = I(f − h) − I(n)<br />
G<br />
(f − h)<br />
∫ 1<br />
n∏<br />
n∑<br />
= f[λ 0 , λ 0 , . . . , λ n , λ n , x] (x − λ j ) 2 dx − a i [f(λ i ) − h(λ i )]<br />
−1<br />
j=0<br />
i=0<br />
= f (2n+2) ∫<br />
(ξ) 1 n∏<br />
(x − λ j ) 2 dx.<br />
2n + 2)! −1<br />
j=0<br />
□<br />
88
3.5 <strong>Numerische</strong> Integration<br />
Der Mittelwertsatz darf hier angewendet werden, da stets ∏ n<br />
j=0 (x − λ j ) 2 ≥ 0. Der Term<br />
[f(λ i ) − h(λ i )] = 0, da hier <strong>die</strong> Interpolationsbed<strong>in</strong>gungen ausgenutzt worden s<strong>in</strong>d. Damit<br />
ist alles gezeigt.<br />
□<br />
Bemerkung 3.64 (Zur Regularität <strong>in</strong> der Fehlerformel). Es bleibt zu bemerken, dass<br />
zur Gültigkeit der Fehlerabschätzung 3.63 e<strong>in</strong>e vergleichsweise hohe Regularität an <strong>die</strong><br />
Funktion f gestellt wird: f ∈ C 2n+2 [a, b]. Um Aussagen über <strong>die</strong> Fehlerentwicklung bei<br />
ger<strong>in</strong>gerer Regularität zu erhalten, sollte man wieder zu summierten Formeln (siehe Spl<strong>in</strong>es<br />
und stückweise <strong>in</strong>terpolatorische Quadratur) übergehen.<br />
Nachdem wir nun das theoretische Fundament der Gaußquadratur bereitgestellt haben<br />
verbleibt im f<strong>in</strong>alen Schritt <strong>die</strong> explizite Angabe der Stützstellen sowie der (Quadratur)-<br />
Gewichte. Hierzu nutzen wir <strong>die</strong> Legendre-Polynome, <strong>die</strong> grundsätzlich bei orthogonalen<br />
Polynomen e<strong>in</strong>e herausragende Rolle spielen.<br />
Legendre-Polynome<br />
Satz 3.65 (Legendre-Polynome). Die Legendre-Polynome L n ∈ P n mit<br />
d n<br />
L n (x) := 1<br />
2 n n! dx n (x2 − 1) n ,<br />
s<strong>in</strong>d <strong>die</strong> bezüglich des L 2 ([−1, 1])-Skalarprodukt orthogonalisierten Monome {1, x, x 2 , . . . }.<br />
Beweis: Zunächst gilt L n ∈ P n , denn n-fache Ableitung von x 2n liefert das höchste Monom<br />
x n . Die Orthogonalitätseigenschaft folgt durch mehrfache Anwendung von partieller<br />
Integration aus Ausnutzen der Tatsache, dass der Term (x 2 − 1) n an den beiden Intervallenden<br />
n-fache Nullstellen besitzt.<br />
□<br />
Mit den Legendre-Polynomen existiert e<strong>in</strong>e explizite Darstellung für <strong>die</strong> orthogonalen Polynome<br />
bezüglich des L 2 ([−1, 1])-Skalarprodukts. Diese Polynome unterscheiden sich von<br />
den Polynomen aus Satz 3.58 lediglich durch <strong>die</strong> Normierung. Für <strong>die</strong> orthogonalen Polynome<br />
p n (x) aus Satz 3.58 gilt, dass der Koeffizient vor dem höchsten Monom 1 ist. Für<br />
<strong>die</strong> Legendre-Polynome gilt <strong>die</strong> Normierungseigenschaft L n (1) = 1.<br />
Die ersten Legendre-Polynome lauten:<br />
L 0 (x) = 1,<br />
L 1 (x) = x, x 0 = 0<br />
L 2 (x) = 1 1<br />
2 (3x2 − 1), x 0/1 = ±√<br />
3 ,<br />
L 3 (x) = 1 √ 3<br />
2 (5x3 − 3x), x 0 = 0, x 1/2 = ±<br />
5<br />
L 4 (x) = 1 8 (35x4 − 30x 2 + 3), x 0/1 ≈ ±0.861136, x 2/3 ≈ ±0.339981<br />
89
3 Interpolation und Approximation<br />
Für <strong>die</strong> Nullstellen (also <strong>die</strong> Quadratur-Stützstellen) existiert ke<strong>in</strong>e geschlossene Formel.<br />
Im Fall n > 3 können <strong>die</strong> Nullstellen nur noch numerisch berechnet werden.<br />
Die entsprechenden Quadraturgewichte können e<strong>in</strong>fach über <strong>die</strong> Formel (3.14) berechnet<br />
werden<br />
∫ 1 n∏ x − x j<br />
α k =<br />
dx.<br />
x k − x j<br />
−1<br />
j=0<br />
In Tabelle 3.3 fassen wir <strong>die</strong> ersten wichtigen Gauß-Legendre Regeln zusammen.<br />
n − 1 x i α i Ordnung<br />
0 0 2 2<br />
1 ±√ 1<br />
3<br />
1 4<br />
2 0<br />
8<br />
±√ 3<br />
5<br />
9<br />
5<br />
9<br />
6<br />
3 ±0.8611363116 0.347854845<br />
±0.3399810436 0.652145154 8<br />
4 0 0.568888889<br />
±0.9061798459 0.236926885<br />
±0.5384693101 0.478628670 10<br />
Tabelle 3.3: E<strong>in</strong>ige Gauß-Legendre Quadratur-Regeln.<br />
Zuletzt sollte e<strong>in</strong> (kle<strong>in</strong>er) Nachteil der Gauß-Legendre Formeln erwähnt werden. Für jedes<br />
Legendre-Polynom L n (x) erhalten wir neue Stützstellen x 0 , . . . , x n , <strong>die</strong> im Allg. mit den<br />
bereits berechneten Stützstellen der Polynome L n (x), n = 0, . . . , n − 1 nicht übere<strong>in</strong>stimmen.<br />
Gauß-Tschebyscheff Quadratur<br />
Die Gauß’schen Quadraturformeln s<strong>in</strong>d so konstruiert, dass Polynome bis zu e<strong>in</strong>em bestimmten<br />
Grad exakt <strong>in</strong>tegriert werden können. Oft s<strong>in</strong>d h<strong>in</strong>gegen <strong>die</strong> zu <strong>in</strong>tegrierenden<br />
Funktionen ke<strong>in</strong>e Polynome, man denke z.B. an<br />
f(x) = √ 1 − x 2 ,<br />
auf dem Intervall [−1, 1]. Die Ableitungen <strong>die</strong>ser Funktion haben an den Intervallenden<br />
S<strong>in</strong>gularitäten. Die e<strong>in</strong>fache Gauß-Quadratur ist zur Approximation von ∫ 1<br />
−1<br />
f(x) dx nicht<br />
geeignet, da hohe Regularität vorausgesetzt wird.<br />
Die Idee der Gauß-Quadratur kann nun verallgeme<strong>in</strong>ert werden. Dazu sollen Quadraturregeln<br />
konstruiert werden, welche Funktionen nach der Art<br />
p ω (x) = ω(x)p(x),<br />
90
3.5 <strong>Numerische</strong> Integration<br />
mit e<strong>in</strong>em Polynom p(x) möglichst exakt <strong>in</strong>tegrieren. Die Funktion ω(x) nennen wir Gewichtsfunktion.<br />
Diese Gewichtsfunktion fließt nun <strong>in</strong> das Konstruktionspr<strong>in</strong>zip von speziellen<br />
Gauß-Quadraturformeln e<strong>in</strong>. Zunächst formulieren wir den hierfür zentralen Satz:<br />
Satz 3.66 (Gewichtetes Skalarprodukt). Durch ω ∈ L ∞ ([−1, 1]) sei e<strong>in</strong>e positive<br />
ω(x) > 0<br />
fast überall,<br />
Gewichtsfunktion gegeben. Dann ist durch<br />
e<strong>in</strong> Skalarprodukt gegeben.<br />
Beweis: Übung!<br />
(f, g) ω :=<br />
∫ 1<br />
−1<br />
ω(x) f(x) g(x) dx,<br />
Die bisher bewiesenen Sätze 3.56, 3.57, 3.58, 3.59 sowie 3.61 gelten alle auch bei Verwendung<br />
<strong>die</strong>ses gewichteten Skalarprodukts. Das Übertragen der Beweise überlassen wir als<br />
Übung. Die Gauß-Tschebyscheff Quadratur wählt als spezielles Gewicht <strong>die</strong> Funktion<br />
ω(x) =<br />
1<br />
√<br />
1 − x 2 .<br />
Diese Funktion legt e<strong>in</strong> starkes Gewicht auf <strong>die</strong> beiden Intervallenden. Es gilt der folgende<br />
zunächst erstaunliche Satz:<br />
Satz 3.67 (Tschebyscheff-Polynome). Die Tschebyscheff-Polynome T n ∈ P n mit<br />
T n (x) := cos(n arccos x), −1 ≤ x ≤ 1,<br />
s<strong>in</strong>d <strong>die</strong> bezüglich des (·, ·) ω Skalarprodukts orthogonalisierten Monome {1, x, . . . } mit der<br />
Gewichtsfunktion<br />
1<br />
ω(x) = √ . 1 − x 2<br />
Die n paarweise verschiedenen Nullstellen des n-ten Tschebyscheff-Polynoms T n (x) s<strong>in</strong>d<br />
gegeben durch<br />
( ) 2k + 1<br />
x k = cos<br />
2n π , k = 0, . . . , n − 1.<br />
Beweis: (i) Wir müssen zunächst nachweisen, dass durch T n (x) überhaupt Polynome<br />
gegeben s<strong>in</strong>d. Wir führen den Beweis <strong>in</strong>duktiv durch Herleiten e<strong>in</strong>er Iterationsformel. Es<br />
gilt:<br />
T 0 (x) = 1, T 1 (x) = x,<br />
also <strong>in</strong>sbesondere T 0 ∈ P 0 und T 1 ∈ P 1 . Aus dem Additionstheorem für <strong>die</strong> Kos<strong>in</strong>usfunktion<br />
cos((n + 1)y) + cos((n − 1)y) = 2 cos(nt) cos(y),<br />
□<br />
91
3 Interpolation und Approximation<br />
erhalten wir mit y = arccos x e<strong>in</strong>e zweistufige Rekursionsformel:<br />
T n+1 (x) + T n−1 (x) = 2xT n (x) ⇒ T n+1 (x) = 2xT n (x) − T n−1 (x).<br />
Hieraus schließen wir <strong>in</strong>duktiv T n ∈ P n mit<br />
T n (x) = 2 n−1 x n + . . . .<br />
(ii) Wir weisen nun <strong>die</strong> Orthogonalität der Tschebyscheff-Polynome bzgl. des gewichteten<br />
Skalarprodukts auf [−1, 1] nach. Mit x = cos(t) gilt unter Ausnutzung der Orthogonalität<br />
trigonometrischer Polynome:<br />
∫ 1<br />
−1<br />
T n (x)T m (x)<br />
√<br />
1 − x 2<br />
dx =<br />
∫ π<br />
0<br />
⎧<br />
⎪⎨ π, n = m = 0,<br />
cos(nt) cos(mt) dt =<br />
π<br />
2<br />
⎪⎩<br />
, n = m > 0,<br />
0, n ≠ m.<br />
(iii) Die Nullstellen der Tschebyscheff-Polynome können elementar berechnet werden. Diese<br />
Nullstellen s<strong>in</strong>d <strong>die</strong> Stützstellen der entsprechenden Quadratur.<br />
□<br />
Zum Aufstellen von konkreten Gauß-Tschebyscheff-Quadraturformeln benötigen wir noch<br />
<strong>die</strong> entsprechenden Quadraturgewichte. Da <strong>die</strong> Tschebyscheff-Polynome gewichtet mit ω<br />
exakt <strong>in</strong>tegriert werden müssen gilt:<br />
Es folgt:<br />
n−1 ∑<br />
k=0<br />
n−1 ∑<br />
k=0<br />
a k T m (x k ) =<br />
a k cos<br />
∫ 1<br />
−1<br />
T m (x)<br />
√ dx, m = 0, . . . , n − 1.<br />
1 − x 2<br />
{<br />
(2k + 1)m π, m = 0,<br />
π =<br />
2n 0, m = 1, . . . , n − 1.<br />
Mit Hilfe von trignometrischen Argumenten (siehe [8]) erhalten wir <strong>die</strong> Lösung des l<strong>in</strong>earen<br />
Gleichungssystems:<br />
a k = π , k = 0, . . . , n − 1. (3.18)<br />
n<br />
Damit haben wir alle Komponenten gesammelt, um <strong>die</strong> Gauß-Tschebyscheff Formel <strong>in</strong>klusive<br />
Restglied anzugeben:<br />
Verfahren 3.68 (Gauß-Tschebyscheff-Formel). Die Gauß-Tschebyscheff-Formel vom<br />
Grad 2n mit Restglied lautet<br />
∫ 1<br />
mit ξ ∈ [−1, 1].<br />
−1<br />
f(x)<br />
√ dx = π n−1 ∑<br />
f<br />
1 − x 2 n<br />
k=0<br />
(<br />
cos 2k + 1<br />
2n π )<br />
+<br />
π<br />
2 2n−1 (2n)! f (2n) (ξ)<br />
92
3.5 <strong>Numerische</strong> Integration<br />
Beweis: Die Quadraturformel folgt sofort aus E<strong>in</strong>setzen der Stützstellen und Gewichte <strong>in</strong><br />
<strong>die</strong> allgeme<strong>in</strong>e Def<strong>in</strong>ition e<strong>in</strong>er Quadraturformel. Die Restglieddarstellung folgt aus Satz<br />
3.63. □<br />
Der große Vorteil der Gauß-Tschebyscheff Quadratur ist <strong>die</strong> e<strong>in</strong>fache Möglichkeit, <strong>die</strong> Quadraturformeln<br />
für beliebige Ordnung explizit aufzustellen. Stützstellen sowie Gewichte s<strong>in</strong>d<br />
e<strong>in</strong>fach zu bestimmen.<br />
Beispiel 3.69. Wir verwenden <strong>die</strong> Gauss-Tschebyscheff-Quadratur zur Berechnung des<br />
Integrals (halber Kreis<strong>in</strong>halt)<br />
I(f) =<br />
∫ 1<br />
−1<br />
√<br />
1 − x 2 dx =<br />
∫ 1<br />
−1<br />
ω(x) (1 − x 2 ) dx,<br />
} {{ }<br />
=:f(x)<br />
mit dem Gauss-Tschebyscheff-Gewicht ω(x) und (1 − x 2 ) ∈ P 2 . Aufgrund von P 2 wählen<br />
wir n = 2 im Verfahren 3.68 zur exakten Berechnung des Integrals. D.h.<br />
∫ 1<br />
−1<br />
ω(x)f(x) dx = π 2<br />
1∑<br />
f<br />
k=0<br />
(<br />
cos 2k + 1<br />
2 · 2 π )<br />
+ π<br />
2 · (2)! f (2) (ξ)<br />
mit ξ ∈ (−1, 1) und den Quadraturgewichten a 0 = a 1 = π 2<br />
Unter Vernachlässigung des Restglieds erhalten wir also<br />
(berechnet mit Formel 3.18).<br />
∫ 1 √ ∫ 1<br />
I(f) = 1 − x 2 dx = ω(x)(1 − x 2 ) dx<br />
−1<br />
−1<br />
= π 1∑<br />
(<br />
1 − ( cos 2k + 1 π ) )<br />
2<br />
2<br />
4<br />
k=0<br />
= π (( ( ) ) (<br />
1<br />
2 ( ) ))<br />
3<br />
2<br />
1 − cos<br />
2<br />
4 π + 1 − cos<br />
4 π<br />
= π ((1 − 0.5) + (1 − 0.5))<br />
2<br />
= π 2 .<br />
Gauß-Quadratur mit beliebigen Gewichten ω(x) > 0<br />
Es verbleibt <strong>die</strong> Existenz, E<strong>in</strong>deutigkeit und Fehlerabschätzung für <strong>die</strong> Gauß-Formeln zu<br />
zeigen, deren Gewicht ω(x) ≠ 1 ≥ 0 ist. In <strong>die</strong>se Kategorie fällt <strong>in</strong>sbesondere <strong>die</strong> Gauß-<br />
Tschebyscheff Quadratur mit<br />
1<br />
ω(x) = √ . 1 − x 2<br />
Hierzu gilt:<br />
93
3 Interpolation und Approximation<br />
Satz 3.70 (Existenz, E<strong>in</strong>deutigkeit und Fehlerabschätzung). Es sei w(x) ≥ 0 fast überall.<br />
Dann lassen sich mit Hilfe des gewichteten Skalarprodukts<br />
(f, g) w :=<br />
∫ b<br />
a<br />
ω(x)f(x)g(x) dx, w(x) > 0.<br />
der Satz 3.60 (<strong>in</strong>klusive der dar<strong>in</strong> verwendeten Sätze) und Satz 3.62 analog beweisen.<br />
Beweis: Nach Verifizierung der Skalarprodukteigenschaften von (f, g) w , übertrage man<br />
<strong>die</strong> Beweise der Sätze 3.60 und 3.62 unter H<strong>in</strong>zunahme der Gewichtsfunktion. □<br />
Bemerkung 3.71 (Normierung des Integrations<strong>in</strong>tervalls). Die Gauß-Quadratur mit<br />
Legendre-Polynomen und Tschebyscheff Polynomen ist lediglich auf dem Intervall [−1, 1]<br />
def<strong>in</strong>iert. Allerd<strong>in</strong>gs bedeutet <strong>die</strong>s ke<strong>in</strong>e E<strong>in</strong>schränkung für den allgeme<strong>in</strong>en Fall [a, b].<br />
Jedes endlich-dimensionale Intervall [a, b] kann durch <strong>die</strong> Transformation<br />
x = 2 t − a − 1, t ∈ [a, b]<br />
b − a<br />
<strong>in</strong> [−1, 1] überführt werden. Mit der Wahl x ∈ [−1, 1] wird dann <strong>die</strong> Integration <strong>in</strong> [−1, 1]<br />
durchgeführt, um anschließend durch <strong>die</strong> Rücktransformation<br />
t =<br />
(x + 1)(b − a)<br />
2<br />
<strong>die</strong> (berechneten) Werte für t ∈ [a, b] zu erhalten.<br />
+ a, x ∈ [−1, 1]<br />
Korollar 3.72 (Transformation des Integrations<strong>in</strong>tervalls). Mit den Voraussetzungen aus<br />
Bemerkung 3.71 gilt für das (exakte) Integral<br />
I(f) =<br />
∫ b<br />
a<br />
f(t) dt = b − a<br />
2<br />
∫ 1<br />
−1<br />
[ (x + 1)(b − a)<br />
f<br />
2<br />
Die Quadraturformel zur Integration von I(f) lautet dann<br />
I n (f) = b − a<br />
2<br />
n∑<br />
[ (xk + 1)(b − a)<br />
a k f<br />
2<br />
k=1<br />
]<br />
+ a dx.<br />
]<br />
+ a .<br />
3.5.4 Romberg-Quadratur<br />
Die Idee der Richardson Extrapolation <strong>in</strong> Abschnitt 3.4, Approximationsprozesse hoher<br />
Ordnung zu erzielen, <strong>die</strong> auf Basismethoden niedriger Ordnung basieren, wird hier auf<br />
<strong>die</strong> numerische Quadratur angewendet. Konkret werden wir <strong>die</strong> summierte Trapezregel<br />
zur Extrapolation nutzen. Die Trapezregel gehört zu den sehr e<strong>in</strong>fachen Verfahren mit<br />
niedriger Ordnung. Wir fassen <strong>die</strong> wesentlichen Ergebnisse aus Abschnitt 3.5.2 zusammen.<br />
94
3.5 <strong>Numerische</strong> Integration<br />
Auf e<strong>in</strong>er gleichmäßigen Zerlegung des Intervalls [a, b] <strong>in</strong> N Teil<strong>in</strong>tervalle mit Schrittweite<br />
h = 1/N ist <strong>die</strong> summierte Trapezregel zur Approximation von ∫ b<br />
a<br />
f dx gegeben durch:<br />
⎛<br />
⎞<br />
I h (f) = h ⎝ 1 N−1<br />
2 f(a) + ∑<br />
f(x j ) + 1 2 f(b) ⎠ , x j := a + jh,<br />
j=1<br />
und liefert im Falle f ∈ C 2 ([a, b]) <strong>die</strong> Fehlerabschätzung:<br />
I(f) − I h (f) = b − a<br />
12 h2 f (2) (ξ),<br />
mit e<strong>in</strong>er Zwischenstelle ξ ∈ [a, b]. Um <strong>die</strong> Extrapolationsmethode erfolgreich anwenden<br />
zu können brauchen wir Kenntnis über <strong>die</strong> weitere Fehlerentwicklung der Trapezregel. Die<br />
Basis hierzu ist <strong>die</strong> Euler-Maclaur<strong>in</strong>sche Summenformel wurde, <strong>die</strong> e<strong>in</strong>e Entwicklung des<br />
Fehlers <strong>in</strong> geraden Potenzen von h zeigt:<br />
Satz 3.73 (Euler-Maclaur<strong>in</strong>sche Summenformel). Falls f 2m+2 [a, b], dann gilt <strong>die</strong> Euler-<br />
Maclaur<strong>in</strong>sche Summenformel<br />
I(f) − I h (f) =<br />
m∑<br />
k=1<br />
h 2k B (<br />
)<br />
2k<br />
f (2k−1) (b) − f (2k−1) (a) + h 2m+2 b − a<br />
(2k)!<br />
(2m − 2)! B 2m+2f (2m+2) (ξ),<br />
mit ξ ∈ [a, b] und den Bernoulli-Zahlen B 2k .<br />
Beweis: Sem<strong>in</strong>arthema!<br />
□<br />
Die Bernoulli-Zahlen s<strong>in</strong>d def<strong>in</strong>iert als <strong>die</strong> Koeffizienten der Taylorreihendarstellung von<br />
x<br />
∞<br />
e x − 1 = ∑<br />
k=0<br />
und genügen der Rekursionsformel<br />
B k<br />
k! xk = 1 − 1 2 x + 1 x 2<br />
6 2! − 1 x 4<br />
30 4! + 1 x 6<br />
42 6! + . . . ,<br />
B 0 = 0,<br />
k−1 ∑ k!<br />
B k = −<br />
j!(k − j + 1)! B j, k = 1, 2, . . . .<br />
j=0<br />
Die ersten Bernoulli-Zahlen s<strong>in</strong>d gegeben als:<br />
1, − 1 2 , 1 6 , 0, − 1<br />
30 , 0, 1 42 , 0, − 1<br />
30 , . . . .<br />
Ausgenommen B 1 = − 1 2 gilt für jede zweite (ungerader Index) Bernoulli-Zahl B 2k+1 = 0.<br />
Ansonsten folgen sie ke<strong>in</strong>em erkennbaren Gesetz Für große k wachsen <strong>die</strong> Bernoulli-Zahlen<br />
sehr schnell an und verhalten sich asymptotisch wie<br />
|B 2k | ∼ 2(2k)!(2π) −2k , k → ∞.<br />
95
3 Interpolation und Approximation<br />
Die Euler-Maclaur<strong>in</strong>sche Summenformel besagt, dass <strong>die</strong> Trapezregel e<strong>in</strong>e Entwicklung <strong>in</strong><br />
geraden Potenzen von h besitzt. Daher eignet sie sich gleich <strong>in</strong> zweifacher H<strong>in</strong>sicht optimal<br />
zur Extrapolation: aufgrund der quadratischen Fehlerentwicklung gew<strong>in</strong>nen wir <strong>in</strong> jedem<br />
Extrapolationsschritt zwei Ordnungen Genauigkeit und aufgrund der Stützstellenwahl an<br />
den Enden der Teil<strong>in</strong>tervalle x j−1 und x j können bereits berechnete Werte f(x j ) zu e<strong>in</strong>er<br />
Schrittweite h bei der nächst fe<strong>in</strong>eren Approximation zu h/2 weiter verwendet werden.<br />
Zur Approximation von<br />
a(0) ≈<br />
∫ b<br />
a<br />
f(x) dx,<br />
⎛<br />
⎞<br />
a(h) := I h (f) = h ⎝ 1 N−1<br />
2 f(a) + ∑<br />
f(x j ) + 1 2 f(b) ⎠ ,<br />
verwenden wir das Extrapolationspr<strong>in</strong>zip aus Abschnitt 3.4:<br />
j=1<br />
Verfahren 3.74 (Romberg-Quadratur).<br />
1) Berechne für e<strong>in</strong>e Folge von Schrittweiten (h k ) k∈N mit<br />
h k+1<br />
h k<br />
≤ ρ < 1,<br />
<strong>die</strong> Approximationen<br />
a(h k ), k = 0, . . . , m.<br />
2) Extrapoliere <strong>die</strong> Werte (h 2 k , a(h k)), k = 0, . . . , m mit Polynomen <strong>in</strong> h 2 .<br />
Als Schrittweitenfolge kann mit e<strong>in</strong>em h > 0 <strong>die</strong> e<strong>in</strong>fache Vorschrift<br />
h k = 2 −k h,<br />
verwendet werden. Diese Folge wird Romberg-Folge genannt und hat den Vorteil, dass<br />
bereits berechnete Stützstellen weiter verwendet werden können. Der Nachteil <strong>die</strong>ser Folge<br />
ist das schnelle Wachstum der Anzahl der Stützstellen. Die Extrapolation selbst wird mit<br />
dem modifizierten Neville-Schema 3.33 durchgeführt.<br />
Die Diagonalelemente a k,k s<strong>in</strong>d gerade <strong>die</strong> Näherungen zu a(0). Basierend auf Satz 3.32<br />
zur allgeme<strong>in</strong>en Richardson-Extrapolation erhalten wir <strong>die</strong> Fehlerabschätzung:<br />
Satz 3.75 (Romberg-Quadratur). Es sei f 2m+2 [a, b] sowie h > 0 gegeben. Das Romberg-<br />
Verfahren zur Schrittweitenfolge h k = 2 −k h, k = 0, . . . , m liefert nach m Extrapolationsschritten<br />
<strong>die</strong> Approximation:<br />
I(f) − a m,m = O(h 2m+2 ).<br />
Beweis: Der Beweis folgt durch Komb<strong>in</strong>ation von Satz 3.32 über <strong>die</strong> Richardson-Extrapolation<br />
mit der Euler-Maclaur<strong>in</strong>schen Summenformel aus Satz 3.73.<br />
□<br />
96
3.5 <strong>Numerische</strong> Integration<br />
Bemerkung 3.76. Anstatt der Romberg-Folge h k = 2 −k h kann auch mit der Burlisch-<br />
Folge<br />
⎧<br />
⎨h · 2 − k 2 k gerade<br />
h k =<br />
k−1<br />
⎩ h2− 2 k ungerade<br />
3<br />
gearbeitet werden, da <strong>die</strong>se wesentlich weniger Funktionsauswertungen benötigt. Bei h = 1<br />
s<strong>in</strong>d <strong>die</strong> ersten Folgenglieder gegeben durch:<br />
1<br />
2 , 1 3 , 1 4 , 1 6 , 1 8 , 1<br />
12 , . . . ,<br />
Integration periodischer Funktionen<br />
Im Falle periodischer Funktionen, d.h. es sei f 2m+2 (−∞, ∞) mit dem Perioden<strong>in</strong>tervall<br />
[a, b] und<br />
f (2k−1) (a) = f (2k−1) (b), k = 1, 2, . . .<br />
kann <strong>die</strong> Euler-Maclaur<strong>in</strong>sche Summenformel entscheidend vere<strong>in</strong>facht werden. Aus<br />
I(f) − I h (f) =<br />
m∑<br />
k=1<br />
h 2k B (<br />
)<br />
2k<br />
f (2k−1) (b) − f (2k−1) (a) + h 2m+2 b − a<br />
(2k)!<br />
(2m − 2)! B 2m+2f (2m+2) (ξ),<br />
mit<br />
folgt dann<br />
⎛<br />
⎞<br />
I h (f) = h ⎝ 1 N−1<br />
2 f(a) + ∑<br />
f(x j ) + 1 2 f(b) ⎠ ,<br />
j=1<br />
x j := a + jh,<br />
mit<br />
I(f) − I h (f) = h 2m+2 b − a<br />
(2m − 2)! B 2m+2f (2m+2) (ξ) = O(h 2m+2 ),<br />
⎛<br />
⎞ ⎛<br />
I h (f) = h ⎝ 1 N−1<br />
2 f(a) + ∑<br />
f(x j ) + 1 2 f(b) ⎠ = h ⎝f(a) +<br />
j=1<br />
N−1 ∑<br />
j=1<br />
⎞ ⎛ ⎞<br />
N−1 ∑<br />
f(x j ) ⎠ = h ⎝ f(x j ) ⎠<br />
mit x j := a + jh. Die summierte Trapezregel vere<strong>in</strong>facht sich dadurch zur summierten<br />
l<strong>in</strong>ksseitigen Boxregel.<br />
Falls f ∈ C ∞ (−∞, ∞), dann konvergiert <strong>die</strong> summierte Trapezregel (d.h. bei [a, b]-periodischen<br />
Funktionen, <strong>die</strong> summierte Boxregel) schneller gegen den Integralwert, für h → 0, als jede<br />
andere Quadraturregel.<br />
j=0<br />
97
3 Interpolation und Approximation<br />
3.6 Approximationstheorie<br />
Bisher haben wir uns im Wesentlichen mit der Interpolation beschäftigt. Die Approximation<br />
ist weiter gefasst: wir suchen e<strong>in</strong>e e<strong>in</strong>fache Funktion p ∈ P (dabei ist der Funktionenraum<br />
P meist wieder der Raum der Polynome), welche <strong>die</strong> beste Approximation zu<br />
gegebener Funktion f oder zu gegebenen diskreten Daten y i ∈ R darstellt. Der Begriff<br />
beste Approximation ist dabei weit gefasst und wir bezeichnen ihn mit dem m<strong>in</strong>imalen<br />
Abstand von p zu f (oder zu den diskreten Daten). Den Abstand zwischen Funktionen<br />
können wir <strong>in</strong> Normen messen und <strong>die</strong> allgeme<strong>in</strong>e Approximationsaufgabe besteht nun im<br />
Auff<strong>in</strong>den von p ∈ P , so dass<br />
‖f − p‖ = m<strong>in</strong> ‖f − q‖.<br />
q∈P<br />
Die Wahl der Norm ‖ · ‖ ist dabei zunächst beliebig. Es stellt sich jedoch heraus, dass <strong>die</strong><br />
mathematische Approximationsaufgabe je nach betrachteter Norm e<strong>in</strong>er sehr unterschiedliche<br />
Vorgehensweise bedarf. E<strong>in</strong>e spezielle Approximationsaufgabe haben wir bereits kennengelernt:<br />
Bemerkung 3.77 (Lagrange-Interpolation als Approximation). Angenommen, <strong>in</strong> den<br />
n + 1 paarweise verschiedenen Stützstellen x 0 , x 1 , . . . , x n soll für das Polynom p n ∈ P n<br />
gelten p(x i ) = f(x i ), dann def<strong>in</strong>ieren wir <strong>die</strong> Norm:<br />
|p| n := max<br />
i=0,...,n |p(x i)|.<br />
Man kann zeigen, dass <strong>die</strong>s wirklich e<strong>in</strong>e Norm auf dem Polynomraum P n ist. Die Approximationsaufgabe:<br />
suche p ∈ P n , so dass<br />
|p − f| n = m<strong>in</strong><br />
q∈P n<br />
|q − f| n ,<br />
ist gerade <strong>die</strong> Lagrange-Interpolationsaufgabe.<br />
In <strong>die</strong>sem Abschnitt werden wir uns h<strong>in</strong>gegen hauptsächlich mit der L 2 -Norm<br />
sowie mit der Maximumsnorm<br />
( ∫ b<br />
‖f‖ L 2 ([a,b] := f(x) 2 dx<br />
a<br />
‖f‖ ∞ := max<br />
x∈[a,b] |f(x)|,<br />
befassen. Die beste Approximation <strong>in</strong> der L 2 -Norm taucht <strong>in</strong> der Analysis <strong>in</strong> Form der<br />
Fourier-Entwicklung <strong>in</strong> trigonometrischen Polynomen auf, Konvergenz wird hier bezüglich<br />
der L 2 -Norm<br />
‖f − f n ‖ L 2 ([a,b]) → 0 (n → ∞),<br />
) 1<br />
2<br />
,<br />
98
3.6 Approximationstheorie<br />
gezeigt. Die Approximation bezüglich der Maximumsnorm ist für <strong>die</strong> praktische Anwendung<br />
von großer Bedeutung: denn e<strong>in</strong>e Approximation, <strong>die</strong> den Fehler gleichmäßig auf<br />
dem gesamten Intervall [a, b] unter Kontrolle hält, schließt <strong>die</strong> typischen Oszillationen der<br />
Lagrange-Interpolation an den Intervallenden (siehe Beispiel 3.15) systematisch aus. Es<br />
zeigt sich allerd<strong>in</strong>gs, das gerade <strong>die</strong>ser für <strong>die</strong> Anwendung wichtige Approximationsbegriff<br />
mathematisch schwer zu greifen ist.<br />
3.6.1 Gauss-Approximation: Beste Approximation <strong>in</strong> der L 2 -Norm<br />
Zunächst betrachten wir <strong>die</strong> beste Approximation e<strong>in</strong>er Funktion f : [a, b] → R mit<br />
Polynomen p ∈ P bezüglich der L 2 -Norm:<br />
‖f − p‖ L 2 ([a,b]) = m<strong>in</strong><br />
φ∈P ‖f − φ‖ L 2 ([a,b]).<br />
Die L 2 -Norm kann mittels ‖f‖ L 2 = (f, f) 1 2 über das L 2 -Skalarprodukt def<strong>in</strong>iert werden.<br />
Vektorräume mit Skalarprodukt heißen Prähilbertraum. Speziell <strong>in</strong> reellen Vektorräumen<br />
spricht man von euklidischen Räumen, im komplexen auch von unitären Räumen. Das<br />
Skalarprodukt <strong>die</strong>nt zur Beschreibung von Orthogonalitätsbeziehungen. Für <strong>die</strong> Approximation<br />
bezüglich der L 2 -Norm gilt <strong>die</strong> folgende Charakterisierung:<br />
Satz 3.78 (Approximation und Orthogonalität). Es sei f ∈ C[a, b] und S ⊂ C[a, b] e<strong>in</strong><br />
endlich dimensionaler Unterraum. Auf S sei durch (·, ·) e<strong>in</strong> Skalarprodukt und durch ‖ · ‖<br />
<strong>die</strong> <strong>in</strong>duzierte Norm gegeben. Dann ist p ∈ S beste Approximation zu f ∈ C[a, b]<br />
‖f − p‖ = m<strong>in</strong> ‖f − φ‖,<br />
φ∈S<br />
genau dann, wenn der Fehler f − p orthogonal auf dem Raum S steht:<br />
(f − p, φ) = 0 ∀φ ∈ S.<br />
Beweis: Es sei p ∈ S e<strong>in</strong>e beste Approximation Dann besitzt <strong>die</strong> quadratische Funktion<br />
F φ (t) := ‖f − p − tφ‖ 2 ,<br />
t ∈ R<br />
für jedes fest gewählte φ ∈ S bei t = 0 e<strong>in</strong> M<strong>in</strong>imum. Also gilt <strong>die</strong> für M<strong>in</strong>ima differenzierbarer<br />
Funktionen notwendige Bed<strong>in</strong>gung:<br />
0 = F ′ (0) = ∂ ∂t ‖f − p − tφ‖2∣ ∣ t=0<br />
= −(f − p − tφ, φ) − (φ, f − p − tφ) ∣ ∣ t=0<br />
= −2(f − p, φ) ∀φ ∈ S.<br />
Geometrisch kann man <strong>die</strong>s so ausdrücken, dass der Fehler f − p senkrecht auf dem approximierenden<br />
Raum S steht im S<strong>in</strong>ne des L 2 -Skalarprodukts.<br />
99
3 Interpolation und Approximation<br />
Umgekehrt gelte nun <strong>die</strong> Beziehung<br />
(f − p, φ) = 0 ∀φ ∈ S,<br />
für e<strong>in</strong> p ∈ S. Dann erhält man durch Erweitern mit φ und Anwendung der Cauchy-<br />
Schwarz-Ungleichung<br />
‖f−p‖ 2 = (f−p, f−p) = (f−p, f−φ+φ−p) = (f−p, f−φ)+(f−p, φ − p) ≤ ‖f−p‖ ‖f−φ‖.<br />
} {{ }<br />
∈S<br />
Hier haben wir <strong>die</strong> Orthogonalitätsbeziehung für φ − p ∈ S verwendet. Weiter folgt:<br />
‖f − p‖ ≤ ‖f − φ‖ ⇒ ‖f − p‖ = <strong>in</strong>f ‖f − φ‖<br />
φ∈S<br />
und damit ist auch p beste Approximation per Def<strong>in</strong>itionem.<br />
Wir können <strong>die</strong> beste Approximation p ∈ S durch e<strong>in</strong>e Orthogonalitätsbeziehung beschreiben.<br />
Dieser Zusammenhang ist der Schlüssel zur Analyse der Gauss-Approximation und<br />
auch zur praktischen numerischen Realisierung. Wir können sofort den allgeme<strong>in</strong>en Satz<br />
beweisen:<br />
Satz 3.79 (Allgeme<strong>in</strong>e Gauß-Approximation). Es sei H e<strong>in</strong> Vektorraum mit Skalarprodukt<br />
(·, ·) und S ⊂ H e<strong>in</strong> endlich-dimensionaler Teilraum. Dann existiert zu jedem f ∈ H e<strong>in</strong>e<br />
e<strong>in</strong>deutig bestimmte beste Approximation p ∈ S <strong>in</strong> der <strong>in</strong>duzierten Norm ‖ · ‖:<br />
‖f − p‖ = m<strong>in</strong> ‖f − φ‖.<br />
φ∈S<br />
□<br />
Beweis: Für den Beweis nutzen wir <strong>die</strong> Charakterisierung der Bestapproximation mit<br />
Hilfe des Skalarprodukts aus Satz 3.78.<br />
(i) E<strong>in</strong>deutigkeit.<br />
Seien p 1 , p 2 ∈ S zwei Bestapproximationen. Dann gilt notwendigerweise<br />
für alle φ ∈ S. Dies impliziert<br />
(f − p 1 , φ) = 0 und (f − p 2 , φ) = 0<br />
(p 1 − p 2 , φ) = 0 φ ∈ S.<br />
Da <strong>die</strong>s für alle φ ∈ S gilt, können wir e<strong>in</strong> spezielles φ geschickt wählen. E<strong>in</strong>e kluge Wahl<br />
ist φ := p 1 − p 2 , woraus dann<br />
(p 1 − p 2 , p 1 − p 2 ) = ‖p 1 − p 2 ‖ 2 = 0<br />
und aufgrund der Def<strong>in</strong>itheit der Norm (im Teilraum S ∈ H) p 1 = p 2 folgt.<br />
(ii) Existenz<br />
100
3.6 Approximationstheorie<br />
Der endlich-dimensionale Teilraum S ⊂ H besitzt e<strong>in</strong>e Basis {φ 1 , . . . , φ n } mit n := dim(S).<br />
Die beste Approximation p ∈ S stellen wir als L<strong>in</strong>earkomb<strong>in</strong>ation <strong>in</strong> <strong>die</strong>ser Basis dar:<br />
p =<br />
n∑<br />
α k u k ,<br />
k=1<br />
mit e<strong>in</strong>deutig bestimmten Koeffizienten α k ∈ R. Dieser Ansatz für p wird <strong>in</strong> <strong>die</strong> Orthogonalitätsbed<strong>in</strong>gung<br />
e<strong>in</strong>gesetzt:<br />
(f − p, φ) = (f −<br />
n∑<br />
α k φ k , φ) = (f, φ) −<br />
k=1<br />
n∑<br />
α k (φ k , φ) = 0 ∀φ ∈ S.<br />
Wir durchlaufen mit φ nach und nach alle Basisvektoren und erhalten (Superpositionspr<strong>in</strong>zip)<br />
das l<strong>in</strong>eare Gleichungssystem mit n Gleichungen und n Variablen:<br />
n∑<br />
(φ k , φ i ) α<br />
} {{ } }{{} k<br />
k=1<br />
=a ki x<br />
k=1<br />
= (f, φ i )<br />
} {{ }<br />
i = 1, . . . , n, (3.19)<br />
=b i<br />
<strong>in</strong> dem der Koeffizientenvektor x = (α k ) k=1,...,n <strong>die</strong> gesuchte unbekannten Lösung ist. Die<br />
sogenannte Systemmatrix A = (a ij ) n i,j=1 ist <strong>die</strong> Gramsche Matrix der Basis {φ 1, . . . , φ n }<br />
und stets regulär. A ist folglich <strong>in</strong>jektiv. Weiter ist A symmetrisch und also auch positiv<br />
def<strong>in</strong>it. Das Gleichungssystem Ax = b ist somit für jede rechte Seite b (d.h. für jedes f ∈<br />
H) e<strong>in</strong>deutig lösbar. Damit ist über <strong>die</strong> Orthogonalitätsbed<strong>in</strong>gung e<strong>in</strong>deutig e<strong>in</strong> Element<br />
p ∈ P bestimmt, welches aufgrund von Teil Satz 3.78 <strong>die</strong> Bestapproximationseigenschaft<br />
besitzt.<br />
□<br />
Der Beweis liefert sofort e<strong>in</strong> Konstruktionspr<strong>in</strong>zip zur Bestimmung der Bestapproximation<br />
p ∈ S. Wir stellen zu gegebener Basis {φ 1 , . . . , φ n } das l<strong>in</strong>eare n × n Gleichungssystem<br />
auf:<br />
n∑<br />
a ij α j = b i , i = 1, . . . , n,<br />
j=1<br />
mit a ij = (ψ i , ψ j ) und berechnen den Ergebnisvektor x = (α j ) j . Die gesuchte Bestapproximation<br />
p ∈ S ist dann <strong>in</strong> der Basisdarstellung gegeben als<br />
n∑<br />
p = α i ψ i .<br />
i=1<br />
Zur numerischen Realisierung muss zunächst das l<strong>in</strong>eare Gleichungssystem aufgestellt werden,<br />
d.h. <strong>in</strong>sbesondere müssen <strong>die</strong> E<strong>in</strong>träge der Systemmatrix (numerisch) <strong>in</strong>tegriert werden.<br />
Schließlich ist das l<strong>in</strong>eare Gleichungssystem Ax = b zu lösen. Das Lösen von l<strong>in</strong>earen<br />
Gleichungssystemen stellt e<strong>in</strong>en eigenen Schwerpunkt <strong>in</strong> der numerischen <strong>Mathematik</strong> dar<br />
und wir befassen uns damit <strong>in</strong> Kapitel 4. Es zeigt sich, dass <strong>die</strong>ser Lösungsweg numerische<br />
sehr <strong>in</strong>stabil ist. Angenommen, wir starten <strong>die</strong> Konstruktion mit der Monombasis<br />
{1, x, . . . , x n }. Dann ist <strong>die</strong> durch<br />
a ij =<br />
∫ 1<br />
−1<br />
x i x j dx,<br />
101
3 Interpolation und Approximation<br />
gegebene Matrix <strong>die</strong> sogenannte Hilbert-Matrix<br />
⎛ 1<br />
1<br />
2<br />
1 1<br />
2 3<br />
1 1<br />
H n =<br />
3 4<br />
1 1<br />
4 5<br />
⎜<br />
⎝ .<br />
1 1<br />
n n+1<br />
1<br />
3<br />
1<br />
4<br />
1<br />
5<br />
1<br />
1<br />
4<br />
. . .<br />
n<br />
1<br />
1<br />
5<br />
. . .<br />
. .. 1<br />
. .. . .. .<br />
1<br />
n+2<br />
n+1<br />
n+2<br />
⎟<br />
⎠<br />
. .. .<br />
1<br />
1<br />
n+3<br />
. . .<br />
2n−1<br />
Das Lösen e<strong>in</strong>es Gleichungssystems mit der Hilbert-Matrix ist äußerst schwer. Dies liegt<br />
an der Konditionszahl der Hilbertmatrix, welche angibt, wie sich Rundungsfehler beim<br />
Lösungsprozess verstärken. Schon für n = 4 liegt <strong>die</strong> Fehlerverstärkung der Hilbert-Matrix<br />
bei 15 000. Diese Matrix muss also unbed<strong>in</strong>gt vermieden werden.<br />
Auch wenn <strong>die</strong> Wahl der Basisvektoren {φ 1 , . . . , φ n } ke<strong>in</strong>en E<strong>in</strong>fluss auf das Ergebnis hat,<br />
so bestimmt sie doch wesentlich den Aufwand bei der Realisierung. Angenommen, <strong>die</strong><br />
Basis sei e<strong>in</strong> Orthonormalsystem, d.h. es gelte (φ i , φ j ) = δ ij für alle i, j = 1, . . . , n. Dann<br />
gilt für <strong>die</strong> Systemmatrix <strong>in</strong> (3.19)<br />
a ij = (φ i , φ j ) = δ ij ⇒ A = I.<br />
Die Systemmatrix ist <strong>die</strong> E<strong>in</strong>heitsmatrix und <strong>die</strong> gesuchten Koeffizienten lassen sich sofort<br />
ablesen<br />
α i = (f, φ i ),<br />
womit <strong>die</strong> Bestapproximation durch <strong>die</strong> Relation<br />
n∑<br />
p = (f, φ i )φ i ,<br />
i=1<br />
trivial gegeben ist. Für <strong>die</strong>ses vere<strong>in</strong>fachte Vorgehen benötigen wir zunächst e<strong>in</strong>e Orthonormalbasis<br />
von S ⊂ H. Die Orthonormalisierung kann mit Hilfe des bereits diskutieren<br />
Gram-Schmidt-Algorithmus durchgeführt werden. Bei Verwendung der Monombasis des<br />
S = P n führt <strong>die</strong>ser Algorithmus auf <strong>die</strong> Legendre-Polynome. Wir fassen zusammen:<br />
⎞<br />
.<br />
Korollar 3.80 (Gauss-Approximation mit Polynomen). Es sei f ∈ C[−1, 1]. Die Bestapproximation<br />
p ∈ P n bezüglich der L 2 -Norm im Raum der Polynome von Grad n e<strong>in</strong>deutig<br />
bestimmt durch:<br />
n∑ 1<br />
p(x) =<br />
‖L i ‖ 2 (L i , f)L i (x),<br />
L 2 [−1,1]<br />
mit den Legendre-Polynomen<br />
i=0<br />
d i<br />
L i (x) := 1<br />
2 i i! dx i (x2 − 1) i .<br />
102
3.6 Approximationstheorie<br />
1.5<br />
1<br />
f(x)<br />
Gauss-Approximation<br />
Lagrange-Interpolation<br />
0.3<br />
0.2<br />
Fehler Gauss-Approximation<br />
Fehler Lagrange-Interpolation<br />
0<br />
0.5<br />
0.1<br />
0<br />
0<br />
-0.5<br />
-0.1<br />
-1<br />
-0.2<br />
-1.5<br />
-1 -0.5 0 0.5 1<br />
-0.3<br />
-1 -0.5 0 0.5 1<br />
Abbildung 3.10: Gauss-Approximation sowie Lagrange-Interpolation (jeweils kubisch) der<br />
Funktion f(x) = s<strong>in</strong>(πx). Rechts: Fehler der Approximationen.<br />
Die Normierung mit ‖L n ‖ −2 ist notwendig, da <strong>die</strong> Legendre-Polynome bezüglich der L 2 -<br />
Norm nicht normiert s<strong>in</strong>d, vergleiche Satz 3.65.<br />
Die Eigenschaft von p ∈ P n <strong>die</strong> beste Approximation zu f im Raum der Polynome zu<br />
se<strong>in</strong>, bedeutet auch, dass p bezüglich der L 2 -Norm e<strong>in</strong>e bessere Approximation ist als jede<br />
Lagrange-Interpolation zu beliebiger Wahl von Stützstellen x 0 , . . . , x n <strong>in</strong> [−1, 1]. Hieraus<br />
können wir auf triviale Weise e<strong>in</strong>e e<strong>in</strong>fache Fehlerabschätzung herleiten. Dazu sei f ∈<br />
C n+1 ([a, b]) und p ∈ P n <strong>die</strong> Bestapproximation. Es gilt:<br />
‖f − p‖ L 2 ([a,b]) ≤ ‖f n+1 ‖ ∞<br />
(n + 1)!<br />
⎛<br />
∫ 1 n∏<br />
m<strong>in</strong> ⎝<br />
x 0 ,...,x n∈[a,b] −1<br />
j=0<br />
⎞<br />
(x − x j ) 2 dx⎠<br />
1<br />
2<br />
. (3.20)<br />
Das M<strong>in</strong>imum des zweiten Ausdrucks ist nicht e<strong>in</strong>fach zu bestimmen, es können alle Stützstellen<br />
im Intervall frei variiert werden. Wir werden aber später auf <strong>die</strong>sen Punkt zurückkommen<br />
und <strong>die</strong>se Lücke schließen.<br />
Beispiel 3.81 (Gauss-Approximation vs. Lagrange-Interpolation). Wir approximieren <strong>die</strong><br />
Funktion f(x) = s<strong>in</strong>(πx) auf dem Intervall I = [−1, 1] mit Polynomen vom Grad drei.<br />
Zunächst erstellen wir <strong>in</strong> den äquidistant verteilten vier Stützstellen<br />
x i = −1 + 2i<br />
3 , i = 0, . . . , 3<br />
das zugehörige Lagrangesche Interpolationspolynom. Aufgrund von f(x 0 ) = f(x 3 ) = 0 gilt:<br />
p L (x) = s<strong>in</strong>(x 1 )L (3)<br />
1 (x) + s<strong>in</strong>(x 2)L (3)<br />
2 (x)<br />
= 27√ 3<br />
16 (x − x3 ).<br />
Als zweite Approximation bestimmen wir <strong>die</strong> Gauß-Approximation <strong>in</strong> der L 2 -Norm. Hierzu<br />
verwenden wir <strong>die</strong> Darstellung über <strong>die</strong> normierten Legendre-Polynome ˜L n (x) auf [−1, 1].<br />
103
3 Interpolation und Approximation<br />
Es gilt aus Symmetriegründen:<br />
∫ 1<br />
−1<br />
˜L 0 (x) f(x) dx =<br />
∫ 1<br />
−1<br />
˜L 2 (x) f(x) dx = 0,<br />
sowie<br />
∫ √ 1<br />
∫ √<br />
6<br />
1<br />
14(π<br />
˜L 1 (x) f(x) dx =<br />
−1<br />
π , ˜L 2 − 15)<br />
3 (x) f(x) dx =<br />
−1<br />
π 3 .<br />
Hieraus erhalten wir <strong>die</strong> Gauß-Approximation<br />
√ √<br />
6<br />
p G (x) =<br />
π ˜L 14(π 2 − 15)<br />
1 (x) +<br />
π 3<br />
˜L3 (x)<br />
Für <strong>die</strong> beiden Approximationen gilt:<br />
= 5x(7π2 x 2 − 105x 2 − 3π 2 + 63)<br />
2π 3 .<br />
‖f − p L ‖ L 2 ([−1,1]) ≈ 0.2, ‖f − p G ‖ L 2 ([−1,1]) ≈ 0.1,<br />
d.h., <strong>die</strong> Gauß-Approximation liefert <strong>in</strong> der L 2 -Norm e<strong>in</strong> doppelt so gutes Ergebnis. In<br />
Abbildung 3.10 zeigen wir beide Approximationen, <strong>die</strong> Funktion f(x) sowie <strong>die</strong> Fehler<br />
f(x)−p l (x) sowie f(x)−p g (x). Hier sehen wir zunächst, dass <strong>die</strong> Lagrange-Interpolation an<br />
den Stützstellen <strong>die</strong> Interpolationsbed<strong>in</strong>gung, also f(x i ) = p L (x i ) = 0 erfüllt, wo h<strong>in</strong>gegen<br />
<strong>die</strong> Gauss-Approximation gerade am Rand e<strong>in</strong>en großen Fehler aufweist. Der maximale<br />
Fehler im Intervall ist h<strong>in</strong>gegen bei der Gauß-Approximation etwas ger<strong>in</strong>ger.<br />
Diskrete Gauß-Approximation<br />
Gegeben sei nun e<strong>in</strong>e Messreihe (x i , y i ), i = 1, 2, . . . , m. Wir suchen e<strong>in</strong>e approximierende<br />
Funktion p ∈ S, wobei üblicherweise wieder S = P n e<strong>in</strong> e<strong>in</strong>facher Polynomraum ist. Wir<br />
suchen <strong>die</strong> beste Approximation p ∈ S bezüglich der euklidischen Norm:<br />
( m<br />
) 1<br />
∑<br />
|p − y| 2 := |p(x i ) − y i | 2 2<br />
i=1<br />
= m<strong>in</strong><br />
φ∈S |φ − y| 2.<br />
Im Gegensatz zur Lagrangeschen Interpolationsaufgabe fordern wir <strong>in</strong> den Stützstellen x i<br />
nicht p(x i ) = y i . Die Diskrete Gauß-Approximation wird üblicherweise zur Approximation<br />
von diskreten Messwerten verwendet. Dann gilt meist m ≫ n, wenn zum Beispiel e<strong>in</strong>e<br />
l<strong>in</strong>eare Funktion p(x) = α 0 +α 1 x gesucht wird, <strong>die</strong> viele (tausend) Messwerte approximiert.<br />
Die euklidische Vektornorm ist aus dem euklidischen Skalarprodukt abgeleitet:<br />
|x| 2 = (x, x) 1 2<br />
2 ,<br />
daher kann <strong>die</strong> bisher entwickelte Theorie unmittelbar angewendet werden. Schlüssel zur<br />
Bestimmung der Bestapproximation ist wieder gemäß Satz 3.78 <strong>die</strong> Charakterisierung über<br />
<strong>die</strong> Orthogonalität:<br />
|p − y| 2 = m<strong>in</strong><br />
φ∈S |φ − y| 2 ⇔ (p − y, φ) 2 = 0 ∀φ ∈ R n .<br />
104
3.6 Approximationstheorie<br />
Alle Eigenschaften der kont<strong>in</strong>uierlichen Gauß-Approximation übertragen sich und wir können<br />
gleich den Existenzsatz formulieren:<br />
Satz 3.82 (Diskrete Gauß-Approximation). Es seien durch (x i , y i ) für i = 1, . . . , m diskrete<br />
Datenwerte gegeben. Weiter sei S e<strong>in</strong> endlich dimensionaler Funktionenraum mit<br />
Basis {φ 1 , . . . , φ n }. Die diskrete Gauß-Approximation p ∈ S<br />
ist e<strong>in</strong>deutig bestimmt.<br />
( m<br />
) 1<br />
∑<br />
|p − y| 2 := |p(x i ) − y i | 2 2<br />
i=1<br />
= m<strong>in</strong><br />
φ∈S |φ − y| 2,<br />
Beweis: Über <strong>die</strong> Basisdarstellung ist S äquivalent zum euklidischen Raum R n . E<strong>in</strong>deutigkeit<br />
und Existenz folgen nun <strong>in</strong> R n wie im Beweis zu Satz 3.79.<br />
□<br />
Die Konstruktion der diskreten Gauß-Approximation folgt wieder über <strong>die</strong> Basisdarstellung<br />
n∑<br />
p(x) = α i φ i (x)<br />
i=1<br />
aus der beschreibenden Orthogonalitätsbeziehung:<br />
m∑<br />
(p − y, φ k ) 2 = (p(x i ) − y i )φ k (x i ) = 0,<br />
i=1<br />
k = 1, . . . , n<br />
Setzen wir für p <strong>die</strong> Basisdarstellung e<strong>in</strong>, so erhalten wir das Gleichungssystem:<br />
n∑ ∑ m m∑<br />
α j φ j (x i )φ k (x i ) = y i φ k (x i ), k = 1, . . . , n.<br />
j=1 i=1<br />
i=1<br />
} {{ } } {{ }<br />
=(φ j ,φ k ) 2 =(y,φ k ) 2<br />
Der gesuchte Koeffizientenvektor α = (α k ) n k=1 ist gegeben als Lösung des Gleichungssystems:<br />
⎛<br />
⎞ ⎛ ⎞ ⎛ ⎞<br />
(φ 0 , φ 0 ) 2 (φ 0 , φ 1 ) 2 · · · (φ 0 , φ n ) 2 α . 0 (y, φ 0 ) 2<br />
(φ 1 , φ 0 ) .. 2 .<br />
α 1<br />
⎜<br />
.<br />
⎝ .<br />
.. ⎟ ⎜ ⎟<br />
. ⎠ ⎝ .<br />
= (y, φ 1 ) 2<br />
⎜ ⎟<br />
⎠ ⎝ . ⎠<br />
(φ n , φ 0 ) 2 · · · · · · (φ n , φ n ) 2<br />
α n (y, φ n ) 2 .<br />
Aus der allgeme<strong>in</strong>en Darstellung kann e<strong>in</strong>e spezielle und häufig genutzte Approximation<br />
abgeleitet werden: <strong>die</strong> Gauß’sche Ausgleichsrechnung:<br />
Beispiel 3.83 (L<strong>in</strong>eare Ausgleichsrechnung). Wir suchen <strong>die</strong> l<strong>in</strong>eare Approximation p(x) ∈<br />
P 1<br />
p(x) = α 0 + α 1 x,<br />
105
3 Interpolation und Approximation<br />
zu gegebenen Messwerten. Es seien φ 0 (x) ≡ 1, φ 1 (x) = x dann ergibt sich das folgende<br />
l<strong>in</strong>eare Gleichungssystem:<br />
( ) ( )<br />
(φ0 , φ 0 ) 2 (φ 0 , φ 1 ) 2 α0<br />
=<br />
(φ 1 , φ 0 ) 2 (φ 1 , φ 1 ) 2 α 1<br />
( ) ( ∑ ) ( ) ( ∑ )<br />
(y, φ0 ) 2 m xi α0 yi<br />
⇐⇒ ∑ ∑<br />
(y, φ 1 ) 2 , xi x<br />
2 = ∑<br />
i α 1 xi y i .<br />
Dieses System ist regulär, falls m ≥ 2 und es m<strong>in</strong>destens zwei Stützwerte x i ≠ x j gibt.<br />
Wir wenden <strong>die</strong> l<strong>in</strong>eare Ausgleichsrechnung auf konkrete Messdaten an:<br />
Beispiel 3.84 (Fortsetzung der Mensazählung). In der Mensazählung haben wir zu gewissen<br />
Uhrzeiten x i , i = 0, . . . , 7 (natürlich außerhalb der Vorlesungszeiten) <strong>die</strong> Anzahl der<br />
Personen y i , i = 0, . . . , 7 <strong>in</strong> der Mensa gezählt. Die folgenden Messdaten haben wir somit<br />
erhalten:<br />
x i [hour] = 10.30, 10.35, 10.45, 11.00, 13.00, 13.02, 13.14, 13.15,<br />
y i [Anz. Pers.] = 60, 70, 107, 90, 300, 325, 325, 350.<br />
Dann ist m = 8 und ∑ x i = 94.41 und ∑ x 2 i = 1.1275e + 03 und ∑ x i y i = 2.0455e + 04.<br />
Durch lösen des l<strong>in</strong>earen Gleichungssystems erhalten wir <strong>die</strong> beiden Unbekannten<br />
α 0 = −904.6498, α 1 = 93.8905.<br />
Damit erhalten wir <strong>die</strong> l<strong>in</strong>eare Ausgleichsgerade (illustriert <strong>in</strong> Abbildung 3.11)<br />
g(x) = −904.6498 + 93.8905x.<br />
Verallgeme<strong>in</strong>erung der Gauß-Approximation Die diskrete Gauß-Approximation sowie<br />
<strong>die</strong> Approximation von Funktionen lassen sich durch <strong>die</strong> Verwendung von gewichteten<br />
Skalarprodukten und entsprechenden gewichteten <strong>in</strong>duzierten Normen vere<strong>in</strong>fachen.<br />
Die Verwendung e<strong>in</strong>es Gewichtes <strong>die</strong>nt dazu, <strong>die</strong> Approximationsgenauigkeit der Gauß-<br />
Approximierenden an den Intervallenden zu verbessern. Für jedes <strong>in</strong>tegrable und positive<br />
ω(x) > 0 ist durch<br />
(f, g) ω :=<br />
∫ b<br />
a<br />
f(x)g(x)ω(x) dx,<br />
wieder e<strong>in</strong> Skalarprodukt mit entsprechender Norm<br />
‖f‖ ω = (f, f) 1 2 ω ,<br />
gegeben. Wir <strong>die</strong> Gewichtsfunktion w(x) = 1 √<br />
1−x 2<br />
verwendet, so legt <strong>die</strong> Bestapproximation<br />
e<strong>in</strong> größeres Gewicht auf <strong>die</strong> Intervallenden. Die hieraus abgeleiteten orthonormalen<br />
Polynome s<strong>in</strong>d <strong>die</strong> bereits diskutierten Tschebyscheff-Polynome.<br />
106
3.6 Approximationstheorie<br />
400<br />
0<br />
11 12 13 14 15<br />
x<br />
K5,000<br />
300<br />
K10,000<br />
200<br />
K15,000<br />
100<br />
K20,000<br />
10 11 12 13 14<br />
Abbildung 3.11: L<strong>in</strong>eare Ausgleichsgerade der Gauß-Approximation und entsprechendes<br />
Interpolationspolynom im Vergleich (l<strong>in</strong>kes Bild). Die Polynom<strong>in</strong>terpolation<br />
macht nur wenig S<strong>in</strong>n, da gegen 12.00 Uhr mehr als m<strong>in</strong>us<br />
20000 Menschen <strong>in</strong> der Mensa s<strong>in</strong>d!!! L<strong>in</strong>eare Ausgleichsgerade der Gauß-<br />
Approximation und gegebene Messdaten s<strong>in</strong>d im rechten Bild zu sehen.<br />
Auch <strong>die</strong> diskrete Gauß-Approximation lässt sich <strong>die</strong>sbezüglich verallgeme<strong>in</strong>ern. Hierzu<br />
sei durch ω ∈ R n e<strong>in</strong> Vektor mit ω i > 0 gegeben. Dann ist für x, y ∈ R n durch<br />
n∑<br />
(x, y) ω = x i y i ω i , |x| ω = (x, x) 1 2 ω ,<br />
i=1<br />
e<strong>in</strong> gewichtetes Skalarprodukt mit entsprechender Norm gegeben. Gerade für <strong>die</strong> diskrete<br />
Approximation spielen <strong>die</strong> Gewichte e<strong>in</strong>e große Rolle <strong>in</strong> der Anwendung: Angenommen<br />
für <strong>die</strong> Stützstellen und Stützwerte s<strong>in</strong>d Abschätzungen für den Messfehler bekannt. Dann<br />
können Stützwerte mit kle<strong>in</strong>erem Messfehler stärker gewichtet werden.<br />
Sämtliche Sätze zur Gauß-Approximation wurden für beliebige von Skalarprodukten <strong>in</strong>duzierte<br />
Normen bewiesen. Daher übertragen sich alle Eigenschaften auch auf <strong>die</strong> gewichteten<br />
Normen.<br />
107
3 Interpolation und Approximation<br />
108
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
In der l<strong>in</strong>earen Algebra wird <strong>die</strong> Struktur von l<strong>in</strong>earen Abbildungen T : V → W zwischen<br />
endlich-dimensionalen Vektorräumen untersucht. In der numerischen l<strong>in</strong>earen Algebra befassen<br />
wir uns mit e<strong>in</strong>igen praktischen Fragestellungen der l<strong>in</strong>earen Algebra. Schwerpunkt<br />
der Anwendung ist das Lösen von l<strong>in</strong>earen Gleichungen, also das Auff<strong>in</strong>den von x ∈ V , so<br />
dass für e<strong>in</strong> b ∈ W gilt T (x) = b. Weiter werden wir Verfahren zur Berechnung von Eigenwerten<br />
l<strong>in</strong>earer Abbildungen sowie zur Orthogonalisierung von Vektoren kennenlernen.<br />
Die meisten Probleme der l<strong>in</strong>earen Algebra treten als Teilprobleme anderer Verfahren auf.<br />
Große l<strong>in</strong>eare Gleichungssysteme müssen zur Diskretisierung von Differentialgleichungen,<br />
aber z.B. auch bei der Approximation von Funktionen gelöst werden. Effiziente numerische<br />
Quadraturregeln benötigen zur Konstruktion <strong>die</strong> Nullstellen orthogonaler Polynome.<br />
Orthogonalisierungsverfahren spielen aber auch e<strong>in</strong>e Rolle bei der Lösung von großen Gleichungssystemen.<br />
4.1 Grundlagen der l<strong>in</strong>earen Algebra<br />
Wir sammeln zunächst e<strong>in</strong>ige Def<strong>in</strong>itionen und grundlegende Resultate. Es sei V stets e<strong>in</strong><br />
Vektorraum über dem Körper K. Üblicherweise betrachten wir den Raum der reellwertigen<br />
Vektoren V = R n .<br />
Def<strong>in</strong>ition 4.1 (Basis). E<strong>in</strong>e Teilmenge B ⊂ V e<strong>in</strong>es Vektorraums über K heißt Basis,<br />
falls sich jedes Element v ∈ V e<strong>in</strong>deutig als L<strong>in</strong>earkomb<strong>in</strong>ation der Basisvektoren B =<br />
{v 1 , . . . , v n } darstellen lässt:<br />
n∑<br />
v = α i v i , α i ∈ K.<br />
i=1<br />
Die e<strong>in</strong>deutige Darstellbarkeit jedes v ∈ V durch Basisvektoren erlaubt es, den Vektorraum<br />
V mit dem Vektorraum der Koeffizientenvektoren α ∈ K n zu identifizieren. Daher können<br />
wir uns <strong>in</strong> <strong>die</strong>sem Abschnitt im wesentlichen auf <strong>die</strong>sen Raum (bzw. auf R n ) beschränken.<br />
Alle Eigenschaften und Resultate übertragen sich auf V .<br />
Def<strong>in</strong>ition 4.2 (Norm). E<strong>in</strong>e Abbildung ‖·‖ : V → R + heißt Norm, falls sie <strong>die</strong> folgenden<br />
drei Eigenschaften besitzt:<br />
1. Def<strong>in</strong>itheit: ‖x‖ ≥ 0, ‖x‖ = 0 ⇒ x = 0,<br />
2. L<strong>in</strong>earität: ‖αx‖ = |α| ‖x‖ ∀x ∈ V, α ∈ K,<br />
3. Dreiecksungleichung: ‖x + y‖ ≤ ‖x‖ + ‖y‖, ∀x, y ∈ V.<br />
109
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
E<strong>in</strong> Vektorraum mit Norm heißt normierter Raum. Häufig verwendete Normen s<strong>in</strong>d <strong>die</strong><br />
Maximumsnorm ‖ · ‖ ∞ , <strong>die</strong> euklidische Norm ‖ · ‖ 2 sowie <strong>die</strong> l 1 -Norm ‖ · ‖ 1 :<br />
‖x‖ ∞ := max<br />
i=1,...,n |x i|, ‖x‖ 2 :=<br />
( n ∑<br />
x 2 i<br />
i=1<br />
) 1<br />
2<br />
, ‖x‖ 1 :=<br />
n∑<br />
|x i |.<br />
i=1<br />
Im Vektorraum R n sowie <strong>in</strong> allen endlich-dimensionalen Vektorräumen gilt der folgende<br />
wichtige Satz:<br />
Satz 4.3 (Normäquivalenz). Zu zwei beliebigen Normen ‖ · ‖ sowie ‖ · ‖ ′ im endlichdimensionalen<br />
Vektorraum V existiert e<strong>in</strong>e Konstante c > 0 so dass gilt:<br />
1<br />
c ‖x‖ ≤ ‖x‖′ ≤ c‖x‖ ∀x ∈ V.<br />
Dieser Satz bedeutet, dass alle Normen <strong>in</strong> endlich-dimensionalen Vektorräumen äquivalent<br />
s<strong>in</strong>d. Da Normen wesentlich für den Konvergenzbegriff s<strong>in</strong>d, bedeutet <strong>die</strong>ses Resultat, dass<br />
e<strong>in</strong>e Folge x n → x, welche bzgl. e<strong>in</strong>er Norm ‖ · ‖ konvergiert auch bzgl. jeder anderen<br />
Norm ‖ · ‖ ′ konvergiert. Auch <strong>die</strong>ser Zusammenhang ist typisch für endlich-dimensionale<br />
Räume und gilt z.B. nicht <strong>in</strong> Funktionenräumen. So gilt z.B. für <strong>die</strong> Funktionenfolge<br />
f n (x) = exp(−nx 2 ) :<br />
‖f n − 0‖ L 2 ([−1,1]) → 0, jedoch ‖f n − 0‖ ∞ ↛ 0,<br />
bezüglich der L 2 -Norm sowie der Maximumsnorm:<br />
(∫ 1<br />
‖f‖ L 2 ([−1,1]) :=<br />
−1<br />
f(x) dx) 1 2<br />
, ‖f‖∞ := sup |f(x)|.<br />
x∈[−1,1]<br />
Neben Normen spielen Räume, <strong>in</strong> denen e<strong>in</strong> Skalarprodukt existiert e<strong>in</strong>e wichtige Rolle:<br />
Def<strong>in</strong>ition 4.4 (Skalarprodukt). E<strong>in</strong>e Abbildung (·, ·) : V × V → K heißt Skalarprodukt,<br />
falls sie <strong>die</strong> folgenden Eigenschaften besitzt:<br />
1. Def<strong>in</strong>itheit: (x, x) > 0 ∀x ∈ V, x ≠ 0,<br />
(x, x) = 0 ⇒ x = 0<br />
2. L<strong>in</strong>earität: (x, αy + z) = α(x, y) + (x, z) ∀x, y, z ∈ V, α ∈ K,<br />
3. Symmetrie: (x, y) = (y, x) ∀x, y ∈ V.<br />
In reellen Räumen gilt <strong>die</strong> echte Symmetrie (x, y) = (y, x). Das bekannteste Skalarprodukt<br />
ist das euklidische Skalarprodukt für Vektoren x, y ∈ R n .<br />
n∑<br />
(x, y) 2 = x T y = x i y i .<br />
i=1<br />
110
4.1 Grundlagen der l<strong>in</strong>earen Algebra<br />
Vektorräume mit Skalarprodukt werden Prähilberträume genannt. (E<strong>in</strong> Prähilbertraum<br />
heißt Hilbertraum, falls er vollständig, also e<strong>in</strong> Banachraum ist). Komplexe Vektorräumen<br />
mit Skalarprodukt nennt man auch unitäre Räume, im Reellen spricht man von euklidischen<br />
Räumen.<br />
Skalarprodukte s<strong>in</strong>d eng mit Normen verwandt:<br />
Satz 4.5 (Induzierte Norm). Es sei V e<strong>in</strong> Vektorraum mit Skalarprodukt. Dann ist durch<br />
auf V <strong>die</strong> <strong>in</strong>duzierte Norm gegeben.<br />
‖x‖ =<br />
√<br />
(x, x), x ∈ V,<br />
Beweis: Übung!<br />
□<br />
Die euklidische Norm ist <strong>die</strong> vom euklidischen Skalarprodukt <strong>in</strong>duzierte Norm:<br />
‖x‖ 2 = (x, x) 1 2<br />
2 .<br />
E<strong>in</strong>ige wichtige Sätze gelten für Paare aus Skalarprodukt und <strong>in</strong>duzierter Norm:<br />
Satz 4.6. Es sei V e<strong>in</strong> Vektorraum mit Skalarprodukt (·, ·) und <strong>in</strong>duzierter Norm ‖ · ‖.<br />
Dann gilt <strong>die</strong> Cauchy-Schwarz Ungleichung:<br />
sowie <strong>die</strong> Parallelogrammidentität:<br />
|(x, y)| ≤ ‖x‖ ‖y‖ ∀x, y ∈ V,<br />
‖x + y‖ 2 + ‖x − y‖ 2 = 2‖x‖ 2 + 2‖y‖ 2 ∀x, y ∈ V.<br />
Beweis: Übung.<br />
□<br />
Mit Hilfe des Skalarproduktes 4.4 können wir den Begriff der Orthogonalität e<strong>in</strong>führen:<br />
zwei Vektoren x, y ∈ V heißen orthogonal, falls (x, y) = 0.<br />
E<strong>in</strong>e der Aufgaben der numerischen l<strong>in</strong>earen Algebra ist <strong>die</strong> Orthogonalisierung (oder auch<br />
Orthonormalisierung) von gegebenen Systemen von Vektoren:<br />
Def<strong>in</strong>ition 4.7 (Orthonormalbasis). E<strong>in</strong>e Basis B = {v 1 , . . . , v n } von V heißt Orthogonalbasis<br />
bezüglich des Skalarproduktes (·, ·), falls gilt:<br />
(φ i , φ j ) = 0 ∀i ≠ j,<br />
und Orthonormalbasis falls gilt:<br />
(φ i , φ j ) = δ ij ,<br />
mit dem Kronecker-Symbol δ ij .<br />
111
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Mit unterschiedlichen Skalarprodukten existieren unterschiedliche Orthonormalbasen zu<br />
e<strong>in</strong> und demselben Vektorraum V . Orthogonalität stimmt dann im Allgeme<strong>in</strong>en nicht mit<br />
dem geometrischen Orthogonalitätsbegriff des euklidischen Raums übere<strong>in</strong>:<br />
Beispiel 4.8 (Skalarprodukte und Orthonormalbasis). Es sei V = R 2 . Durch<br />
(x, y) 2 := x 1 y 1 + x 2 y 2 , (x, y) ω = 2 x 1 y 1 + x 2 y 2 ,<br />
s<strong>in</strong>d zwei verschiedene Skalarprodukte gegeben. Das erste ist das euklidische Skalarprodukt.<br />
Die Skalarprodukteigenschaften des zweiten s<strong>in</strong>d e<strong>in</strong>fach zu überprüfen. Durch<br />
x 1 = 1 √<br />
2<br />
(1, 1) T , x 2 = 1 √<br />
2<br />
(−1, 1) T ,<br />
ist e<strong>in</strong>e Orthonormalbasis bezüglich (·, ·) 2 gegeben. Es gilt jedoch:<br />
(x 1 , x 2 ) ω = 1 1<br />
(2 − 1) = √ ≠ 0.<br />
2 2<br />
E<strong>in</strong>e Orthonormalbasis erhalten wir z.B. durch<br />
x 1 = 1 √<br />
3<br />
(1, 1) T , x 2 = 1 2 (−1, 2)T ,<br />
Orthonormalbasen werden für zahlreiche numerische Verfahren benötigt, bei der Gauß’schen<br />
Quadratur, bei der Gauß-Approximation von Funktionen und z.B. für <strong>die</strong> QR-Zerlegung<br />
e<strong>in</strong>er Matrix.<br />
Wir betrachten nun den Vektorraum aller R n×m -Matrizen. Auch <strong>die</strong>ser Vektorraum ist<br />
endlich-dimensional und pr<strong>in</strong>zipiell können wir den Vektorraum der n × m-Matrizen mit<br />
dem Vektorraum der (nm)-Vektoren identifizieren. Von besonderem Interesse ist für uns<br />
der Vektorraum der quadratischen R n×n -Matrizen:<br />
Def<strong>in</strong>ition 4.9 (Eigenwerte, Eigenvektoren). Die Eigenwerte λ e<strong>in</strong>er Matrix A ∈ R n×n<br />
s<strong>in</strong>d def<strong>in</strong>iert als Nullstellen des charakteristischen Polynoms:<br />
det(A − λI) = 0.<br />
Die Menge aller Eigenwerte e<strong>in</strong>er Matrix heißt das Spektrum<br />
σ(A) := {λ ∈ C, λ Eigenwert von A}.<br />
Der Spektralradius spr : R n×n → R + ist der betragsmäßig größte Eigenwert:<br />
spr(A) := max{|λ|, λ ∈ σ(A)}.<br />
E<strong>in</strong> Element w ∈ R n heißt Eigenvektor zu Eigenwert λ, falls gilt:<br />
Aw = λw.<br />
112
4.1 Grundlagen der l<strong>in</strong>earen Algebra<br />
Bei der Untersuchung von l<strong>in</strong>earen Gleichungssystemen Ax = b stellt sich zunächst <strong>die</strong><br />
Frage, ob e<strong>in</strong> solches Gleichungssystem überhaupt lösbar ist und ob <strong>die</strong> Lösung e<strong>in</strong>deutig<br />
ist. Wir fassen zusammen:<br />
Satz 4.10 (Reguläre Matrix). Für e<strong>in</strong>e quadratische Matrix A ∈ R n×n s<strong>in</strong>d <strong>die</strong> folgenden<br />
Aussagen äquivalent:<br />
1. Die Matrix A ist regulär .<br />
2. Die transponierte Matrix A T ist regulär.<br />
3. Die Inverse A −1 ist regulär.<br />
4. Das l<strong>in</strong>eare Gleichungssystem Ax = b ist für jedes b ∈ R n e<strong>in</strong>deutig lösbar.<br />
5. Es gilt det(A) ≠ 0.<br />
6. Alle Eigenwerte von A s<strong>in</strong>d ungleich Null.<br />
Wir def<strong>in</strong>ieren weiter:<br />
Def<strong>in</strong>ition 4.11 (positiv def<strong>in</strong>it). E<strong>in</strong>e Matrix A ∈ K n×n heißt positiv def<strong>in</strong>it, falls<br />
(Ax, x) > 0 ∀x ≠ 0.<br />
Umgekehrt können wir aus der def<strong>in</strong>ierenden Eigenschaft der positiven Def<strong>in</strong>itheit e<strong>in</strong>er<br />
Matrix ablesen: falls A positiv def<strong>in</strong>it ist, so ist durch (A·, ·) e<strong>in</strong> Skalarprodukt gegeben.<br />
Es gilt:<br />
Satz 4.12 (Positiv def<strong>in</strong>ite Matrizen). Es sei A ∈ R n×n e<strong>in</strong>e symmetrische Matrix. Dann<br />
ist A genau dann positiv def<strong>in</strong>it, falls alle (reellen) Eigenwerte von A positiv s<strong>in</strong>d. Dann<br />
s<strong>in</strong>d alle Diagonalelemente von A positiv und das betragsmäßig größte Element steht auf<br />
der Diagonalen.<br />
Beweis: (i) Es sei A e<strong>in</strong>e symmetrische Matrix mit e<strong>in</strong>er Orthonormalbasis aus Eigenvektoren<br />
w 1 , . . . , w n . A sei positiv def<strong>in</strong>it. Dann gilt für beliebigen Eigenvektor w i mit<br />
Eigenwert λ i :<br />
0 < (Aw i , w i ) = λ i (w i , w i ) = λ i .<br />
Umgekehrt seien alle λ i positiv. Für x = ∑ n<br />
i=1 α i w i gilt:<br />
(Ax, x) = ∑ (λ i α i ω i , α j ω j ) = ∑<br />
i,j<br />
i<br />
λ i α 2 i > 0.<br />
(ii) A sei nun e<strong>in</strong>e reelle, positiv def<strong>in</strong>ite Matrix. Es sei e i der i-te E<strong>in</strong>heitsvektor. Dann<br />
gilt:<br />
0 < (Ae i , e i ) = a ii .<br />
113
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
D.h., alle Diagonalelemente s<strong>in</strong>d positiv.<br />
(iii) Entsprechend wählen wir nun x = e i − sign(a ij )e j . Wir nehmen an, dass a ji = a ij das<br />
betragsmäßig größte Element der Matrix sei. Dann gilt:<br />
0 < (Ax, x) = a ii − sign(a ij )(a ij + a ji ) + a jj = a ii + a ji − 2|a ij | ≤ 0.<br />
Aus <strong>die</strong>sem Widerspruch folgt <strong>die</strong> letzte Aussage des Satzes: das betragsmäßig größte<br />
Element muss e<strong>in</strong> Diagonalelement se<strong>in</strong>.<br />
□<br />
Für Normen auf dem Raum der Matrizen def<strong>in</strong>ieren wir weitere Struktureigenschaften:<br />
Def<strong>in</strong>ition 4.13 (Matrixnormen). E<strong>in</strong>e Norm ‖ · ‖ : R n×n → R + heißt Matrizenorm,<br />
falls sie submultiplikativ ist:<br />
‖AB‖ ≤ ‖A‖ ‖B‖ ∀A, B ∈ R n×n .<br />
Sie heißt verträglich mit e<strong>in</strong>er Vektornorm ‖ · ‖ : R n → R + , falls gilt:<br />
‖Ax‖ ≤ ‖A‖ ‖x‖ ∀A ∈ R n×n , x ∈ R n .<br />
E<strong>in</strong>e Matrixnorm ‖·‖ : R n×n → R + heißt von e<strong>in</strong>er Vektornorm ‖·‖ : R n → R + <strong>in</strong>duziert,<br />
falls gilt:<br />
‖Ax‖<br />
‖A‖ := max<br />
x≠0 ‖x‖ .<br />
Es ist leicht nachzuweisen, dass jede von e<strong>in</strong>er Vektornorm <strong>in</strong>duzierte Matrixnorm mit<br />
<strong>die</strong>ser auch verträglich ist. Verträglich mit der euklidischen Norm ist aber auch <strong>die</strong> Frobeniusnorm<br />
⎛ ⎞ 1<br />
2<br />
n∑<br />
‖A‖ F := ⎝ ⎠ ,<br />
a 2 ij<br />
i,j=1<br />
welche nicht von e<strong>in</strong>er Vektor-Norm <strong>in</strong>duziert ist. Für allgeme<strong>in</strong>e Normen auf dem Vektorraum<br />
der Matrizen gilt nicht notwendigerweise ‖I‖ = 1, wobei I ∈ R n×n <strong>die</strong> E<strong>in</strong>heitsmatrix<br />
ist. Dieser Zusammenhang gilt aber für jede von e<strong>in</strong>er Vektornorm <strong>in</strong>duzierte<br />
Matrixnorm. Wir fassen im folgenden Satz <strong>die</strong> wesentlichen <strong>in</strong>duzierten Matrixnormen<br />
zusammen:<br />
Satz 4.14 (Induzierte Matrixnormen). Die aus der euklidischen Vektornorm, der Maximumsnorm<br />
sowie der l 1 -Norm <strong>in</strong>duzierten Matrixnormen s<strong>in</strong>d <strong>die</strong> Spektralnorm ‖·‖ 2 , <strong>die</strong><br />
maximale Zeilensumme ‖ · ‖ ∞ , sowie <strong>die</strong> maximale Spaltensumme ‖ · ‖ 1 :<br />
√<br />
‖A‖ 2 = spr(A T A), spr(B) := max{|λ|, λ ist Eigenwert von B},<br />
m∑<br />
‖A‖ ∞ = max |a ij |,<br />
‖A‖ 1 =<br />
i=1,...,n<br />
j=1<br />
n∑<br />
max<br />
j=1,...,m<br />
i=1<br />
|a ij |.<br />
114
4.1 Grundlagen der l<strong>in</strong>earen Algebra<br />
Beweis: (i) Es gilt:<br />
‖A‖ 2 ‖Ax‖ 2 2<br />
2 = sup<br />
x≠0 ‖x‖ 2 2<br />
(Ax, Ax) (A T Ax, x)<br />
= sup<br />
x≠0 ‖x‖ 2 = sup<br />
2 x≠0 ‖x‖ 2 2<br />
Die Matrix A T A ist symmetrisch und hat als solche nur reelle Eigenwerte. Sie besitzt e<strong>in</strong>e<br />
Orthonormalbasis ω i ∈ R n von Eigenvektoren mit Eigenwerten λ i ≥ 0. Alle Eigenwerte λ i<br />
s<strong>in</strong>d größer gleich Null, denn:<br />
λ i = λ i (ω i , ω i ) = (A T Aω i , ω i ) = (Aω i , Aω i ) = ‖Aω i ‖ 2 ≥ 0.<br />
Es sei x ∈ R n beliebig mit Basisdarstellung x = ∑ i α iω i . Es gilt dann wegen (ω i , ω j ) 2 = δ ij<br />
<strong>die</strong> Beziehung ‖x‖ 2 2 = ∑ i α2 i sowie mit dem Koeffizientenvektor α ∈ Rn :<br />
‖A‖ 2 ( ∑ i<br />
2 = sup<br />
α iA T Aω i , ∑ i α iω i )<br />
∑<br />
α≠0<br />
= sup<br />
α≠0<br />
∑<br />
i λ iα 2 i<br />
∑<br />
i α2 i<br />
i α2 i<br />
≤ max<br />
i<br />
λ i .<br />
( ∑ i<br />
= sup<br />
α iλ i ω i , ∑ i α iω i )<br />
∑<br />
α≠0<br />
i α2 i<br />
Es sei nun umgekehrt durch λ k der größte Eigenwert gegeben. Dann gilt für α i = δ ki :<br />
0 ≤ max λ i = λ k = ∑ i<br />
i<br />
λ i α 2 i ≤ ‖A‖ 2 2.<br />
(ii) Wir zeigen das Ergebnis exemplarisch für <strong>die</strong> Maximumsnorm:<br />
⎛<br />
⎞<br />
∑ m<br />
‖Ax‖ ∞ =<br />
a ij x j ⎠ .<br />
sup<br />
‖x‖ ∞=1<br />
⎝max<br />
i<br />
Jede Summe nimmt ihr Maximum an, falls |x j | = 1 und falls das Vorzeichen x j so gewählt<br />
wird, dass a ij x j ≥ 0 für alle j = 1, . . . , m. Dann gilt:<br />
‖Ax‖ ∞ = max<br />
i<br />
m ∑<br />
j=1<br />
j=1<br />
|a ij |.<br />
Als Nebenresultat erhalten wir, dass jeder Eigenwert betragsmäßig durch <strong>die</strong> Spektralnorm<br />
der Matrix A beschränkt ist. Es gilt sogar mit beliebiger Matrixnorm und verträglicher<br />
Vektornorm für e<strong>in</strong>en Eigenwert λ mit zugehörigem Eigenvektor w ∈ R n von A:<br />
|λ| =<br />
|λ| ‖w‖<br />
‖w‖<br />
= ‖Aw‖<br />
‖w‖<br />
‖A‖ ‖w‖<br />
≤ = ‖A‖.<br />
‖w‖<br />
E<strong>in</strong>e e<strong>in</strong>fache Schranke für den betragsmäßig größten Eigenwert erhält man also durch<br />
Analyse beliebiger (verträglicher) Matrixnormen.<br />
Aus Satz 4.14 folgern wir weiter, dass für symmetrische Matrizen <strong>die</strong> ‖ · ‖ 2 -Norm mit dem<br />
Spektralradius der Matrix selbst übere<strong>in</strong>stimmt, daher der Name Spektralnorm.<br />
□<br />
115
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
4.2 Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme<br />
Das Lösen von l<strong>in</strong>earen Gleichungssystemen ist e<strong>in</strong>e der wichtigsten numerischen Aufgaben.<br />
Viele Probleme s<strong>in</strong>d nicht unmittelbar als l<strong>in</strong>eares Gleichungssystem formuliert,<br />
<strong>in</strong> vielen Anwendungen treten allerd<strong>in</strong>gs ständig (unter Umständen sehr große) l<strong>in</strong>eare<br />
Gleichungssysteme auf. Groß bedeutet <strong>in</strong> Anwendungen, dass Gleichungssysteme mit vielen<br />
Millionen Unbekannten gelöst werden müssen. Wir werden uns <strong>in</strong> <strong>die</strong>sem Abschnitt<br />
ausschließlich mit reellwertigen Matrizen A ∈ R n×n befassen. Methoden zum Lösen von<br />
l<strong>in</strong>earen Gleichungsystemen klassifiziert man als direkte Verfahren, welche <strong>die</strong> Lösung des<br />
Gleichungssystems unmittelbar und bis auf Rundungsfehlere<strong>in</strong>flüsse exakt berechnen und<br />
iterative Verfahren, welche <strong>die</strong> Lösung durch e<strong>in</strong>e Fixpunktiteration approximieren. Hier<br />
befassen wir uns ausschließlich mit direkten Methoden. Iterative Verfahren s<strong>in</strong>d Gegenstand<br />
von Kapitel 5.<br />
Als e<strong>in</strong>führendes Beispiel betrachten wir das e<strong>in</strong>fache Gleichungssystem<br />
( ( ) ( )<br />
0.988 0.959 x 0.087<br />
=<br />
0.992 0.963)<br />
y 0.087<br />
mit der Lösung (x, y) T = (3, −3) T . Wir bestimmen <strong>die</strong> Lösung numerisch durch Gauß-<br />
Elim<strong>in</strong>ation mit dreistelliger Rechengenauigkeit. Die Gauß-Elim<strong>in</strong>ation setzen wir dabei<br />
als bekannt voraus:<br />
(<br />
0.988 0.959<br />
)<br />
0.087<br />
0.992 0.963 0.087 ×0.992/0.998<br />
(<br />
0.988 0.959<br />
)<br />
0.087<br />
0.988 0.960 0.0866 ↓ −<br />
(<br />
0.988 0.959 0.087<br />
)<br />
0 0.001 −0.0004<br />
Mit Hilfe der Gauß-Elim<strong>in</strong>ation haben wir <strong>die</strong> Matrix A auf e<strong>in</strong>e Dreiecksgestalt transformiert.<br />
Die rechte Seite b wurde entsprechend modifiziert. Das resultierende Dreieckssystem<br />
kann nun sehr e<strong>in</strong>fach durch Rückwärtse<strong>in</strong>setzen gelöst werden (bei dreistelliger<br />
Rechnung):<br />
0.001y = −0.0004 ⇒ y = −0.4, 0.988x = 0.087 − 0.959 · (−0.4) ≈ 0.471 ⇒ x = 0.477<br />
Wir erhalten also (x, y) = (0.477, −0.4). Der relative Fehler der numerischen Lösung beträgt<br />
somit fast 90%. Die numerische Aufgabe, e<strong>in</strong> Gleichungssystem zu lösen sche<strong>in</strong>t also<br />
entweder generell sehr schlecht konditioniert zu se<strong>in</strong> (siehe Kapitel 1), oder aber das Elim<strong>in</strong>ationsverfahren<br />
zur Lösung e<strong>in</strong>es l<strong>in</strong>earen Gleichungssystems ist numerisch sehr <strong>in</strong>stabil<br />
und nicht gut geeignet. Der Frage nach der Konditionierung und Stabilität gehen wir im<br />
folgenden Abschnitt auf den Grund.<br />
116
4.2 Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme<br />
In der praktischen Anwendung treten sehr große Gleichungssysteme Ax = b auf. Bei<br />
der numerischen Approximation von partiellen Differentialgleichungen müssen Matrizen<br />
A ∈ R n×n der Dimension n > 1 000 000 <strong>in</strong>vertiert werden. (Man nennt das Lösen e<strong>in</strong>es<br />
l<strong>in</strong>earen Gleichungssystems oft <strong>in</strong>vertieren, auch wenn <strong>die</strong> Inverse A −1 nicht wirklich<br />
aufgestellt wird). H<strong>in</strong>zu kommt, dass e<strong>in</strong> solches l<strong>in</strong>eares Gleichungssystem oft wiederholt<br />
(viele 1 000 mal) gelöst werden muss (z.B. bei der Diskretisierung von <strong>in</strong>stationären<br />
Differentialgleichungen, oder bei nichtl<strong>in</strong>earen Gleichungen). Neben der Stabilität des Lösungsprozesses<br />
wird auch <strong>die</strong> numerische Effizienz e<strong>in</strong>e große Rolle spielen. Man versuche,<br />
e<strong>in</strong>e 20 × 20-Matrix mit dem Gauß’schen Elim<strong>in</strong>ationsverfahren zu <strong>in</strong>vertieren!<br />
4.2.1 Störungstheorie & Stabilitätsanalyse von l<strong>in</strong>earen Gleichungssystemen<br />
Zu e<strong>in</strong>er quadratischen, regulären Matrix A ∈ R n×n sowie e<strong>in</strong>em Vektor b ∈ R n betrachten<br />
wir das l<strong>in</strong>eare Gleichungssystem<br />
Ax = b.<br />
Durch numerische Fehler, Rundungsfehler oder bloße E<strong>in</strong>gabefehler zum Beispiel durch<br />
Messungenauigkeiten liegen sowohl A als auch b nur gestört vor:<br />
Øx = ˜b.<br />
Dabei sei à = A + δA sowie ˜b = b + δb, mit Störung δA sowie δb.<br />
Wir kommen nun zur Kernaussage <strong>die</strong>ses Abschnitts und wollen <strong>die</strong> Fehlerverstärkung<br />
beim Lösen von l<strong>in</strong>earen Gleichungssystemen betrachten. Fehler können dabei <strong>in</strong> der Matrix<br />
A als auch <strong>in</strong> der rechten Seite b auftauchen. Wir betrachten zunächst Störungen der<br />
rechten Seite:<br />
Satz 4.15 (Störung der rechten Seite). Durch x ∈ R n sei <strong>die</strong> Lösung des l<strong>in</strong>earen Gleichungsystems<br />
Ax = b gegeben. Es sei δb e<strong>in</strong>e Störung der rechten Seite ˜b = b + δb und ˜x<br />
<strong>die</strong> Lösung des gestörten Gleichungssystems. Dann gilt:<br />
mit der Konditionszahl der Matrix<br />
‖δx‖<br />
‖x‖ ≤ cond(A)‖δb‖ ‖b‖ ,<br />
cond(A) = ‖A‖ · ‖A −1 ‖.<br />
Beweis: Es sei ‖ · ‖ e<strong>in</strong>e beliebige Matrixnorm mit verträglicher Vektornorm ‖ · ‖. Für <strong>die</strong><br />
Lösung x ∈ R n und gestörte Lösung ˜x ∈ R n gilt:<br />
˜x − x = A −1 (A˜x − Ax) = A −1 (˜b − b) = A −1 δb.<br />
Also:<br />
‖δx‖<br />
‖x‖ ≤ ‖A−1 ‖ ‖δb‖<br />
‖x‖ · ‖b‖<br />
‖b‖ = ‖A−1 ‖ ‖δb‖<br />
‖b‖ · ‖Ax‖<br />
‖x‖<br />
≤ ‖A‖ · ‖δb‖<br />
‖A−1 ‖<br />
} {{ } ‖b‖ .<br />
=:cond(A)<br />
□<br />
117
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Bemerkung 4.16 (Konditionszahl e<strong>in</strong>er Matrix). Die Konditionszahl e<strong>in</strong>er Matrix spielt<br />
<strong>die</strong> entscheidende Rolle <strong>in</strong> der numerischen L<strong>in</strong>earen Algebra. Betrachten wir etwa <strong>die</strong><br />
Konditionierung der Matrix-Vektor Multiplikation y = Ax so erhalten wir bei gestörter<br />
E<strong>in</strong>gabe ˜x = x + δx wieder:<br />
‖δy‖<br />
‖y‖ ≤ cond(A)‖δx‖ ‖x‖<br />
Die Konditionszahl e<strong>in</strong>er Matrix hängt von der gewählten Norm ab. Da jedoch alle Matrixnormen<br />
im R n×n äquivalent s<strong>in</strong>d, s<strong>in</strong>d auch alle Konditionsbegriffe äquivalent. Mit<br />
Satz 4.14 folgern wir für symmetrische Matrizen für den Spezialfall cond s (A):<br />
cond 2 (A) = ‖A‖ 2 · ‖A −1 ‖ 2 =<br />
max{|λ|, λ Eigenwert von A}<br />
m<strong>in</strong>{|λ|, λ Eigenwert von A} .<br />
Wir betrachten nun den Fall, dass <strong>die</strong> Matrix A e<strong>in</strong>es l<strong>in</strong>earen Gleichungssystems mit<br />
e<strong>in</strong>er Störung δA versehen ist. Es stellt sich zunächst <strong>die</strong> Frage, ob <strong>die</strong> gestörte Matrix<br />
à = A + δA überhaupt noch regulär ist.<br />
Hilfsatz 4.17. Es sei durch ‖·‖ e<strong>in</strong>e von der Vektornorm <strong>in</strong>duzierte Matrixnorm gegeben.<br />
Weiter sei B ∈ R n×n e<strong>in</strong>e Matrix mit ‖B‖ < 1. Dann ist <strong>die</strong> Matrix I + B regulär und es<br />
gilt <strong>die</strong> Abschätzung:<br />
‖(I + B) −1 1<br />
‖ ≤<br />
1 − ‖B‖ .<br />
Beweis: Es gilt:<br />
‖(I + B)x‖ ≥ ‖x‖ − ‖Bx‖ ≥ (1 − ‖B‖)‖x‖<br />
Da 1 − ‖B‖ > 0 ist durch I + B e<strong>in</strong>e <strong>in</strong>jektive Abbildung gegeben. Also ist I + B e<strong>in</strong>e<br />
reguläre Matrix. Weiter gilt:<br />
1 = ‖I‖ = ‖(I + B)(I + B) −1 ‖ = ‖(I + B) −1 + B(I + B) −1 ‖<br />
≥ ‖(I + B) −1 ‖ − ‖B‖ ‖(I + B) −1 ‖ = ‖(I + B) −1 ‖(1 − ‖B‖) > 0.<br />
Mit <strong>die</strong>sem Hilfsatz können wir im Folgenden auch auf <strong>die</strong> Störung der Matrix e<strong>in</strong>gehen:<br />
Satz 4.18 (Störung der Matrix). Es sei x ∈ R n <strong>die</strong> Lösung des l<strong>in</strong>earen Gleichungssystems<br />
Ax = b und à = A + δA e<strong>in</strong>er gestörte Matrix mit ‖δA‖ ≤ ‖A−1 ‖ −1 . Für <strong>die</strong> gestörte<br />
Lösung ˜x gilt:<br />
‖δx‖<br />
‖x‖ ≤<br />
cond(A) ‖δA‖<br />
1 − cond(A)‖δA‖/‖A‖ ‖A‖ .<br />
Beweis: Wir betrachten den Fall, dass <strong>die</strong> rechte Seite nicht gestört ist: δb = 0. Dann gilt<br />
für Lösung x sowie gestörte Lösung ˜x und Fehler δx := ˜x − x:<br />
□<br />
(A + δA)˜x = b<br />
(A + δA)x = b + δAx<br />
⇒<br />
δx = −[A + δA] −1 δAx.<br />
118
4.2 Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme<br />
Da laut Voraussetzung ‖A −1 δA‖ ≤ ‖A −1 ‖ ‖δA‖ < 1 folgt mit Hilfsatz 4.17:<br />
‖δx‖ ≤ ‖A −1 [I + A −1 δA] −1 δA‖ ‖x‖ ≤<br />
‖A −1 ‖<br />
1 − ‖A −1 ‖δA‖ ‖x‖.<br />
δA‖<br />
Das Ergebnis erhalten wir durch zweimaliges Erweitern mit ‖A‖/‖A‖ sowie mit der Voraussetzung<br />
0 ≤ ‖A −1 δA‖ < 1.<br />
□<br />
Diese beiden Störungssätze können e<strong>in</strong>fach komb<strong>in</strong>iert werden, um gleichzeitig <strong>die</strong> Störung<br />
durch rechte Seite und Matrix abschätzen zu können:<br />
Satz 4.19 (Störungssatz für l<strong>in</strong>eare Gleichungssysteme). Es sei x ∈ R n <strong>die</strong> Lösung des<br />
l<strong>in</strong>earen Gleichungssystems Ax = b mit e<strong>in</strong>er regulären Matrix A ∈ R n×n . Für <strong>die</strong> Lösung<br />
˜x ∈ R n des gestörten Systems Øx = ˜b mit Störungen δb = ˜b − b und δA = à − A gilt unter<br />
der Voraussetzung<br />
‖δA‖ < 1<br />
‖A −1 ‖<br />
<strong>die</strong> Abschätzung:<br />
‖δx‖<br />
‖x‖ ≤<br />
(<br />
cond(A) ‖δb‖<br />
1 − cond(A)‖δA‖/‖A‖ ‖b‖ + ‖δA‖ )<br />
,<br />
‖A‖<br />
mit der Konditionszahl<br />
cond(A) = ‖A‖ ‖A −1 ‖.<br />
Beweis: Wir komb<strong>in</strong>ieren <strong>die</strong> Aussagen von Satz 4.15 und 4.18. Hierzu sei x <strong>die</strong> Lösung<br />
von Ax = b, ˜x <strong>die</strong> gestörte Lösung Øx = ˜b und ˆx <strong>die</strong> Lösung zu gestörter rechter Seite<br />
Aˆx = ˜b. Dann gilt:<br />
‖x − ˜x‖ ≤ ‖x − ˆx‖ + ‖ˆx − ˜x‖ ≤ cond(A) ‖δb‖<br />
‖b‖ +<br />
Die Aussage folgt mit (beachte ‖δA‖ < ‖A −1 ‖ −1 )<br />
cond(A)<br />
1 − cond(A) ‖δA‖<br />
‖A‖<br />
‖δA‖<br />
‖A‖ .<br />
0 ≤ cond(A) ‖δA‖<br />
‖A‖ < ‖A‖ 1<br />
‖A−1 ‖<br />
‖A‖ ‖A −1 ‖ ≤ 1.<br />
Mit <strong>die</strong>sem Ergebnis kehren wir zum e<strong>in</strong>führenden Beispiel aus Abschnitt 4.2 zurück:<br />
( )<br />
0.988 0.959<br />
A =<br />
0.992 0.963<br />
( )<br />
⇒ A −1 8301 −8267<br />
≈<br />
−8552 8517<br />
□<br />
In der maximalen Zeilensummennorm ‖ · ‖ ∞ gilt:<br />
‖A‖ 1 = 1.955, ‖A −1 ‖ 1 ≈ 17079, cond 1 (A) ≈ 33370.<br />
119
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Das Lösen e<strong>in</strong>es l<strong>in</strong>earen Gleichungssystems mit der Matrix A ist also äußerst schlecht<br />
konditioniert. Hieraus resultiert der enorme Rundungsfehler im Beispiel zu Beg<strong>in</strong>n des<br />
Kapitels. Wir halten hier fest: bei großer Konditionszahl ist <strong>die</strong> Konditionierung des Problems<br />
sehr schlecht, d.h. der große Fehler ist immanent mit der Aufgabe verbunden und<br />
nicht unbed<strong>in</strong>gt auf e<strong>in</strong> Stabilitätsproblem des Verfahrens zurückzuführen.<br />
4.2.2 Das Gauß’sche Elim<strong>in</strong>ationsverfahren und <strong>die</strong> LR-Zerlegung<br />
Das wichtigste Verfahren zum Lösen e<strong>in</strong>es l<strong>in</strong>earen Gleichungsystems Ax = b mit quadratischer<br />
Matrix A ∈ R n×n ist das Gauß’sche Elim<strong>in</strong>ationsverfahren: durch Elim<strong>in</strong>ation der<br />
E<strong>in</strong>träge unterhalb der Diagonale wird <strong>die</strong> Matrix A ∈ R n×n <strong>in</strong> den ersten n − 1 Schritten<br />
auf e<strong>in</strong>e obere rechte Dreiecksgestalt gebracht:<br />
⎛<br />
⎞ ⎛<br />
⎞ ⎛<br />
⎞<br />
∗ ∗ ∗ · · · ∗ ∗ ∗ ∗ · · · ∗<br />
∗ ∗ ∗ · · · ∗<br />
∗ ∗ ∗ ∗<br />
0 ∗ ∗ ∗<br />
0 ∗ ∗ ∗<br />
∗ ∗ ∗ ∗<br />
→<br />
0 ∗ ∗ ∗<br />
→ · · · →<br />
0 0 ∗ ∗<br />
⎜ .<br />
⎝.<br />
.. ⎟ ⎜ . . ⎠ ⎝.<br />
.. ⎟ ⎜<br />
. . ⎠ ⎝.<br />
.. ⎟ . ⎠<br />
∗ ∗ ∗ · · · ∗ 0 ∗ ∗ · · · ∗<br />
0 0 · · · 0 ∗<br />
Mit der Dreiecksmatrix R ∈ R n×n (R = (r ij ) n i,j=1 mit r ij = 0 für i > j) kann das reduzierte<br />
Gleichungssystem<br />
Rx = ˜b,<br />
durch Rückwärtse<strong>in</strong>setzen gelöst werden. Wir betrachten zunächst <strong>die</strong>se Rückwärtse<strong>in</strong>setzen:<br />
Algorithmus 4.20 (Rückwärtse<strong>in</strong>setzen). Es sei R n×n e<strong>in</strong>e rechte obere Dreiecksmatrix.<br />
Die Lösung x ∈ R n von Rx = b ist gegeben durch:<br />
1. Setze x n = r −1<br />
nnb n<br />
2. Für i = n − 1, . . . , 1<br />
x i = r −1<br />
ii<br />
⎛<br />
⎝b i −<br />
n∑<br />
j=i+1<br />
r ij x j<br />
⎞<br />
⎠ .<br />
Es gilt:<br />
Satz 4.21 (Rückwärtse<strong>in</strong>setzen). Es sei R ∈ R n×n e<strong>in</strong>e rechte obere Dreiecksmatrix mit<br />
r ii ≠ 0. Dann ist <strong>die</strong> Matrix R regulär und das Rückwärtse<strong>in</strong>setzen erfordert<br />
arithmetische Operationen.<br />
N R (n) = n2<br />
2 + O(n)<br />
120
4.2 Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme<br />
Beweis: Es gilt det(R) = ∏ r ii ≠ 0. Also ist <strong>die</strong> Matrix R regulär.<br />
Jeder Schritt der Rückwärtse<strong>in</strong>setzen besteht aus Additionen, Multiplikationen und Division<br />
durch <strong>die</strong> Diagonalelemente. Bei r ii ≠ 0 ist jeder Schritt durchführbar.<br />
Zur Berechnung von x i s<strong>in</strong>d n−(i+1) Multiplikationen und Additionen notwendig. H<strong>in</strong>zu<br />
kommt e<strong>in</strong>e Division pro Schritt. Dies ergibt:<br />
n +<br />
n−1 ∑<br />
i=1<br />
( n − (i + 1)<br />
) = n + (n − 1)n − (n − 1) −<br />
n(n − 1)<br />
2<br />
= n2 − n + 2<br />
.<br />
2<br />
Die Transformation von A auf Dreiecksgestalt geschieht durch zeilenweise Elim<strong>in</strong>ation:<br />
⎛<br />
⎞ ⎛<br />
⎞<br />
a 11 a 12 a 13 . . . a 1n<br />
a 11 a 12 a 13 . . . a 1n<br />
a 21 a 22 a 23 . . . a 2n<br />
0 a (1)<br />
22 a (1)<br />
23 . . . a (1)<br />
2n<br />
. a 31 a 32 a .. 33 a3n<br />
→<br />
0 a (1)<br />
32 a (3) . .. (1)<br />
33 a 3n<br />
→<br />
⎜<br />
⎝<br />
.<br />
. . .. . ⎟<br />
.. . ⎠ ⎜<br />
⎝<br />
.<br />
. . .. . .. ⎟ . ⎠<br />
a n1 a n2 a n3 . . . a nn 0 a (1)<br />
n2 a (1)<br />
n3 . . . a (1)<br />
nn<br />
⎛<br />
⎞<br />
a 11 a 12 a 13 . . . a 1n<br />
0 a (1)<br />
22 a (1)<br />
23 . . . a (1)<br />
2n<br />
→<br />
0 0 a (2) . .. (2)<br />
33 a 3n<br />
→ · · · → A (n−1) =: R.<br />
⎜<br />
.<br />
⎝ . . .. . .. ⎟ . ⎠<br />
0 0 a (2)<br />
n3 . . . a (2)<br />
nn<br />
Beg<strong>in</strong>nend mit A (0) := A werden sukzessive Matrizen A (i) erzeugt, mit A (n−1) =: R. Dabei<br />
wird <strong>in</strong> Schritt i des Verfahrens <strong>die</strong> Spalte i-te Spalte von A (i−1) unterhalb der Diagonalen<br />
elim<strong>in</strong>iert. Dies geschieht durch Subtraktion des g (i)<br />
k<br />
-fachen der i-ten Zeile von der k-ten.<br />
Hierbei gilt:<br />
g (i)<br />
k<br />
:= a(i−1) ki<br />
a (i−1)<br />
ii<br />
Im i-ten Elim<strong>in</strong>ationschritt bleiben <strong>die</strong> ersten i − 1 Zeilen und Spalten unverändert. Der<br />
i-te Elim<strong>in</strong>ationsschritt lässt sich kompakt <strong>in</strong> Form e<strong>in</strong>er Matrix-Matrix Multiplikation<br />
schreiben<br />
A (i) = F (i) A (i−1) ,<br />
mit der Elim<strong>in</strong>ationsmatrix (alle nicht spezifizierten E<strong>in</strong>träge s<strong>in</strong>d Null):<br />
⎛<br />
1<br />
F (i) :=<br />
⎜<br />
⎝<br />
.<br />
⎞<br />
. .. 1<br />
−g (i) . ..<br />
, g (i)<br />
k<br />
i+1<br />
.<br />
. .. ⎟<br />
⎠<br />
−g n (i)<br />
1<br />
:= a(i−1) ki<br />
a (i−1)<br />
ii<br />
.<br />
□<br />
121
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Mehrfache Anwendung von Elim<strong>in</strong>ationsmatrizen führt zu der Darstellung:<br />
R = A (n−1) = F (n−1) A (n−2) = F (n−1) F (n−2) A (n−3) = } F (n−1) {{ · · · F (1)<br />
} A (0) = F A. (4.1)<br />
=:F<br />
Matrizen mit der Gestalt der Elim<strong>in</strong>ationsmatrizen F (i) heißen Frobeniusmatrix. Es gilt<br />
der folgende Satz:<br />
Satz 4.22 (Frobeniusmatrix). Jede Frobeniusmatrix F (i) ∈ R n×n ist regulär und es gilt:<br />
⎛<br />
1<br />
F (i) :=<br />
⎜<br />
⎝<br />
⎞<br />
. .. 1<br />
.<br />
−g ..<br />
i+1 .<br />
. .. ⎟<br />
⎠<br />
−g n 1<br />
⎛<br />
1<br />
⇒ [F (i) ] −1 :=<br />
⎜<br />
⎝<br />
Für zwei Frobeniusmatrizen F (i1) und F (i2) mit i 1 < i 2 gilt:<br />
⎛<br />
1<br />
. .. 1<br />
−g (i 1)<br />
i 1 +1 1<br />
F (i1) F (i2) = F (i1) + F (i2) .<br />
− I =<br />
. ..<br />
. 1<br />
. −g (i 2)<br />
i 2 +1<br />
⎜<br />
⎝ .<br />
.<br />
−g (i 1)<br />
n −g (i 2)<br />
⎞<br />
. .. 1<br />
.<br />
g ..<br />
.<br />
i+1 .<br />
. .. ⎟<br />
⎠<br />
g n 1<br />
⎞<br />
. ..<br />
. .. ⎟<br />
⎠<br />
n 1<br />
Beweis: Nachrechnen!<br />
□<br />
Bei der Multiplikation von Frobeniusmatrizen ist darauf zu achten, dass <strong>die</strong>se nicht kommutativ<br />
ist. Es gilt:<br />
F (i 2) F (i 1) ≠ F (i 1) + F (i 2) − I für i 1 < i 2 !<br />
Aus dem Multiplikationsverhalten von Frobeniusmatrizen können wir für i 1 < i 2 < i 3 e<strong>in</strong>e<br />
e<strong>in</strong>fache Verallgeme<strong>in</strong>erung ableiten:<br />
F (i 1) F (i 2) F (i 3) = F (i 1) (F (i 2) + F (i 3<br />
− I)F (i 1) F (i 2) + F (i 1) F (i 3<br />
− F (i 1)<br />
= F (i 1) + F (i 2) − I + F (i 1) + F (i 3) − I − F (i 1)<br />
= F (i 1) + F (i 2) + F (i 3) − 2I.<br />
122
4.2 Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme<br />
Wir setzen nun (4.1) fort und mit F −(i) := [F (i) ] −1 gilt bei Verwendung von Satz 4.22<br />
zunächst, dass F als Produkt von regulären Matrizen selbst regulär ist. Also folgt:<br />
A = F −1 R = [F (n−1) · · · F (1) ] −1 R = } F −(1) · ·{{ · F −(n−1)<br />
} R.<br />
=:L<br />
Die Matrix L ist nach der Verallgeme<strong>in</strong>erung von Satz 4.22 e<strong>in</strong>e untere Dreiecksmatrix<br />
mit Diagonale<strong>in</strong>trägen 1:<br />
Wir fassen zusammen:<br />
⎛<br />
⎞<br />
1<br />
g (1)<br />
2 1<br />
g (1)<br />
L =<br />
3 g (2)<br />
3 1<br />
g (1)<br />
4 g (2)<br />
4 g (3)<br />
4 1<br />
⎜<br />
.<br />
⎝ . . .. . .. . .. ⎟<br />
⎠<br />
g n (1) g n (2) · · · · · · g n (n−1) 1.<br />
Satz 4.23 (LR-Zerlegung). Es sei A ∈ R n×n e<strong>in</strong>e quadratische, reguläre Matrix. Angenommen<br />
alle bei der Elim<strong>in</strong>ation auftretenden Diagonalelemente a (i−1)<br />
ii seien ungleich<br />
Null. Dann existiert <strong>die</strong> e<strong>in</strong>deutig bestimmte LR-Zerlegung <strong>in</strong> e<strong>in</strong>e rechte obere reguläre<br />
Dreiecksmatrix R ∈ R n×n sowie <strong>in</strong> e<strong>in</strong>e l<strong>in</strong>ke untere reguläre Dreiecksmatrix L ∈ R n×n<br />
mit Diagonale<strong>in</strong>trägen 1. Die Aufwand zur Durchführung der LR-Zerlegung beträgt<br />
arithmetische Operationen.<br />
1<br />
3 n3 + O(n 2 )<br />
Beweis: (i) E<strong>in</strong>deutigkeit. Angenommen, es existieren zwei LR-Zerlegungen<br />
A = L 1 R 1 = L 2 R 2 ↔ L −1<br />
2 L 1 = R 2 R −1<br />
1 .<br />
Das Produkt von Dreiecksmatrizen ist wieder e<strong>in</strong>e Dreiecksmatrix, also müssen beide Produkte<br />
Diagonalmatrizen se<strong>in</strong>. Das Produkt L −1<br />
2 L 1 hat nur E<strong>in</strong>sen auf der Diagonale, also<br />
folgt<br />
L −1<br />
2 L 1 = R 2 R1 −1 = I,<br />
und somit L 1 = L 2 und R 1 = R 2 .<br />
(ii) Durchführbarkeit. Jeder Schritt der Elim<strong>in</strong>ation ist durchführbar, solange nicht durch<br />
a (i−1)<br />
ii = 0 geteilt werden muss. Die Matrix F ist per Konstruktion regulär und somit<br />
existiert auch <strong>die</strong> Matrix L.<br />
(iii) Aufwand. Im i-ten Elim<strong>in</strong>ationsschritt<br />
A (i) = F (i) A (i−1) 123
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
s<strong>in</strong>d zunächst n − (i + 1) arithmetische Operationen zur Berechnung der g (i)<br />
j für j =<br />
i + 1, . . . , n notwendig. Die Matrix-Matrix Multiplikation betrifft nur alle Elemente a kl<br />
mit k > i sowie l > i. Es gilt:<br />
a (i)<br />
kl<br />
= a (i−1)<br />
kl<br />
+ g (i)<br />
k a(i) ik<br />
, k, l = i + 1, . . . , n.<br />
Hierfür s<strong>in</strong>d (n − (i + 1)) 2 arithmetische Operationen notwendig. Insgesamt summiert sich<br />
der Aufwand <strong>in</strong> den n − 1 Schritten zu:<br />
n−1 ∑ {<br />
N LR (n) = n − (i + 1) + (n − (i + 1))<br />
2 } n−1 ∑ {<br />
= n 2 − n − i(1 + 2n) + i 2} ,<br />
i=1<br />
i=1<br />
und mit den bekannten Summenformeln folgt:<br />
N LR (n) = (n − 1)n 2 − (n − 1)n −<br />
n(n − 1) (n − 1)n(2n − 1)<br />
(1 + 2n) + = 1 2<br />
6 3 n3 − 2n 2 + 5 3 n.<br />
□<br />
Die LR-Zerlegung kann nun zum Lösen von l<strong>in</strong>earen Gleichungssystemen verwendet werden:<br />
Algorithmus 4.24 (Lösen von l<strong>in</strong>earen Gleichungsystemen mit der LR-Zerlegung). Es<br />
sei A ∈ R n×n e<strong>in</strong>e reguläre Matrix, für welche <strong>die</strong> LR-Zerlegung existiert.<br />
1. Berechne <strong>die</strong> LR-Zerlegung A = LR <strong>in</strong> l<strong>in</strong>ke untere und rechte obere Dreiecksmatrix.<br />
2. Löse das Gleichungssystem Ax = b durch Vorwärts- und Rückwärtse<strong>in</strong>setzen:<br />
(i)<br />
Ly = b<br />
(ii) Rx = y.<br />
Die Vorwärtselim<strong>in</strong>ation läuft entsprechend der Rückwärtse<strong>in</strong>setzen <strong>in</strong> Algorithmus 4.20<br />
und gemäß Satz 4.21 benötigt sie O(n 2 ) Operationen. Das eigentliche Lösen e<strong>in</strong>es l<strong>in</strong>earen<br />
Gleichungsystems ist weit weniger aufwendig als das Erstellen der Zerlegung. In vielen<br />
Anwendungsproblemen, etwa bei der Diskretisierung von parabolischen Differentialgleichungen,<br />
müssen sehr viele Gleichungssysteme mit unterschiedlichen rechten Seiten aber<br />
identischen Matrizen h<strong>in</strong>tere<strong>in</strong>ander gelöst werden. Hier bietet es sich an, <strong>die</strong> Zerlegung<br />
nur e<strong>in</strong>mal zu erstellen und dann wiederholt anzuwenden.<br />
124
4.2 Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme<br />
Bemerkung 4.25 (Praktische Aspekte). Die Matrix L ist e<strong>in</strong>e l<strong>in</strong>ke untere Dreiecksmatrix<br />
mit E<strong>in</strong>sen auf der Diagonale. Die bekannten Diagonalelemente müssen demnach<br />
nicht gespeichert werden. Ebenso müssen <strong>die</strong> Nullelemente der Matrizen A (i) unterhalb<br />
der Diagonale nicht gespeichert werden. Es bietet sich an, <strong>die</strong> Matrizen L und R <strong>in</strong> der<br />
gleichen quadratischen Matrix zu speichern. In Schritt i gilt dann:<br />
⎛<br />
⎞<br />
a 11 a 12 a 13 · · · · · · · · · a 1n<br />
l 21 a (1)<br />
22 a (1)<br />
23<br />
.<br />
l 31 l 32 a (2)<br />
. .. 33<br />
.<br />
à (i) .<br />
=<br />
. . . . .. .<br />
. l i+1,i a (i)<br />
i+1,i+1 · · · a (i)<br />
i+1,n<br />
⎜<br />
. ⎝ .<br />
.<br />
.. . ⎟<br />
⎠<br />
l n1 l n2 · · · l n,i a (i)<br />
n,i+1 . . . a (i)<br />
nn<br />
Dabei s<strong>in</strong>d <strong>die</strong> fett gedruckten Werte <strong>die</strong> E<strong>in</strong>träge von L. Die Werte oberhalb der L<strong>in</strong>ie<br />
ändern sich im Verlaufe des Verfahrens nicht mehr und bilden bereits <strong>die</strong> E<strong>in</strong>träge L sowie<br />
R.<br />
Pivotierung Das Element a (i−1)<br />
ii wird das Pivot-Element genannt. Bisher musste <strong>die</strong>ses<br />
Element stets ungleich Null se<strong>in</strong>. Dies ist jedoch für reguläre Matrizen nicht zw<strong>in</strong>gend<br />
notwendig. Wir betrachten als Beispiel <strong>die</strong> Matrix<br />
⎛<br />
⎜<br />
1 4 2<br />
⎞<br />
⎟<br />
A := ⎝2 8 1⎠ .<br />
1 2 1<br />
Im ersten Schritt zur Erstellung der LR-Zerlegung ist a (0)<br />
11<br />
= 1 und es gilt:<br />
⎛ ⎞ ⎛ ⎞ ⎛<br />
1 0 0 1 4 2<br />
A (1) = F (1) ⎜ ⎟ ⎜ ⎟ ⎜<br />
1 4 2<br />
⎞<br />
⎟<br />
A = ⎝−2 1 0⎠<br />
⎝2 8 1⎠ = ⎝0 0 −3⎠ .<br />
−1 0 1 1 2 1 0 −2 −1<br />
An <strong>die</strong>ser Stelle bricht der Algorithmus ab, denn es gilt a (1)<br />
22 = 0. Wir könnten den Algorithmus<br />
jedoch mit der Wahl a (i)<br />
32 = −2 als neues Pivot-Element weiterführen. Dies geschieht<br />
systematisch durch E<strong>in</strong>führen e<strong>in</strong>er Pivotisierung. Im i-ten Schritt des Verfahrens wird<br />
zunächst e<strong>in</strong> geeignetes Pivot-Element a ki <strong>in</strong> der i-ten Spalte gesucht. Die k-te und i-te<br />
Zeile werden getauscht und <strong>die</strong> LR-Zerlegung kann nicht weiter durchgeführt werden. Das<br />
125
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Tauschen von k-ter und i-ter Zeile erfolgt durch Multiplikation mit e<strong>in</strong>er Pivot-Matrix:<br />
⎛<br />
⎞<br />
1<br />
. .. 1<br />
0 0 . . . 0 1<br />
0 1 0<br />
P ki :=<br />
. . .. .<br />
0 1 0<br />
1 0 · · · 0 0<br />
1<br />
⎜<br />
⎟<br />
⎝<br />
⎠<br />
. ..<br />
1<br />
Es gilt p ki<br />
jj = 1 für j ≠ k und j ≠ i sowie pki<br />
= pki ik<br />
Wir fassen e<strong>in</strong>ige Eigenschaften von P zusammen:<br />
= 1, alle anderen Elemente s<strong>in</strong>d Null.<br />
Satz 4.26 (Pivot-Matrizen). Es sei P = P kl <strong>die</strong> Pivot-Matrix mit Pii<br />
kl = 1 für i ≠ k, l<br />
und Pkl kl = Plk kl = 1. Die Anwendung P kl A von l<strong>in</strong>ks tauscht k-te und l-te Zeile von A, <strong>die</strong><br />
Anwendung AP kl von rechts tauscht k-te und l-te Spalte. Es gilt:<br />
P 2 = I ⇔ P −1 = P.<br />
Beweis: Übung.<br />
In Schritt i der LR-Zerlegung suchen wir nun zunächst das Pivot-Element:<br />
□<br />
Algorithmus 4.27 (Pivot-Suche). In Schritt i suche Index k ≥ i, so dass<br />
Bestimme <strong>die</strong> Pivot-Matrix als P (i) := P ki .<br />
Im Anschluss bestimmen wir A (i) als<br />
|a ki | = max<br />
j≥i |a ji|.<br />
A (i) = F (i) P (i) A (i−1) .<br />
Die Pivotisierung sorgt dafür, dass alle Elemente g (i)<br />
k<br />
= a (i−1)<br />
ki<br />
durch 1 beschränkt s<strong>in</strong>d. Insgesamt erhalten wir <strong>die</strong> Zerlegung:<br />
/a (i−1)<br />
ii<br />
von F (i) im Betrag<br />
R = A (n−1) = F (n−1) P (n−1) · · · F (1) P (1) A. (4.2)<br />
Die Pivot-Matrizen kommutieren nicht mit A oder den F (i) . Daher ist e<strong>in</strong> Übergang zur<br />
LR-Zerlegung nicht ohne weitere möglich. Wir def<strong>in</strong>ieren:<br />
˜F (i) := P (n−1) · · · P (i+1) F (i) P (i+1) · · · P (n−1) .<br />
126
4.2 Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme<br />
Die Matrix ˜F (i) entsteht durch mehrfache Zeilen- und Spaltenvertauschung von F (i) . Dabei<br />
werden nur Zeilen und Spalten j > i vertauscht. Die Matrix ˜F (i) hat <strong>die</strong> gleiche Besetzungsstruktur<br />
wie F (i) und <strong>in</strong>sbesondere nur E<strong>in</strong>sen auf der Diagonale. D.h, sie ist wieder<br />
e<strong>in</strong>e Frobeniusmatrix und Satz 4.22 gilt weiter. Es s<strong>in</strong>d lediglich <strong>die</strong> E<strong>in</strong>träge <strong>in</strong> der i-ten<br />
Spalte unterhalb der Diagonale permutiert. Für <strong>die</strong> Inverse gilt entsprechend:<br />
˜L (i) := [ ˜F (i) ] −1 = P (n−1) · · · P (i+1) L (i) P (i+1) · · · P (n−1) .<br />
Die gleichzeitige Vertauschung von Zeilen und Spalten lässt <strong>die</strong> Diagonalelemente unverändert.<br />
Die Matrix ˜L (i) ist wieder e<strong>in</strong>e Frobeniusmatrix, es werden nur <strong>die</strong> Elemente der<br />
Spalte l ij , i > j permutiert. Wir formen (4.2) durch geschicktes E<strong>in</strong>fügen von Permutationsmatrizen<br />
um:<br />
R = ˜F (n−1) ˜F (n−2) . . . ˜F (1) P } (n−1) {{ . . . P (1)<br />
} A<br />
=:P<br />
Diesen Prozess mache man sich anhand e<strong>in</strong>es e<strong>in</strong>fachen Beispiels klar:<br />
Mit ˜L (i) = [ ˜F (i) ] −1 gilt dann:<br />
R = F (3) P (3) F (2) P (2) F (1) P (1) A<br />
= F (3) P (3) F (2) P } (3) {{ P (3)<br />
} P (2) F (1) P } (2) P (3) {{ P (3) P (2)<br />
} P (1) A<br />
=I<br />
=I<br />
= F }{{}<br />
(3) P } (3) F {{ (2) P (3)<br />
} } P (3) P (2) F {{ (1) P (2) P (3)<br />
} P } (3) P {{ (2) P (1)<br />
} A<br />
= ˜F (3) = ˜F (2) = ˜F (1) =P<br />
˜L (1) (n−1)<br />
} · ·{{ · ˜L } R = P A.<br />
=: ˜L<br />
Da ˜L (i) wieder Frobeniusmatrizen s<strong>in</strong>d, gilt weiter mit Satz 4.22:<br />
˜L = ˜L (1) · · ·<br />
=<br />
n−1 ∑<br />
i=1<br />
˜L<br />
(n−1)<br />
˜L (i) − (n − 2)I<br />
= P (n−1) ( L (n−1) + P (n−1) ( L (n−2) + · · · + P (2) F (1) P (2)) . . . P (n−2)) P (n−1) − (n − 2)I.<br />
Beim Erstellen der LR-Zerlegung müssen also nicht nur <strong>die</strong> A (i) sondern auch <strong>die</strong> bisher<br />
berechneten L (i) permutiert werden.<br />
Wir fassen zusammen:<br />
Satz 4.28 (LR-Zerlegung mit Pivotisierung). Es sei A ∈ R n×n e<strong>in</strong>e reguläre Matrix. Es<br />
existiert e<strong>in</strong>e LR-Zerlegung<br />
P A = LR,<br />
wobei P e<strong>in</strong> Produkt von Pivot-Matrizen ist, L e<strong>in</strong>e untere Dreiecksmatrix mit Diagonale<strong>in</strong>trägen<br />
e<strong>in</strong>s und R e<strong>in</strong>e rechte obere Dreiecksmatrix. Die LR-Zerlegung ohne Pivotisierung<br />
P = I ist e<strong>in</strong>deutig, falls sie existiert.<br />
127
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Beweis: Übung.<br />
Die Pivotisierung <strong>die</strong>nt e<strong>in</strong>erseits dazu, <strong>die</strong> Durchführbarkeit der LR-Zerlegung sicherzustellen.<br />
Auf der anderen Seite kann durch geeignete Pivotisierung <strong>die</strong> Stabilität der<br />
Gauß-Elim<strong>in</strong>ation verbessert werden. Durch Wahl e<strong>in</strong>es Pivot-Elements a ki mit maximaler<br />
relativer Größe (bezogen auf <strong>die</strong> Zeile) kann <strong>die</strong> Gefahr der Auslöschung verr<strong>in</strong>gert<br />
werden.<br />
Beispiel 4.29 (LR-Zerlegung ohne Pivotierung). Es sei:<br />
⎛<br />
⎜<br />
2.3 1.8 1.0<br />
⎞ ⎛ ⎞<br />
1.2<br />
⎟ ⎜ ⎟<br />
A = ⎝1.4 1.1 −0.7⎠ , b = ⎝−2.1⎠ ,<br />
0.8 4.3 2.1<br />
0.6<br />
und <strong>die</strong> Lösung des l<strong>in</strong>earen Gleichungssystems Ax = b ist gegeben durch (Angabe mit<br />
fünfstelliger Genauigkeit):<br />
⎛ ⎞<br />
0.34995<br />
⎜ ⎟<br />
x ≈ ⎝−0.98024⎠ .<br />
2.1595<br />
Für <strong>die</strong> Matrix A gilt cond ∞ (A) = ‖A‖ ∞ ‖A −1 ‖ ∞ ≈ 7.2 · 1.2 ≈ 8.7. Die Aufgabe ist<br />
also gut konditioniert, e<strong>in</strong>e Fehlerverstärkung um höchstens e<strong>in</strong>e Stelle ist zu erwarten.<br />
Wir erstellen zunächst <strong>die</strong> LR-Zerlegung (dreistellige Rechnung). Dabei schreiben wir <strong>die</strong><br />
E<strong>in</strong>träge von L fettgedruckt <strong>in</strong> <strong>die</strong> Ergebnismatrix:<br />
⎛<br />
⎞ ⎛<br />
⎞<br />
⎛<br />
⎞<br />
1 0 0 1 0 0<br />
2.3 1.8 1.0<br />
F (1) ⎜<br />
= ⎝− 1.4 ⎟ ⎜<br />
⎟<br />
2.3<br />
1 0⎠ ≈ ⎝−0.609 1 0⎠ , [L (1) , A (1) ⎜<br />
⎟<br />
] ≈ ⎝0.609 0.0038 −1.31⎠<br />
− 0.8<br />
2.3<br />
0 1 −0.348 0 1<br />
0.348 3.67 1.75<br />
Im zweiten Schritt gilt:<br />
⎛<br />
F (2) ⎜<br />
1 0 0<br />
⎞ ⎛<br />
⎞<br />
1 0 0<br />
⎟ ⎜<br />
⎟<br />
= ⎝0 1 0⎠ ≈ ⎝0 1 0⎠ ,<br />
0 − 3.67<br />
0.0038<br />
1 0 −966 1<br />
⎛<br />
⎞<br />
2.3 1.8 1.0<br />
[L (2) L (1) , A (2) ⎜<br />
⎟<br />
] ≈ ⎝0.609 0.0038 −1.31⎠<br />
0.348 966 1270<br />
Die LR-Zerlegung ergibt sich als:<br />
⎛<br />
⎞ ⎛<br />
⎞<br />
1 0 0<br />
2.3 1.8 1.0<br />
⎜<br />
⎟ ⎜<br />
⎟<br />
L = ⎝0.609 1 0⎠ , R := ⎝ 0 0.0038 −1.31⎠<br />
0.348 966 1<br />
0 0 1270<br />
Wir lösen das Gleichungssystem nun durch Vorwärts- und Rückwärtse<strong>in</strong>setzen:<br />
Zunächst gilt:<br />
A˜x = L }{{} R˜x = b.<br />
=y<br />
y 1 = 1.2, y 2 = −2.1 − 0.609 · 1.2 ≈ −2.83, y 3 = 0.6 − 0.348 · 1.2 + 966 · 2.83 ≈ 2730.<br />
□<br />
128
4.2 Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme<br />
Und schließlich:<br />
˜x 3 = 2730<br />
1270 ≈ 2.15, ˜x −2.83 + 1.31 · 2.15<br />
1.2 + 1.8 · 3.55 − 2.15<br />
2 = ≈ −3.55, ˜x 1 = ≈ 2.37.<br />
0.0038<br />
2.3<br />
Für <strong>die</strong> Lösung ˜x gilt:<br />
⎛ ⎞<br />
2.37<br />
⎜ ⎟<br />
˜x = ⎝−3.55⎠ ,<br />
2.15<br />
‖˜x − x‖ 2<br />
‖x‖ 2<br />
≈ 1.4,<br />
d.h. e<strong>in</strong> Fehler von 140 Prozent, obwohl wir nur Rundungsfehler und noch ke<strong>in</strong>e gestörte<br />
E<strong>in</strong>gabe betrachtet haben.<br />
Dieses Negativbeispiel zeigt <strong>die</strong> Bedeutungder Pivotisierung. Im zweiten Schritt wurde als<br />
Pivot-Element mit 0.0038 e<strong>in</strong> Wert Nahe bei 0 gewählt. Hierdurch entstehen Werte von<br />
sehr unterschiedlicher Größenordnung <strong>in</strong> den Matrizen L und R. Dies wirkt sich ungünstig<br />
auf <strong>die</strong> weitere Stabilität aus.<br />
Beispiel 4.30 (LR-Zerlegung mit Pivotisierung). Wir setzen das Beispiel <strong>in</strong> Schritt 2 fort<br />
und suchen zunächst das Pivot-Element:<br />
⎛<br />
⎞<br />
⎛<br />
2.3 1.8 1.0<br />
[L (1) , A (1) ⎜<br />
⎟<br />
] = ⎝0.609 0.0038 −1.31⎠ , P (2) ⎜<br />
1 0 0<br />
⎞<br />
⎟<br />
= ⎝0 0 1⎠<br />
0.348 3.67 1.75<br />
0 1 0<br />
Also, pivotisiert:<br />
⎛<br />
⎞<br />
2.3 1.8 1.0<br />
[˜L (1) , Ã(1) ⎜<br />
⎟<br />
] = ⎝0.348 3.67 1.75 ⎠ .<br />
0.609 0.0038 −1.31<br />
Weiter folgt nun:<br />
⎛<br />
F (2) ⎜<br />
1 0 0<br />
⎞ ⎛<br />
⎟ ⎜<br />
1 0 0<br />
⎞<br />
⎟<br />
= ⎝0 1 0⎠ ≈ ⎝0 1 0⎠<br />
0 − 0.0038<br />
3.67<br />
1 0 −0.00104 1<br />
⎛<br />
⎞<br />
2.3 1.8 1.0<br />
[L (2) ˜L(1) , Ã(2) ⎜<br />
⎟<br />
] ≈ ⎝0.348 3.67 1.75 ⎠<br />
0.609 0.001040 −1.31<br />
Wir erhalten <strong>die</strong> Zerlegung:<br />
⎛<br />
⎞ ⎛<br />
⎞ ⎛<br />
1 0 0<br />
2.3 1.8 1.0<br />
⎜<br />
⎟ ⎜<br />
⎟ ⎜<br />
˜LR = P A, ˜L 1 0 0<br />
⎞<br />
⎟<br />
:= ⎝0.348 1 0⎠ , R := ⎝ 0 3.67 1.75 ⎠ , P := ⎝0 0 1⎠ .<br />
0.609 0.00104 1<br />
0 0 −1.31<br />
0 1 0<br />
Das L<strong>in</strong>eare Gleichungssystem lösen wir <strong>in</strong> der Form:<br />
P Ax = ˜L }{{} Rx = P b.<br />
=y<br />
129
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Zunächst gilt für <strong>die</strong> rechte Seite: ˜b = P b = (1.2, 0.6, −2.1) T<br />
˜Ly = ˜b ergibt<br />
und Vorwärtse<strong>in</strong>setzen <strong>in</strong><br />
y 1 = 1.2, y 2 = 0.6−0.348·1.2 ≈ 0.182, y 3 = −2.1−0.609·1.2−0.00104·0.182 ≈ −2.83.<br />
Als Näherung ˜x erhalten wir:<br />
mit e<strong>in</strong>em relativen Fehler<br />
⎛ ⎞<br />
0.35<br />
⎜ ⎟<br />
˜x = ⎝−0.98⎠<br />
2.16<br />
‖˜x − x‖ 2<br />
‖x‖ 2<br />
≈ 0.0002,<br />
also von nur 0.02% statt 140%.<br />
Die Beispiele zeigen, dass <strong>die</strong> berechnete LR-Zerlegung <strong>in</strong> praktischer Anwendung natürlich<br />
ke<strong>in</strong>e echte Zerlegung, sondern aufgrund von Rundungsfehlern nur e<strong>in</strong>e Näherung der<br />
Matrix A ≈ LR ist. Man kann durch Berechnung von LR leicht <strong>die</strong> Probe machen und<br />
den Fehler A − LR bestimmen.<br />
Die LR-Zerlegung ist e<strong>in</strong>es der wichtigsten direkten Verfahren zum Lösen von l<strong>in</strong>earen<br />
Gleichungssystemen. Der Aufwand zur Berechnung der LR-Zerlegung steigt allerd<strong>in</strong>gs mit<br />
dritter Ordnung sehr schnell. Selbst auf modernen Computern übersteigt <strong>die</strong> Laufzeit für<br />
große Gleichungssysteme schnell e<strong>in</strong>e s<strong>in</strong>nvolle Grenze:<br />
n Operationen Zeit<br />
100 300 000 30 µs<br />
1 000 300 · 10 6 30 ms<br />
10 000 300 · 10 9 30 s<br />
100 000 300 · 10 12 10 h<br />
1 000 000 300 · 10 15 1 Jahr<br />
Tabelle 4.1: Rechenzeit zum Erstellen der LR-Zerlegung e<strong>in</strong>er Matrix A ∈ R n×n auf e<strong>in</strong>em<br />
Rechner mit 10 GigaFLOPS.<br />
Bei der Diskretisierung von partiellen Differentialgleichungen treten Gleichungssysteme<br />
mit n = 10 6 ∼ 10 9 auf. Die Matrizen verfügen dann aber über Struktureigenschaften wie<br />
Symmetrie, oder über e<strong>in</strong> besonders dünnes Besetzungsmuster (<strong>in</strong> jeder Zeile s<strong>in</strong>d nur<br />
e<strong>in</strong>ige wenige ungleich Null). Die l<strong>in</strong>earen Gleichungsysteme, <strong>die</strong> bei der F<strong>in</strong>ite-Elemente<br />
Diskretisierung der Laplace-Gleichung (beschreibt <strong>die</strong> Ausdehnung e<strong>in</strong>er Membran) entstehen<br />
haben z.B. unabhäng<strong>in</strong>g von n nur 5 E<strong>in</strong>träge pro Zeile. Die so entstehenden l<strong>in</strong>earen<br />
Gleichungsysteme lassen sich bei effizienter Implementierung der LR-Zerlegung auch bei<br />
n = 1 000 000 <strong>in</strong> weniger als e<strong>in</strong>er M<strong>in</strong>ute lösen.<br />
130
4.2 Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme<br />
4.2.3 LR-Zerlegung für diagonaldom<strong>in</strong>ante Matrizen<br />
Satz 4.28 besagt, dass <strong>die</strong> LR-Zerlegung für beliebige reguläre Matrizen mit Pivotierung<br />
möglich ist. Es gibt allerd<strong>in</strong>gs auch viele Matrizen, bei denen <strong>die</strong> LR-Zerlegung ohne<br />
Pivotisierung stabil durchführbar ist. Beispiele hierfür s<strong>in</strong>d positiv def<strong>in</strong>ite oder diagonaldom<strong>in</strong>ante<br />
Matrizen:<br />
Def<strong>in</strong>ition 4.31 (Diagonaldom<strong>in</strong>anz). E<strong>in</strong>e Matrix A ∈ R n×n heißt diagonaldom<strong>in</strong>ant,<br />
falls<br />
|a ii | ≥ ∑ |a ij |, i = 1, . . . , n.<br />
j≠i<br />
E<strong>in</strong>e diagonaldom<strong>in</strong>ante Matrix hat das betragsmäßig größte Element auf der Diagonalen,<br />
bei regulären Matrizen s<strong>in</strong>d <strong>die</strong> Diagonalelemente zudem ungleich Null.<br />
Satz 4.32 (LR-Zerlegung diagonaldom<strong>in</strong>anter Matrizen). Sei A ∈ R n×n e<strong>in</strong>e reguläre,<br />
diagonaldom<strong>in</strong>ante Matrix. Dann ist <strong>die</strong> LR-Zerlegung ohne Pivotierung durchführbar und<br />
alle auftretenden Pivot-Elemente a (i−1)<br />
ii s<strong>in</strong>d von Null verschieden.<br />
Beweis: Wir führen den Beweis über Induktion und zeigen, dass alle Untermatrizen A (i)<br />
kl>i<br />
wieder diagonaldom<strong>in</strong>ant s<strong>in</strong>d. Für e<strong>in</strong>e diagonaldom<strong>in</strong>ante Matrix gilt<br />
|a 11 | ≥ ∑ |a 1j | ≥ 0,<br />
j>1<br />
und da A regulär ist auch zw<strong>in</strong>gend |a 11 | > 0. Der erste Schritt der LR-Zerlegung ist<br />
durchführbar.<br />
Es sei nun A e<strong>in</strong>e reguläre Matrix, wir wollen zeigen, dass <strong>die</strong> Matrix à nach e<strong>in</strong>em<br />
Elim<strong>in</strong>ationsschritt e<strong>in</strong>e diagonaldom<strong>in</strong>ante Untermatrix Ãij>1 hat. Für deren E<strong>in</strong>träge<br />
ã ij gilt:<br />
ã ij = a ij − a i1a 1j<br />
, i, j = 1, . . . , n.<br />
a 11<br />
Also gilt für <strong>die</strong> Untermatrix:<br />
n∑<br />
n∑<br />
i = 2, . . . , n : |ã ij | ≤ |a ij | −|a i1 | + |a i1|<br />
n∑<br />
|a 1j | − |a i1|<br />
|a 11 | |a 11 | |a 1i|<br />
j=2, j≠i<br />
j=1, j≠i<br />
} {{ }<br />
≤|a ii |<br />
Die resultierende Matrix ist wieder diagonaldom<strong>in</strong>ant.<br />
j=2<br />
} {{ }<br />
≤|a 11 |<br />
≤ |a ii | − |a i1|<br />
|a 11 | |a 1i| ≤ |a ii − a i1<br />
a 11<br />
a 1i | = |ã ii |.<br />
Die Def<strong>in</strong>ition der Diagonaldom<strong>in</strong>anz sche<strong>in</strong>t zunächst willkürlich. Es zeigt sich aber, dass<br />
viele Matrizen, <strong>die</strong> <strong>in</strong> Anwendungen, zum Beispiel bei der Diskretisierung von partiellen<br />
Differentialgleichungen auftreten, <strong>die</strong>se Eigenschaft erfüllen. Zudem ist <strong>die</strong> Diagonaldom<strong>in</strong>anz<br />
e<strong>in</strong>er Matrix sehr e<strong>in</strong>fach zu überprüfen und daher e<strong>in</strong> gutes Kriterium um <strong>die</strong><br />
Notwendigkeit der Pivotierung abzuschätzen.<br />
□<br />
131
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
4.2.4 Die Cholesky-Zerlegung für positiv def<strong>in</strong>ite Matrizen<br />
E<strong>in</strong>e wichtige Klasse von Matrizen s<strong>in</strong>d <strong>die</strong> positiv def<strong>in</strong>iten Matrizen, siehe Def<strong>in</strong>ition 4.11<br />
sowie Satz 4.12. Es zeigt sich, dass für symmetrisch positiv def<strong>in</strong>ite Matrizen A ∈ R n×n e<strong>in</strong>e<br />
symmetrische Zerlegung A = ˜L˜L T <strong>in</strong> e<strong>in</strong>e untere Dreiecksmatrix ˜L erstellt werden kann.<br />
Diese ist immer ohne Pivotisierung durchführbar und wird Cholesky-Zerlegung genannt.<br />
Der Aufwand zum Erstellen der Cholesky-Zerlegung ist erwartungsgemäß nur halb so groß<br />
wie der Aufwand zum Erstellen der LR-Zerlegung.<br />
Satz 4.33 (LR-Zerlegung e<strong>in</strong>er positiv def<strong>in</strong>iten Matrix). Die Matrix A ∈ R n×n sei symmetrisch,<br />
positiv def<strong>in</strong>it. Dann existiert e<strong>in</strong>e e<strong>in</strong>deutige LR-Zerlegung ohne Pivotierung.<br />
Beweis: Wir gehen ähnlich vor wie bei diagonaldom<strong>in</strong>anten Matrizen und führen den<br />
Beweis per Induktion. Da zu sei A e<strong>in</strong>e positiv def<strong>in</strong>ite, symmetrische Matrix. E<strong>in</strong> Schritt<br />
der LR-Zerlegung ist durchführbar, da laut Satz 4.12 gilt a 11 > 0. Wir zeigen, dass <strong>die</strong><br />
Teilmatrix Ãij>1 nach e<strong>in</strong>em Elim<strong>in</strong>ationsschritt wieder symmetrisch positiv def<strong>in</strong>it ist.<br />
Es gilt aufgrund der Symmetrie von A:<br />
ã ij = a ij − a 1ja i1<br />
a 11<br />
= a ji − a 1ia j1<br />
a 11<br />
= ã ji ,<br />
d.h., Ã ij>1 ist symmetrisch.<br />
Nun sei x ∈ R n e<strong>in</strong> Vektor x = (x 1 , . . . , x n ) mit x 2 , . . . , x n beliebig. Den E<strong>in</strong>trag x 1 werden<br />
wir im Laufe des Beweises spezifizieren. Es gilt wegen der positiven Def<strong>in</strong>itheit von A:<br />
0 < (Ax, x) = ∑ a ij x i x j = a 11 x 2 ∑ n n∑<br />
1 + 2x 1 a 1j x j + a ij x i x j<br />
ij<br />
j=2<br />
ij=2<br />
= a 11 x 2 ∑ n n∑<br />
(<br />
1 + 2x 1 a 1j x j + a ij − a )<br />
1ja i1<br />
n∑<br />
x i x j +<br />
a<br />
j=2<br />
ij=2 } {{ 11<br />
} ij=2<br />
=ã ij<br />
⎛<br />
⎞<br />
= a 11<br />
⎝x 2 1 ∑ n n∑<br />
1 + 2x 1 a 1j a i1 x i x j ⎠ +<br />
a 11<br />
= a 11<br />
⎛<br />
⎝x 1 + 1<br />
a 11<br />
n ∑<br />
j=2<br />
a 1j x j + 1<br />
a 2 11<br />
j=2<br />
⎞2<br />
a 1j x j ⎠<br />
Die positive Def<strong>in</strong>itheit von Ãij>1 folgt bei der Wahl<br />
x 1 = − 1<br />
a 11<br />
ij=2<br />
n∑<br />
+ ã ij x i x j .<br />
ij=2<br />
n ∑<br />
j=2<br />
a 1j x j .<br />
a 1j a i1<br />
x i x j<br />
a 11<br />
n∑<br />
ã ij x i x j<br />
ij=2<br />
□<br />
132
4.2 Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme<br />
Für e<strong>in</strong>e symmetrisch positiv def<strong>in</strong>ite Matrix A ist <strong>die</strong> LR-Zerlegung immer ohne Pivotisierung<br />
durchführbar. Dabei treten nur positive Pivot-Elemente a (i−1)<br />
ii auf. Das heißt, <strong>die</strong><br />
Matrix R hat nur positive Diagonalelemente r ii > 0. Es sei D ∈ R n×n <strong>die</strong> Diagonalmatrix<br />
mit d ii = r ii > 0. Dann gilt:<br />
A = LR = LD ˜R,<br />
mit e<strong>in</strong>er rechten oberen Dreiecksmatrix ˜R, welche nur E<strong>in</strong>sen auf der Diagonalen hat. Da<br />
A symmetrisch ist folgt:<br />
A = LR = LD ˜R = ˜R T DL T = A T .<br />
Aufgrund der E<strong>in</strong>deutigkeit der LR-Zerlegung gilt L = ˜R T und R = DL T . Da D nur<br />
positive Diagonale<strong>in</strong>träge hat existiert <strong>die</strong> Matrix √ D und wir schreiben:<br />
Wir fassen zusammen:<br />
A = LR = LD 1 2<br />
} {{ } D − 1 2<br />
} {{ R }<br />
=: ˜L<br />
= ˜L T .<br />
Satz 4.34 (Cholesky-Zerlegung). Es sei A ∈ R n×n e<strong>in</strong>e symmetrisch, positiv def<strong>in</strong>ite<br />
Matrix. Dann existiert <strong>die</strong> Cholesky-Zerlegung:<br />
A = ˜L˜L T ,<br />
<strong>in</strong> e<strong>in</strong>e untere l<strong>in</strong>ke Dreiecksmatrix ˜L. Sie kann ohne Pivotierung <strong>in</strong><br />
n 3<br />
6 + O(n2 )<br />
arithmetische Operationen durchgeführt werden.<br />
Anstelle e<strong>in</strong>es Beweises geben wir e<strong>in</strong>en effizienten Algorithmus zur direkten Berechnung<br />
der Cholesky-Zerlegung an. Hier kann der notwendige Aufwand leicht abgelesen werden:<br />
Algorithmus 4.35 (Direkte Berechnung der Cholesky-Zerlegung). Gegeben sei e<strong>in</strong>e symmetrisch,<br />
positiv def<strong>in</strong>ite Matrix A ∈ R n×n . Dann s<strong>in</strong>d <strong>die</strong> E<strong>in</strong>träge l ij , j ≤ i der Cholesky-<br />
Zerlegung bestimmt durch <strong>die</strong> Vorschrift:<br />
j = 1, . . . , n :<br />
(i) l 11 = √ j−1 ∑<br />
a 11 , bzw. l jj = √ ajj −<br />
(ii)<br />
l ij = l −1<br />
jj<br />
⎛<br />
j−1 ∑<br />
⎝a ij −<br />
k=1<br />
ljk<br />
2<br />
k=1<br />
l ik l jk<br />
⎞<br />
⎠ , i = j + 1, . . . , n.<br />
Der Algorithmus kann iterativ aus der Beziehung ˜L˜L T = A hergeleitet werden. Es gilt:<br />
a ij =<br />
m<strong>in</strong>{i,j}<br />
∑<br />
k=1<br />
l ik l jk .<br />
133
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Wir gehen Spaltenweise j = 1, 2, . . . vor. Das heißt, L sei für alle Spalten bis j −1 bekannt.<br />
Dann gilt <strong>in</strong> Spalte j zunächst für das Diagonalelement:<br />
a jj =<br />
j∑<br />
lkk 2 j−1 ∑<br />
⇒ l jj = √ ajj − ljk 2 .<br />
k=1<br />
Ist das j-te Diagonalelement l jj bekannt, so gilt für i > j:<br />
a ij =<br />
j∑<br />
j−1 ∑<br />
l ik l jk ⇒ l ij l jj = a ij −<br />
k=1<br />
k=1<br />
k=1<br />
l ik l jk ⇒ l ij = l −1<br />
jj<br />
⎛<br />
j−1 ∑<br />
⎝a ij −<br />
k=1<br />
l ik l jk<br />
⎞<br />
⎠ .<br />
4.2.5 Dünn besetzte Matrizen und Bandmatrizen<br />
Der Aufwand zum Erstellen der LR-Zerlegung wächst sehr schnell mit der Größe der<br />
Matrix an. In vielen Anwendungsproblemen treten dünn besetzte Matrizen auf:<br />
Def<strong>in</strong>ition 4.36 (Dünn besetzte Matrix). E<strong>in</strong>e Matrix A ∈ R n×n heißt dünn besetzt,<br />
falls <strong>die</strong> Matrix A nur O(n) von Null verschiedene E<strong>in</strong>träge besitzt. Das Besetzungsmuster<br />
(Sparsity Pattern) B ⊂ {1, . . . , n} 2 von A ist <strong>die</strong> Menge aller Indexpaare (i, j) mit a ij ≠ 0.<br />
Andere, weniger strenge Def<strong>in</strong>itionen von dünn besetzten Matrizen verlangen, dass <strong>die</strong><br />
Matrix O(n log(n)) oder auch O(n √ n) beziehungsweise e<strong>in</strong>fach o(n 2 ) von Null verschiedene<br />
E<strong>in</strong>träge besitzt.<br />
E<strong>in</strong> Beispiel für dünn besetzte Matrizen s<strong>in</strong>d Tridiagonalmatrizen der Form<br />
A ∈ R n×n , a ij = 0 ∀|i − j| > 1.<br />
Für Tridiagonalmatrizen kann <strong>die</strong> LR-Zerlegung sehr effizient durchgeführt werden:<br />
Satz 4.37 (Thomas-Algorithmus). Es sei A ∈ R n×n e<strong>in</strong>e reguläre Tridiagonalmatrix. Die<br />
LR-Zerlegung ist wieder e<strong>in</strong>e Tridiagonalmatrix und kann <strong>in</strong> O(n) Operationen durchgeführt<br />
werden.<br />
Beweis: Übung.<br />
□<br />
E<strong>in</strong>e Verallgeme<strong>in</strong>erung von Tridiagonalsystemen s<strong>in</strong>d <strong>die</strong> Bandmatrizen:<br />
Def<strong>in</strong>ition 4.38 (Bandmatrix). E<strong>in</strong>e Matrix A ∈ R n×n heißt Bandmatrix mit Bandbreite<br />
m ∈ N, falls:<br />
a ij = 0 ∀|i − j| > m.<br />
E<strong>in</strong>e Bandmatrix hat höchstens n(2m + 1) von Null verschiedene E<strong>in</strong>träge.<br />
134
4.2 Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme<br />
Es zeigt sich, dass <strong>die</strong> LR-Zerlegung e<strong>in</strong>er Bandmatrix wieder e<strong>in</strong>e Bandmatrix ist und<br />
daher effizient durchgeführt werden kann.<br />
Satz 4.39 (LR-Zerlegung e<strong>in</strong>er Bandmatrix). Es sei A ∈ R n×n e<strong>in</strong>e Bandmatrix mit<br />
Bandbreite m. Die LR-Zerlegung (ohne Permutierung):<br />
ist wieder e<strong>in</strong>e Bandmatrix, d.h.:<br />
LR = A,<br />
L ij = R ij = 0 ∀|i − j| > m,<br />
und kann <strong>in</strong><br />
Operationen durchgeführt werden.<br />
O(nm 2 )<br />
Beweis: Wir zeigen <strong>in</strong>duktiv, dass <strong>die</strong> entstehenden Elim<strong>in</strong>ationsmatrizen Ãij>1 wieder<br />
Bandmatrizen s<strong>in</strong>d. Es gilt:<br />
ã ij = a ij − a 1ja i1<br />
a 11<br />
, i, j = 2, . . . , n.<br />
Es sei nun |i − j| > m. Dann ist a ij = 0. Ebenso müssen a 1j = a i1 = 0 se<strong>in</strong>, da 1 ≤ i, j.<br />
Zur Aufwandsberechnung vergleiche den Beweis zu Satz 4.23. Im Fall e<strong>in</strong>er Bandmatrix<br />
müssen <strong>in</strong> Schritt i der Elim<strong>in</strong>ation nicht mehr (n − i − 1) 2 arithmetische Operationen<br />
sondern höchstens m 2 arithmetische Operationen durchgeführt werden. Ebenso müssen<br />
nur m Elemente der Frobeniusmatrix zur Reduktion bestimmt werden. Insgesamt ergibt<br />
sich:<br />
n∑<br />
(m + m 2 ) = nm 2 + O(nm).<br />
i=1<br />
Der Unterschied, e<strong>in</strong>e LR-Zerlegung für e<strong>in</strong>e voll besetzte Matrix und e<strong>in</strong>e Bandmatrix<br />
durchzuführen ist enorm. Zur Diskretisierung der Laplace-Gleichung mit F<strong>in</strong>iten Differenzen<br />
müssen l<strong>in</strong>eare Gleichungssysteme mit der sogenannten Modellmatrix gelöst werden:<br />
⎛<br />
⎞ ⎛<br />
⎞⎫<br />
A m −I m 0 · · · 0<br />
4 −1 0 · · · 0<br />
−I m A m −I m .<br />
−1 4 −1 .<br />
A =<br />
. 0 −I .. . .. m 0<br />
, A m =<br />
. 0 −1 .. . ⎪⎬<br />
.. 0<br />
m,<br />
⎜<br />
.<br />
⎝ .<br />
.. . .. ⎟ ⎜ . −Im ⎠ ⎝ . .. . .. ⎟ −1 ⎠<br />
⎪⎭<br />
0 · · · 0 −I m A m 0 · · · 0 −1 4<br />
Die Matrix A ∈ R n×n hat Bandbreite m = √ n. In Tabelle 4.2 geben wie <strong>die</strong> notwendigen<br />
Rechenzeiten zum Erstellen der LR-Zerlegung auf aktueller Hardware an. Man vergleiche<br />
mit Tabelle 4.1.<br />
□<br />
135
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
n Operationen Zeit<br />
100 10 000 1 µs<br />
1 000 10 6 100 µs<br />
10 000 10 8 10 ms<br />
100 000 10 10 1 s<br />
1 000 000 10 12 2 m<strong>in</strong><br />
Tabelle 4.2: Rechenzeit zum Erstellen der LR-Zerlegung e<strong>in</strong>er Bandmatrix A ∈ R n×n mit<br />
Bandbreite m = √ n auf e<strong>in</strong>em Rechner mit 10 GigaFLOPS.<br />
Die Modellmatrix ist e<strong>in</strong>e Bandmatrix mit Bandbreite m = √ n, hat aber <strong>in</strong> jeder Zeile<br />
neben dem Diagonalelement höchsten 4 von Null verschiedene E<strong>in</strong>träge a i,i±i und a i,i±m .<br />
Bei so dünn besetzten Matrizen stellt sich <strong>die</strong> Frage, ob <strong>die</strong> LR-Zerlegung, also <strong>die</strong> Matrizen<br />
L und R das gleiche dünne Besetzungsmuster haben. Es zeigt sich jedoch, dass <strong>die</strong> LR-<br />
Zerlegung e<strong>in</strong>er dünn besetzten Bandmatrix im Allgeme<strong>in</strong>en selbst e<strong>in</strong>e dicht besetzte<br />
Bandmatrix ist. Aus der dünnen Besetzungsstruktur kann ke<strong>in</strong> Nutzen gezogen werden.<br />
Der Aufwand zur Berechnung der LR-Zerlegung e<strong>in</strong>er dünn besetzten Matrix hängt wesentlich<br />
von der Sortierung, also der Pivotierung, der Matrix ab. Wir betrachten hierzu<br />
e<strong>in</strong> e<strong>in</strong>faches Beispiel:<br />
Beispiel 4.40 (LR-Zerlegung dünn besetzter Matrix). Wir betrachten <strong>die</strong> beiden Matrizen:<br />
⎛<br />
⎞ ⎛<br />
⎞<br />
1 2 3 4<br />
1 0 0 4<br />
2 1 0 0<br />
A 1 := ⎜<br />
⎟<br />
⎝3 0 1 0⎠ , A 0 1 0 3<br />
2 := ⎜<br />
⎟<br />
⎝0 0 1 2⎠<br />
4 0 0 1<br />
4 3 2 1<br />
Die beiden Matrizen gehen durch simultane Vertauschen der ersten und vierten, sowie<br />
zweiten und dritten Zeile und Spalte ause<strong>in</strong>ander hervor. Die LR-Zerlegung der Matrix A 1<br />
(ohne Permutierung) lautet:<br />
⎛<br />
⎞ ⎛<br />
⎞<br />
1 0 0 0 1 2 3 4<br />
2 1 0 0<br />
L 1 = ⎜<br />
⎟<br />
⎝3 2 1 0⎠ R 0 −3 −6 −8<br />
1 = ⎜<br />
⎟<br />
⎝0 0 4 4 ⎠ ,<br />
4<br />
8<br />
3<br />
1 1<br />
0 0 0<br />
7<br />
3<br />
und für <strong>die</strong> Matrix A 2 erhalten wie (wieder ohne Pivotierung):<br />
⎛<br />
⎞ ⎛<br />
⎞<br />
1 0 0 0 1 0 0 4<br />
0 1 0 0<br />
L 2 = ⎜<br />
⎟<br />
⎝0 0 1 0⎠ R 0 1 0 3<br />
2 = ⎜<br />
⎟<br />
⎝0 0 1 2 ⎠ .<br />
4 3 2 1 0 0 0 −28<br />
Obwohl beide Matrizen bis auf Zeilen und Spaltentausch das gleiche l<strong>in</strong>eare Gleichungssystem<br />
beschreiben, haben <strong>die</strong> LR-Zerlegungen e<strong>in</strong> gänzlich unterschiedliches Besetzungsmuster:<br />
<strong>die</strong> LR-Zerlegung von Matrix A 1 ist voll besetzt, während <strong>die</strong> LR-Zerlegung zu Matrix<br />
A 2 mit dem gleichen dünnen Besetzungsmuster auskommt wie <strong>die</strong> Matrix A 2 selbst.<br />
136
4.2 Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme<br />
Dieses Beispiel lässt sich auf <strong>die</strong> entsprechende n × n-Matrix verallgeme<strong>in</strong>ern. In Fall<br />
1 s<strong>in</strong>d n 2 E<strong>in</strong>träge zum Speichern der LR-Zerlegung notwendig, <strong>in</strong> Fall 2 nur 3n. Für<br />
n ≫ 1 000 ist <strong>die</strong>ser Unterschied entscheidend.<br />
Dünn besetzte Matrizen treten <strong>in</strong> der Anwendung oft auf, etwa bei der Diskretisierung von<br />
Differentialgleichungen, aber auch bei der Berechnung von kubischen Spl<strong>in</strong>es. Damit <strong>die</strong><br />
LR-Zerlegung aus der dünnen Besetzungsstruktur Nutzen ziehen kann, muss <strong>die</strong> Matrix<br />
entsprechend permutiert (man sagt hier sortiert) se<strong>in</strong>. Werden Nulle<strong>in</strong>träge <strong>in</strong> A <strong>in</strong> der<br />
LR-Zerlegung überschrieben, so spricht man von fill-<strong>in</strong>. Die aktuelle Forschung zur Weiterentwicklung<br />
der LR-Zerlegung befasst sich weniger mit der Berechnung der LR-Zerlegung<br />
selbst, als mit effizienten Sortierverfahren zur Reduktion der fill-<strong>in</strong>s. Wir wissen, dass <strong>die</strong><br />
LR-Zerlegung e<strong>in</strong>er Bandmatrix mit Bandbreite m wieder e<strong>in</strong>e (voll besetzte) Bandmatrix<br />
mit Bandbreite m ist und <strong>in</strong> O(nm 2 ) Operationen durchgeführt werden kann. E<strong>in</strong>e<br />
Idee zur Sortierung der Matrix A besteht nun dar<strong>in</strong>, <strong>die</strong> E<strong>in</strong>träge so anzuordnen, dass <strong>die</strong><br />
sortierte Matrix e<strong>in</strong>e Bandmatrix mit möglichst dünner Bandbreite ist.<br />
E<strong>in</strong> bekanntes Verfahren ist der Cuthill-McKee-Algorithmus. Dieser erstellt e<strong>in</strong>e Sortierung<br />
{i 1 , i 2 , . . . , i n } der n Indizes, so dass mite<strong>in</strong>ander verbundene Indizes nahe beie<strong>in</strong>ander<br />
stehen. Zur Herleitung des Verfahrens benötigen wie e<strong>in</strong>ige Begriffe. Es sei A ∈ R n×n<br />
e<strong>in</strong>e dünn besetzte Matrix mit Besetzungsmuster B ⊂ {1, . . . , n} 2 . Dabei gehen wir der<br />
E<strong>in</strong>fachheit davon aus, dass B symmetrisch ist. Aus (i, j) ∈ B folgt (j, i) ∈ B. Zu e<strong>in</strong>em<br />
Index i ∈ {1, . . . , n} sei N (i) <strong>die</strong> Menge aller mit i verbundenen Indizes:<br />
N (i) := {j ∈ {1, . . . n} : (i, j) ∈ B},<br />
Und für e<strong>in</strong>e beliebige Menge N ⊂ {1, . . . , n} bezeichnen wir mit #N <strong>die</strong> Menge der<br />
Elemente <strong>in</strong> N, d.h. mit #N (i) <strong>die</strong> Anzahl der Nachbarn von i.<br />
Der Algorithmus füllt schrittweise e<strong>in</strong>e Indexliste I = (i 1 , i 2 , . . . ) bis alle Indizes 1, . . . , n<br />
e<strong>in</strong>sortiert s<strong>in</strong>d. Wir starten mit dem Index I = (i 1 ), welcher <strong>die</strong> ger<strong>in</strong>gste Zahl von<br />
Nachbarn #N (i 1 ) ≤ #N (j), ∀j besitzt. Im Anschluss fügen wir <strong>die</strong> Nachbarn j ∈ N (i 1 )<br />
von i 1 h<strong>in</strong>zu, <strong>in</strong> der Reihenfolge der jeweiligen Zahl von Nachbarn. Auf <strong>die</strong>se Weise hangelt<br />
sich der Algorithmus von Nachbar zu Nachbar und arbeitet <strong>die</strong> Besetzungsstruktur der<br />
Matrix ab bis alle Indizes zur Liste h<strong>in</strong>zugefügt wurden.<br />
Bei der genauen Def<strong>in</strong>ition des Algorithmus s<strong>in</strong>d noch e<strong>in</strong>ige Sonderfälle zu betrachten, so<br />
dass der Algorithmus auch wirklich term<strong>in</strong>iert und alle Indizes f<strong>in</strong>det:<br />
137
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Algorithmus 4.41 (Cuthill-McKee). Es sei A ∈ R n×n e<strong>in</strong>e dünn besetzte Matrix mit<br />
symmetrischem Besetzungsmuster B ∈ (i, j). Starte mit leerer Indexmenge I = (·) und<br />
iteriere für k = 1, . . . , n:<br />
(0) Stopp, falls <strong>die</strong> Indexmenge I bereits n Elemente besitzt.<br />
(1) Falls Indexmenge I nur k − 1 Elemente besitzt, bestimme Indexelement i k als (noch<br />
nicht verwendeter) Index mit m<strong>in</strong>imaler Nachbarzahl:<br />
i k = arg<br />
m<strong>in</strong><br />
j∈{1,...,n}\I<br />
#N (j).<br />
(2) Erstelle Liste aller Nachbarn von i k , welche noch nicht <strong>in</strong> I enthalten s<strong>in</strong>d:<br />
Falls N k = ∅, Neustart mit k + 1.<br />
N k := N (i k ) \ I.<br />
(3) Sortiere Liste N k aufsteigend nach Anzahl von Nachbarn:<br />
N k = {s k 1, s k 2, . . . },<br />
#N (s k i ) ≤ #N (s k i+1).<br />
Füge Indizes {s k 1 , sk 2 , . . . } <strong>in</strong> <strong>die</strong>ser Reihenfolge zu Liste I h<strong>in</strong>zu.<br />
Wir betrachten zur Veranschaulichung e<strong>in</strong> Beispiel:<br />
Beispiel 4.42 (Cuthill-McKee). Es sei e<strong>in</strong>e Matrix A ∈ R 8×8 mit folgendem Besetzungsmuster<br />
gegeben:<br />
⎛<br />
⎞<br />
∗ ∗ ∗<br />
∗ ∗ ∗ ∗ ∗<br />
∗ ∗ ∗ ∗<br />
A :=<br />
∗<br />
∗ ∗ ∗ ∗<br />
∗<br />
∗<br />
⎜<br />
⎟<br />
⎝ ∗ ∗ ∗ ⎠<br />
∗ ∗ ∗ ∗<br />
Index N(i) #N(i)<br />
1 1,2,8 3<br />
2 1,2,5,6,8 5<br />
3 3,5,7,8 4<br />
4 4 1<br />
5 2,3,5,7 4<br />
6 2,6 2<br />
7 3,5,7 3<br />
8 1,2,3,8 4<br />
Schritt k = 1: (1) Die Indexliste I ist leer. Der Index 4 hat nur e<strong>in</strong>en Nachbarn (sich selbst), d.h.<br />
i 1 = 4, I = (4).<br />
(2) Für den Index 4 gilt N 1 = N (4) \ I = ∅, d.h. weiter mit k = 2.<br />
Schritt k = 2: (1) Die Indexliste hat nur k − 1 = 1 Element. Von den verbliebenden Indizes hat<br />
Index 6 <strong>die</strong> m<strong>in</strong>imale Zahl von zwei Nachbarn, d.h.<br />
i 2 = 6, I = (4, 6).<br />
138
4.2 Lösungsmethoden für l<strong>in</strong>eare Gleichungssysteme<br />
(2) Es gilt N 2 = N (6) \ I = {2, 6} \ {4, 6} = {2}.<br />
(3) E<strong>in</strong> e<strong>in</strong>zelnes Element ist natürlich sortiert, d.h.<br />
i 3 = 2, I = (4, 6, 2)<br />
Schritt k = 3: (1) Diese Schritt greift nicht, da I bereits 3 Elemente besitzt, es ist i 3 = 2.<br />
(2) Es gilt N 3 = N (2) \ I = {1, 2, 5, 6, 8} \ {4, 6, 2} = {1, 5, 8}.<br />
(3) Es gilt #N(1) = 3, #N(5) = 4 und #N(8) = 4, d.h. wir fügen sortiert h<strong>in</strong>zu:<br />
i 4 = 1, i 5 = 5, i 6 = 8, I = (4, 6, 2, 1, 5, 8).<br />
Schritt k = 4: (1) I hat mehr als 4 Elemente, d.h. i 4 = 1.<br />
(2) Es ist N 4 = N (1) \ I = {1, 2, 8} \ {4, 6, 2, 1, 5, 8} = ∅. Daher weiter mit k = 5<br />
Schritt k = 5: (1) I hat genug Elemente, i 5 = 5.<br />
(2) Es ist N 5 = N (5) \ I = {2, 3, 5, 7} \ {4, 6, 2, 1, 5, 8} = {3, 7}<br />
(3) Es gilt #N (3) = 4 und #N (7) = 3, d.h. Index 7 wird zuerst angefügt<br />
i 7 = 7, i 8 = 3, I = (4, 6, 2, 1, 5, 8, 7, 3).<br />
Wir erhalten <strong>die</strong> Sortierung:<br />
1 → 4, 2 → 6, 3 → 2, 4 → 1, 5 → 5, 6 → 8, 7 → 7, 8 → 3.<br />
Wir erstellen <strong>die</strong> sortiere Matrix à gemäß ã kj = a ik i l<br />
:<br />
4 6 2 1 5 8 3 7<br />
⎛<br />
⎞<br />
∗ 4<br />
∗ ∗ 6<br />
∗ ∗ ∗ ∗ ∗ 2<br />
A :=<br />
∗ ∗ ∗ 1<br />
∗ ∗ ∗ ∗ 5<br />
⎜ ∗ ∗ ∗ ∗⎟<br />
8<br />
⎝<br />
∗ ∗ ∗⎠<br />
7<br />
∗ ∗ ∗ ∗ 3<br />
Die so sortierte Matrix ist e<strong>in</strong>e Bandmatrix mit Bandbreite m = 4.<br />
139
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Abbildung 4.1: Besetzungsstruktur e<strong>in</strong>er dünn besetzten Matrix A ∈ R 1089×1089 mit <strong>in</strong>sgesamt<br />
9 409 von Null verschiedenen E<strong>in</strong>trägen. L<strong>in</strong>ks: vor Sortierung, Mitte:<br />
Cuthill-McKee Algorithmus und rechts: nach Sortierung mit e<strong>in</strong>em Multi-<br />
Fronten-Verfahren aus [4].<br />
Die meisten Verfahren basieren auf Methoden der Graphentheorie. Der Cuthill-McKee<br />
Algorithmus sucht e<strong>in</strong>e Permutierung des Besetzungsmusters, so dass eng benachbarte Indizes<br />
auch <strong>in</strong> der Reihenfolge nahe beie<strong>in</strong>ander stehen. Andere Methoden versuchen den<br />
durch das Besetzungsmuster aufgespannten Graphen möglichst <strong>in</strong> Teilgraphen zu zerlegen.<br />
Diese Teilgraphen entsprechen Blöcken <strong>in</strong> der Matrix A. Die anschließende LR-Zerlegung<br />
erzeugt dann voll besetzte, dafür kle<strong>in</strong>e Blöcke. Die e<strong>in</strong>zelnen Blöcke s<strong>in</strong>d nur schwach<br />
gekoppelt. E<strong>in</strong> Vorteil <strong>die</strong>ser Sortierung ist <strong>die</strong> Möglichkeit, effiziente Parallelisierungsverfahren<br />
für <strong>die</strong> e<strong>in</strong>zelnen Blöcke zu verwenden.<br />
In Abbildung 4.1 zeigen wir <strong>die</strong> Besetzungsstruktur e<strong>in</strong>er Matrix A vor und nach entsprechender<br />
Sortierung. Die Matrix hat e<strong>in</strong>e symmetrische Besetzungsstruktur und 9 409<br />
E<strong>in</strong>träge ungleich Null (das s<strong>in</strong>d weniger als 1% aller E<strong>in</strong>träge). Die LR-Zerlegung der unsortierten<br />
Matrix ist nahezu voll belegt mit etwa 1 000 000 E<strong>in</strong>trägen und deren Berechnung<br />
erfordert etwa 400 · 10 6 Operationen. Der Cuthill-McKee Algorithmus erzeugt e<strong>in</strong>e Bandmatrix<br />
mit sehr Bandbreite m ≈ 70. Zur Speicherung der LR-Zerlegung s<strong>in</strong>d etwa 150 000<br />
E<strong>in</strong>träge notwendig und <strong>die</strong> Berechnung erfordert etwa 5 · 10 6 Operationen. Schließlich<br />
zeigen wir zum Vergleich <strong>die</strong> Sortierung mit e<strong>in</strong>em sogenannten Multi-Fronten-Verfahren.<br />
Hier wird <strong>die</strong> Matrix <strong>in</strong> e<strong>in</strong>zelne Blöcke geteilt. Zur Berechnung der LR-Zerlegung s<strong>in</strong>d<br />
hier 3 · 10 6 Operationen notwendig. Details hierzu f<strong>in</strong>den sich <strong>in</strong> [4].<br />
4.3 Nachiteration<br />
Die numerisch durchgeführte LR-Zerlegung stellt aufgrund von Rundungsfehlern nur e<strong>in</strong>e<br />
Näherung dar A ≈ LR und <strong>die</strong> so approximierte Lösung LR˜x = b ist mit e<strong>in</strong>em Fehler<br />
x− ˜x behaftet. Es stellt sich nun <strong>die</strong> Frage nach e<strong>in</strong>er auswertbaren Abschätzung für <strong>die</strong>sen<br />
Fehler. E<strong>in</strong> erster Anhaltspunkt wird durch den Defekt gegeben, siehe auch Def<strong>in</strong>ition 2.19:<br />
140
4.3 Nachiteration<br />
Def<strong>in</strong>ition 4.43 (Defekt (LGS)). Es sei ˜x ∈ R n <strong>die</strong> Näherung zur Lösung x ∈ R n von<br />
Ax = b. Die Größe<br />
d(˜x) := b − A˜x,<br />
bezeichnet den Defekt.<br />
Für <strong>die</strong> exakte Lösung x ∈ R n von Ax = b gilt d(x) = 0. Für allgeme<strong>in</strong>e Approximationen<br />
erhalten wir <strong>die</strong> folgende a posteriori Fehlerabschätzung:<br />
Satz 4.44 (Fehlerabschätzung für l<strong>in</strong>eare Gleichungssysteme). Es sei ˜x ∈ R n <strong>die</strong> Approximation<br />
zur Lösung x ∈ R n von Ax = b. Dann gilt:<br />
‖x − ˜x‖<br />
‖x‖<br />
≤ cond(A) ‖d(˜x)‖<br />
‖b‖ .<br />
Beweis: Es gilt:<br />
x − ˜x = A −1 (b − A˜x) = A −1 d(˜x) ⇒ ‖x − ˜x‖ ≤ ‖A −1 ‖ ‖d˜x ‖.<br />
Teilen durch ‖b‖ = ‖Ax‖ ≤ ‖A‖ ‖x‖ liefert das gewünschte Ergebnis<br />
‖x − ˜x‖<br />
‖x‖<br />
≤ ‖A‖ ‖A −1 ‖ ‖d(˜x)‖<br />
‖b‖ . □<br />
Zur Veranschaulichung betrachten wir Beispiele 4.29 und 4.30 mit:<br />
⎛ ⎞ ⎛ ⎞ ⎛ ⎞<br />
0.34995<br />
2.37<br />
0.35<br />
⎜ ⎟ ⎜ ⎟ ⎜ ⎟<br />
x ≈ ⎝−0.98024⎠ , ˜x 1 = ⎝−3.55⎠ , ˜x 2 = ⎝−0.98⎠<br />
2.1595<br />
2.15<br />
2.16<br />
mit den relativen Fehlern<br />
‖x − ˜x 1 ‖ 2<br />
‖x‖ 2<br />
≈ 1.5,<br />
‖x − ˜x 2 ‖ 2<br />
‖x‖ 2<br />
≈ 0.00024,<br />
sowie Defekten:<br />
‖d(x 1 )‖ 2<br />
‖b‖ 2<br />
≈ 3.8,<br />
‖d(x 2 )‖ 2<br />
‖b‖ 2<br />
≈ 0.0009.<br />
Der Spektralkondition der Matrix A ist cond 2 (A) ≈ 6, d.h., es ergeben sich <strong>die</strong> Fehlerschranken:<br />
‖x − ˜x 1 ‖ 2<br />
‖x − ˜x 2 ‖ 2<br />
≤ 6 · 3.8 ≈ 20,<br />
≤ 6 · 0.0009 = 0.005.<br />
‖x‖ 2 ‖x‖ 2<br />
In beiden Fällen wir der Fehler um e<strong>in</strong>en Faktor 10 ∼ 20 überschätzt. Zur praktischen<br />
Auswertung <strong>die</strong>ser Fehlerabschätzung wird <strong>die</strong> Konditionszahl der Matrix A benötigt.<br />
Diese ist im Allgeme<strong>in</strong>en jedoch nicht verfügbar, da A −1 weder bekannt, noch e<strong>in</strong>fach zu<br />
berechnen ist.<br />
141
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Neben se<strong>in</strong>er Rolle zur Fehlerabschätzung kommt dem Defekt e<strong>in</strong>e weitere wichtige Bedeutung<br />
zu. Wir gehen davon aus, dass wir den Defekt d(˜x) ohne Rundungsfehler berechnen<br />
können. Weiter nehmen wir an, dass wir auch <strong>die</strong> Defekt-Gleichung<br />
Aw = d(˜x) = b − A˜x,<br />
exakt nach w ∈ R n lösen können. Dann gilt für ˜x + w:<br />
˜x + w = ˜x + A −1 (b − A˜x) = ˜x + x − ˜x = x.<br />
Dieser Vorgang wird Defektkorrektur oder Nachiteration genannt. Die Annahme, dass Defekt<br />
und Defektgleichung ohne Rundungsfehler gelöst werden können ist natürlich nicht<br />
realistisch (dann könnte ja auch das Orig<strong>in</strong>al-System exakt gelöst werden). Dennoch erhalten<br />
wir als Grundlage der Nachiteration das folgende Ergebnis:<br />
Satz 4.45 (Nachiteration). Es sei ɛ (kle<strong>in</strong> genug) <strong>die</strong> Fehlertoleranz. Durch ˜x ∈ R n sei<br />
e<strong>in</strong>e Approximation zu Ax = b gegeben. Weiter sei ˜d e<strong>in</strong>e Approximation zu d(˜x) mit<br />
doppelter Genauigkeit:<br />
‖d(˜x) − ˜d‖ ≤ cond(A)ɛ 2 . (4.3)<br />
‖d(˜x)‖<br />
Es sei ˜w e<strong>in</strong>e Approximation der Defektgleichung Aw = ˜d mit e<strong>in</strong>facher Genauigkeit<br />
‖w − ˜w‖<br />
‖w‖<br />
≤ cond(A)ɛ. (4.4)<br />
Dann gilt für <strong>die</strong> Korrektur ˜x + ˜w <strong>die</strong> Abschätzung<br />
‖x − (˜x + ˜w)‖<br />
‖x‖<br />
≤ ɛc(A)<br />
‖x − ˜x‖<br />
,<br />
‖x‖<br />
mit e<strong>in</strong>er Konstante c(A), <strong>die</strong> von der Konditionszahl cond(A) abhängt.<br />
Beweis: Wir def<strong>in</strong>ieren zunächst e<strong>in</strong>e Hilfsgröße: es sei ŵ <strong>die</strong> exakte Lösung der exakten<br />
Defektgleichung Aŵ = d(˜x):<br />
Aŵ = b − A˜x ⇒ ŵ = A −1 b − A −1 A˜x = x − ˜x. (4.5)<br />
Für den Fehler ŵ − w zwischen den exakten Lösungen von Aŵ = d(˜x) und Aw = ˜d gilt<br />
laut Störungssatz 4.19:<br />
‖ŵ − w‖<br />
‖ŵ‖<br />
‖d(˜x) − ˜d‖<br />
≤ cond(A) ≤ ɛ 2 cond(A) 2 (4.6)<br />
‖d(˜x)‖<br />
} {{ }<br />
(4.3)<br />
142
4.3 Nachiteration<br />
Jetzt folgt durch E<strong>in</strong>schieben von ±ŵ sowie ±w <strong>in</strong> den Fehler ‖x − (˜x + ˜w)‖:<br />
‖x − (˜x + ˜w)‖ ≤ ‖x − (˜x + ŵ)‖ + ‖ŵ − w‖ + ‖w − ˜w‖<br />
} {{ } } {{ } } {{ }<br />
=0 wegen (4.5) (4.6) (4.4)<br />
≤ ɛ 2 cond(A) 2 ‖ŵ‖ + ɛ cond(A)‖w‖<br />
≤ ɛ cond(A) ( )<br />
ɛ cond(A)‖ŵ‖ + ‖ŵ‖ + ‖w − ŵ‖<br />
} {{ }<br />
(4.6)<br />
≤ ɛ cond(A) ( 1 + ɛ cond(A) + ɛ 2 cond(A) 2) ‖ŵ‖<br />
≤ ɛc(A)‖x − ˜x‖,<br />
mit c(A) := cond(A)(1 + ɛ cond(A) + ɛ 2 cond(A) 2 ). Das Ergebnis mit Teilen durch ‖x‖. □<br />
Durch e<strong>in</strong>en Nachiterationsschritt kann der Fehler um den Faktor ɛc(A) reduziert werden.<br />
Die Konstante c(A) hängt dabei allerd<strong>in</strong>gs sehr ungünstig von der oft sehr großen Konditionszahl<br />
der Matrix ab. Die Nachiteration ist e<strong>in</strong> universelles Pr<strong>in</strong>zip und nicht auf <strong>die</strong><br />
LR-Zerlegung beschränkt. Dennoch def<strong>in</strong>ieren wir für <strong>die</strong>se:<br />
Algorithmus 4.46 (Nachiteration). Es sei A ∈ R n×n e<strong>in</strong>e reguläre Matrix und b ∈ R n .<br />
Zur Lösung von Ax = b:<br />
1. Erstelle LR-Zerlegung von A mit e<strong>in</strong>facher Genauigkeit<br />
LR = P A.<br />
2. Setze d (1) = b sowie x (1) = 0 und iteriere für i = 1, 2, . . . :<br />
(i) Ly (i) = P d (i) mit e<strong>in</strong>facher Genauigkeit<br />
(ii) Rw (i) = y (i) mit e<strong>in</strong>facher Genauigkeit<br />
(iii) x (i+1) = x (i) + w (i) mit doppelter Genauigkeit<br />
(iv) d (i+1) = b − Ax (i+1) mit doppelter Genauigkeit<br />
Der Vorteil der Nachiteration liegt <strong>in</strong> der mehrfachen Verwendung der erstellten LR-<br />
Zerlegung. Zur Berechnung der LR-Zerlegung s<strong>in</strong>d O(n 3 ) Operationen notwendig, während<br />
zum Vorwärts- und Rückwärtse<strong>in</strong>setzen, sowie zur Berechnung des Defektes nur O(n 2 )<br />
Operationen benötigt werden. D.h., selbst bei Verwenden höherer Genauigkeit ist der<br />
Aufwand <strong>in</strong> Schritt 2.(iii) des Verfahrens kle<strong>in</strong> im Vergleich zu Schritt 1.<br />
Die Annahme, dass zum Erstellen der LR-Zerlegung mit ger<strong>in</strong>gerer Genauigkeit gerechnet<br />
wird, also zur Defektberechnung ist nicht unrealistisch. Der Speichertyp float von e<strong>in</strong>facher<br />
Genauigkeit benötigt zur Speicherung e<strong>in</strong>er Zahl nur den halben Speicher verglichen<br />
mit double. Gerade bei sehr großen Matrizen n ≫ 1 000 000 spielt der Speicherbedarf e<strong>in</strong>e<br />
wesentliche Rolle. Darüber h<strong>in</strong>aus unterscheidet moderne Hardware (z.B. GPU’s) zwischen<br />
der Rechnung mit doppelter und e<strong>in</strong>facher Genauigkeit, deren Operationen oft weit<br />
schneller durchgeführt werden können.<br />
143
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Beispiel 4.47 (Nachiteration). Wir führen Beispiel 4.30 fort. Zur Approximation ˜x 2 berechnen<br />
wir den Defekt d(˜x 2 ) mit doppelter Genauigkeit (hier sogar exakt):<br />
⎛ ⎞<br />
⎛ ⎞<br />
0.35<br />
0.001<br />
⎜ ⎟<br />
⎜ ⎟<br />
˜x 2 = ⎝−0.98⎠ , d(˜x 2 ) = b − A˜x 2 = ⎝ 0 ⎠ .<br />
2.16<br />
−0.002<br />
Mit dreistelliger (also hier e<strong>in</strong>facher) Genauigkeit lösen wir zunächst ỹ = P d(˜x) mit<br />
P d(˜x) = (−0.001, −0.002, 0) T und erhalten:<br />
⎛ ⎞<br />
0.001<br />
⎜ ⎟<br />
ỹ = ⎝−0.00165⎠ .<br />
0.000611<br />
Rückwärtse<strong>in</strong>setzen R ˜w = ỹ mit dreistelliger Genauigkeit ergibt:<br />
⎛<br />
⎞<br />
−0.0000545<br />
⎜<br />
⎟<br />
˜w = ⎝ −0.000227 ⎠ .<br />
−0.000466<br />
Wir berechnen <strong>die</strong> korrigierte Lösung ˆx := ˜x + ˜w mit sechsstelliger (also doppelter) Genauigkeit<br />
zu:<br />
⎛ ⎞<br />
0.349946<br />
⎜ ⎟<br />
ˆx = ⎝−0.980227⎠ .<br />
2.15953<br />
Diese verbesserte Lösung ist mit dem relativen Fehler<br />
‖ˆx − x‖ 2<br />
‖x‖ 2<br />
≈ 0.000017 · 10 −5<br />
versehen. Der Fehler konnte durch e<strong>in</strong>en Nachiterationsschritt um zwei Größenordnungen<br />
verbessert werden!<br />
Mit der gestörten LR-Zerlegung ˜L ˜R ≈ A lässt sich e<strong>in</strong> Nachiterationsschritt kompakt<br />
schreiben als:<br />
x (i+1) = x (i) + Cd(˜x (i) ), C := ˜R −1 ˜L−1 .<br />
Dabei ist <strong>die</strong> Matrix C e<strong>in</strong>e Approximation zur Inversen von A. Es stellt sich <strong>die</strong> Frage, ob<br />
<strong>die</strong> Nachiteration auch dann e<strong>in</strong> konvergentes Verfahren bildet, wenn ˜C e<strong>in</strong>e noch gröbere<br />
Approximation der Inversen ˜C ≈ A −1 ist. Dabei könnte man an Approximationen denken,<br />
<strong>die</strong> auf der e<strong>in</strong>en Seite weiter von A −1 entfernt s<strong>in</strong>d, dafür aber wesentlich e<strong>in</strong>facher, z.B.<br />
<strong>in</strong> O(n 2 ) Operationen zu erstellen s<strong>in</strong>d. Dieser Ansatz ist Ausgangspunkt von allgeme<strong>in</strong>en<br />
Defektkorrektur-Verfahren, wie wir sie <strong>in</strong> Kapitel 5 untersuchen werden.<br />
144
4.4 Orthogonalisierungsverfahren und <strong>die</strong> QR-Zerlegung<br />
4.4 Orthogonalisierungsverfahren und <strong>die</strong> QR-Zerlegung<br />
Die Zerlegung e<strong>in</strong>er regulären Matrix A ∈ R n×n <strong>in</strong> <strong>die</strong> beiden Dreiecksmatrizen L und R<br />
basiert auf der Elim<strong>in</strong>ation mit Frobeniusmatrizen, d.h. R = F A, mit L := F −1 . Es gilt:<br />
cond(R) = cond(F A) ≤ cond(F ) cond(A) = ‖F ‖ ‖L‖ cond(A).<br />
Bei entsprechender Pivotisierung gilt für <strong>die</strong> E<strong>in</strong>träge der Matrizen F sowie L |f ij | ≤ 1<br />
und |l ij | ≤ 1, siehe Satz 4.28. Dennoch können <strong>die</strong> Normen von L und F im Allgeme<strong>in</strong>en<br />
nicht günstiger als ‖F ‖ ∞ ≤ n und ‖L‖ ∞ ≤ n abgeschätzt werden. Es gilt dann:<br />
cond ∞ (R) ≤ n 2 cond ∞ (A).<br />
Die Matrix R, welche zur Rückwärtselim<strong>in</strong>ation gelöst werden muss, hat e<strong>in</strong>e unter Umständen<br />
weit schlechtere Konditionierung als <strong>die</strong> Matrix A selbst (welche auch schon sehr<br />
schlecht konditioniert se<strong>in</strong> kann). Wir suchen im Folgenden e<strong>in</strong>en Zerlegungsprozess <strong>in</strong><br />
e<strong>in</strong>e Dreiecksmatrix, welche numerisch stabil ist, <strong>in</strong>dem <strong>die</strong> Zerlegung nur mit Hilfe von<br />
orthogonalen Matrizen Q ∈ R n×n durchgeführt wird, für welche cond 2 (Q) = 1 gilt:<br />
Def<strong>in</strong>ition 4.48 (Orthogonale Matrix). E<strong>in</strong>e Matrix Q ∈ R n×n heißt orthogonal, falls<br />
ihre Zeilen und Spaltenvektoren e<strong>in</strong>e Orthonormalbasis des R n bilden.<br />
Es gilt:<br />
Satz 4.49 (Orthogonale Matrix). Es sei Q ∈ R n×n e<strong>in</strong>e orthogonale Matrix. Dann ist Q<br />
regulär und es gilt:<br />
Q −1 = Q T , Q T Q = I, ‖Q‖ 2 = 1, cond 2 (Q) = I.<br />
Es gilt det(Q) = 1 oder det(Q) = −1. Für zwei orthogonale Matrizen Q 1 , Q 2 ∈ R n×n ist<br />
auch das Produkt Q 1 Q 2 e<strong>in</strong>e orthogonale Matrix. Für e<strong>in</strong>e beliebige Matrix A ∈ R n×n gilt<br />
‖QA‖ 2 = ‖A‖ 2 . Für beliebige Vektoren x, y ∈ R n gilt:<br />
‖Qx‖ 2 = ‖x‖ 2 , (Qx, Qy) 2 = (x, y) 2 .<br />
Beweis: Wir beweisen hier nur <strong>die</strong> im Kontext der numerischen Stabilität wesentlich<br />
Eigenschaft, dass <strong>die</strong> Multiplikation mit orthogonalen Matrizen <strong>die</strong> Kondition e<strong>in</strong>er Matrix<br />
(d.h. <strong>die</strong> 2-Norm) nicht verändert, <strong>die</strong> weiteren Teile des Beweises belassen wir als Übung.<br />
Es gilt:<br />
‖QAx‖ 2 2 = (QAx, QAx) 2 = (Q T QAx, Ax) 2 = (Ax, Ax) 2 = ‖Ax‖ 2 2.<br />
Wir def<strong>in</strong>ieren:<br />
□<br />
145
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Def<strong>in</strong>ition 4.50 (QR-Zerlegung). Die Zerlegung e<strong>in</strong>er Matrix A ∈ R n×n <strong>in</strong> e<strong>in</strong>e orthogonale<br />
Matrix Q ∈ R n×n sowie e<strong>in</strong>e rechte obere Dreiecksmatrix R ∈ R n×n gemäß<br />
heißt QR-Zerlegung.<br />
A = QR,<br />
Die QR-Zerlegung hat den Vorteil, dass <strong>die</strong> Matrix R = Q T A <strong>die</strong> gleiche Konditionszahl<br />
hat wie <strong>die</strong> Matrix A selbst. E<strong>in</strong>mal erstellt, kann <strong>die</strong> QR-Zerlegung genutzt werden, um<br />
l<strong>in</strong>eare Gleichungssysteme mit der Matrix A effizient zu lösen:<br />
Ax = b ⇔ Q T Ax = Q T b ⇔ Rx = Q T b.<br />
Zur Realisierung der QR-Zerlegung stellt sich <strong>die</strong> Frage nach der Konstruktion orthogonaler<br />
Matrizen Q zur Reduktion von A auf Dreiecksgestalt.<br />
4.4.1 Das Gram-Schmidt Verfahren<br />
Der wichtigste Algorithmus zum Erstellen e<strong>in</strong>er Orthonormalbasis ist das Orthogonalisierungsverfahren<br />
nach Gram-Schmidt:<br />
Satz 4.51 (Gram-Schmidt Orthonormalisierungsverfahren). Es sei durch {a 1 , . . . , a n } e<strong>in</strong>e<br />
Basis des R n gegeben, durch (·, ·) e<strong>in</strong> Skalarprodukt mit <strong>in</strong>duzierter Norm ‖ · ‖. Die<br />
Vorschrift:<br />
(i) q 1 := a 1<br />
‖a 1 ‖ ,<br />
∑<br />
i = 2, . . . , n : (ii) ˜q i := a i − (a i , q j )q j , q i := ˜q i<br />
‖˜q i ‖ ,<br />
erzeugt e<strong>in</strong>e Orthonormalbasis {q 1 , . . . , q n } des R n . Es gilt ferner:<br />
i−1<br />
j=1<br />
(q i , a j ) = 0 ∀1 ≤ j < i ≤ n.<br />
Beweis: Wir führen den Beweis per Induktion. Für i = 1 ist a 1 ≠ 0, da durch a 1 , . . . , a n<br />
der ganze R n aufgespannt wird. Für i = 2 gilt:<br />
(˜q 2 , q 1 ) = (a 2 , q 1 ) − (a 2 , q 1 ) (q 1 , q 1 ) = 0.<br />
} {{ }<br />
=1<br />
Aus der l<strong>in</strong>earen Unabhängigkeit von a 2 und q 1 folgt, dass ˜q 2 ≠ 0. Es sei nun also (q k , q l ) =<br />
δ kl für k, l > i. Dann gilt für k < i beliebig<br />
i−1<br />
∑<br />
(˜q i , q k ) = (a i , q k ) − (a i , q j ) (q j , q k ) = (a i , q k ) − (a i , q k ) = 0.<br />
} {{ }<br />
j=1<br />
=δ jk<br />
146
4.4 Orthogonalisierungsverfahren und <strong>die</strong> QR-Zerlegung<br />
Da span{q 1 , . . . , q j } = span{a 1 , . . . , a j } folgt auch (q i , a j ) = 0 für j < i.<br />
Mit Hilfe des Gram-Schmidt Verfahrens lässt sich <strong>die</strong> QR-Zerlegung e<strong>in</strong>er Matrix A ∈<br />
R n×n unmittelbar konstruieren:<br />
Satz 4.52 (QR-Zerlegung). Es sei A ∈ R n×n e<strong>in</strong>e reguläre Matrix. Dann existiert e<strong>in</strong>e<br />
QR-Zerlegung A = QR <strong>in</strong> e<strong>in</strong>e orthogonale Matrix Q ∈ R n×n und e<strong>in</strong>e rechte obere<br />
Dreiecksmatrix R ∈ R n×n .<br />
Beweis: Es seien A = (a 1 , . . . , a n ) <strong>die</strong> Spaltenvektoren der Matrix A. Da A regulär ist,<br />
s<strong>in</strong>d <strong>die</strong> Vektoren a i l<strong>in</strong>ear unabhängig und bilden e<strong>in</strong>e Basis des R n . Es sei {q 1 , . . . , q n }<br />
<strong>die</strong> durch das Gram-Schmidt Verfahren aus {a 1 , . . . , a n } konstruierte Orthonormalbasis.<br />
Dann ist durch Q = (q 1 , . . . , q n ) ∈ R n×n e<strong>in</strong>e orthogonale Matrix gegeben. Die Matrix<br />
R := Q T A ist regulär und aufgrund von Satz 4.51 gilt für ihre E<strong>in</strong>träge:<br />
r ij = (q i , a j ) = 0 ∀j < i.<br />
Das heißt: R ist e<strong>in</strong>e rechte obere Dreiecksmatrix.<br />
Die QR-Zerlegung e<strong>in</strong>er Matrix kann ohne e<strong>in</strong>er weiteren Normierungsbed<strong>in</strong>gung nicht e<strong>in</strong>deutig<br />
se<strong>in</strong>. Angenommen, wir modifizieren den Normierungsschritt (ii) im Gram-Schmidt<br />
Verfahren Satz 4.51) zu:<br />
q ′ i := − ˜q i<br />
‖˜q i ‖ .<br />
Dann wäre das resultierende System {q 1 , . . . , q n } wieder orthonormal und mit Q ′ R ′ = QR<br />
wäre e<strong>in</strong>e zweite (echt verschiedene) QR-Zerlegung gegeben. Wir können das Vorzeichen<br />
von q i <strong>in</strong> jedem Schritt so wählen, dass r ii = (q i , a i ) > 0, dass also R nur positive Diagonalelemente<br />
besitzt. Dann gilt:<br />
Satz 4.53 (E<strong>in</strong>deutigkeit der QR-Zerlegung). Die QR-Zerlegung A = QR e<strong>in</strong>er regulären<br />
Matrix A ∈ R n×n mit r ii > 0 ist e<strong>in</strong>deutig.<br />
Beweis: Es seien A = Q 1 R 1 = Q 2 R 2 zwei QR-Zerlegungen von A. Dann gilt:<br />
Q T 2 Q 1 = R 2 R −1<br />
1 , QT 1 Q 2 = R 1 R −1<br />
2 .<br />
Die Produkte R 2 R1 −1 sowie R 1 R2 −1 s<strong>in</strong>d rechte obere Dreiecksmatrizen. Weiter gilt Q :=<br />
Q T 2 Q 1 = (Q T 1 Q 2) T = Q T , d.h. Q ist e<strong>in</strong>e orthogonale Matrix mit Q −1 = Q T . Wegen<br />
Q −1 = Q T und Q = R 2 R1 −1 muss Q e<strong>in</strong>e Diagonalmatrix se<strong>in</strong>. Aus der Beziehung<br />
folgt für den j-ten E<strong>in</strong>heitsvektor e j :<br />
QR 1 = Q T 2 Q 1 R 1 = Q T 2 A = R 2<br />
QR 1 e j = q jj r 1 jj = r 2 jj > 0,<br />
also q jj > 0 und wegen der Orthogonalität Q = I. D.h.:<br />
R 1 = R 2 ⇒ Q 1 = AR −1<br />
1 = AR −1<br />
2 = Q 2 .<br />
□<br />
□<br />
147
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Die große Schwäche des Gram-Schmidt Verfahrens ist <strong>die</strong> ger<strong>in</strong>ge numerische Stabilität,<br />
<strong>in</strong>sbesondere, wenn <strong>die</strong> Vektoren a i “fast parallel” s<strong>in</strong>d. In <strong>die</strong>sem Fall droht Auslöschung.<br />
Wir betrachten hierzu e<strong>in</strong> Beispiel:<br />
Beispiel 4.54 (QR-Zerlegung mit Gram-Schmidt). Es sei <strong>die</strong> Matrix<br />
⎛<br />
⎞<br />
1 1 1<br />
⎜<br />
⎟<br />
A := ⎝0.01 0 0.01⎠<br />
0 0.01 0.01<br />
gegeben. Wir bestimmen mit dem Gram-Schmidt Verfahren aus den Spaltenvektoren A =<br />
(a 1 , a 2 , a 3 ) <strong>die</strong> entsprechende Orthonormalbasis. Bei dreistelliger Genauigkeit erhalten wir:<br />
⎛ ⎞<br />
q 1 = q 1<br />
1<br />
‖q 1 ‖ ≈ ⎜ ⎟<br />
⎝0.01⎠ .<br />
0<br />
□<br />
Weiter:<br />
⎛ ⎞<br />
⎛ ⎞<br />
0<br />
⎜ ⎟<br />
˜q 2 = q 2 − (a 2 , q 1 )q 1 ≈ a 2 − q 1 = ⎝−0.01⎠ , q 2 = ˜q 0<br />
2<br />
‖˜q<br />
0.01<br />
2 ‖ ≈ ⎜ ⎟<br />
⎝−0.707⎠ .<br />
0.707<br />
Schließlich:<br />
⎛ ⎞ ⎛<br />
0<br />
⎜ ⎟ ⎜<br />
0<br />
⎞<br />
⎟<br />
˜q 3 = a 3 − (a 3 , q 1 )q 1 − (a 3 , q 2 )q 2 ≈ a 3 − q 1 − 0 = ⎝ 0 ⎠ , q 3 = ⎝0⎠ .<br />
0.01<br />
1<br />
Die QR-Zerlegung ergibt sich mit der “orthogonalen Matrix”<br />
⎛<br />
⎞<br />
1 0 0<br />
⎜<br />
⎟<br />
˜Q = ⎝0.01 −0.707 0⎠ ,<br />
0 0.707 1<br />
sowie der rechten oberen Dreiecksmatrix ˜R mit ˜r ij = (q i , a j ) für j ≥ i:<br />
Die Probe A = ˜Q ˜R ergibt:<br />
⎛<br />
⎞ ⎛<br />
⎞<br />
(q 1 , a 1 ) (q 1 , a 2 ) (q 1 , a 3 ) 1 1 1<br />
⎜<br />
⎟ ⎜<br />
⎟<br />
˜R := ⎝ 0 (q 2 , a 2 ) (q 2 , a 3 ) ⎠ ≈ ⎝0 0.00707 0 ⎠ .<br />
0 0 (q 3 , a 3 ) 0 0 0.01<br />
⎛<br />
⎞ ⎛<br />
1 0 0<br />
⎜<br />
⎟ ⎜<br />
1 1 1<br />
⎞ ⎛<br />
⎞<br />
1 1 1<br />
⎟ ⎜<br />
⎟<br />
⎝0.01 −0.707 0⎠<br />
⎝0 0.00707 0 ⎠ ≈ ⎝0.01 0.005 0.01⎠ =: Ã<br />
0 0.707 1 0 0 0.01 0 0.005 0.01<br />
148
4.4 Orthogonalisierungsverfahren und <strong>die</strong> QR-Zerlegung<br />
Auf den ersten Blick sieht à nach e<strong>in</strong>er brauchbaren Näherung für A aus. Der relative<br />
Fehler ‖ ˜Q ˜R − A‖ 2 /‖A‖ 2 ≈ 0.004 ist (beachte dreistellige Arithmetik) nicht sonderlich<br />
groß. Ã ist jedoch nicht e<strong>in</strong>mal regulär! Dieser wesentliche Fehler liegt an der Instabilität<br />
des Gram-Schmidt-Verfahrens. Für das berechnete ˜Q gilt:<br />
⎛<br />
⎞<br />
I = ! ˜Q<br />
1 −0.00707 0<br />
T ⎜<br />
⎟<br />
˜Q ≈ ⎝−0.00707 1 0.707⎠ ,<br />
0 0.707 1<br />
mit e<strong>in</strong>em relativen Fehler ‖ ˜Q T ˜Q − I‖2 ≈ 0.7!<br />
Die QR-Zerlegung hat pr<strong>in</strong>zipiell bessere Stabilitätseigenschaften als <strong>die</strong> LR-Zerlegung.<br />
Das Gram-Schmidt-Verfahren eignet sich jedoch nicht, um <strong>die</strong> orthogonale Matrix Q zu<br />
erstellen. Im Folgenden entwickeln wir e<strong>in</strong>e Transformationsmethode zum Erstellen der<br />
QR-Zerlegung welche selbst auf orthogonalen, und somit optimal konditionierten, Transformationen<br />
aufbaut.<br />
4.4.2 Householder-Transformationen<br />
Das geometrische Pr<strong>in</strong>zip h<strong>in</strong>ter dem Gram-Schmidt Verfahren ist <strong>die</strong> Projektion der Vektoren<br />
a i auf <strong>die</strong> bereits erstellte Orthogonalbasis q 1 , . . . , q i−1 . Diese Projektion ist schlecht<br />
konditioniert, falls a i fast parallel zu den q j mit j < i, etwa a i ≈ q j ist. Dann droht Auslöschung.<br />
Wir können e<strong>in</strong>en Schritt des Gram-Schmidt Verfahrens kompakt mit Hilfe e<strong>in</strong>es<br />
Matrix-Vektor Produktes schreiben (komponentenweise nachrechnen!)<br />
i−1<br />
˜q i = [I − G (i) ]a i , G (i) ∑<br />
= q l ql T ,<br />
mit dem dyadischen Produkt zweier Vektoren vv T ∈ R n×n . Die Matrix [I − G i ] stellt e<strong>in</strong>e<br />
Projektion dar:<br />
Weiter gilt:<br />
[I − G i ] 2 ∑i−1<br />
= I − 2 q l ql T +<br />
l=1<br />
i−1 ∑<br />
k,l=1<br />
i−1<br />
l=1<br />
q l q T l q k<br />
} {{ }<br />
=δ lk<br />
q T k = [I − G i ].<br />
[I − G i ∑<br />
]q k = q k − q l ql T q k = 0.<br />
} {{ }<br />
l=1<br />
=δ lk<br />
Die Matrix I − G i ist also nicht regulär. Falls <strong>in</strong> Schritt i der Vektor a i fast parallel zu<br />
den bereits orthogonalen Vektoren ist, also ã i ∈ δa i + span{q 1 , . . . , q i−1 }, so gilt<br />
˜q i = [I − G i ]ã i = [I − G i ]δa i ⇒ ‖δq i‖<br />
‖˜q i ‖ =<br />
‖δq i ‖<br />
‖[I − G i ]δa i ‖ ∼ ‖δa i‖<br />
‖a i ‖ . 149
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Bei δa i → 0 ist also e<strong>in</strong>e beliebig große Fehlerverstärkung möglich. Man vergleiche Bemerkung<br />
4.16 zur Konditionierung der Matrix-Vektor Multiplikation (bei regulärer Matrix).<br />
Im Folgenden suchen wir e<strong>in</strong>e Transformation von A zu e<strong>in</strong>er Dreiecksmatrix R, <strong>die</strong> selbst<br />
auf orthogonalen Operationen aufbaut. E<strong>in</strong>e orthogonale Matrix Q ∈ R n×n mit det(Q) = 1<br />
stellt e<strong>in</strong>e Drehung dar und bei det(Q) = −1 e<strong>in</strong>e Spiegelung (oder e<strong>in</strong>e Drehspiegelung).<br />
Die Householder-Transformationen nutzen das Pr<strong>in</strong>zip der Spiegelung, um e<strong>in</strong>e Matrix<br />
A ∈ R n×n <strong>in</strong> e<strong>in</strong>er rechte obere Dreiecksmatrix zu transformieren.<br />
Def<strong>in</strong>ition 4.55 (Householder-Transformation). Für e<strong>in</strong>en Vektor v ∈ R n mit ‖v‖ 2 = 1<br />
ist durch vv T das dyadische Produkt def<strong>in</strong>iert und <strong>die</strong> Matrix<br />
heißt Householder-Transformation.<br />
Es gilt:<br />
S := I − 2vv T ∈ R n×n ,<br />
Satz 4.56 (Householder-Transformation). Jede Householder-Transformation S = I−2vv T<br />
ist symmetrisch und orthogonal. Das Produkt zweier Householder-Transformationen S 1 S 2<br />
ist wieder e<strong>in</strong>er symmetrische orthogonale Matrix.<br />
Beweis: Es gilt:<br />
Weiter gilt:<br />
S T = [I − 2vv T ] T = I − 2(vv T ) T = I − 2vv T = S.<br />
S T S = I − 4vv T + 4v }{{} v T v v T = I,<br />
=1<br />
d.h. S −1 = S T . Mit zwei symmetrischen orthogonalen Matrizen S 1 sowie S 2 gilt:<br />
(S 1 S 2 ) T = S T 2 S T 1 = S 2 S 1 , (S 1 S 2 ) −1 = S −1<br />
2 S−1 1 = S T 2 S T 1 = (S 1 S 2 ) T .<br />
Wir schließen <strong>die</strong> grundlegende Untersuchung der Householder-Transformationen mit e<strong>in</strong>er<br />
geometrischen Charakterisierung ab:<br />
Bemerkung 4.57 (Householder-Transformation als Spiegelung). Es sei v ∈ R n e<strong>in</strong> beliebiger<br />
normierter Vektor mit ‖v‖ 2 = 1. Weiter sei x ∈ R n gegeben mit x = αv + w ⊥ , wobei<br />
w ⊥ ∈ R n e<strong>in</strong> Vektor mit v T w ⊥ = 0 im orthogonalen Komplement zu v ist. Dann gilt für<br />
<strong>die</strong> Householder-Transformation S := I − 2vv T :<br />
S(αv + w ⊥ ) = [I − 2vv T ](αv + w ⊥ ) = α(v − 2v }{{} v T v) + w ⊥ − 2v } v T {{ w ⊥<br />
} = −αv + w ⊥ .<br />
=1<br />
=0<br />
D.h., <strong>die</strong> Householder-Transformation beschreibt e<strong>in</strong>e Spiegelung an der auf v senkrecht<br />
stehenden Ebene.<br />
□<br />
150
4.4 Orthogonalisierungsverfahren und <strong>die</strong> QR-Zerlegung<br />
a 1 − ‖a 1‖e 1 a 1<br />
v − = a 1 − ‖a 1‖e 1<br />
v + = a 1 + ‖a 1‖e 1<br />
−‖a 1‖ 2e 1 ‖a 1‖ 2e 1<br />
a 1 + ‖a 1‖e 1<br />
Abbildung 4.2: Spiegelungsachsen (gestrichelt) und Normalen zur Spiegelung v + und v −<br />
zur Spiegelung von a 1 auf span{e 1 }.<br />
Mit Hilfe der Householder-Transformationen soll e<strong>in</strong>e Matrix A ∈ R n×n nun Schritt für<br />
Schritt <strong>in</strong> e<strong>in</strong>e rechte obere Dreiecksmatrix transformiert werden:<br />
A (0) := A, A (i) = S (i) A (i−1) , S (i) = I − 2v (i) (v (i) ) T ,<br />
mit R := A (n−1) . Wir beschreiben den ersten Schritt des Verfahrens: <strong>die</strong> reguläre Matrix<br />
A ∈ R n×n soll durch Multiplikation mit e<strong>in</strong>er orthogonalen Householder-Transformation so<br />
transformiert werden A (1) = S (1) A, dass a (1)<br />
i1 = 0 für alle i > 1 unterhalb der ersten Diagonale.<br />
Hierzu schreiben wir <strong>die</strong> Matrix A = (a 1 , a 2 , . . . , a n ) mit ihren Spaltenvektoren. Dann<br />
ist A (1) = (a (1)<br />
1 , . . . , a(1) n ) mit a (1)<br />
i = S (1) a i . Wir suchen <strong>die</strong> Householder-Transformation<br />
S (1) , so dass:<br />
!<br />
e 1 = a (1)<br />
1 = S (1) a 1 .<br />
Hierzu müssen wir auf der Ebene senkrecht zu a 1 ± ‖a 1 ‖e 1 spiegeln, siehe Abbildung 4.2.<br />
Wir wählen<br />
v := a 1 + sign(a 11 )‖a 1 ‖e<br />
∥<br />
1<br />
∥<br />
∥a 1 + sign(a 11 )‖a 1 ‖e 1 , (4.7)<br />
um durch optimale Wahl des Vorzeichens <strong>die</strong> Gefahr von Auslöschung zu vermeiden. Mit<br />
<strong>die</strong>ser Wahl gilt:<br />
a (1)<br />
i = S (1) a i = a i − 2(v, a i )v, i = 2, . . . , n, a (1)<br />
1 = − sign(a 11 )‖a 1 ‖e 1 . (4.8)<br />
Die resultierende Matrix Ã(1) ist wieder regulär und es gilt ã (1)<br />
1 ∈ span(e 1 ):<br />
⎛<br />
⎞<br />
a 11 a 12 a 13 · · · a 1n<br />
. a 21 a .. 22 .<br />
A :=<br />
. a 31 a .. . .. 32 .<br />
⎜<br />
.<br />
⎝ .<br />
.. ⎟ . ⎠<br />
a n1 a n2 · · · · · · a nn<br />
⎛<br />
⎞<br />
a (1)<br />
11 a (1)<br />
12 a (1)<br />
13 · · · a (1)<br />
1n<br />
0 a (1) . ..<br />
22<br />
.<br />
→ A (1) := S (1) A =<br />
0 a (1) . .. . .. 32<br />
.<br />
.<br />
⎜<br />
. ⎟<br />
⎝ .<br />
.. . ⎠<br />
0 a (1)<br />
n2 · · · · · · a (1)<br />
nn<br />
151
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Wir setzen das Verfahren mit der Teilmatrix A (1)<br />
kl>1<br />
fort. Hierzu sei der verkürzte zweite<br />
Spaltenvektor def<strong>in</strong>iert als ã (1) = (a (1)<br />
22 , a(1) 32 , . . . , a(1) n2 )T ∈ R n−1 . Dann wählen wir:<br />
⎛<br />
⎞<br />
1 0 · · · · · · 0<br />
R n−1 ∋ ṽ (2) := ã(1) + sign(a (1)<br />
0<br />
22 )‖ã(1) ‖e 1<br />
∥<br />
∥ã (1) + sign(a (1) ∥, S (2) =<br />
0<br />
⎜ I − 2ṽ (2) (v (2) ) T ⎟∈ R n×n .<br />
22 )‖ã(1) ‖e 1 ⎝.<br />
⎠<br />
0<br />
Multiplikation mit S (2) von l<strong>in</strong>ks, also A (2) := S (2) A (1) lässt <strong>die</strong> erste Zeile unverändert.<br />
Elim<strong>in</strong>iert wird der Block A (1)<br />
kl>1 . Für <strong>die</strong> resultierende Matrix A(2) gilt a (2)<br />
kl<br />
= 0 für l = 1, 2<br />
und k > l. Nach n − 1 Schritten gilt:<br />
R := } S (n−1) S (n−2) {{ · · · S (1)<br />
} A.<br />
=:Q T<br />
Alle Transformationen s<strong>in</strong>d orthogonal, somit ist auch Q ∈ R n×n e<strong>in</strong>e orthogonale (und<br />
natürlich reguläre) Matrix.<br />
Wir fassen zusammen:<br />
Satz 4.58 (QR-Zerlegung mit Householder-Transformationen). Es sei A ∈ R n×n e<strong>in</strong>e<br />
reguläre Matrix. Dann lässt sich <strong>die</strong> QR-Zerlegung von A nach Householder <strong>in</strong><br />
2n 3<br />
3 + O(n2 )<br />
arithmetische Operationen numerisch stabil durchführen.<br />
Beweis: Die Durchführbarkeit der QR-Zerlegung geht aus dem Konstruktionspr<strong>in</strong>zip hervor.<br />
Aus der Regularität der Matrizen A (i) folgt, dass der Teilvektor ã (i) ∈ R n−i ungleich<br />
Null se<strong>in</strong> muss. Dann ist ṽ (i) gemäß (4.7) wohl def<strong>in</strong>iert. Die folgende Elim<strong>in</strong>ation wird<br />
gemäß (4.8) spaltenweise durchgeführt:<br />
ã (i+1)<br />
k<br />
= [I − 2ṽ (i) (ṽ (i) ) T ]<br />
} {{ }<br />
ã (i)<br />
k<br />
= ã(i) k<br />
− 2(ṽ(i) , ã (i)<br />
k )ṽ(i) .<br />
= ˜S (i)<br />
Die numerische Stabilität folgt aus cond 2 (S (i) ) = 1, siehe Bemerkung 4.16.<br />
Wir kommen nun zur Abschätzung des Aufwands. Im Schritt A (i) → A (i+1) muss zunächst<br />
der Vektor ṽ (i) ∈ R n−i berechnet werden. Hierzu s<strong>in</strong>d 2(n − i) arithmetische Operationen<br />
notwendig. Im Anschluss erfolgt <strong>die</strong> spaltenweise Elim<strong>in</strong>ation. (Es wird natürlich nicht <strong>die</strong><br />
Matrix S (i) aufgestellt und <strong>die</strong> Matrix-Matrix Multiplikation durchgeführt!) Für jeden der<br />
152
4.4 Orthogonalisierungsverfahren und <strong>die</strong> QR-Zerlegung<br />
n−i Spaltenvektoren ist e<strong>in</strong> Skalarprodukt (ṽ (i) , ã (i) ) (das s<strong>in</strong>d n−i arithmetische Operationen)<br />
sowie e<strong>in</strong>e Vektoraddition (weitere n − i Operationen) durchzuführen. Insgesamt<br />
ergibt sich so e<strong>in</strong> Aufwand:<br />
n−1 ∑<br />
N QR = 2 (n − i) + (n − i) 2 = n(n − 1) +<br />
i=1<br />
n(n − 1)(2n − 1)<br />
3<br />
= 2n3<br />
3 + O(n2 ).<br />
□<br />
Bemerkung 4.59 (QR-Zerlegung mit Householder-Transformationen). Die Householder-<br />
Matrizen ˜S (i) = I − 2ṽ (i) (ṽ (i) ) T werden nicht explizit aufgestellt. Auch kann das Produkt<br />
Q := (S (1) ) T · · · (S (n−1) ) T ,<br />
aus Effizienzgründen nicht explizit berechnet werden. Die Matrix Q steht nur implizit zur<br />
Verfügung durch Speichern der Vektoren ṽ (i) . Mit implizit me<strong>in</strong>t man, dass etwa zur Berechnung<br />
des Produktes ˜b := Q T b (ist notwendig zum Lösen der Gleichungssysteme) <strong>die</strong><br />
Householder-Transformationen erneut Schritt für Schritt angewendet werden müssen:<br />
˜b = Q T b = S (n−1) · · · S (1) b.<br />
Jedes Produkt wird mittels der Vorschrift (4.7) berechnet, ohne dass <strong>die</strong> Matrizen S (i)<br />
explizit aufgestellt werden:<br />
b (i+1) = b (i) − 2(v (i) , b (i) )v (i) .<br />
Neben der oberen Dreiecksmatrix R müssen <strong>die</strong> Vektoren ṽ (i) ∈ R n−i gespeichert werden.<br />
Im Gegensatz zur LR-Zerlegung kann <strong>die</strong>s nicht alle<strong>in</strong>e im Speicherplatz der Matrix A<br />
geschehen, da sowohl R als auch <strong>die</strong> ṽ (i) <strong>die</strong> Diagonale besetzen. Bei der praktischen<br />
Realisierung muss e<strong>in</strong> weiterer Diagonalvektor vorgehalten werden.<br />
Abschließend berechnen wir <strong>die</strong> QR-Zerlegung zu Beispiel 4.54 mit Hilfe der Householder-<br />
Transformationen:<br />
Beispiel 4.60 (QR-Zerlegung mit Householder-Transformationen). Wir betrachten wieder<br />
<strong>die</strong> Matrix:<br />
⎛<br />
⎞<br />
1 1 1<br />
⎜<br />
⎟<br />
A := ⎝0.01 0 0.01⎠ ,<br />
0 0.01 0.01<br />
und führen alle Rechnungen mit dreistelliger Genauigkeit durch. Wir wählen mit a 1 =<br />
(1, 0.01, 0) T und ‖a 1 ‖ ≈ 1 den ersten Vektor zur Spiegelung als:<br />
⎛ ⎞<br />
v (1) = a 1<br />
1 + ‖a 1 ‖e 1<br />
‖a 1 + ‖a 1 ‖e 1 ‖ ≈ ⎜ ⎟<br />
⎝0.005⎠ .<br />
0<br />
153
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Hiermit ergibt sich (wird eigentlich nicht benötigt!)<br />
⎛<br />
⎞<br />
−1 −0.01 0<br />
S (1) = I − 2v (1) (v (1) ) T ⎜<br />
⎟<br />
≈ ⎝−0.01 1 0⎠ ,<br />
0 0 1<br />
und <strong>die</strong> neuen Spaltenvektoren ergeben sich zu:<br />
a (1)<br />
1 = −‖a 1 ‖e 1 ≈ −e 1 ,<br />
a (1)<br />
2 = a 2 − 2(v (1) , a 2 )v (1) ≈ a 2 − 2v (1) ,<br />
a (1)<br />
3 = a 3 − 2(v (1) , a 3 )v (1) ≈ a 3 − 2v (1) ,<br />
⎛<br />
⎞<br />
−1 −1 −1<br />
⇒ A (1) ⎜<br />
⎟<br />
= ⎝ 0 −0.01 0 ⎠ .<br />
0 0.01 0.01<br />
Wir fahren mit der Teilmatrix A (1)<br />
kl>1<br />
beachte das Vorzeichen sign(a (1)<br />
22 ) =“-”)<br />
fort und wählen mit ã(1) 2 = (−0.01, 0.01) T (man<br />
ṽ (2) =<br />
ã(1) 2 − ‖ã (1)<br />
2 ‖ẽ ( )<br />
2 −0.924<br />
‖ã (1)<br />
2 − ‖ã (1)<br />
2 ‖ẽ 2‖ ≈ .<br />
0.383<br />
Damit ergibt sich als Householder-Transformation<br />
I − 2ṽ (2) (ṽ (2) ) T ≈ ˜S (2) =<br />
( )<br />
−0.708 0.708<br />
, S (2) =<br />
0.708 0.706<br />
⎛<br />
⎜<br />
1 0 0<br />
⎞<br />
⎟<br />
⎝0 −0.708 0.708⎠ .<br />
0 0.708 0.706<br />
Wir erhalten:<br />
ã (2)<br />
2 = ‖ã (1)<br />
1 ‖ẽ 2,<br />
ã (2)<br />
3 = ã (1)<br />
3 − 2(ã (1)<br />
3 , ṽ(2) )ṽ (2) ≈ ã (1)<br />
3 − 2 · 0.00383ṽ (2) ,<br />
⎛<br />
⎞<br />
−1 −1 −1<br />
⇒ A (2) ⎜<br />
⎟<br />
= ⎝ 0 0.0141 0.00708⎠ .<br />
0 0 0.00707<br />
Zur Probe berechnen wir Q T = S (2) S (1) (mit dreistelliger Genauigkeit):<br />
⎛<br />
⎞<br />
−1 −0.01 0<br />
Q T ⎜<br />
⎟<br />
≈ ⎝ 0.00708 −0.708 0.708⎠ .<br />
−0.00708 0.708 0.707<br />
Bei dreistelliger Genauigkeit gilt für das Produkt Q T Q ≈ I:<br />
⎛<br />
Q T ⎜<br />
1 0 0<br />
⎞<br />
Q ≈ ⎝0 1 −7.58 · 10 −4 ⎟<br />
⎠ .<br />
0 −0.758 · 10 −4 1<br />
Dies entspricht e<strong>in</strong>em relativen Fehler ‖Q T Q − I‖ 2 ≤ 10 −3 im Rahmen der Rechengenauigkeit.<br />
Weiter gilt für <strong>die</strong> Zerlegung A ≈ QR:<br />
⎛<br />
⎞<br />
1 1 1<br />
⎜<br />
A ≈ QR = ⎝0.01 1.72 · 10 −5 ⎟<br />
0.01⎠ .<br />
0 0.00998 0.01<br />
154
4.4 Orthogonalisierungsverfahren und <strong>die</strong> QR-Zerlegung<br />
Auch hier gilt ‖A − QR‖ 2 /‖A‖ 2 ≤ 10 −4 .<br />
Man vergleiche abschließend das Resultat mit dem Ergebnis von Beispiel 4.54. Dort wurden<br />
relative Fehler ‖Q T Q − I‖ 2 ≈ 0.7 sowie ‖QR − A‖ 2 /‖A‖ 2 ≈ 0.004 erreicht.<br />
4.4.3 Givens-Rotationen<br />
Das Gram-Schmidt Verfahren basiert auf Projektionen, <strong>die</strong> Householder-Transformationen<br />
s<strong>in</strong>d Spiegelungen. Schließlich stellen wir kurz e<strong>in</strong>e Methode vor, <strong>die</strong> auf Rotationen beruht.<br />
Wir def<strong>in</strong>ieren:<br />
Def<strong>in</strong>ition 4.61 (Givens-Rotation). Unter e<strong>in</strong>er Givens-Rotation im R n versteht man<br />
<strong>die</strong> Drehung <strong>in</strong> der durch zwei E<strong>in</strong>heitsvektoren e i und e j aufgespannten Ebene. Die Transformationsmatrix<br />
ist gegeben durch:<br />
⎛<br />
1<br />
G(i, j, θ) =<br />
⎜<br />
⎝<br />
. ..<br />
1<br />
c<br />
s<br />
. ..<br />
−s<br />
c<br />
1<br />
⎞<br />
, c := cos(θ), s := s<strong>in</strong>(θ).<br />
. ⎟ .. ⎠<br />
1<br />
Es gilt:<br />
Satz 4.62 (Givens-Rotation). Die Givens-Rotation G(i, j, θ) ist e<strong>in</strong>e orthogonale Matrix<br />
mit det(G) = 1. Es ist G(i, j, θ) −1 = G(i, j, −θ).<br />
Wie <strong>die</strong> Householder-Transformationen s<strong>in</strong>d <strong>die</strong> Givens-Rotationen orthogonale Matrizen.<br />
Die Multiplikation von l<strong>in</strong>ks an e<strong>in</strong>e Matrix, also GA oder e<strong>in</strong>en Vektor, also Gx ändert<br />
155
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
nur <strong>die</strong> i-te und j-te Zeile von A, bzw. von x:<br />
⎛<br />
⎞<br />
a 11 · · · a 1n<br />
. . .. .<br />
a i−1,1 · · · a i−1,n<br />
ca i1 − sa j1 · · · ca <strong>in</strong> − sa jn<br />
a i+1,1 · · · a i+1,n<br />
G(i, j)A =<br />
. . .. .<br />
.<br />
a j−1,1 · · · a j−1,n<br />
sa i1 + ca j1 · · · sa <strong>in</strong> + ca jn<br />
a j+1,1 · · · a j+1,n<br />
⎜<br />
⎝<br />
.<br />
. ..<br />
⎟ . ⎠<br />
a n1 · · · a nn<br />
Die QR-Zerlegung auf der Basis von Givens-Rotationen transformiert <strong>die</strong> Matrix A wieder<br />
schrittweise <strong>in</strong> e<strong>in</strong>e obere rechte Dreiecksmatrix R. Durch Anwenden e<strong>in</strong>er Givens-Rotation<br />
kann jedoch nur e<strong>in</strong> e<strong>in</strong>zelnes Unterdiagonalelement elim<strong>in</strong>iert werden und nicht e<strong>in</strong>e ganze<br />
Spalte:<br />
⎛<br />
⎞ ⎛<br />
⎞ ⎛<br />
⎞ ⎛<br />
⎞<br />
∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗<br />
∗ ∗ ∗ ∗<br />
⎜<br />
⎟<br />
⎝∗ ∗ ∗ ∗⎠ → 0 ∗ ∗ ∗<br />
⎜<br />
⎟<br />
⎝∗ ∗ ∗ ∗⎠ → 0 ∗ ∗ ∗<br />
⎜<br />
⎟<br />
⎝0 ∗ ∗ ∗⎠ → 0 ∗ ∗ ∗<br />
⎜<br />
⎟<br />
⎝0 ∗ ∗ ∗⎠<br />
∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ 0 ∗ ∗ ∗<br />
⎛<br />
⎞<br />
⎛<br />
⎞<br />
∗ ∗ ∗ ∗<br />
∗ ∗ ∗ ∗<br />
0 ∗ ∗ ∗<br />
→ ⎜<br />
⎟<br />
⎝0 0 ∗ ∗⎠ → · · · → 0 ∗ ∗ ∗<br />
⎜<br />
⎟<br />
⎝0 0 ∗ ∗⎠ .<br />
0 ∗ ∗ ∗<br />
0 0 0 ∗<br />
Wir betrachten e<strong>in</strong>en Schritt des Verfahrens. Dazu sei <strong>die</strong> Matrix A gegeben <strong>in</strong> der Form:<br />
⎛<br />
⎞<br />
a 11 · · · · · · · · · · · · a 1n<br />
. 0 .. . .. .<br />
. . .. aii .<br />
. 0 a i+1,i+1 .<br />
A =<br />
. . .<br />
.<br />
. 0 .<br />
.<br />
. . a ji . .. .<br />
⎜<br />
⎟<br />
⎝ . . .<br />
. ⎠<br />
0 · · · a ni a n,i+1 · · · a nn .<br />
Wir suchen <strong>die</strong> Givens-Rotation G(i, j, θ) zur Elim<strong>in</strong>ation von a ji . Für GA gilt:<br />
(G(i, j, θ)A) ji = sa ii + ca ji , c := cos(θ), s := s<strong>in</strong>(θ).<br />
156
4.4 Orthogonalisierungsverfahren und <strong>die</strong> QR-Zerlegung<br />
Anstelle den W<strong>in</strong>kel θ zu f<strong>in</strong>den bestimmen wir gleich <strong>die</strong> Werte c und s mit dem Ansatz<br />
sa ii + ca ji = 0, c 2 + s 2 = 1 ⇒ c :=<br />
a ii<br />
√<br />
a 2 ii + a2 ji<br />
, s := −<br />
a ji<br />
√<br />
a 2 ii + .<br />
a2 ji<br />
Anwendung von G(i, j, θ) auf A ergibt:<br />
(G(i, j, θ)A) ji = −a jia ii + a ii a ji<br />
√<br />
a 2 ii + a2 ji<br />
= 0, (G(i, j, θ)A) ii = a2 ii + a2 ji<br />
√<br />
a 2 ii + a2 ji<br />
=<br />
√<br />
a 2 ii + a2 ji .<br />
Das Element a ji wird elim<strong>in</strong>iert. Zur Elim<strong>in</strong>ation der i-ten Spalte (unterhalb der Diagonale)<br />
s<strong>in</strong>d (n − i − 1) Givens-Rotationen notwendig. Hieraus lässt sich leicht abschätzen,<br />
dass der Aufwand zum Erstellen der QR-Zerlegung nach Givens großer ist als der Aufwand<br />
bei Verwenden der Householder-Transformationen. Genaue Analyse und effiziente Durchführung<br />
führt zu 4n3<br />
3<br />
+ O(n 2 ) arithmetische Operationen, also dem doppelten Aufwand<br />
verglichen mit der Householder-Methode.<br />
Die QR-Zerlegung nach Givens gew<strong>in</strong>nt aber an Bedeutung, wenn <strong>die</strong> Matrix A bereits<br />
dünn besetzt ist. Nur Unterdiagonalelemente a ji ≠ 0 müssen gezielt elim<strong>in</strong>iert werden. Bei<br />
sogenannten Hessenberg-Matrizen (das s<strong>in</strong>d rechte obere Dreiecksmatrizen, <strong>die</strong> zusätzlich<br />
noch e<strong>in</strong>e l<strong>in</strong>ke Nebendiagonale besitzen) kann <strong>die</strong> QR-Zerlegung mit Givens-Rotationen <strong>in</strong><br />
nur O(n 2 ) Operationen durchgeführt werden. Die QR-Zerlegung von Hessenberg-Matrizen<br />
spielt <strong>die</strong> entscheidende Rolle bei dem wichtigsten Verfahren zur Berechnung von Eigenwerten<br />
e<strong>in</strong>er Matrix, siehe Abschnitt 4.6.<br />
Beispiel 4.63 (QR-Zerlegung nach Givens). Wie <strong>in</strong> Beispielen 4.54 und 4.60 sei wieder<br />
<strong>die</strong> folgende Matrix gegeben:<br />
⎛<br />
⎞<br />
1 1 1<br />
⎜<br />
⎟<br />
A := ⎝0.01 0 0.01⎠<br />
0 0.01 0.01<br />
Wir führen alle Rechnungen mit dreistelliger Genauigkeit durch. Zur Elim<strong>in</strong>ation von<br />
a 21 = 0.01 ist:<br />
c (1) =<br />
1<br />
√<br />
1 + 0.01 2 ≈ 1,<br />
0.01<br />
s(1) = −√ ≈ −0.01,<br />
1 + 0.01 2<br />
d.h.<br />
⎛<br />
⎞<br />
1 0.01 0<br />
G (1) ⎜<br />
⎟<br />
= ⎝−0.01 1 0⎠ ,<br />
0 0 1<br />
⎛<br />
A (1) = G (1) ⎜<br />
1 1 1<br />
⎞<br />
⎟<br />
A ≈ ⎝0 −0.01 0 ⎠<br />
0 0.01 0.01<br />
Im zweiten Schritt wählen wir zur Elim<strong>in</strong>ation von a (1)<br />
32 = 0.01<br />
c (2) =<br />
−0.01<br />
√<br />
0.01 2 + 0.01 2 ≈ −0.707,<br />
s(2) = −<br />
0.01<br />
√<br />
0.01 2 + 0.01 2 ≈ −0.707, 157
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
also<br />
⎛<br />
G (2) ⎜<br />
1 0 0<br />
⎞<br />
⎟<br />
= ⎝0 −0.707 0.707 ⎠ ,<br />
0 −0.707 −0.707<br />
⎛<br />
A (2) = G (2) A (1) ⎜<br />
1 1 1<br />
⎞<br />
⎟<br />
≈ ⎝0 0.0141 0.00707 ⎠ = ˜R.<br />
0 0 −0.00707<br />
Zur Probe berechnen wir zunächst ˜Q := (G (1) ) T (G (2) ) T :<br />
⎛<br />
⎞<br />
1 0.00707 0.00707<br />
⎜<br />
⎟<br />
˜Q = ⎝0.01 −0.707 −0.707⎠ .<br />
0 0.707 −0.707<br />
Die Matrizen ˜Q sowie ˜R s<strong>in</strong>d nahezu identisch zu denen der Householder-Transformation<br />
<strong>in</strong> Beispiel 4.60. Daher ist auch <strong>die</strong> Genauigkeit der Approximation entsprechend gut:<br />
⎛<br />
˜Q T ⎜ ˜Q 1.0001 0 0<br />
⎞ ⎛<br />
⎞<br />
1 1 1<br />
= ⎝ 0 0.99975 −5 · 10 −5 ⎟ ⎜<br />
⎠ , ˜Q ˜R ≈ ⎝0.01 3 · 10 −5 ⎟<br />
0.01 ⎠ ,<br />
0 −5 · 10 −5 0.99975<br />
0 0.00997 0.009997<br />
mit relativen Fehlern ‖ ˜Q ˜R − A‖ 2 /‖A‖ 2 ≈ 0.00005 sowie ‖ ˜Q T ˜Q − I‖2 ≈ 0.0003.<br />
4.5 Überbestimmte Gleichungssysteme, Gauß’sche<br />
Ausgleichrechnung<br />
In vielen Anwendungen treten l<strong>in</strong>eare Gleichungssysteme auf, <strong>die</strong> e<strong>in</strong>e unterschiedliche<br />
Anzahl von Gleichungen und Unbekannten besitzen:<br />
Ax = b, A ∈ R n×m , x ∈ R m , b ∈ R n , n ≠ m.<br />
Im Fall n > m sprechen wir von überbestimmten Gleichungssystemen, im Fall n < m<br />
von unterbestimmten Gleichungssystemen. Die Untersuchung der e<strong>in</strong>deutigen Lösbarkeit<br />
von allgeme<strong>in</strong>en Gleichungssystemen mit rechteckiger Matrix A kann nicht mehr an deren<br />
Regularität ausgemacht werden. Stattdessen wissen wir, dass e<strong>in</strong> Gleichungssystem genau<br />
dann lösbar ist, falls der Rang der Matrix A gleich dem Rang der erweiterten Matrix<br />
(A|b) ist. Gilt zusätzlich rang(A) = m, so ist <strong>die</strong> Lösung e<strong>in</strong>deutig. E<strong>in</strong> unterbestimmtes<br />
l<strong>in</strong>eares Gleichungssystem kann daher nie e<strong>in</strong>deutig lösbar se<strong>in</strong>. Wir betrachten <strong>in</strong> <strong>die</strong>sem<br />
Abschnitt ausschließlich überbestimmte Gleichungssysteme, d.h. den Fall n > m. E<strong>in</strong><br />
solches Gleichungssystem ist im allgeme<strong>in</strong>en Fall nicht lösbar:<br />
Beispiel 4.64 (Überbestimmtes Gleichungssystem). Wir suchen das quadratische Interpolationspolynom<br />
p(x) = a 0 + a 1 x + a 2 x 2 ,<br />
gegeben durch <strong>die</strong> Vorschrift:<br />
p(−1/4) = 0, p(1/2) = 1, p(2) = 0, p(5/2) = 1.<br />
158
4.5 Überbestimmte Gleichungssysteme, Gauß’sche Ausgleichrechnung<br />
Dies ergibt <strong>die</strong> vier Gleichungen:<br />
a 0 − 1 4 a 1 + 1<br />
16 a 2 = 0<br />
a 0 + 1 2 a 1 + 1 4 a 2 = 1<br />
a 0 + 2a 1 + 4a 2 = 0<br />
a 0 + 5 2 a 1 + 25 4 a 2 = 1<br />
Wir versuchen, das l<strong>in</strong>eare Gleichungssystem mit Gauß-Elim<strong>in</strong>ation zu lösen:<br />
⎛<br />
⎞<br />
1 − 1 1<br />
4 16<br />
0<br />
1 1<br />
⎜1 2 4<br />
1⎟<br />
⎝1 2 4 0⎠<br />
5 25<br />
1<br />
2 4<br />
1<br />
→<br />
⎛<br />
⎞<br />
1 − 1 1<br />
4 16<br />
0<br />
⎜0 3 3 4⎟<br />
⎝<br />
63<br />
0 9 ⎠<br />
16<br />
0<br />
99<br />
0 11<br />
4<br />
4<br />
→<br />
⎛<br />
⎞<br />
1 − 1 1<br />
4 16<br />
0<br />
⎜0 3 3 4⎟<br />
⎝0 0 − 81 ⎠<br />
16<br />
−12 .<br />
319<br />
0 0<br />
16<br />
4<br />
D.h., es müsste gelten a 2 = 64/27 ≈ 2.37 sowie a 2 = 64/319 ≈ 0.2.<br />
In Anbetracht von Satz 3.6 ist <strong>die</strong>ses Ergebnis für <strong>die</strong> Lagrange-Interpolation zu erwarten.<br />
Bei allgeme<strong>in</strong>en überbestimmten Gleichungssystemen muss daher <strong>die</strong> Zielstellung geändert<br />
werden: gesucht wird nicht <strong>die</strong> Lösung des Gleichungssystems, sondern e<strong>in</strong> Vektor<br />
x ∈ R m , welcher <strong>in</strong> gewissem S<strong>in</strong>ne <strong>die</strong> beste Approximation ist. Entsprechend der Bestapproximation<br />
von Funktionen aus Abschnitt 3.6.1 def<strong>in</strong>ieren wir:<br />
Def<strong>in</strong>ition 4.65 (Methode der kle<strong>in</strong>sten Fehlerquadrate, Least-Squares). Es sei Ax = b<br />
mit A ∈ R n×m und b ∈ R n . Dann ist <strong>die</strong> Least-Squares Lösung x ∈ R m als <strong>die</strong> Näherung<br />
bestimmt, deren Defekt <strong>die</strong> kle<strong>in</strong>ste euklidische Norm annimmt:<br />
‖b − Ax‖ 2 = m<strong>in</strong><br />
y∈R m ‖b − Ay‖ 2 (4.9)<br />
Der wesentliche Unterschied zwischen <strong>die</strong>ser Aufgabenstellung und Satz 3.79 zur Gauß-<br />
Approximation ist <strong>die</strong> Wahl der Norm: hier betrachten wir <strong>die</strong> euklidische Vektor-Norm,<br />
bei der Gauß-Approximation von Funktionen <strong>die</strong> L 2 -Norm. Beiden Normen ist geme<strong>in</strong>,<br />
dass sie durch e<strong>in</strong> Skalarprodukt gegeben s<strong>in</strong>d. Es gilt:<br />
Satz 4.66 (Kle<strong>in</strong>ste Fehlerquadrate). Angenommen, für <strong>die</strong> Matrix A ∈ R n×m mit n > m<br />
gilt m = rang(A). Dann ist <strong>die</strong> Matrix A T A ∈ R m×m positiv def<strong>in</strong>it und <strong>die</strong> Least-Squares-<br />
Lösung x ∈ R m ist e<strong>in</strong>deutig bestimmt als Lösung des Normalgleichungssystems:<br />
A T Ax = A T b.<br />
Beweis: (i) Es gilt rang(A) = m. D.h. Ax = 0 gilt nur dann, wenn x = 0. Hieraus folgt<br />
<strong>die</strong> positive Def<strong>in</strong>itheit der Matrix A T A:<br />
(A T Ax, x) 2 = (Ax, Ax) 2 = ‖Ax‖ 2 2 > 0 ∀x ≠ 0,<br />
und das Gleichungssystem A T Ax = A T b ist für jede rechte Seite b ∈ R n e<strong>in</strong>deutig lösbar.<br />
159
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
(ii) Es sei x ∈ R m <strong>die</strong> Lösung des Normalgleichungssystems. Dann gilt für beliebiges<br />
y ∈ R m :<br />
‖b − A(x + y)‖ 2 2 = ‖b − Ax‖ 2 2 + ‖Ay‖ 2 2 − 2(b − Ax, Ay) 2<br />
= ‖b − Ax‖ 2 2 + ‖Ay‖ 2 2 − 2(A T b − A T Ax, y)<br />
} {{ } 2<br />
=0<br />
≥ ‖b − Ax‖ 2 2.<br />
(iii) Nun sei x das M<strong>in</strong>imum von (4.9). D.h., es gilt für beliebigen Vektor y:<br />
‖b − Ax‖ 2 2 ≤ ‖b − A(x + y)‖ 2 2 = ‖b − Ax‖ 2 2 + ‖Ay‖ 2 2 − 2(b − Ax, Ay) 2 ∀y ∈ R m .<br />
Hieraus folgt:<br />
−‖A‖ 2 2‖y‖ 2 2 ≤ −‖Ay‖ 2 2 ≤ 2(A T Ax − A T b, y) 2 ≤ ‖Ay‖ 2 2 ≤ ‖A‖ 2 2‖y‖ 2 2.<br />
Für y = se i , wobei s ∈ R und e i der i-te E<strong>in</strong>heitsvektor ist gilt:<br />
−s‖A‖ 2 2 ≤ 2[A T Ax − A T b] i ≤ s‖A‖ 2 2 ∀s ∈ R, i = 1, . . . , n.<br />
Bei s → 0 folgt [A T Ax] i = [A T b] i .<br />
□<br />
Die beste Approximation e<strong>in</strong>es überbestimmten Gleichungssystems kann durch Lösen des<br />
Normalgleichungssystems gefunden werden. Der naive Ansatz, <strong>die</strong> Matrix A T A zu bestimmen<br />
und dann das Normalgleichungsystem etwa mit dem Cholesky-Verfahren zu lösen ist<br />
numerisch nicht ratsam. Zunächst ist der Aufwand zur Berechnung von A T A sehr groß<br />
und <strong>die</strong> Berechnung der Matrix-Matrix Multiplikation ist schlecht konditioniert. Weiter<br />
gilt <strong>die</strong> Abschätzung:<br />
cond(A T A) ≈ cond(A) 2 .<br />
Wir lösen mit <strong>die</strong>ser Methode das überbestimmte Gleichungssystem aus Beispiel 4.64:<br />
Beispiel 4.67 (Lösen der Normalgleichung). Die exakte Lösung des Normalgleichungssystems<br />
A T Ax = A T b ist gegeben durch:<br />
⎛ ⎞<br />
0.3425<br />
⎜ ⎟<br />
x ≈ ⎝ 0.3840 ⎠ , p(x) = 0.3425 + 0.3740x − 0.1131x 2 .<br />
−0.1131<br />
Es gilt:<br />
‖b − Ax‖ 2 ≈ 0.947.<br />
Wir stellen das Normalgleichungssystem mit dreistelliger Rechnung auf:<br />
⎛<br />
⎞<br />
⎛ ⎞<br />
4 4.75 10.6<br />
2<br />
A T ⎜<br />
⎟<br />
A = ⎝4.75 10.6 23.7⎠ , A T ⎜ ⎟<br />
b = ⎝ 3 ⎠ .<br />
10.6 23.7 55.1<br />
6.5<br />
160
4.5 Überbestimmte Gleichungssysteme, Gauß’sche Ausgleichrechnung<br />
Die exakte Lösung ist bestimmt durch <strong>die</strong> Polynomkoeffizienten x = (a 0 , a 1 , a 2 ) T sowie das<br />
Polynom p(x) = a 0 + a 1 x + a 2 x 2 :<br />
Wir bestimmen <strong>die</strong> Cholesky-Zerlegung mit dem direkten Verfahren:<br />
l 11 = √ 4 = 2<br />
l 21 = 4.75/2 ≈ 2.38<br />
⎛<br />
⎞<br />
l 31 = 10.6/2 = 5.3<br />
2 0 0<br />
l 22 = √ ⎜<br />
⎟<br />
, L :=<br />
10.6 − 2.38 2 ⎝2.38 2.22 0 ⎠ .<br />
≈ 2.22<br />
5.3 5 1.42<br />
l 32 = (23.7 − 2.38 · 5.3)/2.22 ≈ 5<br />
l 33 = √ 55.1 − 5.3 2 − 5 2 ≈ 1.42.<br />
Wir lösen:<br />
⎛ ⎞<br />
⎛ ⎞<br />
1<br />
0.424<br />
L }{{} L T x = A T ⎜ ⎟<br />
⎜ ⎟<br />
b ⇒ y ≈ ⎝ 0.279 ⎠ ⇒ ˜x ≈ ⎝ 0.343 ⎠ ,<br />
=y<br />
−0.137<br />
−0.0965<br />
mit dem Polynom<br />
p(x) = 0.424 + 0.343x − 0.0965x 2 ,<br />
und dem Defekt ‖b − A˜x‖ ≈ 0.96 sowie dem relativen Fehler zur exakten Lösung:<br />
‖˜x − x‖<br />
‖x‖<br />
≈ 0.18.<br />
Wir entwickeln e<strong>in</strong> alternatives Verfahren, welches das Aufstellen des Normalgleichungssystems<br />
A T Ax = A T b umgeht und nutzen hierfür e<strong>in</strong>e Erweiterung der bereits vorgestellten<br />
QR-Zerlegung auf allgeme<strong>in</strong>e rechteckige Matrizen:<br />
Satz 4.68 (QR-Zerlegung rechteckiger Matrizen). Es sei A ∈ R n×m mit n > m und<br />
rang(A) = m. Dann existiert e<strong>in</strong>e orthogonale Matrix Q ∈ R n×n , sowie e<strong>in</strong>e “rechteckige<br />
obere Dreiecksmatrix” ˜R ∈ R n×m so dass gilt A = Q ˜R mit:<br />
⎛<br />
˜R =<br />
⎜<br />
⎝<br />
R<br />
0<br />
⎞<br />
⎟<br />
⎠<br />
}<br />
m<br />
}<br />
n − m<br />
⎛<br />
⎞<br />
∗ ∗ · · · ∗<br />
. 0 ∗ .. ∗<br />
, R =<br />
⎜ .<br />
⎝.<br />
.. .<br />
∈ R m×m .<br />
.. ⎟ . ⎠<br />
0 · · · 0 ∗<br />
Beweis: Der Beweis folgt durch Anwenden von m Schritten der QR-Zerlegung mit Householder-<br />
Transformationen auf <strong>die</strong> Matrix A. Die Spaltenvektoren A = (a (0)<br />
1 , . . . , a(0) m ) s<strong>in</strong>d l<strong>in</strong>ear<br />
161
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
unabhängig. Diese Eigenschaft bleibt durch Anwenden von orthogonalen Householder-<br />
Transformationen S (1) , . . . , S (m) erhalten, d.h.:<br />
dim ( span{a (i)<br />
1 , . . . , a(i) m } ) = m, i = 1, . . . , m, a (i)<br />
j = S (i) a (i−1)<br />
j .<br />
Die ersten m Schritte der Householder-Transformation s<strong>in</strong>d durchführbar und es gilt<br />
rang(A) = rang(Q T A) mit<br />
Q T = S (m) · · · S (1) .<br />
Die Matrix A wird dabei schrittweise auf “Dreiecksgestalt” gebracht:<br />
⎛<br />
∗ ∗ · · · ∗<br />
⎞<br />
. ∗ .. . .. .<br />
. . .. . .. .<br />
. . .. . .. .<br />
. . .. . .. .<br />
⎜<br />
⎟<br />
⎝ .<br />
. .. . .. .<br />
⎠<br />
∗ · · · · · · ∗<br />
→<br />
⎛<br />
∗ ∗ · · · ∗<br />
⎞<br />
. 0 ∗ .. .<br />
. . . .. .<br />
. . . .. .<br />
. . . .. .<br />
⎜<br />
⎟<br />
⎝ .<br />
. . .. .<br />
⎠<br />
0 ∗ · · · ∗<br />
→<br />
⎛<br />
∗ ∗ · · · ∗<br />
⎞<br />
. 0 ∗ .. .<br />
. . .. . ..<br />
. . .. 0 ∗<br />
=: ˜R ∈ R n×m .<br />
. . .. 0<br />
⎜<br />
⎟<br />
⎝<br />
.<br />
.<br />
⎠<br />
0 · · · · · · 0<br />
Im Gegensatz zur Householder-Transformation bei quadratischen Matrizen müssen m anstelle<br />
von m − 1 Schritte durchgeführt werden, um den Block unterhalb der m-ten Zeile<br />
zu elim<strong>in</strong>ieren.<br />
Die resultierende Matrix ˜R hat Rang m für ihre E<strong>in</strong>träge ˜r ij mit i > m gilt ˜r ij = 0.<br />
Daher ist der obere Matrixblock R ∈ R m×m mit r ij = ˜r ij für i, j ≤ m regulär mit<br />
rang(R) = rang( ˜R) = m.<br />
□<br />
Mit <strong>die</strong>ser verallgeme<strong>in</strong>erten QR-Zerlegung gilt nun:<br />
A T Ax = A T b ⇔ (Q ˜R) T Q ˜Rx = (Q ˜R) T b ⇔ ˜R T ˜Rx = ˜RT Q T b.<br />
Da alle E<strong>in</strong>träge von ˜R im unteren Block Null s<strong>in</strong>d gilt ˜R T ˜R = R T R und weiter mit<br />
˜bi := (Q T b) i≤m ,<br />
ist das Normalgleichungssystem äquivalent zum e<strong>in</strong>fachen Dreieckssystem<br />
mit e<strong>in</strong>er n × n-Matrix R.<br />
A T Ax = A T b ⇔ RX = ˜b,<br />
Beispiel 4.69 (“Lösen” e<strong>in</strong>es überbestimmten Gleichungssystems mit erweiterter QR–<br />
Zerlegung). Für das überbestimmte l<strong>in</strong>eare Gleichungssystem aus Beispiel 4.64 gilt:<br />
⎛<br />
⎞<br />
1 − 1 1 ⎛ ⎞<br />
4 16 0<br />
1 1<br />
⎜1 2 4 ⎟<br />
⎝1 2 4 ⎠<br />
1<br />
, b = ⎜ ⎟<br />
⎝0⎠ .<br />
5 25<br />
1<br />
2 4 1<br />
162
4.5 Überbestimmte Gleichungssysteme, Gauß’sche Ausgleichrechnung<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
Least-Squares Loesung<br />
Approximation mit Cholesky<br />
Approximation mit QR<br />
-0.2<br />
-1 -0.5 0 0.5 1 1.5 2 2.5 3<br />
Abbildung 4.3: Lösen e<strong>in</strong>es überbestimmten Gleichungssystems zum F<strong>in</strong>den der besten<br />
Approximation an Messdaten. Siehe Beispiele 4.64, 4.67 sowie 4.69.<br />
Wir wählen im ersten Schritt der Householder-Transformation (dreistellige Rechnung)<br />
⎛ ⎞<br />
0.866<br />
v (1) = a 1 + ‖a 1 ‖e 1<br />
‖ a 1 + ‖a 1 ‖e 1 ‖ ≈ 0.289<br />
⎜ ⎟<br />
⎝0.289⎠ .<br />
0.289<br />
Dann gilt mit a (1)<br />
i = a i − 2(a i , v (1) )v (1) :<br />
⎛<br />
⎞<br />
−2 −2.38 −5.29<br />
à (1) 0 −0.210 −1.54<br />
≈ ⎜<br />
⎟<br />
⎝ 0 1.29 2.21 ⎠<br />
0 1.79 4.46<br />
=: (a(1) 1 , a(1) 2 , a(1) 3 ).<br />
Mit dem reduzierten Vektor ã (1)<br />
2 = (−0.21, 1.29, 1.79) T gilt weiter<br />
⎛<br />
ṽ (2) =<br />
ã(1) 2 − ‖ã (1)<br />
2 ‖ẽ 2<br />
‖ ã (1)<br />
2 + ‖ã (1)<br />
2 ‖ẽ 2 ‖ ≈ ⎜<br />
−0.740<br />
⎞<br />
⎟<br />
⎝ 0.393 ⎠ .<br />
0.546<br />
Und hiermit:<br />
⎛<br />
⎞<br />
−2 −2.38 −5.29<br />
à (2) 0 2.22 5.04<br />
≈ ⎜<br />
⎟<br />
⎝ 0 0 −1.28 ⎠<br />
0 0 −0.392<br />
=: (a(2) 1 , a(2) 2 , a(2) 3 ).<br />
Wir müssen e<strong>in</strong>en dritten Schritt durchführen und mit ã (2)<br />
3 = (−1.28, −0.392) ergibt sich<br />
nach gleichem Pr<strong>in</strong>zip:<br />
( )<br />
ṽ (3) −0.989<br />
= .<br />
−0.148<br />
163
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Schließlich erhalten wir:<br />
⎛<br />
⎞<br />
−2 −2.38 −5.29<br />
˜R = Ã(3) 0 2.22 5.04<br />
≈ ⎜<br />
⎟<br />
⎝ 0 0 1.34 ⎠ .<br />
0 0 0<br />
Zum Lösen des Ausgleichsystems:<br />
A T Ax = A T b ⇔ Rx = ˜b,<br />
bestimmen wir zunächst <strong>die</strong> rechte Seite nach der Vorschrift b (i) = b (i−1) −2(b (i−1) , v (i) )v (i) :<br />
⎛ ⎞<br />
−1<br />
⎜ ⎟<br />
˜b = ⎝ 0.28 ⎠ .<br />
−0.155<br />
Abschließend lösen wir durch Rückwärtse<strong>in</strong>setzen Rx = ˜b (3) :<br />
⎛ ⎞<br />
0.342<br />
⎜ ⎟<br />
˜x ≈ ⎝ 0.390 ⎠<br />
−0.116<br />
und erhalten das Interpolationspolynom:<br />
mit Defekt<br />
p(x) = 0.342 + 0.39x − 0.116x 2 ,<br />
‖b − A˜x‖ ≈ 0.947,<br />
und relativem Fehler zur exakten Least-Squares-Lösung:<br />
‖˜x − x‖<br />
‖x‖<br />
≈ 0.01,<br />
d.h., e<strong>in</strong> Fehler von etwa e<strong>in</strong>em 1% anstelle von fast 20% beim direkten Lösen des Normalsystems.<br />
In Abbildung 4.3 zeigen wir <strong>die</strong> exakte Lösung sowie <strong>die</strong> beiden Approximierten<br />
Lösungen zu <strong>die</strong>sem Beispiel.<br />
Die <strong>in</strong> Abschnitt 3.6.1 betrachtete diskrete Gauss-Approximation ist e<strong>in</strong>e Anwendung der<br />
Methode der kle<strong>in</strong>sten Fehlerquadrate. Die l<strong>in</strong>eare Ausgleichsrechnung ist e<strong>in</strong> Spezialfall<br />
mit Matrizen A ∈ R n×2 .<br />
4.6 Berechnung von Eigenwerten<br />
In <strong>die</strong>sem Abschnitt befassen wir uns mit dem Eigenwertproblem: zu gegebener Matrix<br />
A ∈ R n×n s<strong>in</strong>d <strong>die</strong> Eigenwerte (und gegebenenfalls Eigenvektoren) gesucht. Wir er<strong>in</strong>nern<br />
an Def<strong>in</strong>ition 4.9 und formulieren<br />
164
4.6 Berechnung von Eigenwerten<br />
Satz 4.70 (Eigenwert). Es sei A ∈ R n×n . Dann gilt:<br />
• Die Matrix A hat genau n Eigenwerte, ihrer Vielfachheit nach gezählt.<br />
• Die Eigenwerte s<strong>in</strong>d Nullstellen des charakteristischen Polynoms:<br />
det(A − λI) = 0.<br />
• Reelle Matrizen können komplexe Eigenwerte haben, komplexe Eigenwerte treten<br />
stets als konjugierte Paare λ, ¯λ auf.<br />
• Eigenvektoren zu unterschiedlichen Eigenwerten s<strong>in</strong>d l<strong>in</strong>ear unabhängig.<br />
• Falls n l<strong>in</strong>ear unabhängige Eigenvektoren existieren, so existiert e<strong>in</strong>e reguläre Matrix<br />
S ∈ R n×n , so dass S −1 AS = D e<strong>in</strong>e Diagonalmatrix ist. Die Spaltenvektoren von S<br />
s<strong>in</strong>d <strong>die</strong> Eigenvektoren und <strong>die</strong> Diagonale<strong>in</strong>träge von D <strong>die</strong> Eigenwerte.<br />
• Symmetrische Matrizen A = A T haben nur reelle Eigenwerte. Es existiert e<strong>in</strong>e Orthonormalbasis<br />
von Eigenvektoren und e<strong>in</strong>e Diagonalisierung Q T AQ = D mit e<strong>in</strong>er<br />
orthogonalen Matrix.<br />
• Bei Dreiecksmatrizen stehen <strong>die</strong> Eigenwerte auf der Diagonalen.<br />
Zu e<strong>in</strong>em Eigenwert λ s<strong>in</strong>d <strong>die</strong> Eigenvektoren als Lösung des homogenen l<strong>in</strong>earen Gleichungssystems<br />
bestimmt:<br />
(A − λI)w = 0.<br />
Umgekehrt gilt:<br />
Def<strong>in</strong>ition 4.71 (Rayleigh-Quotient). Sei A ∈ R n×n sowie w ∈ R n e<strong>in</strong> Eigenvektor.<br />
Dann ist durch den Rayleigh-Quotienten der zugehörige Eigenwert gegeben:<br />
λ = (Aw, w) 2<br />
‖w‖ 2 .<br />
2<br />
Mit Hilfe <strong>die</strong>ser Def<strong>in</strong>ition folgt e<strong>in</strong>e e<strong>in</strong>fache Schranke für <strong>die</strong> Eigenwerte:<br />
(Aw, w) 2<br />
|λ| ≤ sup<br />
w≠0 ‖w‖ 2 2<br />
≤ ‖A‖ 2 ‖w‖ 2 2<br />
‖w‖ 2 2<br />
= ‖A‖ 2 .<br />
Wir haben <strong>in</strong> Abschnitt 4.1 bereits gesehen, dass <strong>die</strong>se Schranke für <strong>die</strong> Beträge der Eigenwerte<br />
<strong>in</strong> jeder Matrixnorm mit verträglicher Vektornorm gilt.<br />
4.6.1 Konditionierung der Eigenwertaufgabe<br />
Bevor wir auf konkrete Verfahren zur Eigenwertberechnung e<strong>in</strong>gehen, analysieren wir <strong>die</strong><br />
Kondition der Aufgabe, d.h. <strong>die</strong> Abhängigkeit der Eigenwerte von der Störung der Matrix.<br />
Hierfür benötigen wir zunächst e<strong>in</strong>en Hilfsatz:<br />
165
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Hilfsatz 4.72. Es seien A, B ∈ R n×n beliebige Matrizen. Dann gilt für jeden Eigenwert<br />
λ von A, der nicht zugleich Eigenwert von B für jede natürliche Matrizennorm <strong>die</strong> Abschätzung:<br />
‖(λI − B) −1 (A − B)‖ ≥ 1.<br />
Beweis: Es sei w ≠ 0 e<strong>in</strong> Eigenvektor zu λ. Dann gilt:<br />
(A − B)w = (λI − B)w.<br />
Wenn λ ke<strong>in</strong> Eigenwert von B ist, so ist <strong>die</strong> Matrix (λI − B) regulär, d.h. es folgt:<br />
(λI − B) −1 (A − B)w = w.<br />
Und schließlich durch Normbilden:<br />
1 = ‖(λI − B)−1 (A − B)w‖<br />
‖w‖<br />
≤ sup<br />
x<br />
‖(λI − B) −1 (A − B)x‖<br />
‖x‖<br />
= ‖(λI − B) −1 (A − B)‖.<br />
Auf <strong>die</strong>ser Basis erhalten wir e<strong>in</strong> e<strong>in</strong>faches Kriterium zur E<strong>in</strong>grenzung der Eigenwerte e<strong>in</strong>er<br />
Matrix:<br />
□<br />
Satz 4.73 (Gerschgor<strong>in</strong>-Kreise). Es sei A ∈ R n×n . Alle Eigenwerte λ von A liegen <strong>in</strong> der<br />
Vere<strong>in</strong>igung der Gerschgor<strong>in</strong>-Kreise:<br />
K i = {z ∈ C : |z − a ii | ≤<br />
n∑<br />
k=1,k≠i<br />
|a ik |}, i = 1, . . . , n.<br />
Angenommen zu den Indexmengen I m = {i 1 , . . . , i m } und I ′ m = {1, . . . , n} \ I m seien<br />
<strong>die</strong> Vere<strong>in</strong>igungen U m = ⋃ i∈I m<br />
K i und U ′ m = ⋃ i∈I ′ m K i disjunkt. Dann liegen genau m<br />
Eigenwerte (ihrer algebraischen Vielfachheit nach gezählt) <strong>in</strong> U m und n − m Eigenwerte<br />
<strong>in</strong> U ′ m.<br />
Beweis: (i) Es sei D ∈ R n×n <strong>die</strong> Diagonalmatrix D = diag(a ii ). Weiter sei λ e<strong>in</strong> Eigenwert<br />
von A mit λ ≠ a ii . (In <strong>die</strong>sem Fall wäre <strong>die</strong> Aussage des Satzes trivial erfüllt). Hilfsatz 4.72<br />
besagt bei Wahl der maximalen Zeilensummennorm:<br />
1 ≤ ‖(λI−D) −1 (A−D)‖ ∞ = max<br />
i<br />
⎧ ⎫ ⎧<br />
⎫<br />
⎨ n∑<br />
⎬ ⎨<br />
n<br />
|(λ − a<br />
⎩<br />
ii ) −1 a ij |<br />
⎭ = max<br />
i ⎩ |λ − a ii| −1 ∑ ⎬<br />
|a ij |<br />
⎭ .<br />
j=1,j≠i<br />
j=1,j≠i<br />
D.h. es existiert zu jedem λ e<strong>in</strong> Index i ∈ {1, . . . , n} so dass gilt:<br />
|λ − a ii | ≤<br />
n∑<br />
j=1,j≠i<br />
|a ij |.<br />
166
4.6 Berechnung von Eigenwerten<br />
(ii) Es seien durch I m und I ′ m Indexmengen mit oben genannter Eigenschaft gegeben. Wir<br />
def<strong>in</strong>ieren <strong>die</strong> Matrix<br />
A s := D + s(A − D),<br />
mit A 0 = D und A 1 = A. Entsprechend def<strong>in</strong>ieren wir <strong>die</strong> Vere<strong>in</strong>igungen:<br />
U m,s := ⋃<br />
i∈I m<br />
K i (A s ),<br />
U ′ m,s := ⋃<br />
i∈I ′ m<br />
K i (A s ), K i (A s ) = {z ∈ C, |z − a ii | ≤ s ∑ j≠i<br />
|a ij |}.<br />
Aufgrund der stetigen Abhängigkeit der Kreisra<strong>die</strong>n von s gilt U m,s ∩ U m,s ′ = ∅ für s ∈<br />
[0, 1]. Im Fall s = 0 gilt A 0 = D und jeder Eigenwert von A 0 liegt im Mittelpunkt (also<br />
λ i = a ii ) des trivialen Kreises mit Radius Null. Das Ergebnis folgt nun durch <strong>die</strong> stetige<br />
Abhängigkeit der Eigenwerte von s.<br />
□<br />
Wir betrachten hierzu e<strong>in</strong> Beispiel:<br />
Beispiel 4.74 (Gerschgor<strong>in</strong>-Kreise). Wir betrachten <strong>die</strong> Matrix<br />
⎛<br />
⎞<br />
2 0.1 −0.5<br />
⎜<br />
⎟<br />
A = ⎝ 0.2 3 0.5 ⎠ ,<br />
−0.4 0.1 5<br />
mit den Eigenwerten spr(A) ≈ {1.91, 3.01, 5.08}. E<strong>in</strong>e erste Schranke liefern verschiedene<br />
mit Vektornormen verträgliche Matrixnormen von A:<br />
Die Gerschgor<strong>in</strong>-Kreise von A s<strong>in</strong>d:<br />
‖A‖ ∞ = 5.5, ‖A‖ 1 = 6, ‖A‖ 2 ≈ 5.1.<br />
K 1 = {z ∈ C, |z −2| ≤ 0.6}, K 2 = {z ∈ C, |z −3| ≤ 0.7}, K 3 = {z ∈ C, |z −5| ≤ 0.5}.<br />
Diese Abschätzung kann verfe<strong>in</strong>ert werden, da A und A T <strong>die</strong> gleichen Eigenwerte besitzen.<br />
Die Ra<strong>die</strong>n der Gerschgor<strong>in</strong>-Kreise können auch als Summe der Spaltenbeträge berechnet<br />
werden. Zusammen ergibt sich:<br />
K 1 = {z ∈ C, |z −2| ≤ 0.6}, K 2 = {z ∈ C, |z −3| ≤ 0.2}, K 3 = {z ∈ C, |z −5| ≤ 0.5}.<br />
Alle drei Kreise s<strong>in</strong>d disjunkt.<br />
Wir können nun den allgeme<strong>in</strong>en Stabilitätssatz für das Eigenwertproblem beweisen:<br />
Satz 4.75 (Stabilität des Eigenwertproblems). Es sei A ∈ R n×n e<strong>in</strong>e Matrix mit n l<strong>in</strong>ear<br />
unabhängigen Eigenvektoren w 1 , . . . , w n . Durch à = A + δA sei e<strong>in</strong>e beliebig gestörte<br />
Matrix gegeben. Dann existiert zu jedem Eigenwert λ(Ã) von à = A + δA e<strong>in</strong> Eigenwert<br />
λ(A) von A so dass mit der Matrix W := (w 1 , . . . , w n ) gilt:<br />
|λ(A) − λ(Ã)| ≤ cond 2(W )‖δA‖.<br />
167
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Beweis: Es gilt für i = 1, . . . , n <strong>die</strong> Beziehung Aw i = λ i (A)w i , oder <strong>in</strong> Matrixschreibweise<br />
AW = W diag(λ i (A)), also<br />
W −1 AW = diag(λ i (A)).<br />
Wir betrachten nun e<strong>in</strong>en Eigenwert ˜λ = λ(Ã). Falls ˜λ auch Eigenwert von A ist, so gilt<br />
<strong>die</strong> Behauptung. Also sei ˜λ nun ke<strong>in</strong> Eigenwert von A. Dann folgt:<br />
‖(˜λI − A) −1 ‖ 2 = ‖W −1 [˜λI − diag(˜λ i (A))] −1 W ‖ 2 ≤ cond 2 (W )‖[˜λI − diag(λ i (A))] −1 ‖ 2 .<br />
Für <strong>die</strong> (symmetrische) Diagonalmatrix ˜λI − diag(λ i (A)) gilt<br />
‖[˜λI − diag(λ i (A))] −1 ‖ 2 = max<br />
i=1,...,n |˜λ − λ i (A)| −1 .<br />
Mit Hilfsatz 4.72 folgt das gewünschte Ergebnis:<br />
1 ≤ ‖[˜λI − A) −1 δA‖ 2 ≤ ‖[˜λI − A) −1 ‖ ‖δA‖ 2 ≤ cond 2 (W ) max<br />
i=1,...,n |˜λ − λ i (A)| −1<br />
2 ‖δA‖ 2 .<br />
Die Konditionierung des Eigenwertproblems e<strong>in</strong>er Matrix A hängt von der Konditionszahl<br />
der Matrix der Eigenvektoren ab. Für symmetrische (hermitesche) Matrizen existiert e<strong>in</strong>e<br />
Orthonormalbasis von Eigenvektoren mit cond 2 (W ) = 1. Für solche Matrizen ist das<br />
Eigenwertproblem gut konditioniert. Für allgeme<strong>in</strong>e Matrizen kann das Eigenwertproblem<br />
beliebig schlecht konditioniert se<strong>in</strong>.<br />
□<br />
4.6.2 Direkte Methode zur Eigenwertberechnung<br />
Die Eigenwerte e<strong>in</strong>er Matrix A können pr<strong>in</strong>zipiell als Nullstellen des charakteristischen<br />
Polynoms χ A (z) = det(zI − A) berechnet werden. Die Berechnung der Nullstellen kann<br />
zum Beispiel mit dem Newton-Verfahren geschehen, Startwerte können mit Hilfe der<br />
Gerschgor<strong>in</strong>-Kreise bestimmt werden.<br />
In Kapitel 2 haben <strong>die</strong> Berechnung von Nullstellen e<strong>in</strong>es Polynoms jedoch als e<strong>in</strong> sehr<br />
schlecht konditioniertes Problem kennengelernt. Wir betrachten hierzu e<strong>in</strong> Beispiel.<br />
Beispiel 4.76 (Direkte Berechnung von Eigenwerten). Es sei A ∈ R 5×5 e<strong>in</strong>e Matrix mit<br />
den Eigenwerten λ i = 1, i = 1, . . . , 5. Dann gilt:<br />
5∏<br />
χ A (z) = (z − i) = z 5 − 15z 4 + 85x 3 − 225x 2 + 274z − 120.<br />
i=1<br />
Der Koeffizient −55 vor z 9 sei mit e<strong>in</strong>em relativen Fehler von 0.1% gestört:<br />
˜χ A (z) = z 5 − 0.999 · 15z 4 + 85x 3 − 225x 2 + 274z − 120.<br />
Dieses gestörte Polynom hat <strong>die</strong> Nullstellen (d.h. Eigenwerte):<br />
λ 1 ≈ 0.999, λ 2 ≈ 2.05, λ 3 ≈ 2.76, λ 4/5 ≈ 4.59 ± 0.430i.<br />
168
4.6 Berechnung von Eigenwerten<br />
Die Eigenwerte können also nur mit e<strong>in</strong>em (ab λ 3 ) wesentlichen Fehler bestimmt werden.<br />
Es gilt etwa:<br />
|4.59 + 0.43i − 5|<br />
≈ 0.1,<br />
5<br />
d.h. der Fehler <strong>in</strong> den Eigenwerten beträgt 10%, e<strong>in</strong>e Fehlerverstärkung von 100.<br />
Das Aufstellen des charakteristischen Polynoms erfordert e<strong>in</strong>e Vielzahl schlecht konditionierter<br />
Additionen sowie Multiplikationen. Für allgeme<strong>in</strong>e Matrizen verbietet sich <strong>die</strong>ses<br />
direkte Verfahren. Lediglich für spezielle Matrizen wie Tridiagonalsysteme lassen <strong>die</strong> Eigenwerte<br />
bestimmen, ohne das zunächst <strong>die</strong> Koeffizienten des charakteristischen Polynoms<br />
explizit berechnet werden müssen.<br />
4.6.3 Iterative Verfahren zur Eigenwertberechnung<br />
Das vorangegangene Beispiel widerspricht sche<strong>in</strong>bar zunächst der (auf jeden bei hermiteschen<br />
Matrizen) guten Konditionierung der Eigenwertsuche. Wir leiten nun stabile numerische<br />
Verfahren her, <strong>die</strong> <strong>die</strong> Eigenwerte nicht mehr direkt berechnen, sondern sie iterativ<br />
approximieren.<br />
Zur Herleitung e<strong>in</strong>es ersten e<strong>in</strong>fachen Iterationsverfahren machen wir <strong>die</strong> folgende Beobachtung:<br />
angenommen, zu gegebener Matrix A ∈ R n×n existiere e<strong>in</strong>e Basis aus Eigenvektoren<br />
{w 1 , . . . , w n }, d.h. <strong>die</strong> Matrix sei diagonalisierbar. Weiter gelte |λ n | > |λ n−1 | ≥ · · · ≥<br />
|λ 1 | > 0. Dann sei x ∈ R n <strong>in</strong> Basisdarstellung:<br />
n∑<br />
x (0) = α j w j .<br />
j=1<br />
Wir nehmen an, dass α n ≠ 0, dass also <strong>die</strong> Komponente zum Eigenvektor des betragsmäßig<br />
größten Eigenwertes nicht trivial ist. Wir def<strong>in</strong>ieren <strong>die</strong> Iteration<br />
Dann gilt<br />
x (i+1) =<br />
Ax(i)<br />
‖Ax (i) ‖ .<br />
x (i+1) =<br />
A Ax(i−1)<br />
‖Ax (i−1) ‖<br />
‖A Ax(i−1)<br />
‖Ax (i−1) ‖ ‖ =<br />
A2 x (i−1) ‖Ax (i−1) ‖<br />
‖A 2 x (i−1) ‖ ‖Ax (i−1) ‖ = · · · = Ai+1 x (0)<br />
‖A i+1 x (0) ‖ . (4.10)<br />
Weiter gilt mit der Basisdarstellung von x (0) :<br />
⎛<br />
⎞<br />
n∑<br />
n−1<br />
A i x (0) = α j λ i jw j = α n λ i ∑ α j λ<br />
n<br />
⎝w i j<br />
n + ⎠<br />
α<br />
j=1<br />
j=1 n λ i . (4.11)<br />
n<br />
169
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Es gilt |λ j /λ n | < 1 für j < n, daher folgt:<br />
n∑<br />
A i x (0) = α j λ i jw j = α n λ i n (w n + o(1)) ,<br />
j=1<br />
Hieraus folgt durch Normierung:<br />
A i x (0) (<br />
‖A i x (0) ‖ = αn λ i )<br />
n wn<br />
|α n λ i n| ‖w n ‖ + o(1) → span{w n}<br />
(i → ∞).<br />
Die Iteration läuft <strong>in</strong> den Raum, der durch w n aufgespannt wird. Für e<strong>in</strong>en Vektor w, der<br />
Vielfaches e<strong>in</strong>es Eigenvektors ist w = sw n gilt:<br />
Aw = sAw n = sλ n w n = λ n w.<br />
Diese vektorwertige Gleichung gilt <strong>in</strong> jeder Komponente, kann daher nach dem Eigenwert<br />
aufgelöst werden:<br />
Wir fassen zusammen:<br />
λ n = [Aw] k<br />
w k<br />
.<br />
Satz 4.77 (Potenzmethode nach von Mises). Es sei A ∈ R n×n e<strong>in</strong>e Matrix n l<strong>in</strong>ear unabhängigen<br />
Eigenvektoren {w 1 , . . . , w n }. Der betragsmäßig größte Eigenwert sei separiert<br />
|λ n | > |λ n−1 | ≥ · · · ≥ |λ 1 |. Es sei x (0) ∈ R n e<strong>in</strong> Startwert mit nichttrivialer Komponente<br />
<strong>in</strong> Bezug auf w n . Für e<strong>in</strong>en beliebigen Index k ∈ {1, . . . , n} konvergiert <strong>die</strong> Iteration<br />
˜x (i) = Ax (i−1) , x (i) := ˜x(i)<br />
‖˜x (i) ‖ , λ(i) := ˜x(i) k<br />
x (i−1)<br />
k<br />
gegen den betragsmäßig größten Eigenwert:<br />
( ∣∣∣∣ ∣<br />
|λ (i+1) λ n−1 ∣∣∣ i )<br />
− λ n | = O<br />
, i → ∞.<br />
λ n<br />
Beweis: Wir knüpfen an der Vorbereitung des Beweises (4.10) an. Es gilt:<br />
λ (i) =<br />
˜x(i) k<br />
x (i−1)<br />
k<br />
= [Ax(i−1) ] k<br />
x (i−1)<br />
k<br />
= [Ai x (0) ] k<br />
[A i−1 x (0) ] k<br />
.<br />
Weiter, mit (4.11) gilt:<br />
(<br />
a n λ i<br />
λ (i) n [w n ] k + ∑ )<br />
n−1 α j λ i j<br />
j=1 α n<br />
[w<br />
λ i j ] k<br />
n<br />
= (<br />
a n λ i−1 n [w n ] k + ∑ n−1 α j λ i−1<br />
j<br />
j=1 α n λ i−1<br />
n<br />
( ) ∣ ∣<br />
[w n ] k +<br />
αn−1 ∣∣ λ<br />
α n<br />
+ o(1) n−1 ∣∣ i (<br />
λ [wn n<br />
] k<br />
= λ n ( ) ∣ ∣<br />
[w n ] k +<br />
αn−1 ∣∣ λ<br />
α n<br />
+ o(1) n−1 ∣∣ i−1<br />
= λ n<br />
λ [wn n<br />
] k<br />
[w n ] k + ∑ n−1<br />
j=1<br />
) = λ n<br />
[w j ] k [w n ] k + ∑ n−1<br />
1 + O<br />
,<br />
α j λ i j<br />
α n<br />
[w<br />
λ i j ] k<br />
n<br />
j=1 α λ i−1<br />
k j<br />
α n λn<br />
i−1<br />
[w j ] k<br />
( ∣∣∣∣<br />
λ n−1<br />
λ n<br />
∣ ∣∣∣ i−1 )) .<br />
170
4.6 Berechnung von Eigenwerten<br />
Die letzte Abschätzung nutzt <strong>die</strong> Reihenentwicklung:<br />
1 + x n+1<br />
1 + x n = 1 + O(|x|n ).<br />
□<br />
Die Potenzmethode ist e<strong>in</strong>e sehr e<strong>in</strong>fache und numerisch stabile Iteration. Sie kann allerd<strong>in</strong>gs<br />
nur den betragsmäßig größten Eigenwert ermitteln. Der Konvergenzbeweis kann<br />
verallgeme<strong>in</strong>ert werden auf Matrizen, deren größter Eigenwert mehrfach vorkommt. Konvergenz<br />
gilt jedoch nur dann, wenn aus |λ n | = |λ i | auch λ n = λ i folgt. Es darf also nicht<br />
zwei verschiedene Eigenwerte geben, <strong>die</strong> beide den gleichen, größten Betrag annehmen.<br />
Dies schließt zum Beispiel den Fall zweier komplex konjugierter Eigenwerten λ und ¯λ als<br />
beträgsgrößte aus.<br />
Bemerkung 4.78 (Potenzmethode bei symmetrischen Matrizen). Die Potenzmethode<br />
kann im Fall symmetrischer Matrizen durch Verwenden des Rayleigh-Quotienten verbessert<br />
werden. Die Iteration<br />
liefert <strong>die</strong> Fehlerabschätzung:<br />
λ (i) = (Ax(i−1) , x (i−1) ) 2<br />
(x (i−1) , x (i−1) ) 2<br />
= (˜x (i) , x (i−1) ) 2 ,<br />
λ (i) = λ n + O<br />
( ∣∣∣∣<br />
λ n−1<br />
λ n<br />
∣ ∣∣∣ 2i ) .<br />
Beispiel 4.79 (Potenzmethode nach von Mises). Es sei:<br />
⎛ ⎞<br />
2 1 2<br />
⎜ ⎟<br />
A = ⎝−1 2 1⎠ ,<br />
1 2 4<br />
mit den Eigenwerten:<br />
λ 1 ≈ 0.80131, λ 2 = 2.2865, λ 3 = 4.9122.<br />
Wir starten <strong>die</strong> Potenzmethode mit x (0)<br />
= (1, 1, 1) T , und wählen zur Normierung <strong>die</strong><br />
171
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Maximumsnorm. Weiter wählen wir als Index k = 1:<br />
⎛ ⎞<br />
⎛<br />
5<br />
i = 1 : ˜x (1) = Ax (0) ⎜ ⎟<br />
= ⎝2⎠ , x (1) = ˜x(1) ⎜<br />
0.714<br />
⎞<br />
⎟<br />
‖˜x<br />
7<br />
(1) ≈ ⎝0.286⎠ ,<br />
‖ ∞<br />
1<br />
⎛ ⎞<br />
⎛<br />
3.71<br />
i = 2 : ˜x (2) = Ax (1) ⎜ ⎟<br />
= ⎝0.857⎠ , x (2) = ˜x(2) ⎜<br />
0.702<br />
⎞<br />
⎟<br />
‖˜x<br />
5.29<br />
(2) ≈ ⎝0.162⎠ ,<br />
‖ ∞<br />
1<br />
⎛ ⎞<br />
⎛<br />
3.57<br />
i = 3 : ˜x (3) = Ax (2) ⎜ ⎟<br />
= ⎝0.124⎠ , x (3) = ˜x(3) ⎜<br />
0.710<br />
⎞<br />
⎟<br />
‖˜x<br />
1<br />
(3) ≈ ⎝0.124⎠ ,<br />
‖ ∞<br />
1<br />
⎛ ⎞<br />
⎛<br />
3.54<br />
i = 4 : ˜x (4) = Ax (3) ⎜ ⎟<br />
= ⎝0.538⎠ , x (4) = ˜x(4) ⎜<br />
0.715<br />
⎞<br />
⎟<br />
‖˜x<br />
4.96<br />
(4) ≈ ⎝0.108⎠ ,<br />
‖ ∞<br />
1<br />
⎛ ⎞<br />
⎛<br />
3.54<br />
i = 5 : ˜x (5) = Ax (4) ⎜ ⎟<br />
= ⎝0.502⎠ , x (5) = ˜x(5) ⎜<br />
0.717<br />
⎞<br />
⎟<br />
‖˜x<br />
4.93<br />
(5) ≈ ⎝0.102⎠ ,<br />
‖ ∞<br />
1<br />
⎛ ⎞<br />
⎛ ⎞<br />
3.54<br />
0.719<br />
i = 6 : ˜x (6) = Ax (5) ⎜ ⎟<br />
= ⎝0.486⎠ , x (6) = ˜x(6) ⎜ ⎟<br />
‖˜x<br />
4.92<br />
(6) ≈ ⎝0.0988⎠ ,<br />
‖ ∞<br />
1<br />
λ (1) = ˜x(1) 1<br />
x (0)<br />
1<br />
λ (2) = ˜x(2) 1<br />
x (1)<br />
1<br />
λ (3) = ˜x(3) 1<br />
x (2)<br />
1<br />
λ (4) = ˜x(4) 1<br />
x (3)<br />
1<br />
λ (5) = ˜x(5) 1<br />
x (4)<br />
1<br />
λ (6) = ˜x(6) 1<br />
x (5)<br />
1<br />
≈ 5,<br />
≈ 5.19,<br />
≈ 5.077,<br />
≈ 4.999,<br />
≈ 4.950,<br />
≈ 4.930.<br />
Neben der Festlegung auf den betragsgrößten Eigenwert hat <strong>die</strong> Potenzmethode den Nachteil<br />
sehr langsamer Konvergenz, falls <strong>die</strong> Eigenwerte nicht h<strong>in</strong>reichend separiert s<strong>in</strong>d. E<strong>in</strong>e<br />
e<strong>in</strong>fache Erweiterung der Potenzmethode ist <strong>die</strong> Inverse Iteration nach Wieland zur Berechnung<br />
des kle<strong>in</strong>sten Eigenwerts e<strong>in</strong>er Matrix. Zur Herleitung verwenden wir <strong>die</strong> Tatsache,<br />
dass zu e<strong>in</strong>em Eigenwert λ e<strong>in</strong>er regulären Matrix A ∈ R n×n durch λ −1 e<strong>in</strong> Eigenwert<br />
der <strong>in</strong>versen Matrix A −1 ∈ R n×n gegeben ist:<br />
Aw = λ(A)w ⇔ A −1 w = λ(A) −1 w =: λ(A −1 )w.<br />
Die Potenzmethode, angewendet auf <strong>die</strong> <strong>in</strong>verse Matrix liefert den betragsgrößten Eigenwert<br />
λ max (A −1 ) von A −1 . Der Kehrwert <strong>die</strong>ses Eigenwertes ist der betragskle<strong>in</strong>ste<br />
Eigenwert der Matrix A selbst λ m<strong>in</strong> (A) = λ max (A −1 ) −1 . Dieses Pr<strong>in</strong>zip kann weiter verallgeme<strong>in</strong>ert<br />
werden. Dazu sei λ(A) e<strong>in</strong> Eigenwert mit zugehörigem Eigenvektor w ∈ R n<br />
von A und σ ∈ C e<strong>in</strong>e beliebige komplexe Zahl (jedoch ke<strong>in</strong> Eigenwert von A). Dann gilt:<br />
(A − σI)w = (λ(A) − σ)w = λ(A − σI)w ⇔ [A − σI] −1 w = λ([A − σI] −1 )w.<br />
Die Anwendung der Potenzmethode auf <strong>die</strong> Matrix [A − σI] −1 liefert nach vorangestellter<br />
Überlegung den betragskle<strong>in</strong>sten Eigenwert der Matrix [A−σI], d.h. den Eigenwert von A,<br />
der σ am nächsten liegt. Liegen nun Schätzungen für <strong>die</strong> Eigenwerte der Matrix A vor, so<br />
können <strong>die</strong> genauen Werte mit der Inversen Iteration bestimmt werden. Die Gerschgor<strong>in</strong>-<br />
Kreise liefern oft e<strong>in</strong>en guten Anhaltspunkt für σ.<br />
172
4.6 Berechnung von Eigenwerten<br />
Satz 4.80 (Inverse Iteration mit Shift). Es sei A ∈ R n×n e<strong>in</strong>e reguläre Matrix. Es sei<br />
σ ∈ C. Für <strong>die</strong> Eigenwerte λ i von A gelte:<br />
0 < |λ 1 − σ| < |λ 2 − σ| ≤ · · · ≤ |λ n − σ|.<br />
Es sei x (0) ∈ R n e<strong>in</strong> geeigneter normierter Startwert. Für i = 1, 2, . . . konvergiert <strong>die</strong><br />
Iteration<br />
[A − σI]˜x (i) = x (i−1) , x (i) := ˜x(i)<br />
‖˜x (i) ‖ , µ(i) := ˜x(i) k<br />
x (i−1)<br />
k<br />
für jeden Index k ∈ {1, . . . , n} gegen den Eigenwert λ 1 von A:<br />
( ∣∣∣∣ |λ 1 − λ (i) λ 1 − σ<br />
| = O ∣<br />
∣i ) .<br />
λ 2 − σ<br />
, λ (i) := σ + (µ (i) ) −1 ,<br />
Beweis: Der Beweis ist e<strong>in</strong>e e<strong>in</strong>fache Folgerung aus Satz 4.77. Falls σ ke<strong>in</strong> Eigenwert von<br />
A ist, so ist B := A − σI <strong>in</strong>vertierbar. Die Matrix B −1 hat <strong>die</strong> Eigenwerte µ 1 , . . . , µ n , mit<br />
Für <strong>die</strong>se gilt nach Voraussetzung:<br />
µ i = (λ i − σ) −1 ⇔ λ i = µ −1<br />
i + σ. (4.12)<br />
|µ 1 | > |µ 2 | ≥ · · · ≥ |µ n | > 0.<br />
Die Potenzmethode, Satz 4.77, angewandt auf <strong>die</strong> Matrix B −1 liefert e<strong>in</strong>e Approximation<br />
für µ 1 :<br />
( ∣∣∣∣ ∣<br />
|µ (i) µ 2 ∣∣∣ i )<br />
− µ 1 | = O .<br />
µ 1<br />
Die gewünschte Aussage folgt mit (4.12).<br />
□<br />
In jedem Schritt der Iteration muss e<strong>in</strong> L<strong>in</strong>eares Gleichungssystem [A − σI]˜x = x gelöst<br />
werden. Dies geschieht am besten mit e<strong>in</strong>er Zerlegungsmethode, etwa der LR-Zerlegung<br />
der Matrix. Die Zerlegung kann e<strong>in</strong>mal <strong>in</strong> O(n 3 ) Operationen erstellt werden, anschließend<br />
s<strong>in</strong>d <strong>in</strong> jedem Schritt der Iteration weitere O(n 2 ) Operationen für das Vorwärts- und<br />
Rückwärtse<strong>in</strong>setzen notwendig. Die Konvergenzgeschw<strong>in</strong>digkeit der Inversen Iteration mit<br />
Shift kann durch e<strong>in</strong>e gute Schätzung σ gesteigert werden. E<strong>in</strong>e weitere Verbesserung<br />
der Konvergenzgeschw<strong>in</strong>digkeit kann durch ständiges Anpassen der Schätzung σ erreicht<br />
werden. Wird <strong>in</strong> jedem Schritt <strong>die</strong> beste Approximation σ + 1/µ (i) als neue Schätzung<br />
verwendet, so kann m<strong>in</strong>destens superl<strong>in</strong>eare Konvergenz erreicht werden. Hierzu wählen<br />
wir: σ (0) = σ und iterieren<br />
σ (i) = σ (i−1) + 1<br />
µ (i) .<br />
Jede Modifikation des Shifts ändert jedoch das l<strong>in</strong>eare Gleichungssystem und erfordert <strong>die</strong><br />
erneute (teure) Erstellung der LR-Zerlegung.<br />
173
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Beispiel 4.81 (Inverse Iteration nach Wieland). Es sei:<br />
mit den Eigenwerten:<br />
⎛<br />
⎞<br />
2 −0.1 0.4<br />
⎜<br />
⎟<br />
A = ⎝0.3 −1 0.4⎠<br />
0.2 −0.1 4<br />
λ 1 ≈ −0.983, λ 2 = 1.954, λ 3 = 4.029.<br />
Wir wollen alle Eigenwerte mit der <strong>in</strong>versen Iteration bestimmen. Startwerte erhalten wir<br />
durch Analyse der Gerschgor<strong>in</strong>-Kreise:<br />
K 1 = K 0.5 (2), K 2 = K 0.2 (−1), K 3 := K 0.3 (4).<br />
Die drei Kreise s<strong>in</strong>d disjunkt und wir wählen als Shift <strong>in</strong> der Inversen Iteration σ 1 = 2,<br />
σ 2 = −1 sowie σ 3 = 4. Die Iteration wird stets mit v = (1, 1, 1) T und Normierung bezüglich<br />
der Maximumsnorm gestartet. Wir erhalten <strong>die</strong> Näherungen:<br />
σ 1 = 2 : µ (1)<br />
1 = −16.571, µ (2)<br />
1 = −21.744, µ (3)<br />
1 = −21.619, µ (4)<br />
1 = −21.622,<br />
σ 2 = −1 : µ (1)<br />
2 = 1.840, µ (2)<br />
2 = 49.743, µ (3)<br />
2 = 59.360, µ (4)<br />
2 = 59.422,<br />
σ 3 = 4 : µ (1)<br />
3 = 6.533, µ (2)<br />
3 = 36.004, µ (3)<br />
3 = 33.962, µ (4)<br />
3 = 33.990.<br />
Diese Approximationen ergeben <strong>die</strong> folgenden Eigenwert-Näherungen:<br />
λ 1 = σ 1 + 1/µ (4)<br />
1 ≈ 1.954, λ 2 = σ 2 + 1/µ (4)<br />
2 ≈ −0.983, λ 3 = σ 3 + 1/µ (4)<br />
3 ≈ 4.029.<br />
Alle drei Näherungen s<strong>in</strong>d <strong>in</strong> den ersten wesentlichen Stellen exakt.<br />
Das Beispiel demonstriert, dass <strong>die</strong> <strong>in</strong>verse Iteration mit Shift zu e<strong>in</strong>er wesentlichen Beschleunigung<br />
der Konvergenz führt, falls gute Schätzungen der Eigenwerte vorliegen.<br />
4.6.4 Das QR-Verfahren zur Eigenwertberechnung<br />
Wir haben bereits <strong>die</strong> QR-Zerlegung e<strong>in</strong>er Matrix A <strong>in</strong> e<strong>in</strong>e orthogonale Matrix Q ∈ R n×n<br />
sowie e<strong>in</strong>e rechte obere Dreiecksmatrix R ∈ R n×n kennengelernt. Das QR-Verfahren zur<br />
Berechnung der Eigenwerte von A beruht auf der folgenden Beobachtung:<br />
A = QR = QR(QQ T ) = Q(RQ)Q T , (4.13)<br />
d.h., <strong>die</strong> Matrix A ist orthogonal ähnlich zur Matrix RQ, hat also <strong>die</strong> gleichen Eigenwerte<br />
wie <strong>die</strong>se. Wir def<strong>in</strong>ieren:<br />
174
4.6 Berechnung von Eigenwerten<br />
Algorithmus 4.82 (QR-Verfahren). Es sei A ∈ R n×n . Ausgehend von A (1) := A iteriere<br />
für i = 1, . . .<br />
1. Erstelle <strong>die</strong> QR-Zerlegung<br />
2. Berechne<br />
A (i) =: Q (i) R (i) ,<br />
A (i+1) := R (i) Q (i) .<br />
Das QR-Verfahren erzeugt e<strong>in</strong>e Folge A (i) , i ≥ 1 von Matrizen, <strong>die</strong> gemäß (4.13) alle<br />
ähnlich zur Matrix A s<strong>in</strong>d. Wir werden sehen, dass <strong>die</strong> Diagonale<strong>in</strong>träge der Folgenglieder<br />
A (i) gegen <strong>die</strong> Eigenwerte der Matrix A laufen.<br />
Satz 4.83 (QR-Verfahren zur Eigenwertberechnung). Es sei A ∈ R n×n e<strong>in</strong>e Matrix mit<br />
separierten Eigenwerten<br />
|λ 1 | > |λ 2 | > · · · > |λ n |.<br />
Dann gilt für <strong>die</strong> Diagonalelemente a (t)<br />
ii der durch das QR-Verfahren erzeugten Matrizen<br />
A (t) :<br />
{d (t)<br />
11 , . . . , d(t) nn} → {λ 1 , . . . , λ n } (t → ∞).<br />
Beweis: Für den technisch aufwändigen Beweis verweisen wir auf [9] oder [6].<br />
□<br />
Im Allgeme<strong>in</strong>en konvergieren <strong>die</strong> Diagonalelemente der Folgenglieder A (i) m<strong>in</strong>destens l<strong>in</strong>ear<br />
gegen <strong>die</strong> Eigenwerte. In speziellen Fällen wird jedoch sogar kubische Konvergenz<br />
erreicht. Verglichen mit der Potenzmethode und der <strong>in</strong>versen Iteration weist das QR-<br />
Verfahren daher zum e<strong>in</strong>en bessere Konvergenzeigenschaften auf, gleichzeitig werden alle<br />
Eigenwerte der Matrix A bestimmt. In jedem Schritt der Iteration muss jedoch e<strong>in</strong>e QR-<br />
Zerlegung der Iterationsmatrix A (i) erstellt werden. Bei allgeme<strong>in</strong>er Matrix A ∈ R n×n<br />
s<strong>in</strong>d hierzu O(n 3 ) arithmetische Operationen notwendig. Um <strong>die</strong> Eigenwerte mit h<strong>in</strong>reichender<br />
Genauigkeit zu approximieren s<strong>in</strong>d oft sehr viele, > 100 Schritte notwendig. In<br />
der praktischen Anwendung wird das QR-Verfahren daher immer <strong>in</strong> Verb<strong>in</strong>dung mit e<strong>in</strong>er<br />
Reduktionsmethode (siehe folgendes Kapitel) e<strong>in</strong>gesetzt, bei der <strong>die</strong> Matrix A zunächst <strong>in</strong><br />
e<strong>in</strong>e “e<strong>in</strong>fache” ähnliche Form transformiert wird.<br />
Bemerkung 4.84 (LR-Verfahren). Wie das QR-Verfahren liefert auch das LR-Verfahren:<br />
A (i) =: L (i) R (i) , A (i+1) := R (i) L (i) ,<br />
e<strong>in</strong>e Folge von Matrizen A (i) , deren Diagonalelemente gegen <strong>die</strong> Eigenwerte der Matrix A<br />
konvergieren. Das LR-Verfahren zur Eigenwertberechnung konvergiert nur dann, wenn <strong>die</strong><br />
LR-Zerlegung ohne Pivotisierung durchgeführt werden kann. Daher wird bei allgeme<strong>in</strong>en<br />
Matrizen üblicherweise das QR-Verfahren bevorzugt.<br />
175
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
4.6.5 Reduktionsmethoden zur Eigenwertbestimmung<br />
Das Erstellen der QR-Zerlegung e<strong>in</strong>er Matrix A ∈ R n×n mit Hilfe von Householder-<br />
Matrizen bedarf O(n 3 ) arithmetischer Operationen, siehe Satz 4.58. Da <strong>in</strong> jedem Schritt<br />
des QR-Verfahrens <strong>die</strong>se Zerlegung neu erstellt werden muss, ist <strong>die</strong>ser Aufwand zu groß.<br />
Hat <strong>die</strong> Matrix A jedoch e<strong>in</strong>e spezielle Struktur, ist sie z.B. e<strong>in</strong>e Bandmatrix, so kann<br />
auch <strong>die</strong> QR-Zerlegung mit weit ger<strong>in</strong>gerem Aufwand erstellt werden. Es gilt:<br />
Satz 4.85 (Ähnliche Matrizen). Zwei Matrizen A, B ∈ C n×n heißen ähnlich, falls es e<strong>in</strong>e<br />
reguläre Matrix S ∈ C n×n gibt, so dass gilt:<br />
A = S −1 BS.<br />
Ähnliche Matrizen haben das gleiche charakteristische Polynom und <strong>die</strong> gleichen Eigenwerte.<br />
Zu e<strong>in</strong>em Eigenwert λ sowie Eigenvektor w von A gilt:<br />
B(Sw) = S(Aw) = λSw.<br />
Ziel <strong>die</strong>ses Kapitels ist es durch Ähnlichkeitstransformationen<br />
A = A (0) → A (i) = (S (i) ) −1 A (i) S (i) ,<br />
<strong>die</strong> Matrix A Schritt für Schritt <strong>in</strong> e<strong>in</strong>e ähnliche Matrix (also mit den gleichen Eigenwerten)<br />
zu transformieren, <strong>die</strong> e<strong>in</strong>e e<strong>in</strong>fache Struktur hat, so dass <strong>die</strong> Eigenwerte leichter zu<br />
bestimmen, oder sogar direkt ablesbar s<strong>in</strong>d. Mögliche Normalformen, bei denen <strong>die</strong> Eigenwerte<br />
unmittelbar ablesbar s<strong>in</strong>d, s<strong>in</strong>d <strong>die</strong> Jordan’sche Normalform, <strong>die</strong> Diagonalisierung<br />
von A, oder <strong>die</strong> Schur’sche Normalform:<br />
Def<strong>in</strong>ition 4.86 (Schur’sche Normalform). Die Matrix A ∈ C n×n habe <strong>die</strong> Eigenwerte<br />
λ 1 , . . . , λ n (ihrer Vielfachheit gezählt). Dann existiert e<strong>in</strong>e unitäre Matrix U ∈ C n×n , so<br />
dass<br />
⎛<br />
⎞<br />
λ 1 ∗ · · · ∗<br />
.<br />
Ū T 0 .. . .. .<br />
AU =<br />
⎜ .<br />
⎝ . .. .<br />
. .. ⎟ ∗ ⎠<br />
0 · · · 0 λ n<br />
Falls ĀT = A hermitesch ist, so ist Ū T AU auch hermitesch, also e<strong>in</strong>e Diagonalmatrix.<br />
Die Aufgabe, e<strong>in</strong>e Matrix A <strong>in</strong> e<strong>in</strong>e Normalform zu transformieren, ist üblicherweise nur<br />
bei Kenntnis der Eigenwerte möglich. Dieser Weg eignet sich somit nicht zur Eigenwertberechnung.<br />
Daher werden wir im Folgenden <strong>die</strong> Reduktion der Matrix A auf e<strong>in</strong>e Normalform<br />
kennenlernen, bei der <strong>die</strong> Eigenwerte zwar nicht unmittelbar abgelesen werden, <strong>die</strong><br />
QR-Zerlegung jedoch mit sehr ger<strong>in</strong>gem Aufwand erstellt werden kann. Diese reduzierte<br />
Normalform <strong>die</strong>nt dann als Grundlage für das QR-Verfahren zur Eigenwertberechnung.<br />
Wir def<strong>in</strong>ieren:<br />
176
4.6 Berechnung von Eigenwerten<br />
Satz 4.87 (Hessenberg-Normalform). Zu jeder Matrix A ∈ R n×n existiert e<strong>in</strong>e orthogonale<br />
Matrix Q ∈ R n×n , so dass<br />
⎛<br />
⎞<br />
∗ · · · · · · · · · ∗<br />
. ∗ .. . .. . .. .<br />
Q T AQ =<br />
. 0 .. . .. . .. .<br />
,<br />
⎜ .<br />
⎝.<br />
.. . .. . .. ⎟ . ⎠<br />
0 · · · 0 ∗ ∗<br />
e<strong>in</strong>e Hessenberg-Matrix ist, also e<strong>in</strong>e rechte obere Dreiecksmatrix, <strong>die</strong> zusätzlich e<strong>in</strong>e untere<br />
Nebendiagonale besitzt. Falls A = A T symmetrisch ist, so ist Q T AQ e<strong>in</strong>e Tridiagonalmatrix.<br />
Beweis: Die Konstruktion der Hessenberg-Matrix erfolgt ähnlich der QR-Zerlegung mit<br />
Householder-Transformationen. Um Ähnlichkeitstransformationen sicherzustellen müssen<br />
wir <strong>die</strong> orthogonalen Householder-Matrizen S (i) jedoch von l<strong>in</strong>ks und rechts an <strong>die</strong> Matrix<br />
A multiplizieren.<br />
Wir beschreiben den ersten Schritt. Es seien A = (a 1 , . . . , a n ) <strong>die</strong> Spaltenvektoren von A.<br />
Wir bestimmen den Vektor v (1) = (0, v (1)<br />
2 , . . . , v(1) n ) T so, dass mit S (1) = I − 2v (1) (v (1) ) T<br />
gilt<br />
S (1) a 1 ∈ span(e 1 , e 2 ).<br />
Hierzu wählen wir e<strong>in</strong>e Householder-Transformation mit Vektor<br />
v (1) = ã1 + ‖ã 1 ‖e 2<br />
‖ ã 1 + ‖ã 1 ‖e 2 ‖ ,<br />
wobei ã 1 = (0, a 21 , . . . , a n1 ) der reduzierte erste Spaltenvektor ist. Dann gilt mit S (1) =<br />
I − 2v (1) (v (1) ) T mit S (1) = (S (1) ) T :<br />
⎛<br />
⎞<br />
a 11 a 12 · · · a 1n<br />
⎛<br />
⎞<br />
a 11 ∗ · · · ∗<br />
∗ ∗ · · · ∗<br />
A (1) = S (1) A(S (1) ) T . ∗<br />
=<br />
0 . .. .<br />
⎜<br />
⎟·S (1) =:<br />
0 Ã (1)<br />
⎜<br />
⎟, Ã (1) ∈ R n−1×n−1 .<br />
⎝ .<br />
. . .. . ⎠ ⎝ .<br />
⎠<br />
0 ∗ · · · ∗<br />
0<br />
Im zweiten Schritt wird das entsprechende Verfahren auf <strong>die</strong> Matrix Ã(1) angewendet.<br />
Nach n − 2 Schritten erhalten wir mit Matrix A (n−2) , welche Hessenberg-Gestalt hat.<br />
Q T AQ := S } (n−2) {{ · · · S (1)<br />
} A } S (1) · ·{{ · S (n−2)<br />
}<br />
=:Q T<br />
=:Q<br />
Im Falle A = A T gilt:<br />
(Q T AQ) T = Q T A T Q = Q T AQ.<br />
177
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
D.h., auch A (n−2) ist wieder symmetrisch. Symmetrische Hessenberg-Matrizen s<strong>in</strong>d Tridiagonalmatrizen.<br />
□<br />
Bemerkung 4.88 (Hessenberg-Normalform). Die Transformation e<strong>in</strong>er Matrix A ∈<br />
R n×n <strong>in</strong> Hessenberg-Form erfordert bei Verwendung der Householder-Transformationen<br />
5<br />
3 n3 + O(n 2 ) arithmetische Operationen. Im Fall symmetrischer Matrizen erfordert <strong>die</strong><br />
Transformation <strong>in</strong> e<strong>in</strong>e Tridiagonalmatrix 2 3 n3 + O(n 2 ) Operationen.<br />
Die Transformation <strong>in</strong> Hessenberg-Form benötigt demnach etwas mehr arithmetische Operationen<br />
als e<strong>in</strong>e QR-Zerlegung. Im Anschluss können <strong>die</strong> QR-Zerlegungen e<strong>in</strong>er Hessenberg-<br />
Matrix mit weitaus ger<strong>in</strong>gerem Aufwand erstellt werden. Weiter gilt, dass für <strong>die</strong> QR-<br />
Zerlegung e<strong>in</strong>er Hessenberg-Matrix A gilt, dass <strong>die</strong> Matrix RQ wieder Hessenberg-Gestalt<br />
hat. Beides fasst der folgende Satz zusammen:<br />
Satz 4.89 (QR-Zerlegung von Hessenberg-Matrizen). Es sei A ∈ R n×n e<strong>in</strong>e Hessenberg-<br />
Matrix. Dann kann <strong>die</strong> QR-Zerlegung A = QR mit Householder-Transformationen <strong>in</strong><br />
2n 2 + O(n) arithmetische Operationen durchgeführt werden. Die Matrix RQ hat wieder<br />
Hessenberg-Gestalt.<br />
Beweis: Es gilt a ij = 0 für i > j + 1. Wir zeigen, dass <strong>in</strong>duktiv, dass <strong>die</strong>se Eigenschaft für<br />
alle Matrizen A (i) gilt, <strong>die</strong> im Laufe der QR-Zerlegung entstehen. Zunächst folgt im ersten<br />
Schritt für v (1) = a 1 + ‖a 1 ‖e 1 hieraus v (1)<br />
k<br />
= 0 für alle k > 2. Die neuen Spaltenvektoren<br />
berechnen sich zu:<br />
a (1)<br />
i = a i − (a i , v (1) )v (1) . (4.14)<br />
Da v (1)<br />
k<br />
= 0 für k < 2 gilt (a (1)<br />
i ) k = 0 für k > i + 1, d.h. A (1) hat wieder Hessenberg-Form.<br />
Diese Eigenschaft gilt <strong>in</strong>duktiv für i = 2, . . . , n − 1.<br />
Da der (reduzierte) Vektor ṽ (i) <strong>in</strong> jedem Schritt nur zwei von Null verschiedene E<strong>in</strong>träge<br />
hat, kann <strong>die</strong>ser <strong>in</strong> 4 Operationen erstellt werden. Die Berechnung der n − i neuen Spaltenvektoren<br />
gemäß (4.14) bedarf je 4 arithmetischer Operationen. Insgesamt ergibt sich<br />
e<strong>in</strong> Aufwand von<br />
n−1 ∑<br />
i=1<br />
4 + 4(n − i) = 2n 2 + O(n).<br />
Es bleibt (als Übung) <strong>die</strong> Hessenberg-Gestalt der Matrix A ′ := RQ nachzuweisen.<br />
□<br />
In Verb<strong>in</strong>dung mit der Reduktion auf Hessenberg, bzw. auf Tridiagonalgestalt ist das QR-<br />
Verfahren e<strong>in</strong>es der effizientesten Verfahren zur Berechnung von Eigenwerten e<strong>in</strong>er Matrix<br />
A ∈ R n×n . Die QR-Zerlegung kann <strong>in</strong> O(n 2 ) Operationen durchgeführt werden, und im<br />
Laufe des QR-Verfahrens entstehen ausschließlich Hessenberg-Matrizen.<br />
Die Konvergenz des QR-Verfahrens hängt von der Separation der Eigenwerte |λ i |/|λ i+1 | ab.<br />
Je weiter <strong>die</strong> Eigenwerte vone<strong>in</strong>ander entfernt s<strong>in</strong>d, umso besser konvergiert das Verfahren.<br />
178
4.6 Berechnung von Eigenwerten<br />
Im allgeme<strong>in</strong>en kann l<strong>in</strong>eare Konvergenz gezeigt werden. In speziellen Fällen kann jedoch<br />
sogar kubische Konvergenz der Diagonalelemente A (t)<br />
ii gegen <strong>die</strong> Eigenwerte gezeigt werden.<br />
Wie <strong>die</strong> Inverse Iteration kann das QR-Verfahren durch E<strong>in</strong>führen e<strong>in</strong>es Shifts beschleunigt<br />
werden. Mit Koeffizienten µ i wird <strong>die</strong> Iteration ersetzt durch <strong>die</strong> Vorschrift:<br />
A (i−1) − µ i I = Q (i) R (i) , A (i) := R (i) Q (i) + µ i I.<br />
Abschließend betrachten wir hierzu e<strong>in</strong> Beispiel:<br />
Beispiel 4.90 (Eigenwert-Berechnung mit Reduktion und QR-Verfahren). Wir betrachten<br />
<strong>die</strong> Matrix<br />
⎛<br />
⎞<br />
338 −20 −90 32<br />
−20 17 117 70<br />
A = ⎜<br />
⎟<br />
⎝−90 117 324 −252⎠ .<br />
32 70 −252 131<br />
Die Matrix A ist symmetrisch und hat <strong>die</strong> Eigenwerte:<br />
λ 1 ≈ 547.407, λ 2 ≈ 297.255, λ 3 ≈ −142.407, λ 4 ≈ 107.745.<br />
Schritt 1: Reduktion auf Hessenberg- (Tridiagonal)-Gestalt.<br />
Im ersten Reduktionsschritt wählen wir mit ã 1 = (0, −20, −90, 32) den Spiegelungsvektor<br />
v (1) als:<br />
v (1) = ã1 + ‖ã 1 ‖e 2<br />
‖ ã 1 + ‖ã 1 ‖e 2 ‖ .<br />
Wir erhalten mit S (1) := I − 2v (1) (v (1) ) T :<br />
⎛<br />
⎞<br />
338 97.591 0 0<br />
A (1) = S (1) AS (1) 97.591 477.579 27.797 106.980<br />
= ⎜<br />
⎟<br />
⎝ 0 27.797 −82.345 −103.494⎠ .<br />
0 106.980 −103.494 76.765<br />
Mit ã (1)<br />
2 = (0, 0, 27.797, 106.980) T und<br />
folgt mit S (2) := I − 2v (2) (v (2) ) T :<br />
v (2) = ã2 + ‖ã 2 ‖e 3<br />
‖ ã 2 + ‖ã 2 ‖e 3 ‖<br />
⎛<br />
⎞<br />
338 97.591 0 0<br />
H := A (2) = S (2) A (1) S (2) 97.591 477.579 110.532 0<br />
= ⎜<br />
⎟<br />
⎝ 0 110.532 16.231 −129.131⎠ .<br />
0 0 −129.131 −21.900<br />
Die Matrix H hat nun Tridiagonalgestalt. Alle Transformationen waren Ähnlichkeitstransformationen.<br />
Daher haben H und A <strong>die</strong> gleichen Eigenwerte.<br />
179
4 <strong>Numerische</strong> L<strong>in</strong>eare Algebra<br />
Schritt 2: QR-Verfahren<br />
Wir führen nun e<strong>in</strong>ige Schritte des QR-Verfahrens durch, verzichten dabei auf <strong>die</strong> Zwischenschritte<br />
zum Erstellen der QR-Zerlegung. Es sei A (1) := H. Dann ist:<br />
⎛<br />
⎞<br />
400.759 123.634 0 0<br />
A (1) = Q (1) R (1) A (2) = R (1) Q (1) 123.634 441.338 −32.131 0<br />
= ⎜<br />
⎟<br />
⎝ 0 −32.131 −42.082 −122.498⎠<br />
0 0 −122.498 9.985<br />
⎛<br />
⎞<br />
473.938 113.971 0 0<br />
A (2) = Q (2) R (2) A (3) = R (2) Q (2) 113.971 370.411 10.831 0<br />
= ⎜<br />
⎟<br />
⎝ 0 10.831 −74.680 −111.053⎠<br />
0 0 −111.053 40.331<br />
⎛<br />
⎞<br />
520.095 78.016 0 0<br />
A (3) = Q (3) R (3) A (4) = R (3) Q (3) 78.016 324.515 −4.350 0<br />
= ⎜<br />
⎟<br />
⎝ 0 −4.350 −98.717 −94.942⎠<br />
0 0 −94.942 64.105<br />
⎛<br />
⎞<br />
538.682 45.895 0 0<br />
A (4) = Q (4) R (4) A (5) = R (4) Q (4) 45.895 305.970 1.926 0<br />
= ⎜<br />
⎟<br />
⎝ 0 1.926 −115.400 −77.620⎠<br />
0 0 −77.620 80.747<br />
.<br />
⎛<br />
⎞<br />
547.387 2.245 0 0<br />
A (9) = Q (9) R (9) A (10) = R (9) Q (9) 2.245 297.275 −0.0427 0<br />
= ⎜<br />
⎟<br />
⎝ 0 −0.0453 −140.561 −21.413⎠ .<br />
0 0 −21.413 105.898<br />
Für <strong>die</strong> Diagonalelemente gilt:<br />
a (10)<br />
11 ≈ 547.387, a (10)<br />
22 ≈ 297.275, a (10)<br />
33 ≈ −140.561, a (10)<br />
44 ≈ 105.898.<br />
Diese Diagonalelemente stellen sehr gute Näherungen an alle Eigenwerte der Matrix A<br />
dar:<br />
|a (10)<br />
11 − λ 1 |<br />
≈ 0.00005,<br />
|λ 1 |<br />
|a (10)<br />
22 − λ 2 |<br />
≈ 0.00007,<br />
|λ 2 |<br />
|a (10)<br />
33 − λ 3 |<br />
≈ 0.01,<br />
|λ 3 |<br />
|a (10)<br />
44 − λ 4 |<br />
≈ 0.01.<br />
|λ 4 |<br />
180
5 <strong>Numerische</strong> Iterationsverfahren<br />
In <strong>die</strong>sem Kapitel besprechen wir numerische Iterationsverfahren (<strong>in</strong>sbesondere Fixpunktverfahren)<br />
als e<strong>in</strong>e weitere Lösungsmethode zur Lösung von l<strong>in</strong>earen Gleichungssystemen<br />
(Kapitel 4) sowie zur Lösung von nicht-l<strong>in</strong>earen Gleichungen (siehe Kapitel 2). Das zentrale<br />
Hilfsmittel ist der Banachsche Fixpunktsatz, der als Voraussetzung e<strong>in</strong>e Fixpunktformulierung<br />
der Aufgabenstellung verlangt. Alle Resultate <strong>die</strong>ses Kapitels werden direkt für<br />
den höherdimensionalen Fall hergeleitet.<br />
5.1 Der Banachsche Fixpunktsatz<br />
In dem ganzen Kapitel betrachten wir Iterationen der Art<br />
x 0 ∈ R n , x k+1 = g(x k ), k = 0, 1, 2, . . . ,<br />
mit e<strong>in</strong>er Abbildung g(·) : R n → R n . E<strong>in</strong> Punkt x ∈ R n heißt Fixpunkt, falls g(x) = x.<br />
Beispiel 5.1 (Newton-Verfahren als Fixpunktiteration). Zur Lösung e<strong>in</strong>es nicht-l<strong>in</strong>earen<br />
Gleichungssystems im R n sei<br />
oder <strong>in</strong> kurzer Schreibweise:<br />
f i (x 1 , . . . , x n ) = 0, i = 1, . . . , n,<br />
f(x) = 0<br />
mit f = (f 1 , . . . , f n ) T und (x 1 , . . . , x n ) T . Dann lässt sich das vere<strong>in</strong>fachte Newton-Verfahren<br />
schreiben als<br />
x k+1 = x k + C −1 f(x k ), k = 0, 1, 2, . . .<br />
mit e<strong>in</strong>er Matrix C ∈ R n×n . Das Standard Verfahren von Newton verlangt <strong>die</strong> erste Ableitung,<br />
so dass C := f ′ (x k ) ∈ R n×n . Die Berechnung der höherdimensionalen Ableitung<br />
zeigen wir später.<br />
Im Folgenden sei ‖·‖ e<strong>in</strong>e beliebige Vektornorm auf R n und ‖·‖ <strong>die</strong> entsprechende natürliche<br />
Matrizennorm. Die ausführliche Diskussion der entsprechenden Eigenschaften f<strong>in</strong>det der<br />
aufmerksame Leser <strong>in</strong> Kapitel 4.<br />
Zunächst rekapitulieren wir <strong>die</strong> bereits aus der Analysis bekannte Lipschitz-Stetigkeit e<strong>in</strong>er<br />
Funktion:<br />
181
5 <strong>Numerische</strong> Iterationsverfahren<br />
Def<strong>in</strong>ition 5.2 (Lipschitz-Stetigkeit, Kontraktion). Es sei G ⊂ R n e<strong>in</strong>e nichtleere abgeschlossene<br />
Menge. E<strong>in</strong>e Abbildung g : G → R n wird Lipschitz-stetig genannt, falls<br />
‖g(x) − g(y)‖ ≤ q‖x − y‖, x, y ∈ G,<br />
mit q > 0. Falls 0 < q < 1, so nennt man g e<strong>in</strong>e Kontraktion auf G.<br />
Zur Rekapitulation:<br />
Bemerkung 5.3. Differenzierbarkeit ⇒ absolute Stetigkeit ⇒ Lipschitz-Stetigkeit ⇒<br />
gleichmäßige Stetigkeit ⇒ Stetigkeit.<br />
Zum Beispiel ist <strong>die</strong> Wurzelfunktion f(x) = √ x auf [0, 1] zwar gleichmäßig stetig aber<br />
nicht Lipschitz-stetig.<br />
Der Banachsche Fixpunktsatz besagt nun, dass jede Selbstabbildung g : G → G, welche<br />
e<strong>in</strong>e Kontraktion ist, e<strong>in</strong>en Fixpunkt besitzt:<br />
Satz 5.4 (Banach’scher Fixpunktsatz). Es sei G ⊂ R n e<strong>in</strong>e nichtleere und abgeschlossene<br />
Punktmenge und g : G → G e<strong>in</strong>e Lipschitz-stetige Selbstabbildung, mit Lipschitz-Konstante<br />
q < 1 (also e<strong>in</strong>e Kontraktion).<br />
• Dann existiert genau e<strong>in</strong> Fixpunkt z ∈ G von g und <strong>die</strong> Iterationsfolge (x k ) k konvergiert<br />
für jeden Startpunkt x 0 ∈ G, so dass x k → z für k → ∞.<br />
• Es gilt <strong>die</strong> a priori Abschätzung:<br />
‖x k − z‖ ≤<br />
• Es gilt <strong>die</strong> a posteriori Abschätzung:<br />
‖x k − z‖ ≤<br />
qk<br />
1 − q ‖x1 − x 0 ‖.<br />
q<br />
1 − q ‖xk − x k−1 ‖.<br />
Beweis:<br />
(i) Existenz e<strong>in</strong>es Grenzwertes. Da g e<strong>in</strong>e Selbstabbildung <strong>in</strong> G ist, s<strong>in</strong>d alle Iterierten<br />
x k = g(x k−1 ) = . . . = g k (x 0 ) bei Wahl e<strong>in</strong>es beliebigen Startpunkts x 0 ∈ G def<strong>in</strong>iert.<br />
Aufgrund der Kontraktionseigenschaft gilt:<br />
‖x k+1 − x k ‖ = ‖g(x k ) − g(x k−1 )‖ ≤ q‖x k − x k−1 ‖ ≤ . . . ≤ q k ‖x 1 − x 0 ‖.<br />
182
5.1 Der Banachsche Fixpunktsatz<br />
Wir zeigen, dass (x k ) k e<strong>in</strong>e Cauchy-Folge ist. Für jedes l ≥ m erhalten wir:<br />
‖x l − x m ‖ ≤ ‖x l − x l−1 ‖ + . . . + ‖x m+1 − x m ‖<br />
≤ (q l−1 + q l−2 + . . . + q m )‖x 1 − x 0 ‖<br />
= q m 1 − ql−m<br />
‖x 1 − x 0 ‖<br />
1 − q<br />
≤ q m 1<br />
1 − q ‖x1 − x 0 ‖ → 0 (l ≥ m → 0).<br />
(5.1)<br />
D.h., (x l ) l∈N ist e<strong>in</strong>e Cauchy-Folge. Da alle Folgenglieder <strong>in</strong> G liegen und G als abgeschlossene<br />
Teilmenge des R n vollständig ist, existiert der Grenzwert x l → z ∈ G.<br />
(ii) Fixpunkteigenschaft. Als zweites weisen wir nach, dass z tatsächlich e<strong>in</strong> Fixpunkt von<br />
g ist. Aus der Stetigkeit von g folgt mit x k → z auch g(x k ) → g(z). Dann gilt für <strong>die</strong><br />
Iteration x k+1 := g(x k ) bei Grenzübergang<br />
z ← x k+1 = g(x k ) → g(z)<br />
(k → ∞).<br />
(iii) E<strong>in</strong>deutigkeit. Die E<strong>in</strong>deutigkeit folgt aus der Kontraktionseigenschaft. Es seien z und<br />
ẑ zwei Fixpunkte von g. Dann ist<br />
‖z − ẑ‖ = ‖g(z) − g(ẑ)‖ ≤ q‖z − ẑ‖.<br />
Dies kann wegen q < 1 nur dann gültig se<strong>in</strong>, wenn ‖z − ẑ‖ = 0, d.h. z = ẑ ist. Damit ist<br />
der Fixpunkt e<strong>in</strong>deutig.<br />
(iv) A priori Fehlerabschätzung. Es gilt mit (5.1)<br />
‖z − x m ‖ ←−−−<br />
l→∞ ‖xl − x m ‖ ≤ q m 1<br />
1 − q ‖x1 − x 0 ‖.<br />
(v) A posteriori Fehlerabschätzung. Es gilt wieder mit (5.1):<br />
‖x m 1<br />
− z‖ ≤ q<br />
1 − q ‖xm − x m−1 ‖.<br />
Zur Anwendung des Banachschen Fixpunktsatzes auf e<strong>in</strong>e Abbildung g : G ⊂ R n → R n<br />
müssen <strong>die</strong> beiden Voraussetzungen Selbstabbildung sowie Kontraktionseigenschaft nachgewiesen<br />
werden. Angenommen, g sei e<strong>in</strong>e Kontraktion. Dann müssen wir <strong>die</strong> Existenz<br />
e<strong>in</strong>er abgeschlossenen und nichtleeren Teilmenge von G nachweisen, welche von der Abbildung<br />
g auf sich selbst abgebildet wird. Angenommen, auf der Kugel<br />
K ρ (c) := {x ∈ R n | ‖x − c‖ ≤ ρ}, ρ > 0, c ∈ R n ,<br />
sei g e<strong>in</strong>e Kontraktion mit Lipschitz-Konstante q < 1. Dann gilt für x ∈ K ρ (c):<br />
‖g(x) − c‖ ≤ ‖g(x) − g(c)‖ + ‖g(c) − c‖,<br />
□<br />
183
5 <strong>Numerische</strong> Iterationsverfahren<br />
wobei ‖g(x) − g(c)‖ ≤ qρ. Falls zusätzlich gilt:<br />
dann ist<br />
und g bildet <strong>in</strong> sich selbst ab.<br />
‖g(c) − c‖ ≤ (1 − q)ρ,<br />
‖g(x) − c‖ ≤ qρ + (1 − q)ρ = ρ<br />
Als nächstes rekapitulieren wir den Schrankensatz, der <strong>die</strong> erste Ableitung (partielle Ableitung)<br />
mit der Lipschitz-Stetigkeit verknüpft:<br />
Satz 5.5 (Schrankensatz). Die Abbildung g : G → R n sei stetig differenzierbar auf der<br />
konvexen Menge G. Dann gilt<br />
‖g(x) − g(y)‖ ≤ sup ‖g ′ (ξ)‖ ‖x − y‖, x, y ∈ G,<br />
ξ∈G<br />
mit der partiellen Ableitung (Jacobi-Matrix, weiter unten ausführlicher)<br />
g ′ (x) =<br />
( )<br />
∂gi<br />
∂x j<br />
i,j=1,...,n<br />
∈ R n×n .<br />
Falls sup ξ∈G ‖g ′ (ξ)‖ < 1, dann ist g e<strong>in</strong>e Kontraktion auf G. Insbesondere gilt <strong>in</strong> 1D auf<br />
dem Intervall G := [a, b]:<br />
q := max<br />
ξ∈[a,b] |g′ (ξ)|.<br />
Beweis: Der 1D-Fall ist e<strong>in</strong> Spezialfall des höher-dimensionalen Falles. Aufgrund se<strong>in</strong>er<br />
E<strong>in</strong>fachheit beweisen wir <strong>in</strong> separat.<br />
(i) Der e<strong>in</strong>dimensionale Fall. Es seien x, y ∈ [a, b]. Nach dem reellen Mittelwertsatz gibt<br />
es e<strong>in</strong> ξ ∈ [a, b], so dass<br />
|g(x) − g(y)| = |g ′ (ξ)(x − y)| = |g ′ (ξ)| |x − y| ≤ q|x − y|.<br />
(ii) Der n-dimensionale Fall. Es seien x, y ∈ G. Wir setzen aus Normierungsgründen für<br />
i = 1, . . . , n:<br />
φ i (s) := g i (x + s(y − x)), 0 ≤ s ≤ 1.<br />
Dann gilt<br />
Für <strong>die</strong> Ableitung gilt<br />
g i (x) − g i (y) = φ i (1) − φ i (0) =<br />
∫ 1<br />
0<br />
φ ′ (s) ds.<br />
φ ′ i(s) =<br />
n∑<br />
j=1<br />
∂g i<br />
∂x j<br />
(x + s(y − x))(y − x) j .<br />
184
5.1 Der Banachsche Fixpunktsatz<br />
Hiermit und den Stetigkeitseigenschaften der Vektornorm (e<strong>in</strong>e Norm ist immer e<strong>in</strong>e stetige<br />
Abbildung!) folgt<br />
∫ 1<br />
‖g(y) − g(x)‖ =<br />
∥ g ′ (x + s(y − x)) · (y − x) ds<br />
∥<br />
≤<br />
0<br />
∫ 1<br />
0<br />
‖g ′ (x + s(y − x))‖ ds ‖y − x‖<br />
≤ sup ‖g ′ (ξ)‖ ‖y − x‖.<br />
ξ∈G<br />
Zusammenfassen der Ergebnisse liefert das wichtige:<br />
Korollar 5.6. Zu jedem Fixpunkt z ∈ G der Abbildung g mit ‖g ′ (z)‖ < 1 gibt es e<strong>in</strong>e<br />
Umgebung<br />
K ρ = {x ∈ R n | ‖x − z‖ ≤ ρ} ⊂ G,<br />
so das g e<strong>in</strong>e Kontraktion von K ρ (z) <strong>in</strong> sich selbst ist.<br />
Beispiel 5.7 (Konvergenz zur Lösung nicht-l<strong>in</strong>earer Gleichungen). Zu f :∈ R n → R n<br />
suchen wir e<strong>in</strong>e Nullstelle x ∈ R n mit f(x) = 0. Mit e<strong>in</strong>er Matrix C ∈ R n×n def<strong>in</strong>ieren<br />
wir <strong>die</strong> Iteration:<br />
x 0 ∈ R n , x k+1 = x k + C −1 f(x k ), k = 0, 1, 2, . . .<br />
Dieses Verfahren konvergiert, falls f auf e<strong>in</strong>er Kugel K ρ (c) ⊂ R n stetig differenzierbar ist<br />
und<br />
sup<br />
ζ∈K ρ(c)<br />
‖I + C −1 f ′ (ζ)‖ =: q < 1, ‖C −1 f(c)‖ ≤ (1 − q)ρ.<br />
Beispiel 5.8 (Lösung l<strong>in</strong>earer Gleichungssysteme). Es seien A ∈ R n×n und b ∈ R n<br />
gegeben. Das l<strong>in</strong>eare Gleichungssystem ist äquivalent zur Nullstellenaufgabe<br />
f(x) := b − Ax = 0.<br />
Die iterative Lösung (im Gegensatz zur direkten Lösung) kann mit e<strong>in</strong>er regulären Matrix<br />
C ∈ R n×n als Fixpunktaufgabe hergeleitet werden:<br />
x = g(x) := x + C −1 f(x) = x + C −1 (b − Ax) = (I − C −1 A)x + C −1 b.<br />
Die Matrix B := I − C −1 A nennen wir <strong>die</strong> Iterationsmatrix der zugehörigen Fixpunktiteration<br />
(auch sukzessive Approximation genannt):<br />
Die Abbildung g ist wegen<br />
x k+1 = Bx k + C −1 b, k = 1, 2, . . . .<br />
‖g(x) − g(y)‖ = ‖B(x − y)‖ ≤ ‖B‖‖x − y‖<br />
für ‖B‖ < 1 mit B := I − C −1 A e<strong>in</strong>e Kontraktion auf ganz R n . Dann konvergiert <strong>die</strong><br />
Iterationsfolge gegen e<strong>in</strong>en Fixpunkt von g und somit zur Lösung von Ax = b.<br />
□<br />
185
5 <strong>Numerische</strong> Iterationsverfahren<br />
Bemerkung 5.9. Später werden wir mit Hilfe des Banachschen Fixpunktsatzes verschiedene<br />
Verfahren zur iterativen Lösung von l<strong>in</strong>earen Gleichungssystemen herleiten.<br />
Bemerkung 5.10. Die Konvergenzanalyse der Fixpunktverfahren kann mit Hilfe der bereits<br />
diskutieren Techniken <strong>in</strong> Kapitel 2.6 durchgeführt werden.<br />
5.2 Fixpunkt-Iterationen zum Lösen von nichtl<strong>in</strong>earen<br />
Gleichungen<br />
Wir rekapitulieren aus Kapitel 2, dass das klassische Newton-Verfahren <strong>in</strong> e<strong>in</strong>er Dimension<br />
als Fixpunktiteration aufgefasst werden kann. Die Newton-Iteration gehört zur Klasse der<br />
Fixpunktiterationen mit der Iterationsfunktion<br />
Jeder Fixpunkt z = F (z) ist offenbar e<strong>in</strong>e Nullstelle f(z) = 0.<br />
F (x) := x − f(x)<br />
f ′ (x) . (5.2)<br />
5.2.1 Newton-Verfahren im R n<br />
Aufgrund se<strong>in</strong>er herausragenden Bedeutung widmen wir dem Newton-Verfahren für höhere<br />
Dimensionen e<strong>in</strong>en eigenen Abschnitt. Die pr<strong>in</strong>zipiellen Aussagen (Existenz, quadratische<br />
Konvergenz, gedämpftes Newton-Verfahren, vere<strong>in</strong>fachtes Newton-Verfahren) s<strong>in</strong>d<br />
mit dem 1D-Fall vergleichbar.<br />
Es sei f : D ⊂ R n → R n . Zur Lösung von f(x) = (f 1 (x), . . . , f n (x)) = 0 lautet <strong>die</strong><br />
Newton-Iteration formal:<br />
x 0 ∈ R n , x k+1 = x k − f ′ (x k ) −1 f(x k ), k = 0, 1, 2, . . . (5.3)<br />
Die Ableitung f ′ (x) : R n → R n×n ist <strong>die</strong> Jacobi-Matrix von f:<br />
f ′ (x) ij = ∂f i<br />
∂x j<br />
, i, j = 1, . . . , n.<br />
Die Tatsache, dass <strong>die</strong> Ableitung von f im mehrdimensionalen Fall e<strong>in</strong>e Matrix ist, stellt<br />
den wesentlichen Unterschied zum e<strong>in</strong>dimensionalen Newton-Verfahren dar. Anstelle e<strong>in</strong>er<br />
Ableitung s<strong>in</strong>d nun n 2 Ableitungen zu berechnen. Und anstelle e<strong>in</strong>er Division durch f ′ (x k )<br />
ist <strong>in</strong> jedem Schritt der Newton-Iteration e<strong>in</strong> l<strong>in</strong>eares Gleichungssystem mit Koeffizientenmatrix<br />
f ′ (x k ) ∈ R n×n zu lösen. Wir multiplizieren <strong>in</strong> (5.3) mit f ′ (x k ) und erhalten<br />
x 0 ∈ R n , f ′ (x k )x k+1 = f ′ (x k )x k − f(x k ), k = 0, 1, 2, . . .<br />
Das Newton-Verfahren wird als Defektkorrektur-Verfahren durchgeführt. So kann <strong>in</strong> jedem<br />
Schritt der Aufwand e<strong>in</strong>er Matrix-Vektor Multiplikation gespart werden:<br />
186
5.2 Fixpunkt-Iterationen zum Lösen von nichtl<strong>in</strong>earen Gleichungen<br />
Def<strong>in</strong>ition 5.11 (Newton-Verfahren als Defektkorrektur). Wähle Startwert x 0 ∈ R n und<br />
iteriere:<br />
f ′ (x k )δx = d k , d k := −f(x k ),<br />
x k+1 = x k + δx, k = 0, 1, 2, . . . .<br />
Im Folgenden diskutieren wir kurz das Aufstellen der Jacobi-Matrix. Die Funktion f besitzt<br />
n Komponentenfunktionen f i und n unterschiedliche Variablen x 1 , . . . , x n . Jede Änderung<br />
<strong>in</strong> e<strong>in</strong>er Komponentenfunktion f i bezüglich der Variablen x j wird durch <strong>die</strong> partielle Ableitung<br />
(Analysis 2) beschrieben:<br />
∂f i<br />
∂x j<br />
.<br />
Letztendlich erhalten wir somit e<strong>in</strong>e n × n Matrix:<br />
⎛<br />
⎞<br />
∂f 1 ∂f 1 ∂f ∂x 1 ∂x 2<br />
. . . n<br />
∂x 1<br />
∂f 2 ∂f 2 ∂f<br />
f ′ ∂x<br />
(x) =<br />
1 ∂x 2<br />
. . . 2<br />
∂x n<br />
⎜ . ⎝ . . .. . ⎟<br />
⎠<br />
∂f n ∂f n ∂f<br />
∂x 1 ∂x 2<br />
. . . n<br />
∂x n<br />
.<br />
5.2.2 Newton-Kantorovich<br />
Die zentrale Konvergenzaussage des Newton-Verfahrens wird im Satz von Newton-Kantorovich<br />
zusammengefasst. Hierzu sei f : G ⊂ R n → R n e<strong>in</strong>e differenzierbare Abbildung. Mit ‖ · ‖<br />
bezeichnen wir stets <strong>die</strong> euklidische Vektornorm und <strong>in</strong>duzierte Matrixnorm, also <strong>die</strong> Spektralnorm.<br />
Wir suchen e<strong>in</strong>e Nullstelle z ∈ R n so dass f(z) = 0.<br />
187
5 <strong>Numerische</strong> Iterationsverfahren<br />
Satz 5.12 (Newton-Kantorovich). Es sei D ⊂ R n e<strong>in</strong>e offene und konvexe Menge. Weiterh<strong>in</strong><br />
sei f : D ⊂ R n → R n stetig-differenzierbar.<br />
(i) Die Jacobi-Matrix f ′ sei gleichmäßig Lipschitz-stetig für alle x, y ∈ D:<br />
‖f ′ (x) − f ′ (y)‖ ≤ γ‖x − y‖, x, y ∈ D. (5.4)<br />
(ii) Weiter habe <strong>die</strong> Jacobi-Matrix auf D e<strong>in</strong>e gleichmäßig beschränkte Inverse<br />
(iii) Es gelte für den Startpunkt x 0 ∈ D:<br />
(iv) Für r := 2α ist <strong>die</strong> abgeschlossene Kugel<br />
‖f ′ (x) −1 ‖ ≤ β, x ∈ D. (5.5)<br />
q := αβγ < 1 2 , α := ‖f ′ (x 0 ) −1 f(x 0 )‖. (5.6)<br />
B r (x 0 ) := {x ∈ R n : ‖x − x 0 ‖ ≤ r}<br />
<strong>in</strong> der Menge D enthalten.<br />
Dann besitzt <strong>die</strong> Funktion f e<strong>in</strong>e Nullstelle z ∈ B r (x 0 ) und <strong>die</strong> Newton-Iteration<br />
f ′ (x k )δx = d k , d k := −f(x k ),<br />
x k+1 = x k + δx, k = 0, 1, 2, . . . .<br />
konvergiert quadratisch gegen <strong>die</strong>se Nullstelle z. Darüber h<strong>in</strong>aus gilt <strong>die</strong> a priori Fehlerabschätzung<br />
‖x k − z‖ ≤ 2αq 2k −1 , k = 0, 1, . . . .<br />
Beweis: Der Beweis zum Satz ist weitaus aufwändiger als im e<strong>in</strong>dimensionalen Fall, daher<br />
geben wir zunächst e<strong>in</strong>e Skizze an:<br />
(i) Herleitung von Hilfsabschätzungen.<br />
(ii) Alle Iterierten liegen <strong>in</strong> der Kugel B r (x 0 ) und es gilt <strong>die</strong> a priori Fehlerabschätzung<br />
für ‖x k − x 0 ‖ (Beweis über vollständige Induktion).<br />
(iii) Zeige (x k ) k∈N ist Cauchy-Folge und hat damit <strong>in</strong> R n e<strong>in</strong>en e<strong>in</strong>deutigen Grenzwert z.<br />
(iv) Existenz e<strong>in</strong>er Nullstelle: Zeige, dass z e<strong>in</strong>e Nullstelle der Funktion f ist.<br />
(v) E<strong>in</strong>deutigkeit: Zeige, dass <strong>die</strong> Nullstelle z e<strong>in</strong>deutig ist.<br />
Nun zum ausführlichen Beweis:<br />
(i) Herleitung von Hilfsabschätzungen:<br />
Es seien x, y, z ∈ D. Da D konvex ist, gilt für alle x, y ∈ D:<br />
f j (x) − f j (y) =<br />
∫ 1<br />
0<br />
d<br />
ds f j(sx + (1 − s)y) ds, j = 1, . . . , n.<br />
188
5.2 Fixpunkt-Iterationen zum Lösen von nichtl<strong>in</strong>earen Gleichungen<br />
Mit der Kettenregel erhalten wir<br />
und damit<br />
d<br />
ds f j(sx + (1 − s)y) =<br />
f j (x) − f j (y) =<br />
∫ 1<br />
0<br />
n∑<br />
k=1<br />
In kompakter Schreibweise bedeutet <strong>die</strong>s:<br />
f(x) − f(y) =<br />
∫ 1<br />
0<br />
n∑<br />
k=1<br />
∂f j<br />
∂x k<br />
( sx + (1 − s)<br />
) (xk − y k )<br />
∂f j<br />
∂x k<br />
( sx + (1 − s)y<br />
) (xk − y k ) ds.<br />
f ′ (sx + (1 − s)y)(x − y) ds.<br />
Unter H<strong>in</strong>zunahme von f ′ (z)(y − x) folgern wir nun, dass<br />
f(x) − f(y) − f ′ (z)(y − x) =<br />
∫ 1<br />
0<br />
( f ′ (sx + (1 − s)y) − f ′ (z) ) (x − y) ds.<br />
Mit Hilfe der Lipschitz-Stetigkeit von f ′ , Bed<strong>in</strong>gung (5.4), folgern wir<br />
∫ 1<br />
‖f(y) − f(x) − f ′ (z)(y − x)‖ ≤ γ‖y − x‖ ‖s(x − z) + (1 − s)(y − z)‖ ds<br />
0<br />
Für <strong>die</strong> Wahl z = x schließen wir damit auf<br />
≤ γ 2 ‖y − x‖( ‖x − z‖ + ‖y − z‖ ) .<br />
‖f(y) − f(x) − f ′ (x)(y − x)‖ ≤ γ 2 ‖y − x‖2 , ∀x, y ∈ D. (5.7)<br />
Und für <strong>die</strong> <strong>die</strong> Wahl z = x 0 erhalten wir:<br />
‖f(y) − f(x) − f ′ (x 0 )(y − x)‖ ≤ rγ‖y − x‖, ∀x, y ∈ B r (x 0 ). (5.8)<br />
(ii) Wir zeigen: alle Iterierten liegen <strong>in</strong> B r (x 0 ) und es gilt <strong>die</strong> a priori Fehlerabschätzung<br />
für ‖x k − x 0 ‖. Wir führen den Beweis über vollständige Induktion und zeigen:<br />
‖x k − x 0 ‖ ≤ r, ‖x k − x k−1 ‖ ≤ αq 2k −1 , k = 1, 2, . . . . (5.9)<br />
Wir starten mit k = 1. Es gilt mit Hilfe der Bed<strong>in</strong>gungen (5.5) und (5.6):<br />
Die Aussage ist also wahr.<br />
‖x 1 − x 0 ‖ = ‖f ′ (x 0 ) −1 f(x 0 )‖ = α = r 2 < r.<br />
Induktionsschritt k → k + 1. Nach Induktionsvoraussetzung seien <strong>die</strong> beiden Gleichungen<br />
(5.9) wahr für k ≥ 1. Das ist aufgrund der Bed<strong>in</strong>gung (5.5) und x k ∈ B r (x 0 ) ⊂ D,<br />
<strong>die</strong> Iterierte x k+1 wohl-def<strong>in</strong>iert. Dann gilt unter Ausnutzung von Bed<strong>in</strong>gung (5.5), der<br />
189
5 <strong>Numerische</strong> Iterationsverfahren<br />
Newton-Iteration für x k und Abschätzung (5.7), der Induktionsvoraussetzung (5.9) und<br />
der Def<strong>in</strong>ition von q folgende Abschätzungskette:<br />
Weiter erhalten wir<br />
‖x k+1 − x k ‖ = ‖f ′ (x k ) −1 f(x k )‖<br />
≤ β ‖f(x k )‖<br />
= β‖f(x k ) − f(x k−1 ) − f ′ (x k−1 )(x k − x k−1 )‖<br />
≤ βγ<br />
2 ‖xk − x k−1 ‖ 2<br />
≤ βγ [αq ] 2<br />
2k−1 −1<br />
2<br />
= α −1<br />
2 q2k<br />
< αq 2k −1 .<br />
‖x k+1 − x 0 ‖ ≤ ‖x k+1 − x k ‖ + . . . + ‖x 1 − x 0 ‖<br />
≤ α ( 1 + q + q 3 + q 7 + . . . + q 2k −1 )<br />
≤<br />
α<br />
1 − q<br />
≤ 2α<br />
= r.<br />
Damit ist der Induktionsschritt von k → k + 1 gezeigt, d.h., <strong>die</strong> beiden Ungleichungen<br />
(5.9) s<strong>in</strong>d gültig für k + 1.<br />
(iii) Existenz e<strong>in</strong>es Grenzwertes x k → z durch Nachweis der Cauchy-Eigenschaft:<br />
Es sei m > 0. Unter Ausnutzung von q < 1 2<br />
(Voraussetzung!) gilt<br />
‖x k − x k+m ‖ ≤ ‖x k − x k+1 ‖ + . . . + ‖x k+m−1 − x k+m ‖<br />
≤ α ( q 2k −1 + q 2k+1 −1 + . . . + q 2m+k−1 −1 )<br />
= αq 2k −1 ( 1 + q 2k + . . . + (q 2k ) 2m−1 −1 )<br />
≤ 2αq 2k −1<br />
(5.10)<br />
Damit ist gezeigt, dass (x k ) ⊂ D 0 e<strong>in</strong>e Cauchy-Folge ist, da q < 1 2<br />
. Da D endlichdimensional<br />
(hier ist jeder Raum e<strong>in</strong> Banachraum - also vollständig!), existiert der Limes<br />
z = lim<br />
k→∞ xk<br />
Im Grenzübergang k → ∞ erhalten wir dann <strong>in</strong> der ersten Ungleichung <strong>in</strong> (5.9):<br />
‖z − x 0 ‖ ≤ r,<br />
so dass z ∈ B r (x 0 ). Im Grenzübergang m → ∞ <strong>in</strong> (5.10), verifizieren wir <strong>die</strong> Fehlerabschätzung<br />
des Satzes:<br />
‖x k − z‖ ≤ 2αq 2k −1 , k = 0, 1, . . . .<br />
190
5.2 Fixpunkt-Iterationen zum Lösen von nichtl<strong>in</strong>earen Gleichungen<br />
(iv) Zeige, dass z ∈ B r (x 0 ) e<strong>in</strong>e Nullstelle von f ist:<br />
Die Newton-Iterationsvorschrift sowie Bed<strong>in</strong>gung (5.4) liefern<br />
Daher gilt<br />
‖f(x k )‖ = ‖f ′ (x k )(x k − x k−1 )‖<br />
≤ ‖f ′ (x k ) − f ′ (x 0 ) + f ′ (x 0 )‖ ‖x k+1 − x k ‖<br />
≤ ( γ‖x k − x 0 ‖ + ‖f ′ (x 0 )‖ ) ‖x k+1 − x k ‖<br />
→ 0, k → ∞.<br />
f(x k ) → 0, k → ∞.<br />
Die Stetigkeit von f impliziert dann f(z) = 0.<br />
(v) E<strong>in</strong>deutigkeit der Nullstelle z ∈ B r (x 0 ):<br />
Die E<strong>in</strong>deutigkeit wird mit Hilfe der Kontraktionseigenschaft und der Formulierung der<br />
Newton-Iteration als Fixpunktiteration gezeigt. Die gefundene Nullstelle x k → z von f(x)<br />
ist auch Fixpunkt der vere<strong>in</strong>fachten Iteration:<br />
ḡ(x) := x − f ′ (x 0 ) −1 f(x).<br />
Diese Iteration ist e<strong>in</strong>e Kontraktion, denn aus<br />
ḡ(x) − ḡ(y) = x − y − f ′ (x 0 ) −1 f(x) + f ′ (x 0 ) −1 f(y) = f ′ (x 0 ) −1 (f(y) − f(x) − f ′ (x 0 )(y − x)),<br />
folgt mit den Bed<strong>in</strong>gungen (5.5) und (5.6) sowie (5.8) <strong>die</strong> Abschätzung:<br />
‖ḡ(x) − ḡ(y)‖ ≤ ββγr‖y − x‖ ≤ 2q‖y − x‖, ∀x, y ∈ B r (x 0 ).<br />
Da q < 1 2<br />
ist ḡ e<strong>in</strong>e Kontraktion. E<strong>in</strong>e Kontraktionsabbildung kann höchstens e<strong>in</strong>en<br />
Fixpunkt haben. Da <strong>die</strong>ser Fixpunkt <strong>die</strong> Nullstelle von f ist, haben wir <strong>die</strong> Nullstelle<br />
z ∈ B r (x 0 ) e<strong>in</strong>deutig bestimmt. Damit ist alles gezeigt.<br />
□<br />
Bemerkung 5.13. Der Satz von Newton-Kantorovich unterscheidet sich <strong>in</strong> e<strong>in</strong>igen Punkten<br />
wesentlich von Satz 2.10 über das e<strong>in</strong>dimensionale Newton-Verfahren. Der wesentliche<br />
Unterschied ist <strong>die</strong> Regularität von f, welches beim Newton-Kantorovich nur über e<strong>in</strong>e<br />
Lipschitz-stetige Jacobi-Matrix anstelle von zweimal stetiger Differenzierbarkeit verfügen<br />
muss. Ferner muss <strong>die</strong> Existenz e<strong>in</strong>er Nullstelle nicht vorausgesetzt werden, sie folgt beim<br />
Newton-Kantorovich als Ergebnis des Satzes.<br />
Daher nun e<strong>in</strong>e der Hauptanwendungen des vorherigen Satzes 5.12: das folgende lokale<br />
Konvergenzresultat:<br />
Korollar 5.14. Es sei D ⊂ R n offen und f : D ⊂ R n → R n zweimal stetig-differenzierbar.<br />
Wir nehmen an, dass z ∈ D e<strong>in</strong>e Nullstelle mit regulärer Jacobi-Matrix f ′ (z) ist. Dann<br />
ist das Newton-Verfahren lokal konvergent, d.h. es existiert e<strong>in</strong>e Umgebung B um z, so<br />
dass das Newton-Verfahren für alle Startwerte x 0 ∈ B konvergiert.<br />
191
5 <strong>Numerische</strong> Iterationsverfahren<br />
Beweis: Den Beweis stellen wir als Übungsaufgabe.<br />
□<br />
Korollar 5.15. Korollar 5.14 stellt den Zusammenhang zu dem e<strong>in</strong>-dimensionalen Resultat<br />
her: Dazu sei z ∈ G e<strong>in</strong>e Nullstelle von f und ‖ · ‖ ∞ <strong>die</strong> Maximumsnorm. Damit<br />
können <strong>die</strong> Konstanten<br />
m = 1 β , M = γ<br />
bestimmt werden. Dann kann gilt zusätzlich zur a priori Fehlerabschätzung, <strong>die</strong> a posteriori<br />
Schranke:<br />
‖x k − z‖ ∞ ≤ 1 m ‖f(xk )‖ ∞ ≤ M 2m ‖xk − x k−1 ‖ 2 ∞, k = 1, 2, . . . .<br />
Beispiel 5.16. Newton im R n Wir suchen <strong>die</strong> Nullstelle der Funktion<br />
mit der Jacobi-Matrix<br />
(<br />
)<br />
1 − x<br />
f(x 1 , x 2 ) =<br />
2 − y 2<br />
,<br />
(x − 2y)/(1/2 + y)<br />
f ′ (x) =<br />
Die Nullstellen von f ist gegeben durch:<br />
(<br />
−2x −2y<br />
)<br />
2<br />
1+2y<br />
− 4+4x .<br />
(1+2y) 2<br />
x ≈ ±(0.894427, 0.447214).<br />
Wir starten <strong>die</strong> Iteration mit x 0 = (1, 1) T und erhalten <strong>die</strong> Iterierten:<br />
x 1 ≈<br />
( ) ( )<br />
1.14286<br />
, x 2 0.92659<br />
≈<br />
, x 3 ≈<br />
0.357143<br />
0.442063<br />
Nach nur vier Iterationen s<strong>in</strong>d <strong>die</strong> ersten sechs Stellen exakt.<br />
( )<br />
0.894935<br />
, x 4 ≈<br />
0.447349<br />
( )<br />
0.894427<br />
.<br />
0.447214<br />
5.2.3 Vere<strong>in</strong>fachtes und gedämpftes Newton-Verfahren<br />
Analog zum e<strong>in</strong>-dimensionalen Fall können wir auch im R n das vere<strong>in</strong>fachte und das<br />
gedämpfte Newton-Verfahren formulieren. Diese Verallgeme<strong>in</strong>erungen <strong>die</strong>nen im Wesentlichen<br />
wieder zwei Zwecken:<br />
• Durch festhalten der Inversen f ′ (c) −1 <strong>in</strong> e<strong>in</strong>em Punkt c ∈ R n kann <strong>in</strong> jedem folgenden<br />
Newton-Schritt e<strong>in</strong> l<strong>in</strong>eares Gleichungssystem mit derselben Matrix gelöst werden.<br />
• Durch E<strong>in</strong>fügen e<strong>in</strong>es Dämpfungsparameters kann der E<strong>in</strong>zugsbereich des Newton-<br />
Verfahrens vergrößert werden (Globalisierung).<br />
192
5.2 Fixpunkt-Iterationen zum Lösen von nichtl<strong>in</strong>earen Gleichungen<br />
Vere<strong>in</strong>fachtes Newton-Verfahren Im höher-dimensionalen Newton-Verfahren liegt der<br />
Hauptaufwand <strong>in</strong> der Lösung des l<strong>in</strong>earen Gleichungssystems <strong>in</strong> jedem Newton-Schritt.<br />
Daher macht sich hier <strong>die</strong> Verwendung e<strong>in</strong>es vere<strong>in</strong>fachten Newton-Verfahrens deutlicher<br />
bemerkbar als im e<strong>in</strong>dimensionalen Fall. Wir wählen e<strong>in</strong> c ∈ R n möglichst nahe an der<br />
gesuchten Nullstelle c ≈ z und iterieren:<br />
f ′ (c)(x k+1 − x k ) = −f(x k ), k = 1, 2, . . .<br />
Dabei kann z.B. c = x 0 gewählt werden. Das “e<strong>in</strong>frieren” der Inversen hat zwei Vorteile:<br />
zunächst muss <strong>die</strong>se seltener berechnet werden. Dies kann bei komplizierten Ableitungen,<br />
<strong>die</strong> möglicherweise nur numerisch bestimmt werden können e<strong>in</strong> wesentlicher Vorteil<br />
se<strong>in</strong>. Noch wichtiger ist jedoch, dass <strong>die</strong> Matrix f ′ (c) nur e<strong>in</strong>mal zerlegt werden muss,<br />
etwa f ′ (c) = LR. Diese Zerlegung kann dann <strong>in</strong> jedem Schritt zum Lösen des l<strong>in</strong>earen<br />
Gleichungssystems genutzt werden. Da e<strong>in</strong> Erstellen der Zerlegung O(n 3 ) und das<br />
anschließende Lösen nur O(n 2 ) Operationen benötigt, kann selbst dann e<strong>in</strong> enormer Effizienzgew<strong>in</strong>n<br />
erreicht werden, falls das vere<strong>in</strong>fachte Newton-Verfahren weit mehr Schritte<br />
benötigt. Das vere<strong>in</strong>fachte Newton-Verfahren kann nur noch l<strong>in</strong>ear konvergieren und <strong>die</strong><br />
Konvergenz kann e<strong>in</strong>fach durch Anwenden des Banachschen Fixpunktsatzes auf <strong>die</strong> Iterationsvorschrift<br />
x k+1 = x k − f ′ (c) −1 f(x k )<br />
gesichert werden.<br />
Bei e<strong>in</strong>em konkreten Verfahren mit x 0 und fester Matrix A kann während der Berechnung<br />
mit Hilfe des Banachschen Fixpunktsatzes geklärt werden, ob Konvergenz vorliegt. Hierzu<br />
kann der Kontraktionsfaktor q a posteriori berechnet werden:<br />
q k = ‖g(xk ) − g(x k−1 )‖<br />
‖x k − x k−1 ‖<br />
= ‖xk+1 − x k ‖<br />
‖x k − x k−1 , k = 1, 2, . . . .<br />
‖<br />
Die zugrundeliegende Norm kann <strong>die</strong> Maximums-Norm oder l 1 -Norm se<strong>in</strong> (siehe zu den<br />
Vektornormen auch Kapitel 4). Falls der Schätzfaktor q k ≪ 1, dann ist das vere<strong>in</strong>fachte<br />
Newton-Verfahren sehr wahrsche<strong>in</strong>lich konvergent. Falls q k ≈ 1 bzw. q k ≥ 1, dann liegt<br />
wahrsche<strong>in</strong>lich ke<strong>in</strong>e Konvergenz vor.<br />
Hier hat man nun folgende Möglichkeiten:<br />
• Wahl e<strong>in</strong>es besseren Startwertes x 0 ,<br />
• Bessere Wahl von f ′ (c) als Approximation für f ′ (x),<br />
• Oder e<strong>in</strong> vere<strong>in</strong>fachtes Newton-Verfahren <strong>in</strong> dem f ′ (c) z.B. alle 4 Schritte neu aufgebaut<br />
wird, um so ab und zu <strong>die</strong> Matrix anzupassen.<br />
Die letzte Methodik wird sehr häufig bei nicht-l<strong>in</strong>earen Problemen im Rahmen von partiellen<br />
Differentialgleichungen verwendet. Denn hier ist <strong>die</strong> kluge Wahl e<strong>in</strong>es Startwertes<br />
oftmals mit sehr viel Aufwand verbunden, weshalb <strong>die</strong> Möglichkeit 1 ausgeschlossen wird.<br />
Daher ist <strong>die</strong> Wahl von x 0 oftmals sehr schlecht, weshalb aber auch A := f ′ (x 0 ) e<strong>in</strong>e<br />
sehr schlechte Approximation von f ′ (z) ist. Deshalb sollte man nach z.B. 3 Schritten<br />
A := f ′ (x 3 ) wählen, um e<strong>in</strong>e bessere Approximation der Jacobi-Matrix zu erhalten.<br />
193
5 <strong>Numerische</strong> Iterationsverfahren<br />
Gedämpftes Newton-Verfahren Die Vergrößerung des Konvergenzbereiches (Globalisierung)<br />
kann mit Hilfe e<strong>in</strong>es Dämpfungsparameters erreicht werden. Hierzu wird <strong>die</strong> Newton-<br />
Iteration abgewandelt:<br />
x k+1 = x k − ω k f ′ (x k ) −1 f(x k ).<br />
Der Dämpfungsparameter ω k ist dabei im Intervall (0, 1] zu wählen. Dieser wird am Anfang<br />
kle<strong>in</strong> gewählt, um das Konvergenzgebiet zu vergrößern. Allerd<strong>in</strong>gs konvergiert das Verfahren<br />
dann nur mit l<strong>in</strong>earer Ordnung. Quadratische Konvergenz wird nur dann erreicht, falls<br />
für k → ∞ auch ω k → 1 gilt. Der folgenden Satz gibt e<strong>in</strong> konstruktives Kriterium, den<br />
Dämpfungsparameter ω k a posteriori bestimmen zu können.<br />
Satz 5.17 (Gedämpftes Newton-Verfahren). Unter den Voraussetzungen von Satz 5.12<br />
erzeugt <strong>die</strong> gedämpfte Newton-Iteration (siehe 2.4.4) mit<br />
ω k := m<strong>in</strong>{1,<br />
1<br />
α k βγ },<br />
α k := ‖f ′ (x k ) −1 f(x k )‖<br />
e<strong>in</strong>e Folge (x k ) k∈N , für <strong>die</strong> nach t ∗ Schritten<br />
q ∗ := α k∗ βγ < 1 2<br />
erfüllt ist. Ab dann konvergiert x k quadratisch und es gilt <strong>die</strong> a priori Fehlerabschätzung<br />
‖x k − z‖ ≤<br />
α<br />
1 − q ∗<br />
q 2k −1<br />
∗ , k ≥ k ∗ .<br />
Beweis: In [9].<br />
□<br />
In der praktischen Anwendung wird der Dämpfungsparameter oft über <strong>die</strong> sogenannte<br />
L<strong>in</strong>e-Search-Strategie bestimmt:<br />
Algorithmus 5.18 (Newton-Verfahren mit L<strong>in</strong>e-Search). Gegeben sei e<strong>in</strong> Startwert x 0 ∈<br />
R n sowie σ ∈ (0, 1). Iteriere für k = 0, 1, . . .<br />
(i) Löse f ′ (x k )w k = −f(x k )<br />
(ii) Starte mit ω 0 = 1 und iteriere für l = 0, 1, . . .<br />
solange bis |f(x k+1 )| < |f(x k )|.<br />
x k+1 = x k + ω l w k , ω l+1 = σω l ,<br />
Der L<strong>in</strong>e-Search Algorithmus versucht zunächst ohne Dämpfung zu iterieren. Besitzt <strong>die</strong><br />
neue Approximation allerd<strong>in</strong>gs e<strong>in</strong> größeres Residuum |f(x k+1 )| > |f(x k )|, so wird der<br />
Dämpfungsparameter schrittweise reduziert. Auf <strong>die</strong>se Weise wird monotone Konvergenz<br />
im Residuum erzwungen.<br />
194
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme<br />
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme<br />
Als zweite Hauptanwendung des Banachschen Fixpunktsatzes besprechen wir <strong>in</strong> <strong>die</strong>sem<br />
Kapitel <strong>die</strong> iterative Lösung l<strong>in</strong>earer Gleichungssysteme. Die <strong>in</strong> Kapitel 4 kennengelernten<br />
Zerlegungsverfahren (also LR, Cholesky sowie QR-Zerlegung) haben alle den Nachteil kubischer<br />
Laufzeit O(n 3 ). Gerade bei sehr großen Problemen wächst der Aufwand so schnell<br />
an, dass <strong>die</strong> Lösung <strong>in</strong> s<strong>in</strong>nvoller Zeit nicht zu erreichen ist, siehe Tabelle 4.1. Neben der<br />
Laufzeit spielt auch der Speicheraufwand e<strong>in</strong>e Rolle. Zur Speicherung e<strong>in</strong>er voll besetzten<br />
Matrix A ∈ R n×n mit n = 1 000 000 s<strong>in</strong>d bei doppelter Genauigkeit etwa 7 Terabyte (!!!)<br />
Speicher notwendig. Dies übersteigt jeden noch so modernen Computer. Die l<strong>in</strong>earen Gleichungssysteme<br />
<strong>die</strong> aus den meisten Anwendungen resultieren (etwa bei der Diskretisierung<br />
von Differentialgleichungen) s<strong>in</strong>d sehr dünn besetzt, d.h., <strong>in</strong> jeder Zeile stehen nur e<strong>in</strong>ige<br />
wenige E<strong>in</strong>träge. E<strong>in</strong>e dünn besetzte Matrix mit n = 1 000 000 aber nur 100 E<strong>in</strong>trägen<br />
pro Zeile benötigt zur Speicherung nur etwa 750 MB und passt <strong>in</strong> jeden Laptop. In Abschnitt<br />
4.2.5 haben wir Sortierverfahren kennengelernt, um <strong>die</strong>ses dünne Besetzungsmuster<br />
auch für e<strong>in</strong>e LR-Zerlegung nutzbar zu machen. Im Allgeme<strong>in</strong>en können <strong>die</strong> Matrizen L<br />
und R aber voll besetzt se<strong>in</strong> und somit den zur Verfügung stehenden Speicher wieder bei<br />
weitem übersteigen.<br />
E<strong>in</strong> weiterer Nachteil der Zerlegungsverfahren s<strong>in</strong>d numerische Stabilitätsprobleme. Durch<br />
Rundungsfehler beim Zerlegungsprozess gilt für <strong>die</strong> LR-Zerlegung üblicherweise nur A ≠<br />
˜L ˜R. D.h., obwohl <strong>die</strong> LR-Zerlegung e<strong>in</strong>e direkte Methode darstellt, kann das Gleichungssystem<br />
nicht exakt gelöst werden. Mit der Nachiteration haben wir <strong>in</strong> Abschnitt 4.3 e<strong>in</strong>e<br />
Methode kennengelernt, um <strong>die</strong>sen Fehlere<strong>in</strong>fluss durch sukzessive Iteration zu verr<strong>in</strong>gern.<br />
Mit der gestörten LR-Zerlegung A ≈ ˜L ˜R haben wir <strong>die</strong> Iteration<br />
x k+1 = x k + ˜R −1 ˜L−1 (b − Ax k ), k = 0, 1, 2, . . .<br />
def<strong>in</strong>iert. Obwohl ˜L und ˜R nicht exakt s<strong>in</strong>d, konvergiert <strong>die</strong>se Iteration (falls das Residuum<br />
d k := b − Ax k exakt berechnet werden kann), siehe Satz 4.45.<br />
In <strong>die</strong>sem Abschnitt werden wir auf der Basis der Nachiteration e<strong>in</strong>e eigene Verfahrensklasse<br />
zur iterativen Lösung großer Gleichungssysteme entwickeln. Dazu sei C ≈ A −1 e<strong>in</strong>e<br />
Approximation an <strong>die</strong> Inverse (etwa C := ˜R −1 ˜L−1 ). Dann def<strong>in</strong>ieren wir:<br />
Def<strong>in</strong>ition 5.19 (Fixpunktverfahren zum Lösen l<strong>in</strong>earer Gleichungssysteme). Es sei A ∈<br />
R n×n sowie b ∈ R n und C ∈ R n×n . Für e<strong>in</strong>en beliebigen Startwert x 0 ∈ R n iteriere für<br />
k = 1, 2, . . .<br />
x k = x k−1 + C(b − Ax k−1 ). (5.11)<br />
Alternativ führen wir <strong>die</strong> Bezeichnungen B := I − CA und c := Cb e<strong>in</strong>. Dann gilt:<br />
x k = Bx k−1 + c.<br />
Aufgrund der Konstruktion kann man sich e<strong>in</strong>fach klarmachen, dass durch <strong>die</strong> Vorschrift<br />
g(x) = Bx+c = x+C(b−Ax) wirklich e<strong>in</strong>e Fixpunktiteration mit der Lösung von Ax = b<br />
195
5 <strong>Numerische</strong> Iterationsverfahren<br />
als Fixpunkt gegeben ist. Die Konvergenz von allgeme<strong>in</strong>en (auch l<strong>in</strong>earen) Fixpunktiterationen<br />
kann leicht mit dem Banachschen Fixpunktsatz untersucht werden. Hierzu ist <strong>die</strong><br />
Kontraktionseigenschaft nachzuweisen:<br />
‖g(x) − g(y)‖ ≤ ‖B‖ ‖x − y‖.<br />
Es ergibt sich jedoch das Dilemma, das je nach verwendeter Matrixnorm ‖ · ‖ unterschiedliche<br />
Konvergenzresultate vorhergesagt werden. Für e<strong>in</strong>e Matrix B ∈ R n×n kann etwa<br />
‖B‖ 2 < 1 aber ‖B‖ ∞ > 1 gelten. Diese Beobachtung steht im Widerspruch zur Normäquivalenz<br />
im R n welche <strong>in</strong>sbesondere e<strong>in</strong>e Äquivalenz von Konvergenzausdrücken besagt.<br />
Um uns <strong>in</strong> der Analyse von konkreten Matrixnormen zu befreien beweisen wir zunächst<br />
e<strong>in</strong>en Hilfsatz:<br />
Hilfsatz 5.20 (Matrixnorm und Spektralradius). Zu jeder beliebigen Matrix B ∈ R n×n<br />
und zu jedem ɛ > 0 existiert e<strong>in</strong>e natürliche Matrixnorm ‖ · ‖ ɛ , so dass gilt:<br />
spr(B) ≤ ‖B‖ ɛ ≤ spr(B) + ɛ.<br />
Beweis: Für den allgeme<strong>in</strong>en Fall verweisen wir auf [9]. Hier machen wir uns nur klar,<br />
dass <strong>die</strong> Aussage für symmetrische Matrizen gilt. Denn <strong>in</strong> <strong>die</strong>sem Fall, siehe Satz 4.14 gilt<br />
sogar spr(B) = ‖B‖ 2 .<br />
□<br />
Mit <strong>die</strong>sem Hilfsatz zeigen wir das fundamentale Resultat über allgeme<strong>in</strong>e l<strong>in</strong>eare Fixpunktiterationen:<br />
Satz 5.21 (Fixpunktverfahren zum Lösen l<strong>in</strong>earer Gleichungssysteme). Die Iteration<br />
(5.11) konvergiert für jeden Startwert x 0 ∈ R n genau dann gegen <strong>die</strong> Lösung x ∈ R n<br />
von Ax = b falls ρ := spr(B) < 1. Dann gilt das asymptotische Konvergenzverhalten<br />
lim sup<br />
k→∞<br />
(<br />
‖x k ) 1/k<br />
− x‖<br />
‖x 0 = spr(B).<br />
− x‖<br />
Beweis: Wir führen den Beweis <strong>in</strong> drei Schritten. Zunächst (i) gehen wir davon aus, dass<br />
spr(B) < 1 und zeigen, dass x k → x. In Schritt (ii) zeigen wir <strong>die</strong> Rückrichtung und<br />
schließlich <strong>in</strong> Schritt (iii) <strong>die</strong> Konvergenzaussage.<br />
(0) Zunächst weisen wir nach, dass <strong>die</strong> Iteration überhaupt e<strong>in</strong>e Fixpunktiteration ist. Für<br />
<strong>die</strong> Lösung x ∈ R n von Ax = b gilt:<br />
Bx + c = (I − CA)x + Cb = x − C (Ax − b) = x.<br />
} {{ }<br />
=0<br />
E<strong>in</strong>e Konvergenzaussage erhalten wir jetzt sofort über den Fixpunktsatz von Banach.<br />
Weiter def<strong>in</strong>ieren den Fehler e k := x k − x und erhalten bei Ausnutzen der Fixpunkteigenschaft<br />
x = Bx + c <strong>die</strong> Iterationsvorschrift:<br />
e k = x k − x = Bx k−1 + c − (Bx + c) = Be k−1 .<br />
196
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme<br />
Entsprechend gilt:<br />
e k = B k e 0 = B k (x 0 − x). (5.12)<br />
(i) Hilfsatz 5.20 besagt, dass zu jedem ɛ > 0 e<strong>in</strong>e natürlichen Matrixnorm ‖ · ‖ ɛ existiert<br />
mit<br />
spr(B) ≤ ‖B‖ ɛ ≤ spr(B) + ɛ.<br />
Es sei nach Voraussetzung spr(B) < 1, dann existiert e<strong>in</strong> ɛ > 0 mit<br />
‖B‖ ɛ ≤ spr(B) + ɛ < 1,<br />
und aus (5.12) erhalten wir sofort bei k → ∞ <strong>in</strong> der entsprechenden <strong>in</strong>duzierten Vektornorm<br />
‖ · ‖ ɛ :<br />
‖e k ‖ ɛ = ‖B k e 0 ‖ ɛ ≤ ‖B k ‖ ɛ ‖e 0 ‖ ɛ ≤ ‖B‖ k ɛ ‖e 0 ‖ ɛ → 0.<br />
Da im R n alle Normen äquivalent s<strong>in</strong>d, konvergiert also x k → x für k → ∞.<br />
(ii) Es sei nach Voraussetzung <strong>die</strong> Iteration konvergent. Hieraus folgt (für beliebige Startwerte)<br />
mit der Wahl x 0 = w + x mit e<strong>in</strong>em Eigenvektor w ∈ R n \ {0} zum betragsmäßig<br />
größten Eigenwert λ von B mit (5.12):<br />
λ k w = B k w = B k e 0 = e k → 0 (k → ∞).<br />
Dies bedeutet notwendig |λ| < 1 für λ ∈ σ(B), d.h. spr(B) < 1.<br />
(iii) Fehlerabschätzung: Aufgrund der Äquivalenz aller Normen existieren Konstanten<br />
m, M mit m ≤ M so dass:<br />
Damit gilt<br />
m‖x‖ ≤ ‖x‖ ɛ ≤ M‖x‖, x ∈ R n .<br />
‖e k ‖ ≤ 1 m ‖ek ‖ ɛ = 1 m ‖Bk e 0 ‖ ɛ ≤ 1 m ‖B‖k ɛ ‖e 0 ‖ ɛ ≤ M m (spr(B) + ɛ)k ‖e 0 ‖.<br />
Wegen<br />
( M<br />
m<br />
) 1/k<br />
→ 1, (k → ∞)<br />
folgt damit<br />
(<br />
‖e k ) 1/k<br />
‖<br />
lim sup<br />
k→∞ ‖e 0 ≤ spr(B) + ɛ.<br />
‖<br />
Da ɛ > 0 beliebig kle<strong>in</strong> gewählt wird, folgt hiermit <strong>die</strong> Behauptung.<br />
□<br />
197
5 <strong>Numerische</strong> Iterationsverfahren<br />
5.3.1 Konstruktion von Fixpunktverfahren<br />
Satz 5.21 legt das theoretische Fundament für allgeme<strong>in</strong>e Fixpunkt-Iterationen. Für den<br />
Spektralradius ρ := spr(B) = spr(I − CA) muss gelten ρ < 1. Ziel <strong>die</strong>ses Abschnittes ist<br />
<strong>die</strong> Konstruktion von Iterationsmatrizen C, welche<br />
• möglichst Nahe an der Inversen C ≈ A −1 liegen, damit spr(I − CA) ≪ 1,<br />
• e<strong>in</strong>e möglichst e<strong>in</strong>fache Berechnung der Iteration x k = Bx k−1 + c ermöglichen.<br />
Die erste Forderung ist e<strong>in</strong>leuchtend und C = A −1 stellt <strong>in</strong> <strong>die</strong>sem S<strong>in</strong>ne <strong>die</strong> optimale<br />
Matrix dar. Die zweite Bed<strong>in</strong>gung beschreibt den Aufwand zum Durchführen der Fixpunktiteration.<br />
Wählen wir etwa C = ˜R −1 ˜L−1 so bedeutet jeder Schritt e<strong>in</strong> Vorwärtsund<br />
e<strong>in</strong> Rückwärtse<strong>in</strong>setzen, d.h. e<strong>in</strong>en Aufwand der Größenordnung O(n 2 ). H<strong>in</strong>zu kommen<br />
<strong>die</strong> O(n 3 ) Operationen zum e<strong>in</strong>maligen Erstellen der Zerlegung. Die Wahl C = I<br />
erlaubt e<strong>in</strong>e sehr effiziente Iteration mit O(n) Operationen <strong>in</strong> jedem Schritt und Bedarf<br />
ke<strong>in</strong>es zusätzlichen Aufwands zum Erstellen der Iterationsmatrix C. Die E<strong>in</strong>heitsmatrix<br />
I ist jedoch e<strong>in</strong>e sehr schlechte Approximation von A −1 . Die beiden Forderungen s<strong>in</strong>d<br />
Maximalforderungen und nicht gleichzeitig zu erreichen.<br />
Zur Konstruktion e<strong>in</strong>facher iterativer Verfahren spalten wir <strong>die</strong> Matrix A additiv auf zu<br />
A = L + D + R, mit<br />
⎛<br />
⎞ ⎛<br />
⎞ ⎛<br />
⎞<br />
0 . . . 0 a 11 . . . 0 0 a 21 . . . a n1<br />
. a ..<br />
. A = 21 .. . .. . .. .<br />
⎜ .<br />
⎝ . .. .<br />
+<br />
.. ⎟ ⎜ .<br />
+<br />
⎠ ⎝ .. ⎟ ⎜ .<br />
.<br />
⎠ ⎝ .. ⎟ an−1,n ⎠<br />
a n1 . . . a n,n−1 0 0 . . . a nn 0 . . . 0<br />
} {{ } } {{ } } {{ }<br />
=:L<br />
=:D<br />
=:R<br />
Diese additive Zerlegung ist nicht mit der multiplikativen LR-Zerlegung zu verwechseln!<br />
Ist <strong>die</strong> Matrix A bekannt, so s<strong>in</strong>d auch <strong>die</strong> additiven Bestandteile L, D, R unmittelbar<br />
verfügbar.<br />
Wir def<strong>in</strong>ieren <strong>die</strong> zwei wichtigsten Iterationsverfahren:<br />
Def<strong>in</strong>ition 5.22 (Jacobi-Verfahren). Zur Lösung von Ax = b mit A = L + D + R sei<br />
x 0 ∈ R n e<strong>in</strong> beliebiger Startwert. Iteriere für k = 1, 2, . . . :<br />
x k = x k−1 + D −1 (b − Ax k−1 ),<br />
bzw. mit der Jacobi-Iterationsmatrix J := −D −1 (L + R)<br />
x k = Jx k−1 + D −1 b.<br />
198
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme<br />
Def<strong>in</strong>ition 5.23 (Gauß-Seidel-Verfahren). Zur Lösung von Ax = b mit A = L + D + R<br />
sei x 0 ∈ R n e<strong>in</strong> beliebiger Startwert. Iteriere für k = 1, 2, . . . :<br />
x k = x k−1 + (D + L) −1 (b − Ax k−1 ),<br />
bzw. mit der Gauß-Seidel-Iterationsmatrix H := −(D + L) −1 R<br />
x k = Hx k−1 + (D + L) −1 b.<br />
Diese beiden Fixpunktverfahren s<strong>in</strong>d e<strong>in</strong>fach, aber dennoch sehr gebräuchlich. Zum Aufstellen<br />
der Iterationsmatrix C s<strong>in</strong>d ke<strong>in</strong>e Rechenoperationen notwendig. Es gilt:<br />
Satz 5.24 (Durchführung des Jacobi- und Gauß-Seidel-Verfahrens). E<strong>in</strong> Schritt des<br />
Jacobi- bzw. Gauß-Seidel-Verfahrens ist jeweils <strong>in</strong> n 2 + O(n) Operationen durchführbar.<br />
Für jeden Schritt des Jacobi-Verfahren gilt <strong>die</strong> Index-Schreibweise<br />
⎛<br />
⎞<br />
x k i = 1<br />
n∑<br />
⎝b i − a ij x k−1 ⎠<br />
j , i = 1, . . . , n,<br />
a ii<br />
j=1,j≠i<br />
für das Gauß-Seidel-Verfahren gilt <strong>die</strong> Vorschrift:<br />
⎛<br />
x k i = 1 ⎝b i − ∑ a ij x k j − ∑ a ii ji<br />
a ij x k−1<br />
j<br />
⎞<br />
⎠ , i = 1, . . . , n.<br />
Beweis: Übung!<br />
□<br />
Jeder Schritt <strong>die</strong>ser Verfahren benötigt mit O(n 2 ) größenordnungsmäßig genauso viele<br />
Operationen wie <strong>die</strong> Nachiteration mit der LR-Zerlegung. Bei Jacobi- und Gauß-Seidel<br />
s<strong>in</strong>d jedoch weit schlechtere Konvergenzraten zu erwarten (wenn <strong>die</strong> Verfahren überhaupt<br />
konvergieren, <strong>die</strong>ser Nachweis steht hier noch aus!). Der Vorteil der e<strong>in</strong>fachen Iterationsverfahren<br />
zeigt sich erst bei dünn besetzten Matrizen. Hat e<strong>in</strong>e Matrix A ∈ R n×n nur<br />
O(n) E<strong>in</strong>träge, so benötigt jeder Iterationsschritt nur O(n) Operationen.<br />
5.3.2 Konvergenzkriterium für Jacobi- und Gauß-Seidel-Iteration<br />
Zur Untersuchung der Konvergenz muss gemäß Satz 5.21 der Spektralradius der Iterationsmatrizen<br />
J = −D −1 (L+R) sowie H := −(D +L) −1 R untersucht werden. Im E<strong>in</strong>zelfall<br />
ist <strong>die</strong>se Untersuchung nicht ohne weiteres möglich und e<strong>in</strong>er Matrix A kann der entsprechende<br />
Spektralradius nur schwer angesehen werden. Daher leiten wir <strong>in</strong> <strong>die</strong>sem Abschnitt<br />
e<strong>in</strong>fach überprüfbare Kriterien her, um e<strong>in</strong>e Aussage über <strong>die</strong> Konvergenz der beiden Verfahren<br />
treffen zu können. Zunächst gilt:<br />
199
5 <strong>Numerische</strong> Iterationsverfahren<br />
Satz 5.25 (Starkes Zeilensummenkriterium). Falls <strong>die</strong> Zeilensummen der Matrix A ∈<br />
R n×n der strikte Diagonaldom<strong>in</strong>anz genügt<br />
n∑<br />
k=1,k≠j<br />
|a jk | < |a jj |, j = 1, . . . , n,<br />
so gilt spr(J) < 1 bzw. spr(H) < 1, sprich Jacobi- und Gauß-Seidel-Verfahren konvergieren.<br />
Beweis: Wir beweisen den Satz für beide Verfahren gleichzeitig. Es seien λ ∈ σ(J) bzw.<br />
µ ∈ σ(H) und v bzw. w <strong>die</strong> zugehörigen Eigenvektoren. Das bedeutet für das Jacobi-<br />
Verfahren<br />
λv = Jv = D −1 (L + R)v,<br />
und für das Gauß-Seidel-Verfahren<br />
µw = Hw = −(D + L) −1 Rw ⇔ µw = −D −1 (µL + R)w.<br />
Falls ‖v‖ ∞ = ‖w‖ ∞ = 1, dann folgt hieraus für das Jacobi-Verfahren<br />
⎧<br />
⎨<br />
|λ| ≤ ‖D −1 (L + R)‖ ∞ ‖v‖ ∞ = ‖D −1 1<br />
(L + R)‖ ∞ ≤ max<br />
j=1,...,n ⎩|a jj |<br />
und für das Gauß-Seidel-Verfahren<br />
|µ| ≤ ‖D −1 (µL+R)‖ ∞ ‖w‖ ∞ = ‖D −1 (µL+R)‖ ∞ ≤ max<br />
⎧<br />
⎨<br />
1<br />
1≤j≤n ⎩|a jj | [∑ kj<br />
Hier muss jetzt noch |µ| < 1 gezeigt werden. Für |µ| ≥ 1 ergäbe sich der Widerspruch<br />
woraus notwendig |µ| < 1 folgt.<br />
|µ| ≤ |µ|‖D −1 (L + R)‖ ∞ < |µ|<br />
Dieses Kriterium ist e<strong>in</strong>fach zu überprüfen und erlaubt sofort e<strong>in</strong>e E<strong>in</strong>schätzung, ob Jacobiund<br />
Gauß-Seidel-Verfahren bei e<strong>in</strong>er gegebenen Matrix konvergieren. Es zeigt sich jedoch,<br />
dass <strong>die</strong> strikte Diagonaldom<strong>in</strong>anz e<strong>in</strong>e zu starke Forderung darstellt: <strong>die</strong> schon bekannte<br />
Modellmatrix der Form<br />
⎛<br />
⎞ ⎛<br />
⎞ ⎛<br />
⎞<br />
B −I<br />
4 −1<br />
1<br />
−I B −I<br />
A = ⎜<br />
⎟<br />
⎝ −I B −I⎠ , B = −1 4 −1<br />
⎜<br />
⎟<br />
⎝ −1 4 −1⎠ , I = 1<br />
⎜<br />
⎟<br />
⎝ 1 ⎠ ,<br />
−I B<br />
−1 4<br />
1<br />
ist nur Diagonaldom<strong>in</strong>ant (siehe Def<strong>in</strong>ition 4.31), jedoch nicht strikt Diagonaldom<strong>in</strong>ant.<br />
(Es zeigt sich aber, dass sowohl Jacobi- als auch Gauß-Seidel-Verfahren dennoch konvergieren).<br />
E<strong>in</strong>e Abschwächung der Konvergenzaussage erhalten wir mit Hilfe der folgenden<br />
Def<strong>in</strong>ition:<br />
□<br />
200
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme<br />
Def<strong>in</strong>ition 5.26 (Irreduzibel). E<strong>in</strong>e Matrix A ∈ R n×n heißt irreduzibel, wenn es ke<strong>in</strong>e<br />
Permutationsmatrix P gibt, so dass <strong>die</strong> Matrix A durch Spalten- und Zeilen <strong>in</strong> e<strong>in</strong>e Block-<br />
Dreiecksmatrix zerfällt:<br />
)<br />
(Ã11<br />
P AP T 0<br />
=<br />
à 21 à 22<br />
mit den Matrizen Ã11 ∈ R p×p , Ã 22 ∈ R q×q , Ã 21 ∈ R q×p , mit p, q > 0, p + q = n.<br />
Ob e<strong>in</strong>e gegebene Matrix A ∈ R n×n irreduzibel ist lässt sich nicht unmittelbar bestimmen.<br />
Oft hilft das folgende äquivalente Kriterium, welches e<strong>in</strong>facher zu überprüfen ist:<br />
Satz 5.27 (Irreduzibel). E<strong>in</strong>e Matrix A ∈ R n×n ist genau dann irreduzibel, falls der<br />
zugehörige gerichtete Graph<br />
G(A) = {Knoten: {1, 2, . . . , n}, Kannten: {i, j} falls a ij ≠ 0}<br />
zusammenhängend ist. Dies heißt: zu zwei beliebigen Knoten i und j existiert e<strong>in</strong> Pfad<br />
{i, i 1 } =: {i 0 , i 1 }, {i 1 , i 2 }, . . . , {i m−1 , i m } := {i m−1 , j} mit {i k−1 , i k } ∈ G(A).<br />
Für den Beweis verweisen wir auf [9]. Nach <strong>die</strong>ser alternativen Charakterisierung bedeutet<br />
<strong>die</strong> Irreduzibilität, dass zu je zwei Indizes i, j e<strong>in</strong> Pfad i = i 0 , i 1 , . . . , i m =: j besteht, so<br />
dass a ik−1 ,i k ≠ 0 ist. Anschaulich entspricht <strong>die</strong>s e<strong>in</strong>em abwechselnden Spr<strong>in</strong>gen <strong>in</strong> Zeilen<br />
und Spalten der Matrix A, wobei nur E<strong>in</strong>träge ungleich Null getroffen werden dürfen.<br />
Nun gilt:<br />
Satz 5.28 (Schwaches Zeilensummenkriterium). Die Matrix A ∈ R n×n sei irreduzibel und<br />
es gelte das schwache Zeilensummenkriterium, d.h., <strong>die</strong> Matrix A sei diagonaldom<strong>in</strong>ant:<br />
n∑<br />
k=1,k≠j<br />
|a jk | ≤ |a jj |, j = 1, . . . , n,<br />
und <strong>in</strong> m<strong>in</strong>destens e<strong>in</strong>er Zeile r ∈ {1, . . . , n} gelte strikte Diagonaldom<strong>in</strong>anz:<br />
n∑<br />
k=1,k≠r<br />
|a rk | < |a rr |.<br />
Dann ist A regulär und es gilt spr(J) < 1 bzw. spr(H) < 1. D.h., Jacobi- und Gauß-<br />
Seidel-Verfahren konvergieren.<br />
Beweis: (i) Durchführbarkeit der Verfahren:<br />
Aufgrund der Irreduzibilität von A gilt notwendig<br />
n∑<br />
|a jk | > 0, j = 1, . . . , n.<br />
k=1<br />
201
5 <strong>Numerische</strong> Iterationsverfahren<br />
Wegen der vorausgesetzten Diagonaldom<strong>in</strong>anz folgt dann hieraus a jj ≠ 0 für j = 1, 2, . . . , n.<br />
(ii) Zeige spr(J) ≤ 1 und spr(H) ≤ 1:<br />
Diese Aussage erhalten wir entsprechend zum Vorgehen im Beweis zu Satz 5.25. Es bleibt<br />
zu zeigen, dass ke<strong>in</strong> Eigenwert den Betrag E<strong>in</strong>s hat.<br />
(iii) Nachweis, dass |λ| < 1:<br />
Angenommen, es gebe e<strong>in</strong>en Eigenwert λ ∈ σ(J) mit |λ| = 1. Es sei v ∈ C n der zugehörige<br />
normierte Eigenvektor mit ‖v‖ ∞ = 1. Insbesondere gelte |v s | = ‖v‖ ∞ = 1 für e<strong>in</strong> s ∈<br />
{1, . . . , n}. Dann erhalten wir aufgrund der Struktur der Iterationsmatrix (hier nun explizit<br />
für Jacobi)<br />
⎛ −a<br />
0<br />
12 −a 13 −a<br />
a 11 a 11<br />
. . . 1n<br />
⎞<br />
a 11<br />
−a<br />
J = −D −1 21<br />
−a<br />
(L + R) =<br />
a 22<br />
0<br />
23 −a<br />
a 22<br />
. . . 2n<br />
a 22<br />
⎜<br />
.<br />
⎝ .<br />
.. ⎟ . ⎠<br />
−a n1<br />
a nn<br />
. . . . . . 0<br />
<strong>die</strong> folgende Abschätzung:<br />
|v i | = |λ|<br />
}{{}<br />
=1<br />
|v i | ≤ ∑ k≠i<br />
|a ik |<br />
|a ii | |v k| ≤ ∑ |a ik |<br />
≤ 1, i = 1, 2, . . . , n, (5.13)<br />
|a<br />
k≠i ii |<br />
wobei wir <strong>die</strong> Struktur von J <strong>in</strong> der ersten Ungleichung, |v i | = ‖v‖ ∞ (<strong>in</strong> der zweiten) und<br />
<strong>die</strong> schwache Diagonaldom<strong>in</strong>anz <strong>in</strong> der letzten Abschätzung verwendet haben.<br />
Aufgrund der Irreduzibilität gibt es zu je zwei Indizes s, r stets e<strong>in</strong>e Kette von Indizes<br />
i 1 , . . . , i m ∈ {1, . . . , n} (siehe Beweis zur Irreduzibilität), so dass<br />
a s,i1 ≠ 0, a i1 ,i 2 ≠ 0, . . . , a im,r ≠ 0.<br />
Durch mehrfache Anwendung von (5.13) folgt der Widerspruch (nämlich, dass |λ| = 1):<br />
|v r | = |λv r | ≤ 1<br />
|a rr |<br />
|v im | = |λv im | ≤<br />
∑<br />
|a rk | ‖v‖ ∞ < ‖v‖ ∞ (strikte DD <strong>in</strong> e<strong>in</strong>er Zeile),<br />
k≠r<br />
⎡<br />
1<br />
|a im,i m<br />
|<br />
⎣ ∑<br />
k≠i m,r<br />
|a im,k| ‖v‖ ∞ + |a im,r| |v r | ⎦ < ‖v‖ ∞ ,<br />
.<br />
⎡<br />
⎤<br />
|v i1 | = |λv i1 | ≤ 1 ⎣ ∑<br />
|a i1 ,k| ‖v‖ ∞ + |a i1 ,i<br />
|a i1 ,i 1<br />
|<br />
2<br />
| |v i2 | ⎦ < ‖v‖ ∞ ,<br />
k≠i 1 ,i 1<br />
⎡<br />
⎤<br />
‖v‖ ∞ = |λv s | ≤ 1 ⎣ ∑<br />
|a s,k | ‖v‖ ∞ + |a s,i1 | |v i1 | ⎦ < ‖v‖ ∞ .<br />
|a ss |<br />
k≠s,i 1<br />
Daher muss spr(J) < 1. Mit analoger Schlussfolgerung wird spr(H) < 1 bewiesen. Hierzu<br />
nutzt man ebenfalls <strong>die</strong> spezielle Struktur der Iterationsmatrix H sowie <strong>die</strong> umgekehrte<br />
Dreiecksungleichung, um (5.13) zu erhalten. Die restliche Argumentation erfolgt dann auf<br />
analogem Wege.<br />
□<br />
⎤<br />
202
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme<br />
Bemerkung 5.29. Es ist (hoffentlich!) klar, dass starke und schwache Spaltensummenkriterien<br />
mit analoger Argumentation hergeleitet werden können.<br />
Der vorherige Satz sichert <strong>die</strong> Konvergenz von Jacobi- sowie Gauß-Seidel-Verfahren für <strong>die</strong><br />
Modellmatrizen. Denn <strong>die</strong>se s<strong>in</strong>d z.B. <strong>in</strong> erster und letzter Zeile strikt Diagonaldom<strong>in</strong>ant.<br />
E<strong>in</strong>e Abschätzung des Spektralradius spr(J) sowie spr(H) ist nicht ohne weiteres möglich.<br />
Im allgeme<strong>in</strong>en Fall konvergieren beide Verfahren sehr langsam.<br />
Beispiel 5.30 (Jacobi- und Gauß-Seidel-Verfahren bei der Modellmatrix). Wir betrachten<br />
das l<strong>in</strong>eare Gleichungssystem Ax = b mit der Modellmatrix A ∈ R n×n<br />
⎛<br />
⎞<br />
2 −1<br />
−1 2 −1<br />
A =<br />
. .. . .. . ..<br />
, (5.14)<br />
⎜<br />
⎟<br />
⎝ −1 2 −1⎠<br />
−1 2<br />
sowie der rechten Seite b ∈ R n mit b = (1, . . . , 1) T . Zu i, j mit i < j gilt<br />
a i,i ≠ 0 → a i,i+1 ≠ 0 → a i+1,i+2 ≠ 0 → a i+2,i+3 ≠ 0 → · · · → a j−1,j ≠ 0.<br />
Die Matrix ist also irreduzibel, weiter diagonaldom<strong>in</strong>ant und <strong>in</strong> erster und letzter Zeile<br />
auch stark diagonaldom<strong>in</strong>ant. Jacobi und Gauß-Seidel-Verfahren konvergieren. Experimentell<br />
bestimmen wir für <strong>die</strong> Problemgröße n = 10 · 2 k für k = 2, 3, . . . <strong>die</strong> Anzahl<br />
der notwendigen Iterationsschritte, sowie <strong>die</strong> Rechenzeit (Core i7-Prozessor ’2011) zur<br />
Approximation des Gleichungssystems mit e<strong>in</strong>er Fehlertoleranz ‖x k − x‖ < 10 −4 :<br />
Matrixgröße Jacobi Gauß-Seidel<br />
Schritte Zeit (sec) Schritte Zeit (sec)<br />
80 9 453 0.02 4 727 0.01<br />
160 37 232 0.13 18 617 0.06<br />
320 147 775 0.92 73 888 0.43<br />
640 588 794 7.35 294 398 3.55<br />
1 280 2 149 551 58 1 074 776 29<br />
2 560 8 590 461 466 4 295 231 233<br />
Es zeigt sich, dass für das Gauß-Seidel-Verfahren stets halb so viele Iterationsschritte<br />
notwendig s<strong>in</strong>d, wie für das Jacobi-Verfahren. Weiter steigt <strong>die</strong> Anzahl der notwendigen<br />
Iterationsschritte mit der Matrixgröße n. Bei doppelter Matrixgröße steigt <strong>die</strong> Anzahl der<br />
Iterationen etwa um den Faktor 4. Der Zeitaufwand steigt noch stärker mit e<strong>in</strong>em Faktor<br />
von etwa 8, da jeder e<strong>in</strong>zelne Schritt e<strong>in</strong>en größeren Aufwand bedeutet. Diesen Zusammenhang<br />
zwischen Matrixeigenschaft und Konvergenzgeschw<strong>in</strong>digkeit werden wir später<br />
genauer untersuchen.<br />
Wir merken hier noch an, dass Jacobi- und Gauß-Seidel-Verfahren effizient unter Ausnutzung<br />
der dünnen Besetzungsstruktur programmiert wurden. Dennoch steigt der Gesamtaufwand<br />
zur Approximation mit vorgegebener Genauigkeit mit dritter Ordnung <strong>in</strong> der<br />
Problemgröße n.<br />
203
5 <strong>Numerische</strong> Iterationsverfahren<br />
5.3.3 Relaxationsverfahren: das SOR-Verfahren<br />
Das vorangehende Beispiel zeigt, dass Jacobi- sowie Gauß-Seidel-Verfahren sehr langsam<br />
konvergieren. Für <strong>die</strong> Modellmatrix A ∈ R n×n steigt <strong>die</strong> Anzahl der notwendigen Iterationsschritte<br />
(zum Erreichen e<strong>in</strong>er vorgegebenen Genauigkeit) quadratisch O(n 2 ). Obwohl<br />
jeder e<strong>in</strong>zelne Schritt sehr e<strong>in</strong>fach ist und äußerst effizient <strong>in</strong> O(n) Operationen durchgeführt<br />
werden kann, s<strong>in</strong>d <strong>die</strong>se Verfahren den direkten nicht überlegen. Oft, etwa bei<br />
Tridiagonalsystemen s<strong>in</strong>d direkte Löser mit e<strong>in</strong>em Aufwand von O(n) sogar unschlagbar<br />
schneller.<br />
Das SOR-Verfahren ist e<strong>in</strong>e Weiterentwicklung der Gauß-Seidel-Iteration durch <strong>die</strong> <strong>E<strong>in</strong>führung</strong><br />
e<strong>in</strong>es Relaxationsparameters ω > 0. Das i-te Element berechnet sich laut Satz 5.24<br />
als:<br />
⎞<br />
⎛<br />
x k,GS<br />
i = 1 ⎝b i − ∑ a ij x k,GS<br />
j − ∑ a ii ji<br />
a ij x k−1<br />
j<br />
⎠ , i = 1, . . . , n.<br />
Zur Bestimmung der SOR-Lösung verwenden wir nicht unmittelbar <strong>die</strong>se Approximation<br />
, sondern führen e<strong>in</strong>en Relaxationsparameter ω > 0 e<strong>in</strong> und def<strong>in</strong>ieren<br />
x k,GS<br />
i<br />
x k,SOR<br />
i<br />
= ωx k,GS<br />
i<br />
+ (1 − ω)x k−1<br />
i , i = 1, . . . , n<br />
als e<strong>in</strong>en gewichteten Mittelwert zwischen Gauß-Seidel Iteration und alter Approximation.<br />
Dieser Relaxationsparameter ω kann nun verwendet werden, um <strong>die</strong> Konvergenzeigenschaften<br />
der Iteration wesentlich zu bee<strong>in</strong>flussen. Im Fall ω = 1 ergibt sich gerade das<br />
Gauß-Seidel-Verfahren. Im Fall ω < 1 spricht man von Unterrelaxation, im Fall ω > 1<br />
von Überrelaxation. Das SOR-Verfahren steht für Successive Over Relaxation, verwendet<br />
also Relaxationsparameter ω > 1. Successive (also schrittweise) bedeutet, dass <strong>die</strong> Relaxation<br />
für jeden e<strong>in</strong>zelnen Index angewendet wird. Die Vorstellung zunächst <strong>die</strong> komplette<br />
Gauß-Seidel Approximation x k,GS zu berechnen und x k,SOR = ωx k,GS + (1 − ω)x k−1 zu<br />
bestimmen ist falsch! Stattdessen def<strong>in</strong>ieren wir <strong>in</strong> Indexschreibweise:<br />
⎛<br />
x k,SOR<br />
i = ω 1 ⎝b i − ∑ a ij x k,SOR<br />
j − ∑ a ii ji<br />
In Vektorschreibweise gilt:<br />
a ij x k−1<br />
j<br />
⎞<br />
⎠ + (1 − ω)x k−1<br />
i , i = 1, . . . , n.<br />
x k,SOR = ωD −1 (b − Lx k,SOR − Rx k−1 ) + (1 − ω)x k−1 .<br />
Trennen der Terme nach x k,SOR sowie x k−1 ergibt<br />
also <strong>die</strong> Iteration<br />
(D + ωL)x k,SOR = ωb + [(1 − ω)D − ωR]x k−1 ,<br />
x k,SOR = H ω x k−1 + ω[D + ωL] −1 b,<br />
H ω := [D + ωL] −1 [(1 − ω)D − ωR].<br />
Dieses Verfahren, mit der Iterationsmatrix H ω passt wieder <strong>in</strong> das Schema der allgeme<strong>in</strong>en<br />
Fixpunktiterationen und gemäß Satz 5.21 hängt <strong>die</strong> Konvergenz des Verfahrens an ρ ω :=<br />
spr(H ω ) < 1.<br />
204
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme<br />
Die Schwierigkeit bei der Realisierung des SOR-Verfahrens ist <strong>die</strong> Bestimmung von guten<br />
Relaxationsparametern, so dass <strong>die</strong> Matrix H ω e<strong>in</strong>en möglichst kle<strong>in</strong>en Spektralradius<br />
besitzt. Es gilt <strong>die</strong> erste Abschätzung:<br />
Satz 5.31 (Relaxationsparameter des SOR-Verfahrens). Es sei A ∈ R n×n mit regulärem<br />
Diagonalteil D ∈ R n×n Dann gilt:<br />
Für spr(H ω ) < 1 muss gelten ω ∈ (0, 2).<br />
spr(H ω ) ≥ |ω − 1|, ω ∈ R.<br />
Beweis: Wir nutzen <strong>die</strong> Matrix-Darstellung der Iteration:<br />
H ω = [D + ωL] −1 [(1 − ω)D − ωR] = (I + w } D −1 {{ L}<br />
) −1 D} −1 {{ D}<br />
[(1 − ω)I − ω } D −1 {{ R}<br />
].<br />
=: ˜L =I<br />
=: ˜R<br />
Die Matrizen ˜L sowie ˜R s<strong>in</strong>d echte Dreiecksmatrizen mit Nullen auf der Diagonale. D.h., es<br />
gilt det(I +ω ˜L) = 1 sowie det((1−ω)I −ω ˜R) = (1−ω) n , also Nun gilt für <strong>die</strong> Determ<strong>in</strong>ante<br />
von H ω<br />
det(H ω ) = 1 · (1 − ω) n .<br />
Für <strong>die</strong> Eigenwerte λ i von H ω gilt folglich<br />
n∏<br />
i=1<br />
λ i = det(H ω ) = (1 − ω) n ⇒ spr(H ω ) = max<br />
1≤i≤n |λ i| ≥<br />
( n ∏<br />
|λ i |<br />
i=1<br />
) 1<br />
n<br />
= |1 − ω|.<br />
Die letzte Abschätzung nutzt, dass das geometrische Mittel von n Zahlen kle<strong>in</strong>er ist, als<br />
das Maximum.<br />
□<br />
Dieser Satz liefert e<strong>in</strong>e erste Abschätzung für <strong>die</strong> Wahl des Relaxationsparameters, hilft<br />
jedoch noch nicht beim Bestimmen e<strong>in</strong>es Optimums. Für <strong>die</strong> wichtige Klasse von positiv<br />
def<strong>in</strong>iten Matrizen erhalten wir e<strong>in</strong> sehr starkes Konvergenzresultat:<br />
Satz 5.32 (SOR-Verfahren für positiv def<strong>in</strong>ite Matrizen). Es sei A ∈ R n×n e<strong>in</strong>e symmetrisch<br />
positiv def<strong>in</strong>ite Matrix. Dann gilt:<br />
spr(H ω ) < 1 für 0 < ω < 2.<br />
SOR-Verfahren und auch Gauß-Seidel-Verfahren s<strong>in</strong>d konvergent.<br />
Beweis: Siehe [9].<br />
Für <strong>die</strong> oben angegebene Modellmatrix ist <strong>die</strong> Konvergenz von Jacobi- sowie Gauß-Seidel-<br />
Iteration auch theoretisch abgesichert. Für <strong>die</strong>se Matrizen (und allgeme<strong>in</strong> für <strong>die</strong> Klasse<br />
der konsistent geordneten Matrizen, siehe [9]) kann für <strong>die</strong> Jacobi- J und Gauß-Seidel-<br />
Iteration H 1 der folgende Zusammenhang gezeigt werden:<br />
spr(J) 2 = spr(H 1 ). (5.15)<br />
□<br />
205
5 <strong>Numerische</strong> Iterationsverfahren<br />
1<br />
0.8<br />
0.6<br />
spr<br />
0.4<br />
0.2<br />
0<br />
0 0.5 1 1.5 2<br />
omega<br />
Abbildung 5.1: Bestimmung des optimalen Relaxationsparameters ω opt .<br />
E<strong>in</strong> Schritt der Gauß-Seidel-Iteration führt zu der gleichen Fehlerreduktion wie zwei Schritte<br />
der Jacobi-Iteration. Dieses Resultat f<strong>in</strong>det sich <strong>in</strong> Beispiel 5.30 exakt wieder. Weiter<br />
kann für <strong>die</strong>se Matrizen e<strong>in</strong> Zusammenhang zwischen Eigenwerten der Matrix H ω<br />
sowie den Eigenwerten der Jacobi-Matrix J hergeleitet werden. Angenommen, es gilt<br />
ρ J := spr(J) < 1. Dann gilt für den Spektralradius der SOR-Matrix:<br />
⎧<br />
⎨ω − 1 ω ≤ ω opt ,<br />
spr(H ω ) =<br />
√<br />
⎩ 1<br />
4 (ρ Jω + ρ 2 J ω2 − 4(ω − 1)) 2 ω ≥ ω opt<br />
Ist der Spektralradius der Matrix J bekannt, so kann der optimale Parameter ω opt kann<br />
als Schnittpunkt <strong>die</strong>ser beiden Funktionen gefunden werden, siehe Abbildung 5.1. Es gilt:<br />
√<br />
ω opt = 2(1 − 1 − ρ 2 J )<br />
. (5.16)<br />
Beispiel 5.33 (Modellmatrix mit SOR-Verfahren). Wir betrachten wieder <strong>die</strong> vere<strong>in</strong>fachte<br />
Modellmatrix aus Beispiel 5.30. Für <strong>die</strong> Jacobi-Matrix J = −D −1 (L + R) gilt:<br />
⎛<br />
⎞<br />
J =<br />
⎜<br />
⎝<br />
ρ 2 J<br />
1<br />
0<br />
2<br />
1 1<br />
2<br />
0 2<br />
. .. . .. . ..<br />
1 1⎟<br />
2<br />
0 ⎠<br />
2<br />
1<br />
2<br />
0<br />
Zunächst bestimmen wir <strong>die</strong> Eigenwerte λ i und Eigenvektoren w i für i = 1, . . . , n <strong>die</strong>ser<br />
Matrix. Hierzu machen machen wir den Ansatz:<br />
( ) πik<br />
w i = (wk) i k=1,...,n , wk i = s<strong>in</strong> .<br />
n + 1<br />
Dann gilt mit dem Additionstheoremen s<strong>in</strong>(x ± y) = s<strong>in</strong>(x) cos(y) ± cos(x) s<strong>in</strong>(y):<br />
(Jw i ) k = 1 2 wi k−1 + 1 2 wi k+1 = 1 ( ( ) ( ))<br />
πi(k − 1) πi(k + 1)<br />
s<strong>in</strong><br />
+ s<strong>in</strong><br />
2 n + 1<br />
n + 1<br />
= 1 ( ) ( ( ) ( )) ( )<br />
πik<br />
πi<br />
πi<br />
πi<br />
2 s<strong>in</strong> cos + cos<br />
= wk i cos .<br />
n + 1 n + 1 n + 1<br />
n + 1<br />
.<br />
206
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme<br />
Man beachte, dass <strong>die</strong>se Gleichung wegen w0 i = wi n+1 = 0 auch für <strong>die</strong> erste und letzte<br />
Zeile, d.h. für i = 1 sowie i = n gültig ist. Es gilt λ i = cos(πi/(n+1)) und der betragsmäßig<br />
größte Eigenwert von J wird für i = 1 sowie i = n angenommen. Hier gilt mit der<br />
Reihenentwicklung des Kos<strong>in</strong>us:<br />
( ) π<br />
π 2 ( )<br />
λ max = λ 1 = cos = 1 −<br />
n + 1 2(n + 1) 2 + O 1<br />
(n + 1) 4 .<br />
Der größte Eigenwert geht mit n → ∞ quadratisch gegen 1. Hieraus bestimmen wir<br />
mit (5.16) für e<strong>in</strong>ige Schrittweiten aus Beispiel 5.30 <strong>die</strong> optimalen Relaxationsparameter:<br />
n λ max (J) ω opt<br />
320 0.9999521084 1.980616162<br />
640 0.9999879897 1.990245664<br />
1280 0.9999969927 1.995107064<br />
Schließlich führen wir für <strong>die</strong>se Parameter das SOR-Verfahren mit optimalem Relaxationsparameter<br />
durch und fassen <strong>die</strong> Ergebnisse <strong>in</strong> folgender Tabelle zusammen:<br />
Matrixgröße Jacobi Gauß-Seidel SOR<br />
Schritte Zeit (sec) Schritte Zeit (sec) Schritte Zeit (sec)<br />
320 147 775 0.92 73 888 0.43 486 ≪ 1<br />
640 588 794 7.35 294 398 3.55 1 034 0.02<br />
1 280 2 149 551 58 1 074 776 29 1937 0.05<br />
2 560 4 127 0.22<br />
5 120 zu aufwendig 8 251 0.90<br />
10 240 16 500 3.56<br />
Die Anzahl der notwendigen Schritte steigt beim SOR-Verfahren nur l<strong>in</strong>ear <strong>in</strong> der Problemgröße.<br />
Dies ist im Gegensatz zum quadratischen Anstieg beim Jacobi- sowie beim Gauß-<br />
Seidel-Verfahren e<strong>in</strong> wesentlicher Fortschritt. Da der Aufwand e<strong>in</strong>es Schrittes des SOR-<br />
Verfahrens mit dem von Jacobi- und Gauß-Seidel vergleichbar ist für das SOR-Verfahren<br />
zu e<strong>in</strong>em Gesamtaufwand von nur O(n 2 ) Operationen. Dieses positive Resultat gilt jedoch<br />
nur dann, wenn der optimale SOR-Parameter bekannt ist.<br />
5.3.4 Praktische Aspekte<br />
Wir fassen zunächst <strong>die</strong> bisher vorgestellten Verfahren zusammen:<br />
Beispiel 5.34 (E<strong>in</strong>fache Iterationsverfahren). Es gilt <strong>in</strong> allgeme<strong>in</strong>er Darstellung<br />
x k+1 = x k + C −1 (b − Ax k ) = (I − C −1 A) x k + C −1 b.<br />
} {{ }<br />
=B<br />
207
5 <strong>Numerische</strong> Iterationsverfahren<br />
Ausgehend von der natürlichen Aufspaltung A = L + D + R sowie mit e<strong>in</strong>em Relaxationsparameter<br />
ω s<strong>in</strong>d Richardson-, Jacobi-, Gauß-Seidel- sowie SOR-Verfahren gegeben als<br />
als:<br />
• Gedämpftes Richardson Verfahren:<br />
C −1 = ωI,<br />
B = I − ωA,<br />
mit der Index-Schreibweise:<br />
• Jacobi-Verfahren:<br />
x k i = ωb i + x k−1<br />
i<br />
mit der Index-Schreibweise:<br />
• Gauß-Seidel-Verfahren<br />
− ω<br />
C −1 = D −1 ,<br />
x k i = 1<br />
a ii<br />
⎛<br />
⎝b i −<br />
n∑<br />
j=1,j≠i<br />
n∑<br />
j=1<br />
a ij x k−1<br />
j , i = 1, . . . , n.<br />
B = −D −1 (L + R),<br />
a ij x k−1 ⎠ , i = 1, . . . , n.<br />
j<br />
⎞<br />
C −1 = [D + L] −1 ,<br />
B = −(D + L) −1 R<br />
mit der Index-Schreibweise:<br />
⎛<br />
x k i = 1 ⎝b i − ∑ a ij x k j − ∑ a ii ji<br />
a ij x k−1<br />
j<br />
⎞<br />
⎠ , i = 1, . . . , n.<br />
• SOR-Verfahren (englisch. Successive Over-Relaxation):<br />
C = [D + ωL] −1 , B = [D + ωL] −1 [(1 − ω)D − ωR], ω = ω opt ∈ (0, 2),<br />
mit der Index-Schreibweise:<br />
⎛<br />
x k i = ω 1 ⎝b i − ∑ a ij x k j − ∑ a ii ji<br />
⎞<br />
a ij x k−1 ⎠<br />
j + (1 − ω)x k−1<br />
i , i = 1, . . . , n.<br />
Zur e<strong>in</strong>fachen Durchführung der Verfahren eignet sich stets <strong>die</strong> Index-Schreibweise. Die<br />
Matrix-Form <strong>die</strong>nt <strong>in</strong>sbesondere der e<strong>in</strong>fachen Charakterisierung sowie zum Herleiten von<br />
Konvergenzaussagen.<br />
Als iterative Verfahren werden <strong>die</strong> Gleichungssysteme nur im (praktisch irrelevanten) Fall<br />
n → ∞) wirklich gelöst. Üblicherweise muss <strong>die</strong> Iteration nach e<strong>in</strong>er bestimmten Anzahl<br />
von Schritten abgebrochen werden. Als Kriterium für e<strong>in</strong> Abbrechnen kann zunächst <strong>die</strong><br />
208
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme<br />
asymptotische Konvergenzaussage aus Satz 5.21 herangezogen werden. Mit ρ := spr(B)<br />
gilt im Grenzfall:<br />
‖x k − x‖ ≈ ρ k ‖x 0 − x‖.<br />
Und bei vorgegebener Toleranz T OL kann <strong>die</strong> notwendige Zahl an Iterationsschritten<br />
abgeschätzt werden:<br />
( )<br />
‖x k − x‖ < T OL ⇒ k = log T OL<br />
‖x 0 −x‖<br />
.<br />
log(ρ)<br />
Die Toleranz T OL gibt hier an, um welchen Faktor der Anfängliche Fehler ‖x 0 − x‖<br />
reduziert wird. Dieses Vorgehen ist <strong>in</strong> der praktischen Anwendung wenig hilfreich, da der<br />
Spektralradius ρ der Iterationsmatrix B im Allgeme<strong>in</strong>en nicht bekannt ist.<br />
E<strong>in</strong> alternatives allgeme<strong>in</strong>es Kriterium liefert <strong>die</strong> Abschätzung aus Satz 4.44 für den Defekt<br />
d k := b − Ax k :<br />
‖x k − x‖<br />
‖x‖<br />
≤ cond(A) ‖b − Axk ‖<br />
.<br />
‖b‖<br />
Hier entsteht jedoch e<strong>in</strong> ähnliches Problem: <strong>die</strong> Konditionszahl der Matrix A ist im Allgeme<strong>in</strong>en<br />
nicht bekannt, so kann auch ke<strong>in</strong>e quantitativ korrekte Abschätzung hergeleitet<br />
werden. Dieser e<strong>in</strong>fache Zusammenhang zwischen Defekt und Fehler kann jedoch genutzt<br />
werden um e<strong>in</strong>e relative Toleranz zu erreichen:<br />
Bemerkung 5.35 (Relative Toleranz). Bei der Durchführung von iterativen Lösungsverfahren<br />
werden als Abbruchskriterium oft relative Toleranzen e<strong>in</strong>gesetzt. Die Iteration wird<br />
gestoppt, falls gilt:<br />
‖x k − x‖ ≤ T OL ‖x 0 − x‖.<br />
Als praktisch durchführbares Kriterium werden <strong>die</strong> unbekannten Fehler durch <strong>die</strong> Defekte<br />
ersetzt:<br />
‖b − Ax k ‖ ≤ T OL ‖b − Ax 0 ‖.<br />
5.3.5 Abstiegs & Gra<strong>die</strong>ntenverfahren<br />
Die bisher kennengelernten Iterationsverfahren zur Approximation von l<strong>in</strong>earen Gleichungssystemen<br />
haben alle den Nachteil, dass <strong>die</strong> Konstruktion nicht durch e<strong>in</strong>en fun<strong>die</strong>rten Zugang<br />
erfolgt, sondern auf Kontraktionspr<strong>in</strong>zipien beruht, <strong>die</strong> von Fall zu Fall untersucht<br />
werden müssen. In <strong>die</strong>sem abschließenden Abschnitt werden wir zur Vorbereitung von<br />
leistungsfähigeren Verfahren e<strong>in</strong>ige Grundlagen entwickeln.<br />
Alle bisherigen Fixpunktiterationen lassen sich allgeme<strong>in</strong>er <strong>in</strong> folgender Form schreiben<br />
x k+1 = x k + d k , k = 1, 2, . . . ,<br />
wobei d k <strong>in</strong> jedem Schritt <strong>die</strong> Richtung angibt, <strong>in</strong> der <strong>die</strong> Lösung verbessert wird. Beim<br />
Jacobi-Verfahren bestimmt sich <strong>die</strong>se Richtung z.B. als d k = D −1 (b − Ax k ), beim Gauß-<br />
Seidel Verfahren als d k = (D +L) −1 (b−Ax k ). Um <strong>die</strong>se allgeme<strong>in</strong>e Iteration zu verbessern<br />
209
5 <strong>Numerische</strong> Iterationsverfahren<br />
setzen wir an zwei Punkten an: zunächst fügen wir <strong>in</strong> jedem Schritt der Iteration e<strong>in</strong>en<br />
Relaxationsparameter ω k e<strong>in</strong><br />
x k+1 = x k + ω k d k , k = 1, 2, . . . ,<br />
welchen wir Schritt für Schritt optimal bestimmen werden. Anschließen versuchen wir<br />
neue Suchrichtungen d k auf e<strong>in</strong>e systematische Art und Weise zu entwickeln. D.h., wir<br />
suchen e<strong>in</strong>e Richtung d k , <strong>in</strong> der <strong>die</strong> größte Fehlerreduktion zu erwarten ist. In <strong>die</strong>sem<br />
Abschnitt beschränken wir uns auf symmetrisch positiv def<strong>in</strong>ite Matrizen A ∈ R n×n . Zentral<br />
für das gesamte Kapitel ist <strong>die</strong> folgende Charakterisierung zur Lösung e<strong>in</strong>es l<strong>in</strong>earen<br />
Gleichungssystems mit symmetrisch, positiv def<strong>in</strong>iter Matrix:<br />
Satz 5.36 (L<strong>in</strong>eares Gleichungssystem und M<strong>in</strong>imierung). Es sei A ∈ R n×n e<strong>in</strong>e symmetrische<br />
positiv def<strong>in</strong>ite Matrix. Das l<strong>in</strong>eare Gleichungssystem Ax = b ist äquivalent zur<br />
M<strong>in</strong>imierungsaufgabe:<br />
Q(x) ≤ Q(y) ∀y ∈ R n , Q(y) = 1 2 (Ay, y) 2 − (b, y) 2 .<br />
Beweis: (i) Zunächst sei x Lösung des l<strong>in</strong>earen Gleichungssystems Ax = b. Dann gilt mit<br />
beliebigem y ∈ R n :<br />
d.h. Q(y) ≥ Q(x).<br />
2Q(y) − 2Q(x) = (Ay, y) 2 − 2(b, y) 2 − (Ax, x) 2 + 2(b, x)<br />
= (Ay, y) 2 − 2(Ax, y) 2 + (Ax, x) 2<br />
= (A(y − x), y − x) 2 ≥ 0,<br />
(ii) Umgekehrt sei Q(x) nun M<strong>in</strong>imum. D.h. x ∈ R n ist stationärer Punkt der quadratischen<br />
Form Q(x), also:<br />
0 ! = ∂<br />
∂x i<br />
Q(x) =<br />
∂ { 1 }<br />
∂x i 2 (Ax, x) 2 − (b, x) 2 = (Ax) i − b i , i = 1, . . . , n.<br />
D.h., x ist Lösung des l<strong>in</strong>earen Gleichungssystems.<br />
□<br />
Anstelle e<strong>in</strong> l<strong>in</strong>eares Gleichungssystem Ax = b zu lösen betrachten wir <strong>die</strong> M<strong>in</strong>imierung<br />
des “Energiefunktionals” Q(x). Dieser Zugang ist Grundlage der im Folgenden diskutieren<br />
Verfahren und auch Basis der allgeme<strong>in</strong>en Klasse von Krylow-Raum-Verfahren.<br />
Wir betrachten zunächst nur symmetrisch positiv def<strong>in</strong>ite Matrizen, daher ist durch ‖x‖ A :=<br />
√<br />
(Ax, x)2 e<strong>in</strong>e Norm, <strong>die</strong> sogenannte Energienorm gegeben. Die M<strong>in</strong>imierung des Energiefunktionals<br />
Q(·) ist auch äquivalent zur M<strong>in</strong>imierung des Fehlers x k −x <strong>in</strong> der zugehörigen.<br />
Denn, angenommen x ∈ R n sei <strong>die</strong> Lösung und x k ∈ R n e<strong>in</strong>e Approximation, dann gilt:<br />
‖x k −x‖ 2 A = (A(x k −x), x k −x) 2 = (Ax k , x k )− 2(Ax k , x)<br />
} {{ }<br />
+(Ax, x) = 2Q(x k )+(Ax, x).<br />
=2(Ax,x k )=2(b,x k )<br />
210
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme<br />
Abstiegsverfahren Wir gehen zunächst davon aus, dass <strong>die</strong> Suchrichtungen d k durch e<strong>in</strong><br />
gegebenes Verfahren (etwa Jacobi oder Gauß-Seidel) bestimmt s<strong>in</strong>d und stellen uns der<br />
Frage, den nächsten Schritt optimal zu gestalten, also <strong>in</strong> der Iteration k → k + 1 mit<br />
x k+1 = x k + ω k d k ,<br />
den skalaren Faktor ω k möglichst optimal zu bestimmen, so dass <strong>die</strong> neue Approximation<br />
x k+1 e<strong>in</strong>e möglichst ger<strong>in</strong>ge “Energie” Q(x k+1 ) aufweist:<br />
ω k = arg m<strong>in</strong><br />
ω∈R Q(xk + ωd k ).<br />
Das gesuchte M<strong>in</strong>imum ω können wir wieder als Extrempunkt des quadratischen Funktionals<br />
bestimmen:<br />
0 = ! ∂<br />
∂ { 1 }<br />
Q(x + ωd) =<br />
∂ω ∂ω 2 (A(x + ωd), x + ωd) 2 − (b, x + ωd) 2 = ω(Ad, d) 2 + (Ax − b, d) 2<br />
Hieraus bestimmt sich ω zu:<br />
ω = (b − Ax, d) 2<br />
.<br />
(Ad, d) 2<br />
Wir fassen zusammen:<br />
Algorithmus 5.37 (Abstiegsverfahren). Es sei A ∈ R n×n symmetrisch positiv def<strong>in</strong>it,<br />
x 0 , b ∈ R n sowie für k = 1, 2, . . . durch d k ∈ R n Abstiegsrichtungen gegeben. Iteriere:<br />
1. Bestimme ω k als<br />
2. Berechne<br />
ω k = (b − Axk , d k ) 2<br />
(Ad k , d k ) 2<br />
,<br />
x k+1 = x k + ω k d k .<br />
E<strong>in</strong> konkretes Verfahren entsteht durch Wahl der Abstiegsrichtungen d k . Es zeigt sich, dass<br />
<strong>die</strong> Komb<strong>in</strong>ation des Abstiegsverfahrens mit den bisher e<strong>in</strong>geführten Methoden wie Jacobi<br />
und Gauß-Seidel nicht zu wesentlichen Verbesserungen <strong>in</strong> der Konvergenzgeschw<strong>in</strong>digkeit<br />
führt. Wir betrachten hierzu e<strong>in</strong> Beispiel:<br />
Beispiel 5.38 (Abstiegsverfahren, Jacobi & Gauß-Seidel). Es sei Ax = b mit<br />
⎛<br />
⎞ ⎛ ⎞ ⎛<br />
2 −1 0<br />
2<br />
⎜<br />
⎟ ⎜ ⎟ ⎜<br />
1<br />
⎞<br />
⎟<br />
A = ⎝−1 2 −1⎠ , b = ⎝−3⎠ , x = ⎝0⎠ .<br />
0 −1 2<br />
4<br />
2<br />
Mit dem Startvektor x 0 = 0 führen wir jeweils 10 Schritte mit Jacobi-, Gauß-Seidel-<br />
Verfahren sowie jeweils mit den entsprechenden Komb<strong>in</strong>ationen unter Verwendung des<br />
optimalen Abstiegs-Schritts ω k . In Abbildung 5.2 l<strong>in</strong>ks fassen wir für alle Verfahren <strong>die</strong><br />
Fehler zusammen. Auf der rechten Seite der Abbildung stellen wir den Approximationsverlauf<br />
x k ∈ R 3 für Jacobi- sowie Jacobi-Abstiegsverfahren graphisch dar. Obwohl der<br />
Verlauf des Jacobi-Abstiegsverfahrens wesentlich “gradl<strong>in</strong>iger” sche<strong>in</strong>t, konvergiert <strong>die</strong>ses<br />
Verfahren ebenso langsam wie das Jacobi-Verfahren selbst. Nur im Falle des Gauß-Seidel-<br />
Verfahrens wird <strong>die</strong> Konvergenz durch Wahl optimaler Schrittweite ω k wesentlich beschleunigt.<br />
211
5 <strong>Numerische</strong> Iterationsverfahren<br />
10<br />
1<br />
0.1<br />
Jacobi<br />
Gauss-Seidel<br />
Abstiegs-Jacobi<br />
Abstiegs-Gauss-Seidel<br />
2<br />
1.9<br />
1.8<br />
1.7<br />
1.6<br />
1.5<br />
1.4<br />
1.3<br />
1.2<br />
Jacobi<br />
Abstiegsverfahren<br />
0.01<br />
1<br />
0.9<br />
0.001<br />
0.0001<br />
1e-05<br />
1 2 3 4 5 6 7 8 9 10<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2 0<br />
-0.2<br />
-0.4<br />
-0.6<br />
-0.8<br />
-1<br />
-1.2<br />
-1.4<br />
-1.6<br />
Abbildung 5.2: L<strong>in</strong>ks: Konvergenz von Jacobi-, Gauß-Seidel- sowie den entsprechenden<br />
Abstiegsverfahren. Rechts: Vergleich der Annäherung bei Jacobi- und<br />
Jacobi-Abstiegs-Verfahren an <strong>die</strong> Lösung x = (1, 0, 2) T .<br />
Gra<strong>die</strong>ntenverfahren Abschließend werden wir e<strong>in</strong> erstes Verfahren entwickeln, welches<br />
<strong>die</strong> neue Suchrichtung d k ∈ R n systematisch so bestimmt, dass das quadratische Funktional<br />
Q(x) möglichst stark m<strong>in</strong>imiert werden kann. Wir suchen also <strong>die</strong> Richtung des<br />
stärksten Abfalls. Zu e<strong>in</strong>em Punkt x ∈ R n ist <strong>die</strong>s gerade <strong>die</strong> Richtung d ∈ R n , <strong>die</strong> normal<br />
auf den Niveaumenge N(x) steht:<br />
N(x) := {y ∈ R n : Q(y) = Q(x)}<br />
In e<strong>in</strong>em Punkt x ist <strong>die</strong> Niveaumenge aufgespannt durch alle Richtungen δx ∈ R n mit:<br />
0 ! = Q ′ (x) · δx = (∇Q(x), δx) = (b − Ax, δx).<br />
Die Vektoren δx, welche <strong>die</strong> Niveaumenge aufspannen stehen orthogonal auf dem Defekt<br />
b − Ax, <strong>die</strong>ser zeigt daher <strong>in</strong> Richtung der stärksten Änderung von Q(·). Wir wählen<br />
d k := b − Ax k . Die so gefundene Suchrichtung wird dann mit dem Abstiegsverfahren<br />
komb<strong>in</strong>iert, d.h. wir iterieren:<br />
d k := b − Ax k , ω k := ‖dk ‖ 2 2<br />
(Ad k , d k ) 2<br />
, x k+1 := x k + ω k d k .<br />
Wir def<strong>in</strong>ieren das Gra<strong>die</strong>ntenverfahren:<br />
Algorithmus 5.39 (Gra<strong>die</strong>ntenverfahren). Es sei A ∈ R n×n symmetrisch positiv def<strong>in</strong>it,<br />
b ∈ R n . Es sei x 0 ∈ R n beliebig und d 0 := b − Ax 0 . Iteriere für k = 0, 1, 2, . . .<br />
1. r k := Ad k<br />
2. ω k = ‖d k‖ 2 2<br />
(r k ,d k ) 2<br />
3. x k+1 = x k + ω k d k .<br />
4. d k+1 = d k − ω k r k .<br />
212
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme<br />
Durch E<strong>in</strong>führen e<strong>in</strong>es zweiten Hilfsvektors r k ∈ R n kann <strong>in</strong> jeder Iteration e<strong>in</strong> Matrix-<br />
Vektor-Produkt gespart werden. Für Matrizen mit Diagonalanteil D = αI ist das Gra<strong>die</strong>ntenverfahren<br />
gerade das Jacobi-Verfahren <strong>in</strong> Verb<strong>in</strong>dung mit dem Abstiegsverfahren.<br />
Daher kann für <strong>die</strong>ses Verfahren im Allgeme<strong>in</strong>en auch ke<strong>in</strong>e verbesserte Konvergenzaussage<br />
erreicht werden. Es stellt jedoch den E<strong>in</strong>stieg <strong>in</strong> e<strong>in</strong>e ganze Klasse von fortgeschrittenen<br />
Verfahren, <strong>die</strong> Krylow-Unterraum-Verfahren dar. Wir zeigen:<br />
Satz 5.40 (Gra<strong>die</strong>ntenverfahren). Es sei A ∈ R n×n symmetrisch positiv def<strong>in</strong>it. Dann<br />
konvergiert das Gra<strong>die</strong>ntenverfahren für jeden Startvektor x 0 ∈ R n gegen <strong>die</strong> Lösung des<br />
Gleichungssystems Ax = b.<br />
Beweis: Es sei x k ∈ R n e<strong>in</strong>e gegebene Approximation. Weiter sei d := b − Ax k . Dann<br />
berechnet sich e<strong>in</strong> Schritt des Gra<strong>die</strong>ntenverfahrens als:<br />
Für das Energiefunktional gilt:<br />
x k+1 = x k +<br />
(d, d)<br />
(Ad, d) d.<br />
Q(x k+1 ) = 1 2 (Axk+1 , x k+1 ) − (b, x k+1 )<br />
Also folgt:<br />
= 1 2 (Axk , x k ) + 1 (d, d) 2<br />
(d, d)<br />
(Ad, d) +<br />
2 (Ad, d) 2 (Ad, d) (Axk , d) − (b, x k (d, d)<br />
) − (b, d)<br />
(Ad, d)<br />
{<br />
= Q(x k (d, d) 1<br />
) +<br />
(Ad, d) 2 (d, d) + (Axk , d) − (b, d)}<br />
⎧<br />
⎫<br />
= Q(x k (d, d) ⎨1<br />
⎬<br />
) +<br />
(Ad, d) ⎩2 (d, d) + (Axk − b, d)<br />
} {{ } ⎭<br />
=−d<br />
Q(x k+1 ) = Q(x k ) −<br />
(d, d)2<br />
2(Ad, d) .<br />
Wegen der positiven Def<strong>in</strong>itheit von A gilt λ m<strong>in</strong> (A)(d, d) ≤ (Ad, d) ≤ λ max (A)(d, d) und<br />
schließlich ist mit<br />
Q(x k+1 ) ≤ Q(x k (d, d)<br />
) − ,<br />
2λ<br />
} {{ max<br />
}<br />
≥0<br />
<strong>die</strong> Folge Q(x k ) monoton fallend. Weiter ist Q(x k ) nach unten durch Q(x) beschränkt. Also<br />
konvergiert <strong>die</strong> Folge Q(x k ) → c ∈ R n . Im Grenzwert muss gelten 0 = (d, d) = ‖b − Ax‖ 2 ,<br />
also Ax = b.<br />
□<br />
Schließlich zitieren wir noch zur Abschätzung der Konvergenzgeschw<strong>in</strong>digkeit <strong>die</strong> folgende<br />
Fehlerabschätzung:<br />
213
5 <strong>Numerische</strong> Iterationsverfahren<br />
Satz 5.41 (Konvergenz des Gra<strong>die</strong>ntenverfahrens). Es sei A ∈ R n×n e<strong>in</strong>e symmetrisch<br />
positiv def<strong>in</strong>ite Matrix. Dann gilt für das Gra<strong>die</strong>ntenverfahren zur Lösung von Ax = b <strong>die</strong><br />
Fehlerabschätzung<br />
Beweis: Siehe [9]<br />
‖x k − x‖ A ≤<br />
( ) 1 − 1/κ k<br />
, κ := cond 2 (A) = λ max(A)<br />
1 + 1/κ<br />
λ m<strong>in</strong> (A) .<br />
Die asymptotische Konvergenzrate des Gra<strong>die</strong>ntenverfahrens wir durch <strong>die</strong> Kondition der<br />
Matrix bestimmt. Für <strong>die</strong> Modellmatrix gilt κ = O(n 2 ), siehe Beispiel 5.33. Also gilt:<br />
ρ = 1 − 1 n 2<br />
1 + 1 n 2 = 1 − 2 n 2 + O ( 1<br />
n 4 )<br />
.<br />
Die Konvergenz ist demnach ebenso langsam wie <strong>die</strong> des Jacobi-Verfahrens (wir haben<br />
bereits diskutiert, dass es für <strong>die</strong> Modellmatrix mit dem Jacobi-Abstiegsverfahren übere<strong>in</strong>stimmt).<br />
Für das Gra<strong>die</strong>ntenverfahren gilt jedoch der folgende Zusammenhang, der<br />
Basis des CG-Verfahrens ist:<br />
Satz 5.42 (Abstiegsrichtungen im Gra<strong>die</strong>ntenverfahren). Es sei A ∈ R n×n symmetrisch<br />
positiv def<strong>in</strong>it. Dann stehen je zwei aufe<strong>in</strong>anderfolgende Abstiegsrichtungen d k und d k+1<br />
des Gra<strong>die</strong>ntenverfahren orthogonal aufe<strong>in</strong>ander.<br />
Beweis: Zum Beweis, siehe Algorithmus 5.39. Es gilt:<br />
Also gilt:<br />
d k+1 = d k − ω k r k = d k − (dk , d k )<br />
(Ad k , d k ) Adk .<br />
(d k+1 , d k ) = (d k , d k ) − (dk , d k )<br />
(Ad k , d k ) (Adk , d k ) = (d k , d k ) − (d k , d k ) = 0.<br />
□<br />
□<br />
Das CG-Verfahren Der Zusammenhang aus Satz 5.42 gilt nur für jeweils aufe<strong>in</strong>ander folgende<br />
Abstiegsrichtungen, im Allgeme<strong>in</strong>en gilt jedoch d k ̸⊥ d k+2 . In Abbildung 5.2 rechts<br />
ist der Approximationsverlauf des Abstiegs-Jacobi-Verfahren, welches mit dem Gra<strong>die</strong>ntenverfahren<br />
übere<strong>in</strong>stimmt dargestellt. Zwei aufe<strong>in</strong>ander folgende Richtungen s<strong>in</strong>d zwar<br />
je orthogonal, <strong>die</strong> dritte Richtung steht jedoch wieder nahezu parallel auf der ersten. Dies<br />
führt dazu, dass das Gra<strong>die</strong>ntenverfahren im Allgeme<strong>in</strong>en sehr langsam konvergiert. Das<br />
CG-Verfahren, oder “Verfahren der konjugierten Gra<strong>die</strong>nten”, entwickelt <strong>die</strong>sen Ansatz<br />
weiter und wählt Suchrichtungen {d 1 , . . . , d k } <strong>die</strong> paarweise orthogonal s<strong>in</strong>d. Orthogonalität<br />
wird dabei im A-Skalarprodukt erreicht:<br />
(Ad r , d s ) = 0 ∀r ≠ s.<br />
214
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme<br />
Im k-ten Schritt wird <strong>die</strong> Approximation x k = x 0 + ∑ k<br />
i=1 α i d i als das M<strong>in</strong>imum über alle<br />
α 1 , . . . , α k bezüglich Q(x k ) gesucht:<br />
(<br />
) { (<br />
) (<br />
)}<br />
k∑<br />
1<br />
k∑<br />
k∑<br />
k∑<br />
m<strong>in</strong> Q x 0 + α i d i = m<strong>in</strong> Ax 0 + α i Ad i , x 0 + α i d i − b, x 0 + α i d i .<br />
2<br />
i=1<br />
i=1<br />
i=1<br />
i=1<br />
Der stationäre Punkt ist bestimmt durch:<br />
0 = ! ∂<br />
(<br />
Q(x k ) = Ax 0 +<br />
∂α j<br />
k∑<br />
i=1<br />
)<br />
(<br />
α i Ad i , d j − (b, d j ) = − b − Ax k , d j) , j = 1, . . . , k.<br />
D.h., das neue Residuum b − Ax k steht orthogonal auf allen Suchrichtungen d j für j =<br />
1, . . . , k. Diese Gleichung<br />
(b − Ax k , d j ) = 0 ∀j = 1, . . . , k, (5.17)<br />
wird Galerk<strong>in</strong>-Gleichung genannt. Beim Entwurf des CG-Verfahrens ist es nun wichtig,<br />
dass <strong>die</strong> neu gewählte Suchrichtung d k+1 nicht im Erzeugnis der bisherigen Suchrichtungen<br />
span{d 1 , . . . , d k } enthalten ist. Denn <strong>in</strong> <strong>die</strong>sem Fall wird der Suchraum nicht größer und<br />
<strong>die</strong> Approximation kann nicht verbessert werden. Daher wählt man für das CG-Verfahren<br />
ausgehend von e<strong>in</strong>er Startapproximation x 0 ∈ R n mit d 0 := b − Ax 0 den Krylow-Raum<br />
K k (d 0 , A):<br />
K k (d 0 , A) := span{d 0 , Ad 0 , . . . , A k−1 d 0 }.<br />
Es gilt:<br />
Hilfsatz 5.43. Angenommen es gilt A k d 0 ∈ K k . Dann liegt auch für <strong>die</strong> Lösung x ∈ R n<br />
von Ax = b im k-ten Krylow-Raum K k (d 0 , A).<br />
Beweis: Es sei K k gegeben und x k ∈ x 0 + K k <strong>die</strong> beste Approximation, welche <strong>die</strong><br />
Galerk<strong>in</strong>-Gleichung (5.17) erfüllt. Es sei r k := b − Ax t . Wegen<br />
r k = b − Ax k = b − Ax<br />
} {{ 0 +A (x<br />
}<br />
0 − x k ) ∈ d 0 + AK k ,<br />
} {{ }<br />
=d 0 ∈K k<br />
gilt r k ∈ K k+1 . Angenommen nun, K k+1 ⊂ K k . Dann gilt r k ∈ K k . Die Galerk<strong>in</strong>-Gleichung<br />
besagt r k ⊥ K k , d.h. es gilt zw<strong>in</strong>gend r k = 0 und Ax k = b.<br />
□<br />
Falls das CG-Verfahren abbricht weil ke<strong>in</strong>e neuen Suchrichtungen h<strong>in</strong>zukommen, so ist<br />
<strong>die</strong> Lösung gefunden. Angenommen, <strong>die</strong> A-orthogonalen Suchrichtungen {d 0 , d 1 , . . . , d k−1 }<br />
liegen vor, so kann <strong>die</strong> CG-Approximation durch Ausnutzen der Basisdarstellung x k =<br />
x 0 + ∑ α i d i aus der Galerk<strong>in</strong>-Gleichung berechnet werden:<br />
(<br />
)<br />
k∑<br />
b − Ax 0 − α i Ad i , d j<br />
i=1<br />
= 0 ⇒ (b − Ax 0 , d j ) = α j (Ad j , d j ) ⇒ α j = (d0 , d j )<br />
(Ad j , d j ) .<br />
215
5 <strong>Numerische</strong> Iterationsverfahren<br />
Die A-orthogonale Basis {d 0 , . . . , d k−1 } des Krylow-Raums K k (d 0 , A) kann z.B. mit dem<br />
Gram-Schmidt-Verfahren berechnet werden. Der Nachteil <strong>die</strong>ser Methode ist zum e<strong>in</strong>en der<br />
quadratische (<strong>in</strong> k) Aufwand des Gram-Schmidt-Verfahrens sowie dessen numerische Instabilität.<br />
Se<strong>in</strong>e Leistungsfähigkeit erlangt das CG-Verfahren durch ausnutzen e<strong>in</strong>er zweistufigen<br />
Rekursionsformel, welche <strong>die</strong> A-orthogonale Basis effizient und stabil berechnet:<br />
Hilfsatz 5.44 (2-stufige Rekursionsformel zur Orthogonalisierung). Es sei A ∈ R n×n<br />
symmetrisch positiv def<strong>in</strong>it, sowie x 0 ∈ R n und d 0 := b − Ax 0 . Dann wird durch <strong>die</strong><br />
Iteration<br />
r k := b − Ax k , β k−1 := − (rk , Ad k−1 )<br />
(d k−1 , Ad k−1 ) , dk := r k − β k−1 d k−1 , k = 1, 2, . . .<br />
e<strong>in</strong>e A-orthogonale Basis mit (Ad r , d s ) = 0 für r ≠ s erzeugt. Dabei ist x k <strong>in</strong> Schritt k<br />
def<strong>in</strong>iert als <strong>die</strong> Galerk<strong>in</strong>-Lösung (b − Ax k , d j ) = 0 für j = 0, . . . , k − 1.<br />
Beweis: Es sei durch {d 0 , . . . , d k−1 } e<strong>in</strong>e A-orthogonale Basis des K k (d 0 , A) gegeben.<br />
Weiter sei x k ∈ x 0 +K k (d 0 , A) <strong>die</strong> Galerk<strong>in</strong>-Lösung zu (5.17). Es sei r k := b−Ax k ∈ K k+1<br />
und wir fordern, dass g k ∉ K k (d 0 , A). Ansonsten bricht <strong>die</strong> Iteration nach Hilfsatz 5.43<br />
ab. Wir bestimmen d k mit dem Ansatz:<br />
Die Orthogonalitätsbed<strong>in</strong>gung besagt:<br />
k−1<br />
d k = r k ∑<br />
− βj k−1 d j . (5.18)<br />
j=0<br />
0 = ! k−1<br />
(d k , Ad i ) = (r k , Ad i ∑<br />
)+ βj<br />
k−1 (d j , Ad i ) = (r k , Ad i )+βi k−1 (d i , Ad i ), i = 0, . . . , k −1.<br />
j=1<br />
Es gilt (r k , Ad i ) = (b − Ax k , Ad i ) = 0 für i = 0, . . . , k − 2, da Ar k ⊥ K k−1 . Hieraus folgt<br />
= 0 für i = 0, 1, . . . , k − 2. Für i = k − 1 gilt:<br />
β k−1<br />
i<br />
β k−1 := β k−1<br />
k−1 = − (rk , Ad k−1 )<br />
(d k−1 , Ad k−1 ) .<br />
Schließlich gilt mit (5.18) d k = r k − β k−1 d k−1 .<br />
□<br />
Mit <strong>die</strong>sen Vorarbeiten können wir alle Bestandteile des CG-Verfahrens zusammensetzen.<br />
Es sei also mit x 0 e<strong>in</strong>e Startlösung und mit d 0 := b − Ax 0 der Startdefekt gegeben.<br />
Angenommen, K k := span{d 0 , . . . , d k−1 } sowie x k ∈ x 0 + K k und der Defekt r k = b − Ax k<br />
liegen vor. Dann berechnet sich d k gemäß Hilfsatz 5.44 als<br />
β k−1 = − (rk , Ad k−1 )<br />
(d k−1 , Ad k−1 ) , dk = r k − β k−1 d k−1 . (5.19)<br />
216
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme<br />
Für den neuen Entwicklungskoeffizienten α k <strong>in</strong> x k+1 = x 0 + ∑ k<br />
i=0 α i d i gilt durch Testen<br />
der Galerk<strong>in</strong>-Gleichung (5.17) mit d k :<br />
⎛<br />
⎝b − Ax<br />
} {{ 0 −<br />
}<br />
=d 0<br />
k∑<br />
i=0<br />
α i Ad i , d k ⎞<br />
⎠ = (b−Ax 0 , d k )−α k (Ad k , d k ) = (b−Ax 0 +A (x 0 − x k )<br />
} {{ }<br />
∈K k<br />
, d k )−α k (Ad k , d k ).<br />
Also:<br />
α k = (rk , d k )<br />
(Ad k , d k ) , xk+1 = x k + α k d k . (5.20)<br />
Hieraus lässt sich auch unmittelbar der neue Defekt r k+1 bestimmen:<br />
r k+1 = b − Ax k+1 = b − Ax k − α k Ad k = r k − α k Ad k . (5.21)<br />
Wir fassen (5.19-5.21) zusammen und formulieren das klassische CG-Verfahren:<br />
Algorithmus 5.45 (CG-Verfahren). Es sei A ∈ R n×n symmetrisch positiv def<strong>in</strong>it, x 0 ∈<br />
R n und r 0 = d 0 = b − Ax 0 gegeben. Iteriere für k = 0, 1, . . .<br />
1. α k = (rk ,d k )<br />
(Ad k ,d k )<br />
2. x k+1 = x k + α k d k<br />
3. r k+1 = r k − α k Ad k<br />
4. β k = (rk+1 ,Ad k )<br />
(d k ,Ad k )<br />
5. d k+1 = r k+1 − β k d k<br />
Das CG-Verfahren liefert e<strong>in</strong>e Lösung nach (höchstens) n Schritten für e<strong>in</strong> n-dimensionales<br />
Problem und kann daher pr<strong>in</strong>zipiell als direktes Verfahren betrachtet werden. Allerd<strong>in</strong>gs<br />
s<strong>in</strong>d schon für relativ kle<strong>in</strong>e Probleme (z.B. n = 1000) im ungünstigsten Fall 1000 Iterationen<br />
notwendig. Deshalb wird das CG-Verfahren üblicherweise approximativ e<strong>in</strong>gesetzt. In<br />
jedem Iterationsschritt s<strong>in</strong>d Rundungsfehler zu erwarten, daher werden <strong>die</strong> Suchrichtungen<br />
{d 0 , . . . , d k−1 } nie wirklich orthogonal se<strong>in</strong>. Die Konvergenzanalyse des CG-Verfahrens<br />
gestaltet sich als sehr aufwendig. Daher zitieren wir hier nur das Ergebnis:<br />
Satz 5.46 (Konvergenz des CG-Verfahrens). Es sei A ∈ R n×n symmetrisch positiv def<strong>in</strong>it.<br />
Dann gilt für beliebigen Startvektor x 0 ∈ R n <strong>die</strong> Fehlerabschätzung<br />
‖x k − x‖ A ≤ 2<br />
( √ ) k<br />
1 − 1/ κ<br />
1 + 1/ √ ‖x 0 − x‖ A , k ≥ 0,<br />
κ<br />
mit der Spektralkondition κ = cond 2 (A) der Matrix A.<br />
217
5 <strong>Numerische</strong> Iterationsverfahren<br />
Die Konvergenz des CG-Verfahrens ist gerade doppelt so schnell wie <strong>die</strong> des Gra<strong>die</strong>ntenverfahrens.<br />
Es gilt:<br />
ρ := 1 − 1/√ κ<br />
1 + 1/ √ κ = 1 − 2√ κ + O(κ).<br />
Für <strong>die</strong> Modellmatrix folgt ρ = 1 − 1 n<br />
. Das CG-Verfahren ist für dünn besetzte symmetrische<br />
Gleichungssysteme e<strong>in</strong>es der effizientesten Iterationsverfahren. Die Konvergenz<br />
hängt wesentlich von der Kondition cond 2 (A) der Matrix A ab. Für cond 2 (A) ≈ 1 ist das<br />
Verfahren optimal: zur Reduktion des Fehlers um e<strong>in</strong>en gegebenen Faktor ɛ ist e<strong>in</strong>e feste<br />
Anzahl von Schritten notwendig. Verallgeme<strong>in</strong>erungen des CG-Verfahrens für nicht symmetrische<br />
Matrizen müssen <strong>die</strong> Orthogonalisierung der Suchrichtungen entweder aufwendig<br />
durch volle Orthogonalisierungsverfahren wie Gram-Schmidt sicherstellen (<strong>die</strong>s führt auf<br />
das GMRES-Verfahren) oder <strong>die</strong> Orthogonalitätsbeziehung wird verletzt (<strong>die</strong>s führt zum<br />
Beispiel auf das BiCGStab-Verfahren).<br />
Abschließend diskutieren wir anhand der Modellmatrix <strong>die</strong> verschiedenen Verfahren im<br />
Vergleich:<br />
Beispiel 5.47 (LGS mit der Modellmatrix). Es sei A ∈ R n×n mit n = m 2 <strong>die</strong> Modellmatrix:<br />
⎛<br />
⎞ ⎛<br />
⎞ ⎛<br />
⎞<br />
B −I<br />
4 −1<br />
1<br />
−I B −I<br />
A = ⎜<br />
⎟<br />
⎝ −I B −I⎠ , B = −1 4 −1<br />
⎜<br />
⎟<br />
⎝ −1 4 −1⎠ , I = 1<br />
⎜<br />
⎟<br />
⎝ 1 ⎠ ,<br />
−I B<br />
−1 4<br />
1<br />
mit B, I ∈ R m×m . Die Matrix A ist e<strong>in</strong>e Bandmatrix mit Bandbreite 2m. Weiter ist <strong>die</strong><br />
Matrix A symmetrisch positiv def<strong>in</strong>it. Sie ist irreduzibel und diagonaldom<strong>in</strong>ant und erfüllt<br />
<strong>in</strong> den Rändern der Blöcke das starke Zeilensummenkriterium. Alle bisher diskutieren<br />
Verfahren können auf <strong>die</strong> Matrix A angewendet werden. Größter sowie kle<strong>in</strong>ster Eigenwert<br />
und Spektralkondition von A berechnen sich zu:<br />
λ m<strong>in</strong> = 2π2<br />
n + O(n−2 ), λ max = 8 − 2π2<br />
n + O(n−2 ), κ ≈ 2π 2 n<br />
Direkte Verfahren Die LR-Zerlegung ist (da A positiv def<strong>in</strong>it) ohne Permutierung durchzuführen.<br />
Gemäß Satz 4.39 beträgt der Aufwand hierzu N LR = nm 2 = 4n 2 Operationen.<br />
Die Lösung ist dann bis auf Rundungsfehlere<strong>in</strong>flüsse exakt gegeben. Alternativ kann <strong>die</strong><br />
Cholesky-Zerlegung von A erstellt werden. Hierzu s<strong>in</strong>d N LL = 2n 2 Operationen notwendig.<br />
LR- bzw. Cholesky-Zerlegung s<strong>in</strong>d dich besetzte Bandmatrizen. Das anschließende Lösen<br />
mit Vorwärts und Rückwärtselim<strong>in</strong>ation benötigt weitere 2nm Operationen. Wir fassen<br />
<strong>die</strong> notwendigen Operationen <strong>in</strong> folgender Tabelle zusammen:<br />
n = m 2 N LR N LL<br />
100 5 · 10 4 2 · 10 4<br />
10000 5 · 10 9 2 · 10 9<br />
1000000 5 · 10 12 2 · 10 12<br />
218
5.3 Iterative Lösungsverfahren für l<strong>in</strong>eare Gleichungssysteme<br />
Bei effizienter Implementierung auf moderner Hardware ist das Gleichungssystem mit<br />
10 000 Unbekannten <strong>in</strong> wenigen Sekunden, das größte Gleichungssystem <strong>in</strong> wenigen Stunden<br />
lösbar.<br />
E<strong>in</strong>fache Fixpunktiterationen Wir schätzen zunächst für Jacobi- sowie Gauß-Seidel-<br />
Verfahren <strong>die</strong> Spektralra<strong>die</strong>n ab. Mit e<strong>in</strong>em Eigenwert λ und Eigenvektor w von A gilt:<br />
Aw = λw ⇒ Dw + (L + R)w = λw ⇒ −D −1 (L + R)w = −D −1 (λI − D)w.<br />
D.h. wegen D ii = 4 gilt<br />
und <strong>die</strong> Eigenwerte von J liegen zwischen<br />
Jw = λ − 4 w,<br />
4<br />
λ m<strong>in</strong> (J) = 1 4 (λ m<strong>in</strong>(A) − 4) ≈ −1 + π2<br />
2n ,<br />
λ max(J) = 1 4 (λ max(A) − 4) ≈ 1 − π2<br />
2n .<br />
Für <strong>die</strong> Konvergenzrate gilt:<br />
Aus (5.15) folgt:<br />
ρ J := 1 − π2<br />
2n .<br />
ρ H := ρ 2 J ≈ 1 − π2<br />
n .<br />
Zur Reduktion des Fehlers um e<strong>in</strong>en gegebenen Faktor ɛ s<strong>in</strong>d t Schritte erforderlich:<br />
ρ t J<br />
J<br />
= ɛ ⇒ t J = log(ɛ)<br />
log(ρ) ≈ 2 π 2 log(ɛ)n,<br />
t H ≈ 1 π 2 log(ɛ)n,<br />
Jeder Schritt hat den Aufwand e<strong>in</strong>es Matrix-Vektor Produktes, d.h. im gegebenen Fall 5n.<br />
Schließlich bestimmen wir gemäß (5.16) den optimalen SOR-Parameter zu<br />
ω opt ≈ 2 − 2 π √ n<br />
.<br />
Dann gilt:<br />
ρ ω = ω opt − 1 ≈ 1 − 2 π √ n<br />
.<br />
Hieraus erhalten wir:<br />
t ω ≈ log(ɛ) √ n.<br />
2π<br />
Der Aufwand des SOR-Verfahrens entspricht dem des Gauß-Seidel-Verfahrens mit e<strong>in</strong>er<br />
zusätzlichen Relaxation, d.h. 6n Operationen pro Schritt. Wir fassen zusammen für <strong>die</strong><br />
drei Verfahren Konvergenzrate, Anzahl der notwendigen Schritte und Gesamtaufwand zusammen.<br />
Dabei ist stets ɛ = 10 −4 gewählt:<br />
219
5 <strong>Numerische</strong> Iterationsverfahren<br />
Jacobi Gauß-Seidel SOR<br />
n = m 2 t J N j t H N H ω opt t J N j<br />
100 180 10 5 90 5 · 10 4 1.53 9 10 5<br />
10000 18500 10 9 9300 5 · 10 8 1.94 142 10 7<br />
1000000 1866600 10 13 933000 5 · 10 12 1.99 1460 10 9<br />
Während das größte Gleichungssystem mit dem optimalen SOR-Verfahren <strong>in</strong> wenigen Sekunden<br />
gelöst werden kann, benötigen Jacobi und Gauß-Seidel-Verfahren etliche Stunden.<br />
Abstiegsverfahren<br />
Schließlich betrachten wir Gra<strong>die</strong>nten und CG-Verfahren. Es gilt:<br />
ρ GR ≈ 1 − 2κ ≈ 1 − 4π 2 n, ρ CG ≈ 1 − 2 √ κ ≈ 1 − 2π √ n.<br />
Bei effizienter Implementierung benötigt das Gra<strong>die</strong>ntenverfahren pro Iterationsschritt e<strong>in</strong>e<br />
Matrix-Vektor Multiplikation (5n Operationen), zwei Skalarprodukte (2n Operationen)<br />
sowie 2 Vektor-Additionen (2n Operationen), <strong>in</strong>sgesamt somit 9n Operationen. Der Aufwand<br />
des CG-Verfahrens ist mit 15n Operationen etwas größer. Die Anzahl der Schritte<br />
bestimmt sich zu<br />
ρ t GR = 10 −4 ⇒ t GR ≈ n π 2 , t CG ≈ 2<br />
π √ n .<br />
Wir fassen zusammen:<br />
Gra<strong>die</strong>nten CG<br />
n = m 2 t GR N GR t CG N CG<br />
100 18 10 4 9 10 4<br />
10000 2 330 10 8 140 10 7<br />
1000000 233 300 10 12 1400 10 10<br />
Wie bereits bekannt ist das Gra<strong>die</strong>nten-Verfahren ebenso <strong>in</strong>effektiv wie das Jacobi-Verfahren.<br />
Das CG-Verfahren erreicht etwa <strong>die</strong> gleiche Effizienz wie das SOR-Verfahren bei optimaler<br />
Wahl des Relaxationsparameters. Dieses Ergebnis darf nicht falsch <strong>in</strong>terpretiert werden:<br />
im Allgeme<strong>in</strong>en ist <strong>die</strong>ser Relaxationsparameter nicht verfügbar und muss grob approximiert<br />
werden. D.h., <strong>in</strong> der praktischen Anwendung wird das SOR-Verfahren weit schlechter<br />
konvergieren und das CG-Verfahren ist im Allgeme<strong>in</strong>en stark überlegen!<br />
220
6 Anwendungsbeispiel: dünner Balken<br />
In <strong>die</strong>sem Kapitel fassen wir alle vorherigen Kapitel mit Hilfe e<strong>in</strong>es physikalisch motivierten<br />
Anwendungsbeispiels zusammen. Das Beispiel kann als typischer prototypischer Vertreter<br />
für zahlreiche Anwendungsfälle numerischer Verfahren angesehen werden. Grundsätzlich<br />
s<strong>in</strong>d für den Numeriker dabei <strong>die</strong> folgenden Schritte durchzuführen, wobei der Schwerpunkt<br />
von Numerik 0 immer auf Diskretisierung und numerischer Lösung liegt.<br />
1. Problem/Aufgabenstellung: Biegung e<strong>in</strong>es dünnen Balkens (z.B. Brücke oder<br />
Membran),<br />
2. Modellierung: Herleitung e<strong>in</strong>es physikalischen Modells (Abschnitt 6.1),<br />
3. Diskretisierung (Abschnitt 6.2) mit Hilfe der Methoden aus Kapitel 3 (Interpolation,<br />
stückweise Interpolation, Differenzenverfahren zur Approximation von Ableitungen),<br />
4. <strong>Numerische</strong> Lösung (Abschnitt 6.3) des diskretisierten Problems. Bei l<strong>in</strong>earen<br />
Problemen können sofort <strong>die</strong> Methoden aus Kapitel 4 genutzt werden. Bei nichtl<strong>in</strong>earen<br />
Problemen wird mittels e<strong>in</strong>es Fixpunktverfahrens als Nullstellenaufgabe geschrieben<br />
(siehe Kapitel 5 bzw. 2) und hier<strong>in</strong> Lösung der l<strong>in</strong>earen Gleichungen mit<br />
den Methoden aus Kapitel 4,<br />
5. Analyse der Ergebnisse mit Vergleich zu anderen Methoden für dasselbe Problem<br />
oder Abgleich mit Experimenten.<br />
y(x) = 0<br />
y(x)<br />
f<br />
Abbildung 6.1: Balken im Ruhezustand und rechts durch Kraft f ausgedehnter Balken.<br />
Der Balken ist an den Endpunkten x = 0 sowie x = 1 fixiert und wird<br />
über <strong>die</strong> Position y(x) der Mittell<strong>in</strong>ie parametrisiert.<br />
221
6 Anwendungsbeispiel: dünner Balken<br />
6.1 Modellierung e<strong>in</strong>es elastischen Balkens<br />
In Abbildung 6.1 zeigen wir zunächst <strong>die</strong> Konfiguration. E<strong>in</strong> Balken mit Länge L = 1 (im<br />
Ruhezustand) ist auf beiden Seiten e<strong>in</strong>gespannt. Unter E<strong>in</strong>wirkung e<strong>in</strong>es Biegemoments f<br />
wird der Balken ausgelenkt. Dabei bezeichnen wir mit y(x) <strong>die</strong> Deformation der Mittell<strong>in</strong>ie<br />
<strong>in</strong> jedem Punkt x ∈ [0, 1] des undeformierten Balkens. Dabei gilt stets y(0) = y(1) = 0<br />
aufgrund der E<strong>in</strong>spannung. Die Biegung e<strong>in</strong>es Balkens kann <strong>in</strong> jedem Punkt durch den<br />
Krümmungsradius ρ := ρ(x) gekennzeichnet werden. Der Krümmungsradius ist der Radius<br />
desjenigen Kreises, der <strong>in</strong> (x, y(x)) <strong>die</strong> Mittell<strong>in</strong>ie des Balkens bei gleicher Krümmung<br />
berührt, siehe Abbildung 6.2.<br />
Die Krümmung erzeugt e<strong>in</strong>e Dehnung ɛ := δe/e, welche <strong>die</strong> relative Längenänderung e<strong>in</strong>er<br />
Balkenl<strong>in</strong>ie angibt, <strong>die</strong> radial von der Mittell<strong>in</strong>ie verschoben ist, siehe Abbildung 6.2 Mitte.<br />
Für e<strong>in</strong>e L<strong>in</strong>ie, <strong>die</strong> um y verschoben ist, gilt mit dem Strahlensatz:<br />
ρ + y<br />
ρ<br />
= e + δe<br />
e<br />
⇔<br />
y ρ = δe<br />
e . (6.1)<br />
Das Hooke’sche Gesetz besagt, dass <strong>die</strong> Dehnung ɛ e<strong>in</strong>es Balkens proportional zur Deformation<br />
y und der e<strong>in</strong>wirkenden Kraft f ist:<br />
ɛ = µfy,<br />
wobei µ ∈ R e<strong>in</strong> Parameter ist, der <strong>die</strong> Materialeigenschaften des Balkens beschreibt (<strong>die</strong><br />
Biegesteifigkeit). Aus dem Zusammenhang zwischen Dehnung und Krümmungsradius (6.1)<br />
folgt:<br />
µf = 1 ρ . (6.2)<br />
Schließlich werden wir den Krümmungsradius ρ(x) lokal durch <strong>die</strong> Deformation y(x) ausdrücken.<br />
Siehe hierzu <strong>die</strong> rechte Skizze <strong>in</strong> Abbildung 6.2. Zunächst gilt aus geometrischen<br />
Überlegungen e<strong>in</strong>erseits den Anstiegsw<strong>in</strong>kel<br />
sowie für <strong>die</strong> Bogenlänge:<br />
δs = δα =<br />
√<br />
δx 2 + δy 2 = δx<br />
tan(α) = δy<br />
δx ,<br />
√<br />
1 + δy2<br />
δx 2 ⇒ δα<br />
δx = √<br />
1 +<br />
( ) δy 2<br />
.<br />
δx<br />
Wir betrachten alle Änderungen δx sowie δy und δα als <strong>in</strong>f<strong>in</strong>itesimal. D.h., es gilt<br />
δy 2<br />
δx 2 = ∂2<br />
∂ 2 x y(x) = ∂ δy<br />
∂x δx<br />
= ∂<br />
∂x tan(α) = (1 + tan2 (α)) ∂α<br />
∂x<br />
= (1 + tan 2 (α)) δα<br />
=<br />
(<br />
1 +<br />
δx<br />
( ) )<br />
δy<br />
2<br />
δα<br />
δx δx<br />
222
6.2 Diskretisierung<br />
ρ<br />
ρ<br />
y<br />
e<br />
e + δe<br />
α + δα<br />
ρ(x + δx)<br />
δα<br />
ρ(x)<br />
y<br />
e<br />
e<br />
δy<br />
ds<br />
δx<br />
α<br />
Abbildung 6.2: L<strong>in</strong>ks: Krümmungsradius ρ als Radius desjenigen Kreises mit der gleichen<br />
Krümmung. Mitte: Herleitung der Dehnung ɛ := δe/e als relative Längenänderung<br />
e<strong>in</strong>er um radial verschobenen L<strong>in</strong>ie. Rechts: Herleitung der<br />
Beziehung zwischen Deformation y(x) und Krümmungsradius ρ(x).<br />
Hiermit können wir δα/δx mit Hilfe der 2. Ableitung ersetzen und mit y ′ := ∂ x y sowie<br />
mit y ′′ := ∂ xx y gilt für <strong>die</strong> Krümmung<br />
∆α<br />
κ := lim<br />
∆s→0 ∆s = δα<br />
δs = δα/δx<br />
δs/δx =<br />
y ′′ (x)<br />
√<br />
1 + y ′ (x) 23 .<br />
und mit dem Zusammenhang zum Krümmungsradius κ := 1 ρ<br />
und dem Materialgesetz 6.2<br />
erhalten wir <strong>die</strong> (nicht-l<strong>in</strong>eare) Differentialgleichung für <strong>die</strong> Deformation e<strong>in</strong>es <strong>die</strong> Balkens:<br />
y ′′ (x)<br />
(1 + y ′ (x) 2 ) 3 2<br />
= µf. (6.3)<br />
Für sehr kle<strong>in</strong>e Auslenkungen (dann gilt y ′ (x) ≪ 1) erhalten wir hieraus <strong>die</strong> l<strong>in</strong>earisierte<br />
Variante:<br />
y ′′ (x) = µf (6.4)<br />
<strong>die</strong> <strong>in</strong> vielen Büchern als Laplace-Gleichung (Modellgleichung) bekannt ist.<br />
6.2 Diskretisierung<br />
Wir suchen also e<strong>in</strong>e Funktion y ∈ C 2 ([0, 1]), welche <strong>die</strong> Differentialgleichung (6.3) <strong>in</strong> jedem<br />
Punkt x ∈ [0, 1] erfüllt. Diese Differentialgleichung ist für gegebene Kraftverteilung f im<br />
Allgeme<strong>in</strong>en nicht analytisch lösbar und muss mit numerischen Verfahren approximiert<br />
223
6 Anwendungsbeispiel: dünner Balken<br />
werden. Die Lösung y ∈ C 2 ([0, 1]) ist e<strong>in</strong> unendlich dimensionales Objekt und kann mit<br />
diskreten Methoden nie komplett beschrieben werden. Daher müssen wir <strong>in</strong> e<strong>in</strong>em ersten<br />
Schritt das Problem diskretisieren, also <strong>in</strong> e<strong>in</strong> endlich dimensionales Problem überführen.<br />
Der übliche Zugang hierzu ist, <strong>die</strong> Funktion y ∈ C 2 ([0, 1]) durch e<strong>in</strong>e Interpolierende y h (x)<br />
zu ersetzen. Hierzu zerlegen wir das Intervall I = [0, 1] zunächst <strong>in</strong> n + 1 diskrete Punkte<br />
0 = x 0 < x 1 < · · · < x n = 1, h = x i − x i−1 = 1 n , x i = ih.<br />
Wir wählen <strong>die</strong> Zerlegung äquidistant, d.h., je zwei benachbarte Punkte haben den Abstand<br />
h. Zur Interpolation der Funktion y(x) <strong>in</strong> den Stützstellen y i := y(x i ) wählen wir<br />
zwei verschiedene Zugänge aus Kapitel 3. Zunächst wählen wir <strong>die</strong> globale Lagrange-<br />
Interpolation:<br />
y n ∈ P n (I) = span{1, x, . . . , x n }.<br />
Zu gegebenen Stützstellenpaaren (x i , y(x i )) ist <strong>die</strong>se Interpolation stets e<strong>in</strong>deutig bestimmt,<br />
siehe Satz 3.6. Wir wählen <strong>die</strong> Lagrange-Darstellung:<br />
n∑<br />
n∏<br />
y n (x) = y i L (n)<br />
i (x), L (n)<br />
x − x j<br />
i (x) =<br />
. (6.5)<br />
x i − x j<br />
i=0<br />
j=1,j≠i<br />
Alternativ setzen wir y h (x) als stückweise l<strong>in</strong>eare Interpolierende zusammen:<br />
y h (x) ∣ = x − x i<br />
y i−1 + x − x i−1<br />
y i . (6.6)<br />
[xi−1 ,x i ] x i−1 − x i x i − x i−1<br />
Im Falle e<strong>in</strong>er h<strong>in</strong>reichend regulären Lösung y(x) gelten bei exakter Interpolation (d.h.<br />
falls y i = y(x i ) exakt bekannt s<strong>in</strong>d) <strong>die</strong> Abschätzungen<br />
‖y n − y‖ ∞ ≤ ‖y(n+1) ‖ ∞<br />
, ‖y h − y‖ ∞ ≤ h2<br />
(n + 1)!<br />
2 ‖y′′ ‖ ∞ , (6.7)<br />
siehe Satz 3.4 sowie (3.6). Bei der ersten Abschätzung haben wir wegen |x − x j | ≤ 1 ganz<br />
grob abgeschätzt mit:<br />
n∏<br />
|x − x i | ≤ 1.<br />
i=0<br />
Diese Abschätzung ist sehr pessimistisch, da <strong>die</strong> meisten Faktoren |x − x j | ≪ 1 sehr viel<br />
kle<strong>in</strong>er als e<strong>in</strong>s s<strong>in</strong>d.<br />
Die Diskretisierung der Aufgabe besteht nun dar<strong>in</strong>, <strong>die</strong> Klasse der möglichen Lösungen<br />
zu verr<strong>in</strong>gern. Anstelle e<strong>in</strong>es y ∈ C 2 ([0, 1]) lassen wir nur noch Polynome gemäß (6.5)<br />
bzw. (6.6) zu. Das unendlich-dimensionale Problem wird durch e<strong>in</strong> endlich-dimensionales<br />
Problem ersetzt. Die beiden diskreten Funktionen haben jeweils n+1 Freiheiten, von denen<br />
<strong>die</strong> Randpunkte y 0 = y n = 1 bereits bestimmt s<strong>in</strong>d. Diese n + 1 Freiheitsgrade werden<br />
durch n + 1 Gleichungen <strong>in</strong> den Stützstellen beschrieben:<br />
y n (0) = 0,<br />
y n′′ (x i )<br />
(1 + y n′ (x i ) 2 ) 3 2<br />
= µf(x i ), i = 1, . . . , n − 1, y n (1) = 0.<br />
Das Ergebnis ist e<strong>in</strong> nichtl<strong>in</strong>eares Gleichungssystem mit n + 1 Gleichungen und den n + 1<br />
unbekannten Koeffizienten y 0 , . . . , y n .<br />
224
6.2 Diskretisierung<br />
6.2.1 Diskretes Modell mit globaler Interpolation<br />
Zum Aufstellen des diskreten Gleichungssystems müssen <strong>die</strong> Ableitungen von y n′ (x) und<br />
y n′′ (x) <strong>in</strong> den Gitterpunkten x i berechnet werden:<br />
n∑<br />
n∑<br />
y n′ (x i ) = y k ∂ x L (n)<br />
k (x i)<br />
} {{ }<br />
, y n′′ (x i ) = y k ∂ xx L (n)<br />
k (x i) .<br />
} {{ }<br />
k=0<br />
k=0<br />
=:a (1) (i,k,n)<br />
=:a (2) (i,k,n)<br />
Die Koeffizienten a (k) (i, k, n), also <strong>die</strong> k-te Ableitung der k-ten Lagrange-Basisfunktion<br />
im Punkt x i , müssen für jede Komb<strong>in</strong>ation von i, k und n berechnet werden. Für kle<strong>in</strong>e<br />
Indizes kann <strong>die</strong>se Berechnung e<strong>in</strong>fach analytisch geschehen. Für große Indizes muss <strong>die</strong>se<br />
Berechnung numerisch, z.B. mit der Newton’schen Darstellung aus Abschnitt 3.1.2 erfolgen.<br />
Diese Koeffizienten hängen nicht von der diskreten Funktion y n ab, sondern lediglich<br />
vom Ansatzgrad n und der Position der Stützstellen x i . Mit <strong>die</strong>ser Schreibweise gilt für<br />
das nichtl<strong>in</strong>eare Gleichungssystem:<br />
y 0 = 0,<br />
⎛ (<br />
n∑<br />
n<br />
) ⎞ 3<br />
a (2) ∑<br />
2 2<br />
(i, k, n)y k − µf(x i ) ⎝1 + a (1) (i, k, n)y k<br />
⎠ = 0, i = 1, . . . , n − 1,<br />
k=0<br />
k=0<br />
y n = 0.<br />
(6.8)<br />
Mit dem Koeffizientenvektor y ∈ R n+1 und entsprechender vektorwertiger Funktion F n :<br />
R n+1 → R n+1 schreiben wir kurz<br />
F n (y) = 0.<br />
6.2.2 Diskretes Modell mit stückweiser Interpolation<br />
Wir betrachten nun den stückweisen l<strong>in</strong>earen Ansatz y h (x). Im Gegensatz zur globalen<br />
Interpolation y n (x) dürfen wir <strong>die</strong>se Ansatzfunktion nicht <strong>in</strong> <strong>die</strong> Differentialgleichung (6.3)<br />
e<strong>in</strong>setzen, da y h (x) <strong>in</strong> den Stützstellen gar nicht differenzierbar ist!<br />
Stattdessen werden wir zunächst <strong>die</strong> Ableitungen y ′ (x) und y ′′ (x) <strong>in</strong> den Stützstellen durch<br />
geeignete Differenzenquotienten approximieren. In Abschnitt 3.3 haben wir für <strong>die</strong> erste<br />
Ableitung zunächst <strong>die</strong> e<strong>in</strong>seitigen Differenzenquotienten kennengelernt:<br />
y ′ (x) =<br />
y(x + h) − y(x)<br />
h<br />
+ h 2 y′′ (ξ) + O(h 2 ).<br />
Dieser Differenzenquotient ist von erster Ordnung. D.h., bei Halbierung der Gitterweite<br />
ist e<strong>in</strong>e Halbierung des Fehlers zu erwarten. Für den gewählten Diskretisierungsansatz<br />
mit stückweise l<strong>in</strong>earen Funktionen ist <strong>die</strong>se erste Ordnung nicht optimal. Denn Abschätzung<br />
(6.7) besagt, dass sich der Interpolationsfehler zwischen y h und y quadratisch <strong>in</strong> h<br />
verhält. Zur besseren Balancierung wählen wir den zentralen Differenzenquotienten:<br />
y ′ (x) =<br />
y(x + h) − y(x − h)<br />
2h<br />
+ h2<br />
6 y′′′ (ξ) + O(h 4 ).<br />
225
6 Anwendungsbeispiel: dünner Balken<br />
Zur Approximation der Ableitung <strong>in</strong> e<strong>in</strong>em Punkt x i ersetzen wir <strong>die</strong> Funktionswerte y(x)<br />
durch <strong>die</strong> Koeffizienten der Lagrange-Darstellung:<br />
(y h ) ′ (x i ) ≈ y i+1 − y i−1<br />
.<br />
2h<br />
Bei der zweiten Ableitung gehen wir entsprechend vor und approximieren mit dem zentralen<br />
Differenzenquotienten zweiter Ordnung:<br />
(y h ) ′′ (x i ) ≈ −2y i + y i+1 + y i−1<br />
h 2 .<br />
Wir setzen beide Approximationen <strong>in</strong> <strong>die</strong> Differentialgleichung (6.3) e<strong>in</strong> und erhalten das<br />
nichtl<strong>in</strong>eare Gleichungssystem:<br />
(<br />
−2y i + y i−1 + y i+1<br />
h 2 − µf(x i ) 1 +<br />
( yi+1 − y i−1<br />
2h<br />
) 2<br />
) 3<br />
2<br />
y 0 = 0,<br />
= 0, i = 1, . . . , n − 1,<br />
y n = 0.<br />
(6.9)<br />
Dieses Gleichungssystem können wir wieder kurz mit e<strong>in</strong>er nichtl<strong>in</strong>earen Funktion F h :<br />
R n+1 → R n+1 schreiben.<br />
6.2.3 Vergleich und Diskussion der beiden Modelle<br />
Beide Diskretisierungsansätze führen jeweils auf e<strong>in</strong> nichtl<strong>in</strong>eares Gleichungssystem mit<br />
n + 1 Unbekannten und n + 1 Gleichungen. Der Lösungsvektor y ∈ R n+1 steht jeweils für<br />
Approximationen an <strong>die</strong> Lösung <strong>in</strong> den Stützstellen y i ≈ y(x i ). Das zweite Modell F h (·)<br />
ist von zweiter Ordnung <strong>in</strong> der Gitterweite h. Dabei geht <strong>die</strong> Ordnung gleich zweimal e<strong>in</strong>:<br />
zunächst kann e<strong>in</strong>e stückweise l<strong>in</strong>eare Funktion höchstens quadratisch <strong>in</strong> h → 0 gegen y(x)<br />
konvergieren. Auf der anderen Seite beruht <strong>die</strong> Diskretisierung auf Differenzenquotienten<br />
zweiter Ordnung <strong>in</strong> h. Das Modell F n ist zunächst e<strong>in</strong>e Approximation von Grad n. Falls<br />
<strong>die</strong> Lösung y(x) h<strong>in</strong>reichend regulär ist, so ist durch (6.7) e<strong>in</strong>e weit bessere, nämlich<br />
exponentielle Konvergenz <strong>in</strong> n zu erwarten.<br />
Das erste Modell hat jedoch zwei wesentliche Nachteile: <strong>die</strong> Koeffizienten des nichtl<strong>in</strong>earen<br />
Gleichungssystems (6.8) können nicht direkt angegeben werden, da <strong>die</strong> Faktoren<br />
a (k) (i, j, n) jeweils (numerisch) berechnet werden müssen. Zweitens kommen <strong>in</strong> jeder Gleichung<br />
sämtliche Koeffizienten y 0 , . . . , y n vor. D.h., das Gleichungssystem F n (y) = 0 ist<br />
global gekoppelt: jeder Koeffizient y i steht <strong>in</strong> direkter Kopplung mit jedem anderen Koeffizienten<br />
y j . Bei Modell F h (y) = 0 koppeln dagegen nur direkt benachbarte Koeffizienten.<br />
Wir kommen auf <strong>die</strong>sen wesentlichen Punkt bei der Diskussion der Lösungsverfahren zurück.<br />
226
6.3 Lösungsverfahren<br />
6.3 Lösungsverfahren<br />
Wir betrachten nun allgeme<strong>in</strong> das Problem F (y) = 0 mit y ∈ R n+1 und F : R n+1 → R n+1 .<br />
Dieses nichtl<strong>in</strong>eare Gleichungssystem ist als Nullstellenproblem formuliert. Die Lösung<br />
kann nicht direkt bestimmt werden. Daher approximieren wir y mit Hilfe e<strong>in</strong>es Iterationsverfahrens.<br />
Hier bietet sich das Newton-Verfahren im R n+1 an. Wir wählen e<strong>in</strong>e<br />
Startlösung, z.B. y 0 = 0 und iterieren für t = 0, 1, 2, . . .<br />
y t+1 = y t − F ′ (y t ) −1 F (y t ).<br />
Die Ableitung A t := F ′ (y t ) ist e<strong>in</strong>e Matrix. Daher formulieren wir das Verfahren <strong>in</strong> Form<br />
e<strong>in</strong>er Defekt-Korrektur:<br />
A t (y t+1 − y t ) = −F (y t ), A t := F ′ (y t ).<br />
Zunächst müssen wir <strong>die</strong> Voraussetzungen des Newton-Verfahrens überprüfen. Die Funktion<br />
F (·) muss (siehe Satz 5.12):<br />
1. Stetig differenzierbar se<strong>in</strong>. Wir berechnen <strong>die</strong> Ableitungen von F n und F h :<br />
A t ij := ∂F i<br />
n<br />
= a (2) (i, j, n) − 3 (<br />
∂y j 2 µf(x ∑ n<br />
√<br />
i) 1 +<br />
∂F h<br />
i<br />
∂y j<br />
=<br />
) 2 ( n<br />
)<br />
∑<br />
a (1) (i, k, n)y k 2 a (1) (i, k, n)y k a (1) (i, j, n),<br />
k=0<br />
k=0<br />
⎧<br />
√<br />
( )<br />
1<br />
+ 3<br />
h 2 2h µf(x i) 1 +<br />
yi+1 −y 2 ( )<br />
i−1 yi+1 −y i−1<br />
2h<br />
2h<br />
j = i − 1,<br />
⎪⎨ − 2 j = i,<br />
h 2 √<br />
( )<br />
1<br />
− 3<br />
h<br />
⎪⎩<br />
2 2h µf(x i) 1 +<br />
yi+1 −y 2 ( )<br />
i−1 yi+1 −y i−1<br />
2h<br />
2h<br />
j = i + 1,<br />
0 sonst.<br />
Der Term unter der Wurzel ist stets größer gleich e<strong>in</strong>s. Daher existiert <strong>die</strong> Ableitung<br />
für alle y.<br />
2. E<strong>in</strong>e gleichmäßig beschränkte und <strong>in</strong>vertierbare Jacobimatrix besitzen. Die Invertierbarkeit<br />
<strong>die</strong>ser Matrix ist schwer zu prüfen. Im Fall F h ist <strong>die</strong> Analyse verhältnismäßig<br />
e<strong>in</strong>fach: für sehr kle<strong>in</strong>es h ist der erste Anteil der Matrix 2h −2 und −h −2 dom<strong>in</strong>ant.<br />
Die Matrix ist dann also e<strong>in</strong>e kle<strong>in</strong>e Störung der bereits bekannten Modellmatrix,<br />
deren Invertierbarkeit wir bereits kennen. E<strong>in</strong>e kle<strong>in</strong>e Störung e<strong>in</strong>er Matrix ist nach<br />
Hilfsatz 4.17 wieder <strong>in</strong>vertierbar.<br />
Da <strong>die</strong> Funktion F (·) nichtl<strong>in</strong>ear ist, hängt <strong>die</strong> Jacobi-Matrix von der Approximation y<br />
ab.<br />
227
6 Anwendungsbeispiel: dünner Balken<br />
6.4 E<strong>in</strong> Beispiel<br />
Wir werden mit e<strong>in</strong>em Beispiel den Diskretisierungsansatz prüfen. Als Beispiel wollen wir<br />
e<strong>in</strong>e Funktion f(x) sowie e<strong>in</strong>en Materialparameter µ so wählen, dass wir <strong>die</strong> exakte Lösung<br />
y(x) analytisch bestimmen können. So können wir <strong>die</strong> numerischen Approximationen<br />
y h sowie y n auf ihre Genauigkeit überprüfen. Da nichtl<strong>in</strong>eare Differentialgleichungen im<br />
Allgeme<strong>in</strong>en nicht e<strong>in</strong>fach analytisch gelöst werden können, gehen wir hier umgekehrt vor:<br />
wir wählen e<strong>in</strong>e gewünschte Lösung y(x) und bestimmen durch E<strong>in</strong>setzen <strong>in</strong> <strong>die</strong> Differentialgleichung<br />
(6.3) <strong>die</strong> zugehörige rechte Seite f(x). Wir wählen µ = 1 und bestimmen <strong>die</strong><br />
Lösung y(x) als y(x) = s<strong>in</strong>(2πx). Diese Lösung erfüllt <strong>die</strong> Randdaten y(0) = y(1) = 0. Es<br />
gilt:<br />
y ′′ (x)<br />
4 s<strong>in</strong>(2πx)π 2<br />
f(x) =<br />
= −<br />
.<br />
(1 + y ′ (x) 2 ) 3 2 (1 + 4 cos(2πx) 2 π 2 ) 3 2<br />
Im folgenden bestimmen wir <strong>die</strong> zugehörigen Approximationen y n sowie y h jeweils bei<br />
Unterteilung des Intervalls I = [0, 1] <strong>in</strong> n = 4 bzw. <strong>in</strong> n = 8 Teil<strong>in</strong>tervalle.<br />
6.4.1 Globaler Polynomansatz<br />
Wir starten das Newton-Verfahren mit der Anfangsnäherung y 0 = 0, da ke<strong>in</strong>e bessere<br />
Näherung bekannt ist. Im Folgenden führen wir solange Newton-Schritte y 1 , y 2 , . . . durch,<br />
bis e<strong>in</strong> Newton-Residuum |F (y t )| < 10 −6 erreicht wird.<br />
• Schritt 1. Es gilt für n = 4 sowie n = 8 bei y 0 = 0:<br />
‖F 4 (y 0 )‖ ≈ 10, ‖F 8 (y 0 )‖ ≈ 30.<br />
Die beiden E<strong>in</strong>träge F 0 = F 8 = 0 s<strong>in</strong>d Null, da hier <strong>die</strong> Gleichung e<strong>in</strong>fach durch<br />
y 0 = y n = 0 gegeben ist. Diese ist bereits erfüllt. Im nächsten Schritt berechnen wir<br />
<strong>die</strong> Jacobimatrix A 0 := f ′ (y 0 ):<br />
⎛<br />
⎞<br />
1 0 0 0 0<br />
14.67 −26.67 8 5.33 −1.33<br />
A n=4 =<br />
−1.33 21.33 −40 21.33 −1.33<br />
,<br />
⎜<br />
⎟<br />
⎝−1.33 5.33 8 −26.67 14.67 ⎠<br />
0 0 0 0 1<br />
228
6.4 E<strong>in</strong> Beispiel<br />
und im Fall n = 8:<br />
⎡<br />
1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0<br />
41.49 1.625 −265.6 489.6 −470.2 300.8 −124.8 30.43 −3.314<br />
−3.314 71.31 −117.7 12.80 72.0 −52.62 22.40 −5.486 0.5968<br />
0.5968 −8.686 92.80 −167.8 88.0 −3.200 −2.489 0.9143 −0.1143<br />
A 0 ≈<br />
−0.1143 1.625 −12.80 102.4 −182.2 102.4 −12.80 1.625 −0.1143<br />
−0.1143 0.9143 −2.489 −3.200 88.0 −167.8 92.80 −8.686 0.5968<br />
0.5968 −5.486 22.40 −52.62 72.0 12.80 −117.7 71.31 −3.314<br />
⎢<br />
⎣<br />
−3.314 30.43 −124.8 300.8 −470.2 489.6 −265.6 1.625 41.49<br />
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0<br />
Diese 9×9-Matrix ist mit cond 2 (A) n=4 ≈ 90 sowie cond 2 (A) n=8 ≈ 2 500 sehr schlecht<br />
konditioniert. Es zeigt sich, dass <strong>die</strong> Konditionszahl von A exponentiell <strong>in</strong> n steigt<br />
für n = 16 gilt bereits cond 2 (A) ≈ 10 6 , für n = 32 bereits 10 13 . Da <strong>die</strong> Matrizen A t<br />
weder dünn besetzt s<strong>in</strong>d noch e<strong>in</strong>e spezielle Struktur aufweisen bietet sich zum Lösen<br />
nur e<strong>in</strong> direktes Verfahren an. Beide Matrizen s<strong>in</strong>d nicht diagonaldom<strong>in</strong>ant. E<strong>in</strong>fache<br />
iterative Verfahren werden somit vermutlich nicht konvergieren. Wir verwenden <strong>die</strong><br />
LR-Zerlegung und berechnen:<br />
y 1 − y 0 = −[A 0 ] −1 F (y 0 ).<br />
Wir geben hier <strong>die</strong> Zwischenschritte nicht an.<br />
• Schritt 2:<br />
‖F 4 (y 1 )‖ 2 ≈ 4, ‖F 8 (y 1 )‖ 2 ≈ 10.<br />
⎤<br />
⎥<br />
⎦<br />
• Schritt 3:<br />
• Schritt 4:<br />
• Schritt 5:<br />
‖F 4 (y 2 )‖ 2 ≈ 0.7, ‖F 8 (y 2 )‖ 2 ≈ 5.<br />
‖F 4 (y 3 )‖ 2 ≈ 0.05, ‖F 8 (y 3 )‖ 2 ≈ 2.5<br />
‖F 4 (y 4 )‖ 2 ≈ 3 · 10 −4 , ‖F 8 (y 4 )‖ 2 ≈ 0.9<br />
• Schritt 6:<br />
‖F 4 (y 5 )‖ 2 ≈ 1 · 10 −8 , ‖F 8 (y 5 )‖ 2 ≈ 0.03.<br />
Für n = 4 ist das gewünschte Residuum erreicht und <strong>die</strong> approximative Lösung<br />
lautet:<br />
⎛ ⎞<br />
0<br />
0.70853<br />
y n=4 ≈<br />
1.0025<br />
⎜ ⎟<br />
⎝0.70853⎠<br />
0<br />
229
6 Anwendungsbeispiel: dünner Balken<br />
Diese Lösung ist mit dem folgenden Fehler versehen:<br />
max<br />
i=0,...,n<br />
|yi n=4 − y(x i )|<br />
= 0.0025,<br />
|y(x i )|<br />
• Schritt 7: wir fahren mit n = 8 fort:<br />
‖F 8 (y 6 )‖ 2 ≈ 5 · 10 −6 ,<br />
• Schritt 8:<br />
mit der Lösung:<br />
‖F 8 (y 7 )‖ 2 ≈ 10 −10 ,<br />
⎛ ⎞<br />
0<br />
0.382681<br />
0.707105<br />
y n=8 0.923878<br />
≈<br />
0.999998<br />
.<br />
0.923878<br />
0.707105<br />
⎜ ⎟<br />
⎝0.382681⎠<br />
0<br />
Diese Lösung ist mit dem folgenden relativen Fehler versehen:<br />
max<br />
i=0,...,n<br />
|yi n=8 − y(x i )|<br />
= 0.0000054.<br />
|y(x i )|<br />
Mit den berechneten Koeffizienten y kann das Lösungspolynom <strong>in</strong> der Lagrangedarstellung<br />
angegeben werden. Durch Verdoppelung der Anzahl der Unbekannten von n = 4 auf n = 8<br />
wird <strong>die</strong> Approximation um den Faktor 500 verbessert! Dieser große Zugew<strong>in</strong>n liegt an<br />
der exponentiellen Fehlerabschätzung der globalen Interpolation 6.7.<br />
6.4.2 Stückweiser Polynomansatz<br />
Wir wählen wieder <strong>die</strong> Diskretisierungen n = 4 sowie n = 8 und starten <strong>die</strong> Iteration<br />
mit y 0 = 0. Wir iterieren mit dem Newton-Verfahren bis das Residuum <strong>die</strong> Schwelle 10 −6<br />
erreicht:<br />
• Schritt 1: Es gilt mit (6.9) für das erste Residuum<br />
‖F 4 (y 0 )‖ ∞ ≈ 10, ‖F 8 (y 0 )‖ ≈ 10.<br />
230
6.4 E<strong>in</strong> Beispiel<br />
Die Jacobi-Matrizen ergeben sich zu<br />
im Fall von n = 4 und<br />
⎛<br />
⎞<br />
1 0 0 0 0<br />
16 −32 16 0 0<br />
A 4 :=<br />
0 16 −32 16 0<br />
,<br />
⎜<br />
⎟<br />
⎝ 0 0 16 −32 16⎠<br />
0 0 0 0 1<br />
⎛<br />
⎞<br />
1 0 0 0 0 0 0 0 0<br />
64 −128 64 0 0 0 0 0 0<br />
0 64 −128 64 0 0 0 0 0<br />
A 8 0 0 64 −128 64 0 0 0 0<br />
:=<br />
0 0 0 64 −128 64 0 0 0<br />
,<br />
0 0 0 0 64 −128 64 0 0<br />
0 0 0 0 0 64 −128 64 0<br />
⎜<br />
⎟<br />
⎝ 0 0 0 0 0 0 64 −128 64⎠<br />
0 0 0 0 0 0 0 0 1<br />
im Fall n = 8. Für <strong>die</strong> Konditionszahlen gilt cond 2 (A 4 ) ≈ 90 und cond 2 (A 8 ) ≈<br />
500. Die Matrizen s<strong>in</strong>d Tridiagonal-Matrizen. Das LGS kann z.B. sehr effizient mit<br />
der LR-Zerlegung für Bandmatrizen, <strong>in</strong> <strong>die</strong>sem Fall mit dem Thomas-Algorithmus<br />
(Satz 4.37) gelöst werden. Für y 0 = 0 erfüllen darüber h<strong>in</strong>aus beide Matrizen das<br />
schwache Zeilensummenkriterium (siehe Satz 5.28), d.h., Jacobi- sowie Gauß-Seidel-<br />
Verfahren könnten ebenso e<strong>in</strong>gesetzt werden. Wir wählen hier den direkten Löser.<br />
Wir berechnen das Update:<br />
A(y 1 − y 0 ) = −F (y 0 ),<br />
ohne <strong>die</strong> Zwischenschritte hier anzugeben.<br />
• Schritt 2: es gilt:<br />
‖F 4 (y 1 )‖ 2 ≈ 1.63, ‖F 8 (y 1 )‖ 2 ≈ 2.38<br />
• Schritt 3: es gilt:<br />
‖F 4 (y 2 )‖ 2 ≈ 0.22, ‖F 8 (y 2 )‖ 2 ≈ 0.73<br />
• Schritt 4: es gilt:<br />
‖F 4 (y 3 )‖ 2 ≈ 0.01, ‖F 8 (y 3 )‖ 2 ≈ 0.21<br />
• Schritt 5: es gilt:<br />
‖F 4 (y 4 )‖ 2 ≈ 10 −10 , ‖F 8 (y 4 )‖ 2 ≈ 0.015<br />
231
6 Anwendungsbeispiel: dünner Balken<br />
Die Lösung y n=4 ist gegeben als:<br />
⎛ ⎞<br />
0<br />
0.5373<br />
y n=4 ≈<br />
0.8457<br />
,<br />
⎜ ⎟<br />
⎝0.5473⎠<br />
0<br />
und ist mit folgendem relativen Fehler versehen:<br />
‖y − y n=4 ‖ ∞<br />
‖y‖ ∞<br />
≈ 0.17.<br />
• Schritt 6: wir fahren mit n = 8 fort:<br />
‖F 8 (y 5 )‖ 2 ≈ 5 · 10 −4 ,<br />
• Schritt 7: für n = 8:<br />
mit der Approximation:<br />
mit e<strong>in</strong>em Fehler:<br />
‖F 8 (y 6 )‖ 2 ≈ 10 −10 ,<br />
⎛ ⎞<br />
0<br />
0.320<br />
0.604<br />
y n=8 0.808<br />
=<br />
0.885<br />
,<br />
0.808<br />
0.604<br />
⎜ ⎟<br />
⎝0.320⎠<br />
0<br />
‖y − y n=8 ‖ ∞<br />
‖y‖ ∞<br />
≈ 0.11.<br />
Da der Fehler bei der zweiten Approximation n = 8 immer noch sehr groß ist, bestimmen<br />
wir - ohne <strong>die</strong> Zwischenschritte anzugeben - weitere Approximationen. Hier zeigt sich<br />
quadratische Konvergenz <strong>in</strong> h:<br />
n ‖y n − y‖ ∞ /‖y‖ ∞ ‖y h − y‖ ∞ /‖y‖ ∞<br />
4 2.5 · 10 −3 2 · 10 −1<br />
8 5 · 10 −6 1 · 10 −1<br />
16 2 · 10 −2<br />
32 5 · 10 −3<br />
232
6.4 E<strong>in</strong> Beispiel<br />
6.4.3 Analyse und Vergleich<br />
Beide Diskretisierungsansätze eignen sich pr<strong>in</strong>zipiell zur Approximation des Anwendungsproblems.<br />
Es zeigen sich jedoch wesentliche Unterschiede. Das globale Polynom vierten<br />
Grades erzeugt etwa <strong>die</strong> gleiche Approximationsgüte wie das stückweise Polynom mit<br />
n = 32 Teil<strong>in</strong>tervallen! Dieser große Unterschied beruht auf der exponentiellen Konvergenzrate<br />
der Interpolation im Fall n → ∞.<br />
Die gute Approximation muss durch e<strong>in</strong>e aufwändige Lösung erkauft werden: <strong>in</strong> jedem<br />
Schritt der Newton-Iteration muss e<strong>in</strong> l<strong>in</strong>eares Gleichungssystem mit voll besetzter Matrix<br />
gelöst werden. Spezielle Bandstrukturen können nicht ausgenutzt werden. Der Stückweise<br />
Ansatz h<strong>in</strong>gegen erzeugt sehr dünne Bandmatrizen, <strong>die</strong> auch für sehr große Systeme effizient<br />
<strong>in</strong>vertiert werden können. H<strong>in</strong>zu kommt, dass der globale Polynomansatz e<strong>in</strong>e sehr<br />
schlecht konditionierte Matrix erzeugt. Dies spielt bei den hier betrachteten sehr kle<strong>in</strong>en<br />
Problemen noch ke<strong>in</strong>e wesentliche Rolle. Die schlechte Kondition kommt aber z.B. bei<br />
der Diskretisierung von zwei- oder dreidimensionalen Problemen schnell zu tragen. Der<br />
globale Polynomansatz wird bei n > 20 aufgrund von Rundungsfehleranfälligkeit versagen.<br />
Der stückweise Ansatz kann (und wird) auch für sehr große n > 1 000 000 Systeme<br />
durchgeführt.<br />
Schließlich wird <strong>die</strong> hier dargestellte Situation durch das gewählte Beispiel verzerrt. Die<br />
Lösung y(x) ist analytisch vorgegeben und es gilt y ∈ C ∞ (I). Nur bei <strong>die</strong>ser hohen Differenzierbarkeit<br />
kann der globale Polynomansatz se<strong>in</strong>e volle Ordnung erreichen. In der<br />
praktischen Anwendung ist <strong>die</strong> Lösung meist nicht bekannt. Stattdessen werden Kräfte<br />
vorgeben. E<strong>in</strong>e übliche Kraft kann z.B. <strong>die</strong> stückweise Belastung des Balkens se<strong>in</strong>:<br />
⎧<br />
⎪⎨ 0 x < 1 4<br />
f(x) =<br />
1<br />
−1<br />
4<br />
⎪⎩<br />
≤ x ≤ 1 .<br />
2<br />
0 x > 1 2<br />
Diese Funktion f ist nicht mehr differenzierbar, sie ist sogar nicht mehr stetig. Es zeigt sich,<br />
dass <strong>in</strong> <strong>die</strong>sem Fall auch <strong>die</strong> Lösung y(x) nicht mehr über beliebige Regularität verfügt. Die<br />
Vere<strong>in</strong>fachung y ′′ (x) ≈ f(x) legt nahe, dass y(x) <strong>die</strong> zwei-fache Stammfunktion zu f(x)<br />
ist und dass daher y ∈ C 1 (I) gilt. In <strong>die</strong>sem Fall kann der globale Polynomansatz nicht<br />
mehr <strong>die</strong> volle Ordnung erreichen und e<strong>in</strong>e stückweise Diskretisierung ist überlegen. In<br />
Abbildung 6.3 zeigen wir für <strong>die</strong>ses Beispiel <strong>die</strong> Lösungen zu n = 4 und n = 8, jeweils mit<br />
globalem Polynomansatz und mit stückweise def<strong>in</strong>iertem Ansatz. Der globale Ansatz zeigt<br />
e<strong>in</strong> unphysikalisches Verhalten: obwohl <strong>die</strong> Kraft nur nach unten geht, wird der Balken<br />
am Rand nach oben ausgelenkt. Dies ist gerade <strong>die</strong> numerische Instabilität der globalen<br />
Lagrange-Interpolation an den Intervallenden!<br />
233
6 Anwendungsbeispiel: dünner Balken<br />
Abbildung 6.3:<br />
Oben: Diskretisierung mit globalem Polynomansatz. L<strong>in</strong>ks n = 4 und<br />
rechts n = 8. Unten: Diskretisierung mit stückweise l<strong>in</strong>earen Polynomen.<br />
234
Index<br />
l 1 -Norm, 110<br />
Ahnliche Matrizen, 176<br />
Approximation, 47<br />
Aufwand, elementare Operation, 3<br />
Ausloschung, 13<br />
Banach’scher Fixpunktsatz, 182<br />
Banachraum, 111<br />
Bandmatrix, 134<br />
Basis, 109<br />
Besetzungsmuster, 134<br />
Boxregel, 72<br />
Cauchy-Schwarz Ungleichung, 111<br />
Charakteristisches Polynom, 165<br />
Cholesky-Zerlegung, 132<br />
Cuthill-McKee, 137<br />
Darstellungsfehler, 12<br />
Defekt, 32, 140<br />
L<strong>in</strong>eares Gleichungssystem, 141<br />
Defektkorrektur, 140, 142<br />
denormalisierte Zahlen, 9<br />
Diagonaldom<strong>in</strong>anz, 131<br />
strikte, 200<br />
Differenzenquotien<br />
e<strong>in</strong>seitig, 64<br />
Differenzenquotient<br />
zentral, 64<br />
zweite Ableitung, 65<br />
direktes Verfahren, 116<br />
Divi<strong>die</strong>rte Differenzen, 52<br />
Eigenvektor, 112<br />
Eigenwert, 112<br />
Eigenwerte, 164<br />
E<strong>in</strong>seitiger Differenzenquotient, 64<br />
elementare Operation, 3<br />
Energienorm, 210<br />
euklidische Norm, 110<br />
euklidischer Raum, 111<br />
Euler-Maclaur<strong>in</strong>sche Summenformel, 95<br />
Exponent, 8<br />
Extrapolation zum Limes, 67<br />
Fixkommadarstellung, 8<br />
float<strong>in</strong>g-po<strong>in</strong>t process<strong>in</strong>g unit, 9<br />
FLOPS, 14<br />
Fourier-Entwicklung, 98<br />
FPU, 9<br />
Frobeniusmatrix, 122<br />
Frobeniusnorm, 114<br />
Gaus-Legendre, 83<br />
Gaus-Seidel-Verfahren, 199<br />
Gaus-Tschebyscheff, 90<br />
Gauss-Quadratur, 81<br />
Gerschgor<strong>in</strong>-Kreise, 166<br />
Givens-Rotation, 155<br />
Gleitkommadarstellung, 8<br />
GPU, 10<br />
Gra<strong>die</strong>ntenverfahren, 212<br />
Gram-Schmidt Verfahren, 146<br />
graphics process<strong>in</strong>g unit, 10<br />
Hessenberg-Matrix, 157, 177<br />
Hilbertraum, 111<br />
Horner-Schema, 2, 3<br />
Householder-Transformation, 150<br />
IEEE 754, 9<br />
Interpolation, 47<br />
Hermite, 57<br />
Lagrangesche Darstellung, 51<br />
Newtonsche Darstellung, 52<br />
235
Index<br />
Intervallschachtelung, 24<br />
Inverse Iteration, 172<br />
Irreduzibel, 201<br />
iterative Verfahren, 116<br />
Jacobi-Matrix, 186<br />
Jacobi-Verfahren, 198<br />
kle<strong>in</strong>ste Fehlerquadrate, 159<br />
Konditionszahl, 6<br />
Matrix, 117<br />
Konditionszahl e<strong>in</strong>er Matrix, 119<br />
Kontraktion, 182<br />
Konvergenz<br />
iterativer Verfahren, 36<br />
Kronecker-Symbol, 51<br />
Lagrange Interpolationsaufgabe, 50<br />
Landau-Symbole, 4<br />
Least-Squares Losung, 159<br />
Legendre-Polynome, 89<br />
L<strong>in</strong>e-Search, 34, 194<br />
L<strong>in</strong>eares Gleichungssystem<br />
uberbestimmt, 158<br />
Lipschitz-stetig, 182<br />
LR-Verfahren zur Eigenwertberechnung,<br />
175<br />
Mantisse, 8<br />
Masch<strong>in</strong>engenauigkeit, 12<br />
Matrix<br />
dunn besetzt, 134<br />
orthogonal, 145<br />
Matrixnorm, 114<br />
<strong>in</strong>duzierte, 114<br />
vertraglich, 114<br />
Maximumsnorm, 110<br />
Mittelpunktsregel, 72<br />
Nachiteration, 142<br />
Neville-Schema, 53<br />
Newton-Cotes Formeln, 77<br />
Newton-Verfahren, 187<br />
1D, 27<br />
gedampftes, 33<br />
vere<strong>in</strong>fachtes, 33<br />
Norm, 109<br />
l 1 , 110<br />
euklidisch, 110<br />
Normalgleichungssystem, 159<br />
Normaquivalenz, 110<br />
Nullstellensuche, 19<br />
Orthogonalbasis, 111<br />
Orthonormalbasis, 111<br />
Parallelogrammidentitat, 111<br />
Pivot-Element, 125<br />
Pivot-Matrizen, 126<br />
Pivotisierung, 125<br />
Polynomauswertung, 2<br />
Postprocess<strong>in</strong>g, 68<br />
Potenzmethode, 170<br />
Prahilbertraum, 99, 111<br />
QR-Verfahren zur Eigenwertberechnung,<br />
175<br />
QR-Zerlegung, 146<br />
Quadratur, 72<br />
Quadraturgewicht, 72<br />
Rayleigh-Quotient, 165<br />
Relaxation, 204<br />
Residuum, 32<br />
Ruckwartse<strong>in</strong>setzen, 120<br />
Satz von Newton-Kantorovich, 188<br />
Schrankensatz, 184<br />
Simpson-Regel, 76<br />
Skalarprodukt, 110<br />
SOR-Verfahren, 204<br />
Sparsity Pattern, 134<br />
Spektralnorm, 114<br />
Spektralradius, 112<br />
Spektrum, 112<br />
Spl<strong>in</strong>e, 62<br />
Stutzstellen, 72<br />
Taylor-Entwicklung, 49<br />
Trapezregel, 72<br />
Tridiagonalmatrix, 134<br />
Tschebyscheff-Polynome, 91<br />
236
Index<br />
Uberrelaxation, 204<br />
unitarer Raum, 111<br />
Unterrelaxation, 204<br />
Zeilensummenkriterium<br />
schwaches, 201<br />
starkes, 200<br />
Zentraler Differenzenquotient, 64<br />
237