160
Einführung in die numerische Mathematik für Chemiker Bernd Hartke Henrik R. Larsson Theoretische Chemie Institut für Physikalische Chemie Max-Eyth-Straße 2 Erdgeschoss, Raum 29 Tel.: 0431/880-2753 [email protected] [email protected] http://rave.pctc.uni-kie.de „Sprechstunde“: Jederzeit nach Vereinbarung

Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected] Inhaltsverzeichnis

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Einführung in die numerischeMathematik für Chemiker

Bernd HartkeHenrik R. Larsson

Theoretische ChemieInstitut für Physikalische Chemie

Max-Eyth-Straße 2Erdgeschoss, Raum 29

Tel.: 0431/[email protected]

[email protected]

http://ravel.pctc.uni-kiel.de

„Sprechstunde“: Jederzeit nach Vereinbarung

Page 2: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Inhaltsverzeichnis

0 Vorbemerkungen 40.1 Inhaltsplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1 Minimaleinführung in octave 91.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2 Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.3 Weitere Bibliotheken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.4 Ein erster Einstieg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.5 Programmierdisziplin! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2 Zahlendarstellung 242.1 Natürliche Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.2 Ganze Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3 Zahlenbereich und Über-/Unterschreitung . . . . . . . . . . . . . . . . . . . . . . . 252.4 Gleitkommazahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 Fehler und Kondition 303.1 Fehlerarten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.2 Einschub: Norm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.3 Konditionierung mathematischer Probleme . . . . . . . . . . . . . . . . . . . . . . . 32

4 Numerische Di�erentiation 364.1 Vorwärtsdi�erenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.2 Zentrale Di�erenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.3 Höhere Ordnungen: Richardsons Extrapolation . . . . . . . . . . . . . . . . . . . . 374.4 Wahl der Schri�weite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.5 Anmerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5 Integration 395.1 Vorbemerkungen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.2 Trapezregel (Euler-Verfahren) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.3 Simpsonregel und andere Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.4 Adaptive �adratur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425.5 Einschub: Orthogonale Polynome . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.6 Gauß-Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.7 Berechnungen der Wichtungen und Punkte . . . . . . . . . . . . . . . . . . . . . . 465.8 Schwierige Integranden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.9 Mehrdimensionale Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.10 Monte-Carlo Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6 Suche nach Nullstellen und Extremwerten 526.1 Nullstellensuche (root finding) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526.2 Verfahren im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606.3 Extremwertsuche = Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616.4 Multidimensionale Minimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666.5 Mehrdimensionale nichtlineare Nullstellensuche . . . . . . . . . . . . . . . . . . . . 74

2

Page 3: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7 Gewöhnliche Di�erentialgleichungen 767.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767.2 Explizites Euler-Cauchysches Polygonzugverfahren . . . . . . . . . . . . . . . . . . 787.3 Runge-Ku�a-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797.4 Adaptive Schri�weitenkontrolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827.5 Weitere Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847.6 Steife Anfangswertprobleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867.7 Zusammenfassung und Praxistipps . . . . . . . . . . . . . . . . . . . . . . . . . . . 897.8 Partielle Di�erentialgleichungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

8 Lineare Gleichungssysteme 958.1 Grundlegendes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958.2 Konditionierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 988.3 Gaußsches Eliminationsverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008.4 LU-Zerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038.5 Cholesky-Zerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058.6 Nachiteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078.7 Kahan-Summation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1088.8 Direkte Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

9 Matrixeigenwertproblem 1129.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129.2 Orthogonale Matrizen in zwei Dimensionen . . . . . . . . . . . . . . . . . . . . . . 1149.3 Jacobi-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1169.4 Andere Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209.5 Eigenwertabschätzung: Gerschgorin-Kreise . . . . . . . . . . . . . . . . . . . . . . . 1229.6 Iterative Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249.7 Singulärwertzerlegung/singular value decomposition (SVD) . . . . . . . . . . . . . 1279.8 Bilbiotheksroutinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

10 Interpolation 13010.1 Taylor-Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13210.2 Lagrange-Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13310.3 Interpolation mit rationalen Funktionen . . . . . . . . . . . . . . . . . . . . . . . . 13710.4 Stückweise/Spline-Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13810.5 Trigonometrische Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14110.6 Mehrdimensionale Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

11 Ausgleichungsrechnung 14711.1 Hintergrund: Statistik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14811.2 Allgemeine lineare Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15111.3 Nichtlineare Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

3

Page 4: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

0 Vorbemerkungen

Ziele der Veranstaltung:

• wie bringe ich meinen Computer dazu, nicht nur vorgefertigte Programme anderer Leuteabzuspulen, sondern meine eigenen Aufgaben auf meine eigene Weise zu lösen;

• erstes Grundverständnis von numerischer i.Ggs. zu analytischer Mathematik;

• Erwerb nötigen Hintergrundwissens für den Umgang mit beliebigen vorgefertigten Program-men aus dem Bereich angewandte Mathematik und numerische Simulation in Physik, Che-mie,. . .

• Erkennung von Fehlerquellen bei numerischen Rechnungen

KEINE Ziele der Veranstaltung:

• detaillierte Einführung in spezielle tools;

• insbesondere: keine Einführung in Orca oder andere TheoChem-Pakete

• physikalisch- oder theoretisch-chemischer Sto�

• Komple�e Abdeckung aller high-end numerischen Methoden

Anmerkung: Teile der Vorlesung basieren auf der Vorlesung von Prof. E. Pehlke, „NumerischeMethoden für Physiker“.

4

Page 5: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

procedere:

• 11 verschiedene thematische Kapitel; zu jedem Kapitel gibt es:(üblicherweise abwechselnd; aber: Ansagen beachten!)

– Zwei Vorlesungsstunden: Einführung in die theoretischen Grundlagen;Besprechung des zugehörigen Aufgabenbla�s mit mehreren Aufgaben

– Eine Übungsstunde + eine Vorlesungsstunde, oder zwei Übungsstunden;Besprechung der Aufgaben

• alle Skriptseiten und alle Aufgabenblä�er von meiner homepage als PDF-Dateien herunterlad-bar:http://ravel.pctc.uni-kiel.de→ Teaching→ Einführung in die numerische Mathematik für Chemiker(Achtung: Inhalt kann sich während des Semesters noch ändern)

• die Benotung erfolgt über die selbstständige Lösung der Übungen.

– abzugeben sind:

∗ Skripte/Funktionen (∗.m-Dateien)

∗ Erläuterungen/Antworten auf die Fragen (als pdf-Datei)

– Abgabe der Aufgaben am Besten per e-mail: [email protected]

– Bei Fragen, bi�e melden!

5

Page 6: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

0.1 InhaltsplanVoraussetzungen: MNF-chem0102/0202 „Mathematik für Chemiker 1&2“

Inhalt: (optional)

-1- Octave/Matlab: Einführung in die grundlegenden Konzepte

-2- Zahlendarstellung: Ganze Zahlen, Gleitkommazahlen (IEEE 754)

-3- Fehlerquellen und -fortpflanzung, Konditionierung

-4- Di�erentiation

-5- Integration: Trapezregel, Simpson, Gauß, adaptiv, mehrdimensional, Monte-Carlo

-6- Suche nach Nullstellen und Extremwerten: Intervallschachtelung, Bisektion, regula falsi,Newton-Raphson, quasiNewton, mehrdimensional, conjugate gradient, DIIS

-7- Di�erentialgleichungen Euler, Runge-Ku�a, Steifheit, adaptiv, Bulirsch-Stoer, Adams-Moulton

-8- Lösung linearer Gleichungssysteme: Zerlegungen (LU, Cholesky), Kondition, Matrixinversion,direkte Berechnung (conjugate gradient, MINRES, GMRES), Präkonditionierung

-9- Matrixdiagonalisierung: Jacobi-Rotation, Singulärwertzerlegung, direkte Berechnung (Vektori-teration, Lanczos-Verfahren), Abschätzung (Gerschgorin-Kreise)

-10- Interpolation: Polynomial, Spline, Trigonometrisch, Fouriertransformation (FFT), mehrdimen-sionale Interpolation.

-11- Regression:χ2-Statistik, lineare und nichtlineare Regression (Levenberg-Marquardt),

Wochenplan:Woche Thema

27.10.2015 Vorbesprechung02.11.2015–06.11.2015 -1- -2-09.11.2015–13.11.2015 -3- -4-16.11.2015–20.11.2015 -5-23.11.2015–27.11.2015

-6-30.11.2015–04.12.201507.12.2015–11.12.201514.12.2015–18.12.2015

-7-

07.01.2016–08.01.201611.01.2016–15.01.2016

-8-

18.01.2016–22.01.2016 -9-25.01.2016–29.01.201601.02.2016–05.02.2016

-10-

08.02.2016–12.02.2016 -11-

6

Page 7: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Literaturempfehlungen:

Allgemein• W. H. Press, B. P. Flannery, S. A. Teukolsky und W. T. Ve�erling: „Numerical Recipes 3rd

Edition“, Cambridge University Press, Cambridge, 2007:sehr gut geschriebene Einführung in die Grundalgorithmen der Numerischen Mathematik,mit Beispielprogrammen; weit verbreitetes Standardwerk.

• M. Hermann, „Numerische Mathematik“, Oldenburg, 2006Gut zugängliches Buch. Leider fehlt die Behandlung von Di�erentialgleichungen und vonMinimierung.

• Roland W. Freund, Ronald W. Hoppe: „Stoer/Bulirsch: Numerische Mathematik 1 und 2“,Springer, Berlin, 10. Auflage, 2007:bewährtes Standardwerk deutscher Mathe-Fakultäten zur Numerischen Mathematik, bekanntfür klare Darstellung. Etwas „mathematischer Stil“.

• Peter Deuflhard, Andreas Hohmann: „Numerische Mathematik 1&2&3: Eine algorithmischorientierte Einführung“, de Gruyter, Berlin, 4. Auflage, 2008;Band 1 ist eine allgemeine Einführung mit verschiedenen Themen; klarer Text, leider keineBehandlung von Minimierung. Band 2 und 3 beschä�igen sich ausgiebig mit Di�erentialglei-chungen.

• A. Neumaier: „Introduction to Numerical Analysis“, Cambridge University Press, Cambridge,2001:gutes Buch eines Genies in der Numerischen Mathematik

• H. R. Schwarz und J. Waldvogel (Hrsg.): „Numerische Mathematik“, Teubner-Verlag, 1997:umfassender Klassiker, aber etwas schwerer zugänglich.

• G. H. Golub und C. F. van Loan: „Matrix Computations“, Johns Hopkins University Press, 2013:Klassiker zur linearen Algebra; ziemlich „mathematischer“ Stil; für Detailinformationen zulinearen Gleichungssystemen und zum Eigenwertproblem.

• P. E. Gill, W. Murray, M. H. Wright: „Practical Optimization“, Academic Press, 1981:Spezialbuch zur Optimierung mit vielen Tipps für die Praxis. Die Herleitungen sind leidernicht immer selbsterklärend.

Matlab/Octave-spezifisch• Cleve B. Moler, „Numerical Computing with Matlab“, SIAM, 2013, http://de.mathworks.com/moler/chapters.html:vom Gründer von Matlab; sehr gut für den Einstieg und kostenlos verfügbar mit einger großenAnsammlung an Skripten.

• Alfio �arteroni, Fausto Saleri, „Wissenscha�liches Rechnen mit MATLAB“, Springer, Berlin,2005Englische Ausgabe (neuere Auflage): Alfio �arteroni, Fausto Saleri, „Scientific Computingwith MATLAB and Octave“, Springer, Berlin, 2006

7

Page 8: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Warum Numerik wichtig ist

Einige Fehler in der realen Welt, die aufgrund von numerischen Problemen resultierten:1

• Im ersten Golfkrieg hat eine Patriot-Rakete 28 US-Soldaten getötet, da die Zeit in Inkrementenvon 1/10 gezählt wurde. 1/10 hat allerdings keine endliche binäre Zahlendarstellung, sodassRundungsfehler au�raten.

• 1996 stürzte eine unbemannte Ariane5-Rakete ab, da eine Gleitkommazahl in eine ganze Zahlkonvertiert wurde und die Zahlendarstellung der ganzen Zahl nicht mehr ausreichte. Siehedazu auch Abschni� 2.3.

• 2014 war die Zahl der Klicks vom Youtube-Video “Gangnam Style” auf einmal negativ, da dieZahl zu groß für die dahinterliegende Binärdarstellung war (siehe Abschni� 2.3).2

• 1992 wurde bei der Schleswig-Holsteiner Landtagswahl aufgrund eines Rundungsfehlersfälschlicherweise angenommen, dass die Partei Die Grünen die 5 %-Hürde überschri�en haben.

1http://ta.twi.tudelft.nl/users/vuik/wi211/disasters.html2https://plus.google.com/wm/4/+YouTube/posts/BUXfdWqu86Q

8

Page 9: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

1 Minimaleinführung in octave

• Octave ist eine freie So�ware/Programmiersprache zur Lösung von numerischen Problemen

• Octave ist ein Klon der proprietären So�ware matlab und enthält die meisten Funktionen vonmatlab. Matlab-Skripte sind normalerweise auch in octave ausführbar und umgekehrt.

• Octave bietet allerdings einige Syntaxerweiterungen an und verhält sich im Vergleich zumatlab in kleinen Details unterschiedlich, siehe auch http://wiki.octave.org/FAQ#How_is_Octave_different_from_Matlab.3FAuf die Syntaxerweiterungen sollte aber verzichtet werden, um Kompatibilität mit matlab zugewährleisten.

Vorteile

• Die Programmiersprache ist sehr einfach und sehr gut für numerische Probleme geeignet.

• Octave und Matlab sind sehr gut dokumentiert

⇒ Sehr leichter Einstieg, speziell für Programmieranfänger

• Es gibt eine große Bibliothek an bereits implementierten (numerischen) Funktionen

• Octave kann mit der sehr schnellen (proprietären) Intel MKL-Bibliothek oder anderenBibliotheken benutzt werden.1 Damit sind viele numerische Rechnungen aufbauend aufBLAS/LAPACK/FFT-Aufrufe genauso schnell wie in entsprechenden Fortran- oder C-Codes.

• Octave kann Problemlos auf verschiedene Betriebssysteme laufen

• Matlab/Octave ist die Entwicklungsumgebung der Numeriker

• Vereinzelt gibt es sogar professionelle �antenchemie-Programmpakete: RESCU ist ein matlab-basiertes Dichtefunktionaltheorieprogramm, mit dem Berechnungen von sehr großen Syste-men (> 5000 Atome) möglich sind2

Nachteile

• Die leichte Syntax verhindert eine einfache Programmierung von großen und komplexenProgrammen, wie sie in moderneren Programmiersprachen wie C++ oder python möglich ist.

• Octave ist in Vergleich zu matlab etwas weniger schnell (u. a. keine Just-In-Time-Kompilierung).Siehe aber der Hinweis auf die Benutzung der MKL-Bibliothek in Octave.

• Je nach Anwendungsfall (viele Schleifen, keine Verwendung von Bibliotheksroutinen möglich)kann octave/matlab sehr langsam sein

1https://software.intel.com/en-us/articles/using-intel-mkl-in-gnu-octave2http://arxiv.org/abs/1509.05746

9

Page 10: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

1.1 Installation• Eine Dokumentation für die Installation ist unterhttps://www.gnu.org/software/octave/download.htmlzu finden.

• Octave sollte für alle gängigen Linux/Unix-artigen Betriebssysteme über das entsprechendeSo�ware-Repositorium zu installieren sein.

• Für windows reicht es, die entsprechende zip-Datei unter https://ftp.gnu.org/gnu/octave/windows/ herunterzuladen. In dem octave-Ordner befindet sich die ausführbare Dateioctave.exe.

• Für MacOS: siehehttp://wiki.octave.org/Octave_for_MacOS_X

1.2 LiteraturOctave ist ein mächtiges Werkzeug mit vielen Funktionen. Im Rahmen dieser Vorlesung werdennur die absolut essentiellen Grundlagen gezeigt. Daher ist für eine weitergehende Arbeit mit octave(oder matlab) ein zusätzliches Literaturstudium unerlässlich.

• Für konkrete Fragen bietet sich eine Suchmaschinensuche mit dem zusätzlichen Stichwort„matlab“ an. Die sehr ausführliche Dokumentation der matlab-Funktionen kann für die meis-ten Funktionen auch für octave benutzt werden. So führt eine Suche mit dem Stichwort“matlab diagonalisation” direkt zur Seite der eig-Funktion, welche eine Eigenwertzerlegung(„Diagonalisierung“) durchführt. Die meisten Beispiele dort sind auch in octave möglich.

• Die o�izielle Dokumentationsseite von Matlab ist unter http://de.mathworks.com/help/matlab/index.html zu finden.

• Achtung: Ab und an scheinen die Matlab-Seiten nur nach einer Produktregistrierung zugänglichzu sein. Links, die über eine Suchmaschinensuche erhalten werden, scheinen davon aber nichtbetro�en zu sein.

• Weitere �ellen:

– Die Dokumentation in octave nebst help- und doc-Befehl (siehe Abschni� 1.4.8)

– Eine etwas längere Einführung:http://math.jacobs-university.de/oliver/teaching/iub/resources/octave/octave-intro/octave-intro.html

– Das sehr ausführliche, o�izielle Handbuch:https://www.gnu.org/software/octave/octave.pdf

– Das o�izielle Wiki:http://wiki.octave.org/Main_Page

– Video-Tutorial (ohne GUI3, welche erst vor kurzem in Octave implementiert wurde):https://www.youtube.com/watch?v=TWqYSOiSTEA&list=PLlcAcGxlil6PsXCQQOw1tpJzxSzZBjln-&index=1

– Video-Tutorial für die GUI:https://www.youtube.com/watch?v=J85b2LLoizc

3GUI=Grapische Benutzerschnittstelle

10

Page 11: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

1.3 Weitere Bibliotheken• Unterhttp://octave.sourceforge.net/index.htmlfinden sich weitere Pakete, um die Funktionialität von octave zu erweitern. So finden sich dortu. a. spezielle Routinen für genetische Algorithmen, �aternionen (verallgemeinerte komplexeZahlen), Bild- und Signalverarbeitung, Statistik und vieles mehr

• Matlab bietet eine ähnliche Seite unterhttps://www.mathworks.com/matlabcentral/fileexchange/ACHTUNG: Jeder kann dort Code hochladen, sodass die �alität der Pakete sehr starkdivergiert.

• Desweiteren bietet sich eine Internetsuche an. Viele Numeriker verö�entlichen ihre Matlab-Skripte/Pakete auf ihren Webseiten.

1.4 Ein erster EinstiegDie graphische Benutzerschni�stelle (GUI) von octave:

Die einzelnen Fenster:

1 Das derzeitige Verzeichnis

2 Verzeichnisnavigator

3 Momentan verwendete Variablen mit A�ributen (Workspace)

4 Vorher benutzte Befehle

5 Ausschni� aus dem Befehlsfenster mit Ein/Ausgabe

11

Page 12: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6 Befehlsfenster (gerade ausgewählt)

7 Editor (nicht ausgewählt)

8 Dokumentation (nicht ausgewählt)

1.4.1 Das BefehlsfensterIm Befehlsfenster kann interaktiv gearbeitet werden. Mit „> >“ beginnende Zeilen geben Befehlean. Drücken der Enter-Taste führt die Befehle aus. Herzstück einer jeden Programmiersprache sinddie Variablen, denen per „=“ Zahlen oder kompliziertere mathematische Objekte (z. B. Matrizen)zugeordnet werden. Letztere können Resultate mathematischer Ausdrücke oder Funktionsaufrufesein. Das Gleicheitszeichen ist also als Zuordnungszeichen zu verstehen. Mathematische Gleicheitwird per „==“ überprü� (mehr dazu später). Es ist dringend zu empfehlen, Variablennamen nachihrer Funktion im Programm sinnvoll zu wählen, auch wenn sich dadurch die Schreibarbeit erhöht.Der Variablentyp (Zeichenke�e/String, Gleitkommazahl, Matrix etc.) wird automatisch bestimmtund kann sich nach einer anderen Zuordnung wieder ändern.

Wenn hinter einem Befehl ein „;“ steht, wird die Befehlsausführung im Hintergrund durchgeführtund das Ergebnis nicht auf dem Bildschirm ausgegeben:

1 >> variable1 = 41 + 12 variable1 = 423 >> %Alles hinter einem Prozentzeichen ist ein Kommentar und wird ignoriert4 >> variable2 = 42; %Ausgabe wird unterdrückt5 >> variable2 = variable2 + 3; % " variable2 + 3" wird berechnet und wieder in variable2

gespeichert6 >> variable27 variable2 = 458 >> variable1 + 1 %Ausdrücke ohne Zuweisung werden automatisch der Variable "ans"

zugewiesen9 ans = 43

10 >> ans11 ans = 4312 >> ans = ans ∗ exp (0.4) %alle gängigen Funktionen stehen zur Verfügung13 ans = 64.14814 >> pi %auch einige Konstanten sind vordefiniert15 ans = 3.141616 >> sin ( pi )17 ans = 1.2246e−1618 >> cos( pi )19 ans = −120 >> a = 'Buchstaben' %Auch Zuweisungen zu anderen Objekten wie Text (" strings ") sind mö

glich21 a = Buchstaben22 >> Variable1 = −1; %auf Groß− und Kleinschreibung wird geachtet !23 >> variable1 %dies ist eine andere Variable24 variable1 = 4225 >> clear variable1 %variable1 wird gelöscht26 >> variable127 error : ' variable1 ' undefined near line 1 column 128 >> Variable1 %ist immer noch vorhanden

12

Page 13: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

29 Variable1 = −130 >> clear all %alle Variablen werden gelöscht

Nach Eingabe der gezeigten Befehle füllt sich allmählich das “Workspace”-Fenster 3 mit dendefinierten Variablen und die Befehlsgeschichte 4 mit den ausgeführten Befehlen.

In Zeile 17 ist eine fundamentale Eigenscha� von Gleitkommazahlen zu sehen: sin(π) ergibtnicht genau Null, sondern in diesem Fall 1.2246 · 10−16, was an Rundungsfehlern aufgrund derbeschränkten Darstellung von reellen Zahlen auf dem Computer liegt. Für cos(π) kommen dieRundungsfehler zufälligerweise nicht vor. Mehr dazu im Kapitel 2.

Die Fehlermeldung in Zeile 27 ist etwas missverständlich: Es steht dort “line 1”, da es im interakti-ven Modus keine Zeilen gibt. Die Fehlermeldung ist eigentlich für Skripte gedacht (siehe Abschni�1.4.6).

1.4.2 Vektoren und MatrizenDie Definition von Vektoren und Matrizen ist denkbar einfach:

1 >> v = [1,2,3] %ein Zeilenvektor2 v =3

4 1 2 35

6 >> a = [1; 2; 3;] %ein Spaltenvektor7 a =8

9 110 211 312

13 >> v = 1:3 %automatische Generierung eines Zeilenvektors : Starte bei 1 und ende bei 314 v =15

16 1 2 317

18 >> 1:2:8 %Starte bei 1 und Ende in Zweierschri�en bei 819 ans =20

21 1 3 5 722

23 >> size (v) %gibt die Größe des Vektors v aus: Zahl der Zeilen x Zahl der Spalten24 ans =25

26 1 327

28 >> size (a)29 ans =30

31 3 132 >> A = [1 2 3; %eine 2x3−Matrix33 4 5 6]34 A =

13

Page 14: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

35

36 1 2 337 4 5 638

39 >> size (A)40 ans =41

42 2 343

44 >> A (:,1) %gibt die erste Spalte aus45 ans =46

47 148 449

50 >> A (:,3) %gibt die dri�e Spalte aus51 ans =52

53 354 655 >> A (2,:) %gibt die zweite Zeile aus56 ans =57

58 4 5 659

60 >> A (2,2:3) %gibt die zweite bis dri�e Spalte in der zweiten Zeile aus61 ans =62

63 5 664 >> A' %transponiert die Matrix65 ans =66

67 1 468 2 569 3 670 >> v ∗ A' %berechnet das Matrix−Vektor−Produkt des Zeilenvektors v mit der transponierten

Matrix A71 ans =72

73 14 3274 >> A = A' ∗ A %ein Matrix−Matrix−Produkt75 A =76

77 17 22 2778 22 29 3679 27 36 4580 >> A .^2 %elementweise Operationen können mit einem vorangestellten "." ausgeführt

werden. Hier werden alle Elemente von A mit 2 potenziert81 ans =82

14

Page 15: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

83 289 484 72984 484 841 129685 729 1296 202586 >> B = zeros (3,2) % erstellt eine 3x2−Matrix mit Nullen87 B =88

89 0 090 0 091 0 092 >> ones (2,3)93 ans =94

95 1 1 196 1 1 197 >> eye (2)98 ans =99

100 Diagonal Matrix101

102 1 0103 0 1

Komplizierte „Scheibenoperationen“ (slicing) wie in Zeile 60 lassen sich am Besten durch Ausprobie-ren bei einer größeren Matrix nachvollziehen. Intern werden Vektoren als Matrizen mit nur einerSpalte- oder Zeile behandelt, wie es in Zeile 23 zu sehen ist.

In octave gibt es neben der size-Funktion eine Fülle an weiteren Funktionen. Dazu sei auf dieDokumentation und die Literatur (siehe Abschni�e 1.2 und 1.4.8) verwiesen. Hier sei nur als weiteresBeispiel die Eigenwertzerlegung einer Matrix, bestehend aus Zufallszahlen, gezeigt:

1 >> Arand = rand(3) %generiert eine Matrix aus Zufallszahlen2 Arand =3

4 0.406312 0.473776 0.7444935 0.088445 0.420816 0.3994036 0.131595 0.297414 0.8321407

8 >> A = 0.5 ∗ (Arand' + Arand) %symmetrisiert die Matrix9 A =

10

11 0.40631 0.28111 0.4380412 0.28111 0.42082 0.3484113 0.43804 0.34841 0.8321414

15 >> eigVal = eig (A) %gibt die Eigenwerte der nun symmetrischen Matrix A aus16 eigVal =17

18 0.1074519 0.2265520 1.3252721

22 >> [eigVecs , eigVal ] = eig (A) %gibt die Eigenvektoren− und −werte aus; letztere als

15

Page 16: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Diagonalmatrix23 eigVecs =24

25 0.85370 0.16906 0.4925626 −0.41269 0.79650 0.4419027 −0.31761 −0.58053 0.7497428

29 eigVal =30

31 Diagonal Matrix32

33 0.10745 0 034 0 0.22655 035 0 0 1.3252736 >> eigVecs ∗ eigVal ∗ eigVecs ' %generiert wieder die Matrix A37 ans =38

39 0.40631 0.28111 0.4380440 0.28111 0.42082 0.3484141 0.43804 0.34841 0.83214

Zeilen 15 und 22 zeigen, dass sich die Ausgabe einer Funktion je nach Zuweisung unterscheiden kann:Wird eig nur einer Variable zugewiesen, so werden nur die Eigenwerte ausgegeben. [U,D] = eig(A)gibt dahingegen die Eigenvektormatrix U nebst der Diagonalmatrix mit den Eigenwerten D aus. DieNotation [U,D] ist als Vektor von Variablen zu verstehen. In den Variablen können alle möglichenAusdrücke (Zahlen, Vektoren, Matrizen, Strings,. . . ) gespeichert werden.

1.4.3 Kontrollstrukturen und SchleifenNeben den Variablen sind Kontrollstrukturen und Schleifen ein weiteres Herzstück einer jedenProgrammiersprache. Mi�els Kontrollstrukturen ist das Verhalten eines Programmes je nach Eingabemanipulierbar:

1 >> a = −4;2 >> if a > 03 disp ( 'a ist echt positiv . ' ) ; %Zeige eine Nachricht auf dem Display an4 elseif a < 05 disp ( 'a ist echt negativ . ' ) ;6 elseif a == 0 %solch eine Abfrage ist fehlerbeha�et ! Siehe den Text unten.7 disp ( 'a ist genau Null . ' ) ;8 else9 error ( 'a ist unmöglich! ' ) ; %gebe einen Fehler aus

10 end %ende der if−Abfrage11 a ist negativ .12 >> v = [0, 9, 8];13 >> if any(v > 8) %any ist eine weitere nü tzliche Funktion14 disp ( 'v beinhaltet mind. ein Element größer 8 ' ) ;15 end16 v beinhaltet mind. ein Element größer 8

16

Page 17: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Zeile 6 ist fehlerbeha�et, da aufgrund der finiten Genauigkeit von Gleitkommazahlen exakte Nullenselten vorkommen. In Abschni� 1.4.1 haben wir schon gesehen, dass auf dem Computer sin(π) nichtunbedingt Null ist. Besser wäre z.B. die Abfrage abs(a) < 1e-14, welche testet, ob der Absolutwertvon a kleiner als 10−14 ist.

Boolsche Ausdrücke sind durch die Benutzung von && für UND, sowie || für ODER möglich. EinAusrufezeichen ! stellt eine Verneinung dar. Da das Gleichheitszeichen schon für die Variablenzu-weisung belegt ist, wird == für die Überprüfung auf Gleichheit benutzt. In octave steht 1 für WAHRund 0 für FALSCH:

1 >> a = 9;2 >> b = −7;3 >> if a > 0 && b > 04 disp ( 'a und b sind beide positiv ' ) ;5 elseif a ~= 96 disp ( 'a ist nicht 9. ' ) ;7 elseif a > 0 || b < 08 disp ( 'Entweder ist a positiv oder b ist negativ oder beides . ' ) ;9 end

10 Entweder ist a positiv oder b ist negativ oder beides .

Schleifen, welche es erlauben, Code-Zeilen mehrmals zu durchlaufen, sind mit dem for-Konstruktmöglich:

1 >> for i = 4:52 disp ( i ) ;3 end4 45 56 >> for i = 9:−1:6 %Gehe von 9 bis 6 und dekrementiere jeweils um 17 disp ( i ) ;8 end9 9

10 811 712 613 >> v = [4,9,2,3];14 >> for i = v %Da 4:5 ein Vektor ist ( siehe den Abschni� zu Vektoren) , kann genauso gut

ein explizit gespeicherter Vektor benutzt werden15 disp ( i ) ;16 end17 418 919 220 321 >> for i = v22 disp ( i ) ;23 if i == 924 break; %beende die gesamte Schleife25 end26 end27 428 9

17

Page 18: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

29 >> for i = v30 if i == 231 continue ; %beende diesen Schleifendurchlauf32 end33 disp ( i ) ;34 end35 436 937 3

Im letzten Beispiel wird die Ausgabe für i = 2 aufgrund der continue-Anweisung übersprungen.Eine weitere Möglichkeit bietet die while-Schleife an, die den Code innerhalb der Schleife so

lange ausführt, bis eine Bedingung nicht mehr wahr ist:

1 >> n = 10;2 >> f = n; %berechne die Fakultät von n = 103 >> while n > 14 n = n−1;5 f = f ∗n;6 end7 >> f8 f = 36288009 >> factorial (10)

10 ans = 3628800

Wenn auf Schnelligkeit geachtet werden muss, sollten Schleifen in octave wenn möglich vermiedenund durch geschickte Anwendung der schon in octave implementierten Funktionen ersetzt werden.4

Folgendes Beispiel invertiert die Reihenfolge der Elemente eines Vektors, was allerdings schon in derFunktion fliplr implementiert ist:

1 >> v = 1:42 v =3

4 1 2 3 45

6 >> v2 = v7 >> for i = 1: length(v)8 v( i ) = v2( length(v) − i + 1) ;9 end

10 >> v11 v =12

13 4 3 2 114 >> fliplr (1:4)15 ans =16

17 4 3 2 1

4Die Bibliotheksroutinen von ovtave sind optimiert und in der deutlich schnelleren Sprache C++ geschrieben bzw.greifen selbst auf optimierte Bibliotheken zu.

18

Page 19: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

1.4.4 Input/OutputMit format ändert man die Formatierung der Standardausgabe:

1 >> 100 ∗ pi2 ans = 314.163 >> format long4 >> 100 ∗ pi5 ans = 314.1592653589796 >> format long e7 >> 100 ∗ pi8 ans = 3.14159265358979e+029 >> format %Rückstellung auf Standardwerte

10 >> 100 ∗ pi11 ans = 314.16

Mehr dazu findet sich unter help format (siehe Abschni� 1.4.8). Mit fprintf sind auch kompli-ziertere Ausgaben möglich:

1 >> fprintf ( '%6d ist eine große Zahl\n ' ,5e6) ; % '\ n ' stellt einen Zeilenumbruch dar2 5000000 ist eine große Zahl3 >> fprintf ( '%3.2f ist pi auf zwei Nachkommastellen genau\n',pi)4 3.14 ist pi auf zwei Nachkommastellen genau5 >> fprintf ( '%6.5f ist pi auf fünf Nachkommastellen genau\n',pi)6 3.14159 ist pi auf fünf Nachkommastellen genau7 >> fprintf ( '%f\n ' ,[2.0,4.0,2.124]) ; % '%f ' nimmt ein Standardformat8 2.0000009 4.000000

10 2.124000

Für eine detailliere Dokumentation, siehehttps://de.mathworks.com/help/matlab/ref/fprintf.html

Dateien lassen sich über fopen, fprintf und fclose verwalten und beschreiben:

1 >> v = [2.0, 1.999, pi , cos (0.1) ]2 v =3

4 2.00000 1.99900 3.14159 0.995005

6 >> dateiID = fopen( 'werte.dat ' , 'w') ; % 'w' heißt , dass die Datei beschrieben wird (' write')

7 >> fprintf (dateiID , '#einige Werte\n' ) ; % schreibe eine Kommentarzeile, üblicherweise mitvorangestellter Raute

8 >> fprintf (dateiID , '%f\n ' , v) ; %gebe die Werte aus9 >> fclose (dateiID) ; %schließe die Datei

Anschließend sollte im derzeitigen Verzeichnis (siehe 1 ) die Datei „werte.dat“ erscheinen. DasEinlesen erfolgt analog mit fscanf und 'r' anstelle von 'w' in fopen. Große Matrizen oder ähnlicheslassen sich aber am Besten mi�els save und load ein- und auslesen. Siehe dazu die Dokumentation.

1.4.5 Graphiken erstellenGraphiken können mit dem plot-Befehl erstellt werden:

19

Page 20: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

1 >> graphics_toolkit ( 'gnuplot ' ) ; %evt. nötig , siehe Text2 >> x = linspace (−10,10,100) ; %gibt ein ä quidistantes Gi�er von −10 bis 10 mit 100

Punkten aus3 >> y = sin (x) .∗ exp(−abs(x)) ; %elementweise Multiplikation ist '.∗' und nicht '∗'!4 >> y2 = cos(x) .∗ exp(−abs(x)) ;5 >> plot (x ,y,x ,y2, ' .. g ' ) ; %Zeichnet y(x) und y2(x) ; letzteres grün und gepunktet6 >> grid ; %plo�ed ein Gi�er7 >> legend( 'y1 ' , 'y2 ' ) ;8 >> xlabel ( 'x ' ) ;9 >> ylabel ( 'y ' ) ;

Der Plot kann über die Kommandozeile im Plotfenster oben Links gespeichert werden:

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

-10 -5 0 5 10

y

x

y1y2

Mit der neuen Version ovtave 4.0 hat sich die Graphikbibliothek von gnuplot auf Qt geändert. Diesbereitet unter Linux anscheinend noch etwas Probleme, daher der Befehl in Zeile 1. Unter Windowsist dieser Befehl nicht nötig und bereitet evt. Probleme. Weiterhin zu beachten ist die elementweiseMultiplikation in Zeile 3. Eine normale Multiplikation würde eine Matrix-Matrix-Multiplikationzwischen den Zeilenvektoren sin(x) und exp(-abs(x)) durchführen, was allerdings zu einemFehler führt, da zwei Zeilenvektoren nicht miteinander multipliziert werden können.

3D-Graphiken sind analog möglich, z. B. mit den Befehlen surf (3D-Oberflächen), mesh (3D-Gi�er)

20

Page 21: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

oder contour (Konturplots). Dafür sei auf die Dokumentation verwiesen.

1.4.6 Skripte schreibenEine interaktive Eingabe von vielen Befehlen ist auf Dauer recht mühsam. Vor allem kann man sokeine Programme speichern. Die GUI stellt auch einen Editor für das Schreiben von Skripten zurVerfügung. Klicken auf 7 ö�net das Editor-Fenster:

Ein Klick auf den rot markierten Knopf oder das Drücken der Taste F5 führt das Skript aus und mansieht das Ergebnis im Kommando-Fenster, 6 . Ist die Datei noch nicht gespeichert, so wird zuerstein Speicherdialog aufgerufen. Es empfiehlt sich, die Datei mit der Endung „.m“ zu speichern, wasdie typische Endung von matlab-Skripten ist. Das Skript kann auch ausgeführt werden, indem derName des Skripts (ohne Endung „.m“) in der Kommandozeile eingegeben wird.

Es ist zu empfehlen, das Editor-Fenster so zu verschieben, dass man sowohl das Editor-Fenster alsauch das Kommandozeilen-Fenster sieht. Dies kann man durch Drücken der linken Maustaste aufdie „Editor-Leiste“ (grün markiert im obigen Bild) und anschließendes Verschieben des Fensters (beigedrückter Taste) erreichen.

Achtung: Das Aufrufen von Skripten fügt Variablen zum Workspace ( 3 ) hinzu. Innerhalb vonSkripten kann man auch auf Variablen im Workspace zugreifen, was meistens nicht gewünscht ist.Ein clear all; in der ersten Zeile löscht alle vorhandenen Variablen im Workspace.5

1.4.7 Funktionen schreibenNeben Skripten sind Funktionen sehr hilfreich für eine bessere Gliederung eines Programms. Inoctave muss jede Funktion in eine separate Datei gespeichert werden. Der Name der Funktion mussmit dem Dateinamen übereinstimmen. So könnte die Datei „meine_funktion.m“ wie folgt aussehen:

1 function z = meine_funktion(x,y)2 z = x + y;3 end

In Zeile 1 ist angegeben, dass die Funktion die Varriablen x und y annimmt und ein Ergebnisausliefert, was intern in der Funktion als Variable z abgespeichert wird. Die Funktion kann nun inder Kommandozeile oder auch in Skripten benutzt werden:

1 >> ergebnis = meine_funktion (2,3)2 ergebnis = 5

5Wenn die Skripte auf Schnelligkeit ausgerichtet sein sollen, sollte davon abgesehen werden.

21

Page 22: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Auch komplizierte Funktionen sind möglich:

1 function [r1 , r2] = funk2(x ,y)2 a = x + y;3 r1 = sqrt (a) ;4 r2 = [r1 ∗2, r1 +2];5 end

Der Aufruf erfolgt über [a,b] = funk2(ein1,ein2). Der Ausgabevektor ist wieder als Vektor vonVariablen zu verstehen.

Es können alle Funktionen und Skripte aufgerufen werden, die im derzeitigen Suchpfad vorhandensind. Der Suchpfad kann mit path ausgegeben werden und besteht aus einigen Standardverzeichnis-sen und dem aktuellen Verzeichnis ( 1 ). Über addpath können weitere Verzeichnisse hinzugefügtwerden. Es bietet sich z.B. an, eigene numerische Funktionen in einem Verzeichnis zu speichern.Skripte, welche die Funktionen aufrufen, können dann woanders gespeichert und der Pfad mi�elsaddpath im Skript entsprechend verändert werden.

1.4.8 Die HilfefunktionDie mit Abstand wichtigste Funktion in octave ist help. Für jede eingebaute Funktion in octave gibthelp einen kurzen Eintrag über die Funktionsweise aus:

1 >> help( ' eig ' ) %Eingabe von "help eig " ist auch möglich2 ' eig ' is a built−in function from the file libinterp / corefcn / eig . cc3

4 −− Built−in Function: LAMBDA = eig (A)5 −− Built−in Function: LAMBDA = eig (A, B)6 −− Built−in Function: [V, LAMBDA] = eig (A)7 −− Built−in Function: [V, LAMBDA] = eig (A, B)8 Compute the eigenvalues (and optionally the eigenvectors ) of a9 matrix or a pair of matrices

10

11 The algorithm used depends on whether there are one or two input12 matrices , if they are real or complex, and if they are symmetric13 (Hermitian if complex) or non−symmetric.14

15 The eigenvalues returned by ' eig ' are not ordered .16

17 See also : eigs , svd.18

19 Additional help for built−in functions and operators is20 available in the online version of the manual. Use the command21 'doc <topic> ' to search the manual index.22

23 Help and information about Octave is also available on the WWW24 at h�p :// www.octave.org and via the [email protected] mailing list .

Das Dokumentationsfenster, 8 , ist mitunter auch sehr hilfreich. Eingabe von doc('eig') führtz.B. direkt zum Eintrag von eig in der Dokumentation. Angegeben ist derselbe Text, wie er auchmi�els help zu sehen ist, allerdings sind im Fenster noch weitere Funktionen und ein allgemeinerText zu sehen.

22

Page 23: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

1.4.9 DebuggenSiehe die Live-Vorführung.

1.5 Programmierdisziplin!• Warum kein „Freistil-Programmieren“?

– Programme anderen verständlich machen

– eigene Programme später wieder verstehen

– Schreiben längerer Programme erleichtern

• „Strukturiertes Programmieren“ = Programme übersichtlich und verständlich gestalten; insbe-sondere:

– sinnvolle Variablennamen

– gleiche Variablen in verschiedenen Programmblöcken gleich nennen

– längere, abgeschlossene Unteraufgaben in Funktionen verlegen, auch wenn nur einmalverwendet

– for- und if-Blöcke usw. systematisch und immer gleich einrücken

• Kommentare! Natürlich keine trivialen, aber im Zweifelsfall immer viel mehr als man zunächstdenkt.

• Tips zur Programmentwicklung:

– modular! = Niemals ein Programm einfach von Anfang bis Ende herunterschreiben,sondern jeden sinnvollen Abschni� sofort testen. Nachträgliche Fehlersuche immer vielschwerer.

– erleichternde Hilfsmi�el wie Debugging ausnutzen

• Verzeichnisse übersichtlich halten:

– Extra-file mit Verzeichnis-Inhaltsangabe

– nicht mehr benötigte Programmvarianten sofort löschen

– sinnvolle file-Namen: je länger, desto besser; Varianten eines Programms und Zusam-mengehörigkeit Programm/Input/Output sollte erkennbar sein.

23

Page 24: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

2 Zahlendarstellung

2.1 Natürliche Zahlen• Eine Zahl n ∈ N0 wird als Summe

n =m−1∑i=0

dibi (2.1)

mit einer Basis b ∈ N≥2 und Zi�ern d0, d1, . . . , dm−1 ∈ [0, b− 1] dargestellt.

• Die Zi�ern lassen sich aus n durch wiederholte Division durch die Basis b gewinnen. Wird bnicht angezeigt, so ist die Zehnerbasis gemeint.

• Notation: nreffiZBasis.

• Die Zi�ern lesen sich von rechts nach links.

• Beispiel 23:

– 1023 = 0 · 230 + 1 · 231 = 23

– 2310 = 3 · 100 + 2 · 101 = 3 + 20 = 23

– 278 = 7 · 80 + 2 · 81 = 7 + 16 = 23

– 1134 = 3 · 40 + 1 · 41 + 1 · 42 = 3 + 4 + 16 = 23

– 101112 = 1 · 20 + 1 · 21 + 1 · 22 + 0 · 23 + 1 · 24 = 1 + 2 + 4 + 0 + 16 = 23

• Auf dem Computer wird die Zweier-/Binärdarstellung verwendet.1

• In diesem Kontext werden die Zi�ern Bits genannt.

• 8 Bits werden zu einem Byte gebündelt.

• Die maximal darstellbare Binärzahl beträgt 11 . . . 1︸ ︷︷ ︸m mal

2 = 2m − 1 (−1 wegen der Darstellung

der Null)

2.2 Ganze ZahlenIm weiteren Verlauf: Beschränkung auf die Binärdarstellung.

• Einfachste Darstellung: Produkt einer natürlichen Zahl mit einem Vorzeichen-Bit σ ∈ {−1, 1}.

• Nachteil: Die Null kommt doppelt vor (±0).2

• Besser: Zweierkomplementdarstellung (als 2T abgekürzt)

n =m−2∑i=0

di · 2i−dm−1 · 2m−1 (2.2)

1Die bei der Systemprogrammierung häu�g verwendete Hexadezimaldarstellung wird hier nicht behandelt.2Für Gleitkommazahlen ist dies sogar erwünscht, nicht aber für ganze Zahlen.

24

Page 25: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Beispiel 0101112T = 1 · 20 + 1 · 21 + 1 · 22 + 0 · 23 + 1 · 24−0 · 25 = 23

• Beispiel 1010012T = 1 · 20 + 0 · 21 + 0 · 22 + 1 · 23 + 0 · 24−1 · 25 = 1 + 8− 32 = −23

• 0000101112T = 23

• 1111010012T = 1 · 20 + 0 · 21 + 0 · 22 + 1 · 23 + 0 · 24 + 1 · 25 + 1 · 26 + 1 · 27−1 · 28 =1 + 8 + 32 + 64 + 128− 256 = −23

y Die Darstellung negativer Zahlen ändert sich je nach Länge der Zi�erndarsellung: Es werdenEinsen hinzugefügt. Für positive Zahlen werden Nullen hinzugefügt.

• Zahlenbereich für m Bits: [10 . . . 02T , 0111 . . . 12T ] = [−2m−1, 2m−1 − 1]

• −1 ist immer 111 . . . 12T

• Vorzeichenbeha�ete Darstellungen werden auch als signed bezeichnet. Das Gegenteil istentsprechend unsigned.

2.3 Zahlenbereich und Über-/Unterschreitung• Zahlenbereich von gebräuchlichen Zahlendarstellungen:

# bits Vorzeichen octave-Name min max

8 unsigned uint8 0 25516 unsigned uint16 0 65 53532 unsigned uint32 0 4 294 967 29564 unsigned uint64 0 18 446 744 073 709 551 6158 signed int8 −128 127

16 signed int16 −32 768 32 76732 signed int32 −2 147 483 648 2 147 483 64764 signed int64 −9 223 372 036 854 775 808 9 223 372 036 854 775 807

• Octave-Routine: intmax, intmin

• Eine Zahlenbereichsüberschreitung wird in octave nicht als Warnung ausgegeben. Anstelledessen wird nur der größte/kleinste Wert angenommen:

1 >> a = int8 (127) %gebe eine ganze Zahl mit einer Darstellung von 8 Bits zurück2 a = 1273 >> a = a + 1 %addiere4 a = 1275 >> a = int8(−128);6 >> a − 17 ans = −1288 >> a + 200009 ans = 127

• In anderen Programmiersprachen (C, Fortran,. . . ) ist das Verhalten fataler: Additions/Subtrak-tionsoperationen werden so ausgeführt, als wenn noch weitere Bits vorhanden wären.

• Das führt dazu, dass unsigned integers wieder bei Null beginnen und signed integers beinegativen Zahlen beginnen

25

Page 26: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Beispiel: Das folgende C-Programm

1 #include<stdio .h>2 int main() {3 signed char a; // 8 bit lang , entspricht int8 in octave4 unsigned char b; // entspricht uint8 in octave5 a = 127;6 b = 255;7 printf ( "a = %d\n",a) ;8 printf ( "b = %d\n",b) ;9 a = a + 1;

10 b = b + 1;11 printf ( "a + 1 = %d\n",a) ;12 printf ( "b + 1 = %d\n",b) ;13 a = a + 999;14 b = b + 999;15 printf ( "a + 1000 = %d\n",a) ;16 printf ( "b + 1000 = %d\n",b) ;17 }

führt nach der Übersetzung in Maschinensprache zur Ausgabe von

a = 127b = 255a + 1 = -128b + 1 = 0a + 1000 = 103b + 1000 = 231

• Dies wird als overflow bezeichnet und kann zu eklatanten Fehlern führen (siehe „WarumNumerik wichtig ist“)

y Ein overflow ist nicht immer leicht erkennbar.

• Compileroptionen führen zu einer Überprüfung auf overflows, was das Programm allerdingslangsamer macht.

y Man sollte im vornherein abschätzen, ob der Zahlenbereich ausreicht oder nicht. Üblicherweisewerden 32- oder 64-Bit-Darstellungen verwendet.

• Octave benutzt standardmäßig die 64-Bit-Darstellung

2.4 Gleitkommazahlen• Da ein Computer nicht unendlich lange Zahlen aus R abspeichern kann, wird immer mit einer

Untermenge Fi ⊂ R gerechnet. Fi ist eine der Mengen der Gleitkommazahlen Welche Zahlenin Fi enthalten sind, hängt von der jeweiligen Darstellung auf dem Computer ab.

• Eine weithin gebräuchliche Darstellung von Gleitkommazahlen richtet sich nach dem AN-SI/IEEE 754-Standard, der im folgenden behandelt wird.

26

Page 27: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Darstellung einer Zahl x in Basis b (im folgenden Binärdarstellung):

x = (−1)v ·M · be (2.3)

• v ist das Vorzeichenbit

• M is die Mantisse mit Zi�ern di, i ∈ [0,m− 1]:

M =d0

b1+d1

b2+ · · ·+ dm−1

bm(2.4)

• e is der Exponent: Eine ganze Zahl e ∈ [emin, emax].3

2.4.1 Regeln• Für x 6= 0 wird e so gewählt, dass die d0 in der Mantisse ungleich Null ist. Man spricht von

normalisierter Gleitkommadarstellung.

• In Binärdarstellung wird d0 nicht gespeichert, da es in normalisierter Darstellung immer 1 ist:implizites erste Bit

• Ist die darzustellende Zahl zu klein für die normalisierte Form (e < emin wird benötigt), sokommt es zum Exponentenunterlauf (underflow) für Zahlen im subnormalen Zahlen-bereich

• Die Darstellungsgenauigkeit sinkt im subnormalen Zahlenbereich stetig, bis alle Zi�ern di = 0sind.

• spezielle Zeichen/Formen:

Exponent Mantisse

normalisierte Form e ∈ [emin + 1, emax − 1] M ∈ [b−1, 1− b−m]denormalisierte Form e = emin + 1 M ∈ [b−m, b−1 − b−m]±0 e = emin 0± inf e = emax 0NaN e = emax + 1 6= 0

• NaN (not a number) ergibt sich z. B., wenn man durch Null teilt

• ± inf tri� bei einem Exponentenüberlauf (overflow) auf. Die Zahl ist zu groß, um darge-stellt zu werden

2.4.2 Gebräuchliche DarstellungenEinfache Genauigkeit (single precision)

• Mantissenlänge: 23 bit (+ implizites erste Bit)

• e ∈ [−126, 129], 8 bit

• Mit Vorzeichenbit 32 bit, 4 byte

3Meist wird ein Bias auf e addiert damit e immer positiv ist und eine Zweierkomplementdarstellung vermieden werdenkann.

27

Page 28: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Wertebereich der normalisierten Zahlen: 1.17 · 10−38 − 3.4 · 1038 (realmin- oderrealmax(’single’))

• Wertebereich der denormalisierten Zahlen: 1.4 · 10−45 − 1.17 · 10−38

• Genauigkeit: ε = 2−24 = 6 · 10−8

• Darstellung im Speicher:

Doppelte Genauigkeit (double precision)

• Standardformat in octave und in den meisten numerischen Programmen

• Mantissenlänge: 52 bit (+ implizites erste Bit)

• e ∈ [−1022, 1025], 11 bit

• Mit Vorzeichenbit 64 bit, 8 byte

• Wertebereich der normalisierten Zahlen: 2.22 · 10−308 − 1.797 · 10308

• Wertebereich der denormalisierten Zahlen: 3.9 · 10−324 − 2.22 · 10−308

• Genauigkeit: ε = 2−53 = 1.1 · 10−16

• Auch diese Genauigkeit reicht für manche Anwendungen noch nicht aus!

2.4.3 Anmerkungen• Die meisten reellen Zahlen lassen sich nur mit einer bestimmten Genauigkeit darstellen:

1 >> printf ( '%20.17f \n ' ,0.3) %0.3 kann nicht in endlicher Binä rdarstellung exaktwiedergegeben werden

2 ans = 0.299999999999999993 >> printf ( '%20.17f \n ' ,0.5) %genaue Darstellung, da 0.5 = 1/24 ans = 0.50000000000000000

• Dies führt zu entsprechenden Rundungsfehlern, die nicht leicht zu entdecken sind:

1 >> if 1.0 − 0.8 − 0.2 == 02 disp ( ' 1.0 − 0.8 − 0.2 ist genau Null ' ) ;3 else4 disp ( ' 1.0 − 0.8 − 0.2 ist NICHT genau Null');5 end6 1.0 − 0.8 − 0.2 ist NICHT genau Null7 >> printf ( '%20.17f \n ' ,1.0 − 0.8 − 0.2) ;8 −0.00000000000000006

• Aufgrund der halbexponentiellen Darstellung (Gl. (2.3)) sind die exakt darstellbaren Zahlenlogarithmisch auf der Zahlenskala verteilt.

28

Page 29: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Beispiel für M bestehend aus drei Bits und e ∈ [−1, 2]:

14

38

12

34

32

1 2 3

516

716

58

78

74

52

720

• Spezielle So�warepakete wie Sympy, Mathematica oder Maple sind auf das Rechnen mitbeliebig hoher Genauigkeit spezialisiert.4

2.4.4 Maschinengenauigkeit• Maximaler relativer Fehler beim Runden einer Zahl x aufgrund von finiter Genauigkeit:

|x− rd(x)||x|

≤ 0.5− 2−m

2−1= 2−m ≡ ε (2.5)

rd(x) ist eine Funktion, welche x rundet, sodass sie auf dem Computer dargestellt werdenkann.

• Als „Maschinenepsilon“ wird der maximale relative Abstand zweier benachbarter normalisierterGleitkommazahlen bezeichnet (Unterscheidung in der letzten darstellbaren Stelle um 1):

2−m

2−1= 21−m = 2ε (2.6)

• Skript berechne_eps.m zum Berechnen von ε:

1 disp ( 'Berechne das Maschinenepsilon') ;2 meps = 1.0;3 while 1.0 + 0.5 ∗ meps > 1.04 meps = meps ∗ 0.5;5 end6 fprintf ( 'Berechnetes Maschinenepsilon: %20.17e\n ' ,meps);7 fprintf ( ' Analytisch berechnetes Maschinenepsilon: %20.17e\n ' ,2 ∗ 2^(−53)) ; %

Mantissenlänge: 52 + implizites erste Bit = 538 fprintf ( ' Intern verwendetes Maschinenepsilon: %20.17e\n ' , eps) ; %eps ist eine

Konstante in octave

• Ausgabe:

1 >> berechne_eps2 Berechne das Maschinenepsilon3 Berechnetes Maschinenepsilon: 2.22044604925031308e−164 Analytisch berechnetes Maschinenepsilon: 2.22044604925031308e−165 Intern verwendetes Maschinenepsilon: 2.22044604925031308e−16

• Die Ausgabe zeigt, dass das Rechnen auf dem Computer zwar mit Ungenauigkeiten versehen,der Fehler aber genau vorher bestimmbar ist. Ein Computer rechnet deterministisch.

4Auch in octave/matlab gibt es Pakete für das Rechnen mit beliebiger Genauigkeit.

29

Page 30: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

3 Fehler und Kondition

3.1 FehlerartenEs gibt verschiedene Arten von Fehlern:

3.1.1 Modellfehler• Fehler aufgrund des Unterschiedes zwischen dem realen System und dem mathematischen

Modell

• Beispiele:

– Pendel mit Lu�reibung, Corioliskra� etc. versus Newtonsche Gleichung im Inertialsystem

– Molekül in Lösung versus Molekulardynamiksimulation in der Gasphase mit klassi-scher Beschreibung der Atomkerndynamik und approximativer quantenmechanischerBeschreibung der Elektronen

3.1.2 Datenfehler• Abweichung der realen Parameterwerte von den eingegebenen Daten

• Beispiele:

– Signifikante Stellen von Naturkonstanten

– Messungenauigkeiten im Experiment

3.1.3 Verfahrensfehler• Intrinsischer Fehler des numerischen Verfahrens

• Beispiele:

– Endliche Taylorreihenentwicklung

– Diskretisierungsfehler

• In diesem Zusammenhang heißt ein Verfahren konvergent, wenn der Verfahrensfehler gegennull gehen kann

• Beispiel: Verfeinerung der Diskretisierung, z. B. bei einer Integration

• Gegenbeispiel: Divergente Reihenentwicklung, z. B. bei quantenmechanischer Vielteilchenstö-rungstheorie

3.1.4 Rundungsfehler• Fehler aufgrund der Darstellung von Gleitkommazahlen auf dem Computer

• Beispiele

– Das Distributivgesetz gilt nicht: a · (b+ c) 6= a · b+ a · c– Das Assoziativitätsgesetz gilt nicht: a+ (b+ c) 6= (a+ b) + c

30

Page 31: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

3.2 Einschub: Norm• Die Norm ‖ · ‖ in einem Vektorraum1 X erfüllt die Bedingungen

1. ‖x‖ ≥ 0, x ∈ X

2. ‖αx‖ = |α|‖x‖, α ∈ C3. ‖x + y‖ ≤ ‖x‖+ ‖y‖

• Beispiel X = Rn (gewöhnliche Vektoren):

1-Norm ‖x‖1 =∑n

i |xi|Euklidische Norm ‖x‖2 =

√∑i |xi|2

p-Norm ‖x‖p = p√∑

i |xi|p

Maximums-Norm ‖x‖∞ = maxi |xi|

• Alle Normen auf Rn lassen sich gegeneinander abschätzen:

C1‖x‖α ≤ ‖x‖β ≤ C2‖x‖α, (3.1)

wobei C1 und C2 Konstanten sind.

3.2.1 Matrixnorm/Abbildungsnorm• Die Abbildungsnorm einer linearen Abbildung A bzw. Matrix A ist definiert als

‖A‖ ≡ maxx 6=0

(‖Ax‖‖x‖

), (3.2)

hängt also von der Definition der Norm von x ab.

• Beispiele für eine n× n-Matrix:

1-Norm ‖A‖1 = maxj∈[1,n]

∑ni=1 |Aij| (Spaltensummennorm)

Euklidische (Spektral-)Norm ‖A‖2 =√λmax; λmax ist der größte Eigenwert vonA†A (größ-

ter Singulärwert von A, siehe SVD)

inf-Norm ‖A‖∞ = maxi∈[1,n]

∑nj=1 |Aij| (Zeilensummennorm)

• Der Aufwand für die numerische Berechnung von Matrixnormen variiert demnach sehr stark.

• Normdefinitionen, indem eine m× n-Matrix als (m · n)-langer Vektor angesehen wird, sindauch möglich. Beispiel: Frobeniusnorm

‖A‖F =

√√√√ m∑i

n∑j

|Aij|2, (3.3)

welche der euklidischen Norm eines Vektors entspricht.

1Siehe Mathematik für Chemiker II, Kapitel 2.1 und 2.1.2

31

Page 32: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

3.3 Konditionierung mathematischer Probleme• Aufgrund der finiten Darstellung von Zahlen auf dem Computer, sollte man bei der Fehlerana-

lyse sta� einer exakten Eingabe x in eine Funktion f(x) von einer Eingabemenge E ausgehen,welche zu einer ResultatsmengeR = f(E) führt:

xE

f(x)

R

• Eine Maschinenzahl x wird demnach durch{x ∈ R : |x−x||x| ≤ ε

}dargestellt (ε aus Gl. 2.5 oder,

bei Datenfehler, größer, s. o.).

• Die Kondition charakterisiert das Verhältnis zwischen E undR.

• Beispiel 1: Gutkonditionierte Schni�punktberechnung zweier Geraden:

gg

h

h

r r

Der Schni�punkt r variiert hier ähnlich stark wie die Geraden g und g.

• Beispiel 1: Schlechtkonditionierte Schni�punktberechnung (schleifender Schni�):

1

r

Starke Schni�punktsvariation

3.3.1 Definitionen• Sei y = F (x) unter der Annahme von exakten Zahlen (ohne Rundungsfehler)

• Sei y = F (x), wobei x = x + δx eine geänderte Eingabe ist

• Der absolute Fehler ist entsprechend

∆abs = ‖y − y‖. (3.4)

• Der relative Fehler ist

∆rel =‖y − y‖‖y‖

. (3.5)

• Die absolute Konditionszahl ist

κabs = inf{α | ‖y − y‖ ≤ α‖x− x‖}, (3.6)

also letztlich das kleinstmögliche Verhältnis ‖y − y‖ · (‖x− x‖)−1.

32

Page 33: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Sofern F (x) di�erenzierbar ist, gilt

κabs = ‖∇F (x)‖ ≡ ‖F ′(x)‖. (3.7)

(hier wird die Matrixnorm gebraucht)

• Die relative Konditionszahl ist analog

κrel = inf

∣∣∣∣ ‖y − y‖‖y‖

≤ α‖x− x‖‖x‖

}, (3.8)

das kleinstmögliche Verhältnis ‖y−y‖/‖y‖ · (‖x−x‖/‖x‖)−1.

• Sofern F (x) di�erenzierbar ist, gilt

κrel =‖F ′(x)‖‖F (x)‖

· ‖x‖ = κabs ·‖x‖‖F (x)‖

. (3.9)

• Im Folgenden: Beschränkung auf κ ≡ κrel

• Ist κ - 1, so ist das Problem gut konditioniert.

– Für κ < 1 gibt es sogar eine Fehlerverringerung

– Für κ = 1 treten nur Rundungsfehler auf

• Für κ = O(100) ist das Ergebnis typischerweise akzeptabel

• Für κ� 104 ist das Ergebnis o� unbrauchbar. Das Problem ist schlecht konditioniert

• Falls das Ergebnis eines numerischen Problems unstetig von den Eingabedaten abhängt, wirdes i. A. als unsachgemäß gestellt angesehen.

• Die Kondition eines Problems hängt i. A. von der Eingabemenge E ab (siehe obiges Beispielzur Schni�punktberechnung)

3.3.2 BeispieleAddition/Subtraktion

• F (a, b) = a+ b.

y Eingabevektor x = (a, b)T .

• Wähle 1-Norm: ‖(a, b)T‖1 = |a|+ |b|

• κabs = ‖F ′(a, b)‖1 = ‖(1, 1)T‖1 = 1. (Matrixnorm!)

• κrel = |a|+|b||a+b|

y Für die Addition von Zahlen mit gleichem Vorzeichen ergibt sich also κrel = 1

y Die Subtraktion ist allerdings schlecht konditioniert, wenn

|a+ b| � |a|+ |b|, (3.10)

also wenn |a| und |b| annähernd gleich sind.

33

Page 34: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Zahlenbeispiel:– Rechnung auf fünf dezimale Stellen:

x = 1.2345 · 10−3

y = 1.7899 · 10−3

u = 1.0000 · 100 + x = 1.0012 · 100

v = 1.0000 · 100 + y = 1.0018 · 100

z1 = v − u = 6.000 · 10−4

z2 = y − x = 5.554 · 10−4

– Mathematisch ist z1 = z2.

– Numerisch kommt es zum Weghebephänomen und ein erheblicher Rundungsfehler tri�auf

• Subtraktion von annähernd gleichen Zahlen sollte vermieden werden!

�adratische Gleichung

• Die Lösung von x2 − 2px+ q = 0 mit q < p2 ist F± = p±√p2 − q. Kondition von F±?

• Wähle wieder die 1-Norm: ‖(p, q)‖1 = |p|+ |q|

• ‖F ′(p, q)‖1:

∂F

∂p= 1± p√

p2 − q(3.11)

∂F

∂q=

−1

2√p2 − q

(3.12)

y ‖F ′(p, q)‖1 = max

(1± p√

p2 − q,−1

2√p2 − q

)(3.13)

• Also:

κ = max

(1± p√

p2 − q,−1

2√p2 − q

)· |p|+ |q||F±|

(3.14)

• Problem 1: Für F± → 0 (also q → 0) geht die Kondition gegen∞.

• Dann:√p2 − q → |p| und F− → p− |p|, was zu großen Rundungsfehlern führt.

• Problem 2: Für q → p2 ist es analog.

Abhilfe zu Problem 1

• Satz von Vieta:

F1 = p+ sign(p) ·√p2 − q (3.15)

F2 =q

F1

(3.16)

(3.17)

• F1/2 ist je nach Vorzeichen F+ oder F−.

• Dadurch wird die fehlerbeha�ete Subtraktion vermieden.

34

Page 35: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

3.3.3 Einfache Funktion• Kondition von F (x) = 1−cos(x)

x:

κ =

∣∣∣∣x · F ′(x)

F (x)

∣∣∣∣ =

∣∣∣∣x · x

1− cos(x)· x sin(x) + cos(x)

x2

∣∣∣∣ =

∣∣∣∣x sin(x) + cos(x)

1− cos(x)

∣∣∣∣ (3.18)

• Starker Fehler für x→ 0.

• Besser: In diesen Fällen Reihenentwicklung:

1− cos(x)

x=

1

x

(1−

[1− x2

2+x4

24± . . .

])=x

2·(

1− x2

12± . . .

). (3.19)

• Für x = 10−6 ist x2

12< 10−13 und x/2 entsprechend auf 12 Stellen genau.

• Die Kondition wäre für F (x) nach Gl. (3.18) 2 · 1012 und der Fehler groß:

1 >> x = 10^(−6);2 >> F1 = (1−cos(x) ) /x3 F1 = 5.00044450291171e−074 >> F2 = x/25 F2 = 5.00000000000000e−076 >> F3 = 4.9999999999995833333∗10^−7; %"Exakt" berechnet mit Mathematica7 >> (F1 − F3)/F3 % relativer Fehler für die Funktion8 ans = 8.89005824242853e−059 >> (F2 − F3)/F3 % relativer Fehler für die Reihenentwicklung

10 ans = 8.32209870677419e−14

35

Page 36: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

4 Numerische Di�erentiation

4.1 Vorwärtsdi�erenzen• Einfachster Ansatz aus der Definition der Ableitung:

f ′(x0) ≈ f(x0 + h)− f(x0)

h(4.1)

• Fehlerermi�lung durch Taylorentwicklung von f(x) an der Stelle x0:

f(x) = f(x0) + f ′(x0) · (x− x0) +1

2f ′′(x0) · (x− x0)2 +O

(f (3)(x0)

)(4.2)

⇒ f(x0 + h) = f(x0) + f ′(x0) · h+1

2f ′′(x0) · h2 +O

(f (3)(x0)

)(4.3)

⇒ f(x0 + h)− f(x0)

h= f ′(x0) +

1

2hf ′′(x0) +O(h3f (3)(x0)) (4.4)

• Der Fehler ist also linear in h!

• Erinnerung: Subtraktion von ähnlich großen Zahlen ist kritisch! Für kleine h sind zudemf(x0 + h) und f(x0) sehr ähnlich!

y Numerische Di�erentiation o� problematischer als numerische Integration!

4.2 Zentrale Di�erenzen• Alternative:

f(x0 + h) = f(x0) + f ′(x0) · h+f ′′(x0) · h2

2+f (3)(x0)h3

3!+f (4)(x0)h4

4!+f (5)(x0)h5

5!+ . . .

(4.5)

f(x0−h) = f(x0)−f ′(x0) · h+f ′′(x0) · h2

2−f

(3)(x0)h3

3!+f (4)(x0)h4

4!−f

(5)(x0)h5

5!+ . . .

(4.6)

⇒ f ′(x0) =f(x0 + h)− f(x0 − h)

2h− h2

3!f (3)(x) +

h4

5!f (5)(x0) + . . . (4.7)

• Fehler nur noch quadratisch in h, da sich die ungeraden Terme in der Taylorreihe geradeaufheben!

• Bildlich:

xx− h x+ h

m1m2

m3f

36

Page 37: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Unterschied zwischen Vorwärts- (gepunktete Linie), Rückwärts-(durchgezogene Linie) und zen-trale Di�erentiation (gestrichelte Linie). Die bessere Genauigkeit der zentralen Di�erentiationist klar erkennbar.

• Nichtsdestominder kann es natürlich vorkommen, dass an speziellen Punkten Vorwärts-oder Rückwärtsdi�erentiation bessere Ergebnisse liefert als zentrale Di�erentiation, z. B. anSa�elpunkten.

4.3 Höhere Ordnungen: Richardsons Extrapolation• Gl. (4.7) kann umgeschrieben werden zu

I : f ′(x0) = D(h) + e2h2 + e4h

4 + . . . (4.8)

• D(h) ist der Di�erenzenquotient und ei die Fehler, welche unabhängig von h sind

• Idee der Extrapolation: Berechne f ′(x0) für Vielfache von h:

II : f ′(x0) = D(2h) + 4e2h2 + 16e4h

4 + . . . (4.9)4× I − II

3: f ′(x0) =

4D(h)−D(2h)

3− 4e4h

4 + . . . (4.10)

⇔ f ′(x0) =−f(x0 + 2h) + 8f(x+ h)− 8f(x− h) + f(x− 2h)

12h+O(h4)

(4.11)

• Der e2-term fällt weg!

• Diese Methode kann automatisiert werden: Beliebige Genauigkeit und Fehlerabschätzungmöglich

• Extrapolation auf h→ 0 möglich.

• Allerdings: Höhere Ordnung heißt nicht unbedingt bessere E�izienz!

• Merke: Funktionenberechnungen sind in der Regel zeitintensiv !

37

Page 38: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

4.4 Wahl der Schri�weite• Fehler 1: h bzw. x0 + h nicht exakt binär darstellbar

• Abhilfe:

1 temp = x0 + h;2 h = temp − x0; %das erhaltene h ist nun "exakt" in der Binä rdarstellung (

aufgrund des Fehlers in der Subtraktion )

• Fehler 2: Zu kleines h führt zu Rundungsfehlern!

• Beispiel Vorwärtsdi�erenzen: Der Rundungsfehler ist ungefähr (ε = Maschinenepsilon)

εr ∼ ε

∣∣∣∣f(x0)

h

∣∣∣∣ (4.12)

• Fehler aufgrund von Trunkierung der Taylorreihe für Vorwärtsdi�erenzen:

εt ∼ |hf ′′(x)| (4.13)

• Minimierung von ε(h) = εr + εt liefert

h ∼

√εf(x0)

f ′′(x0)(4.14)

y Die optimale Schri�weite hängt von der Maschinenpräzision und dem Inversen der relativenKrümmung f ′′(x0)

f(x0)ab.

4.5 Anmerkungen• Höhere und gemischte Ableitungen sind analog berechenbar.1

• Für die Berechnung von Ableitungen an verschiedenen Punkten: Berechne Ableitungendurch Interpolation, inkl. Ausnutzung von schnellen Transformationsalgorithmen (schnel-le Chebyche�/Fourier-Transformation)

1Siehe https://en.wikipedia.org/wiki/Finite_difference_coefficients und Fornberg, Bengt (1988), "Gene-ration of Finite Di�erence Formulas on Arbitrarily Spaced Grids", Mathematics of Computation 51 (1988): 699–706

38

Page 39: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

5 Integration

5.1 Vorbemerkungen:Wann brauchen wir numerische Integration (�adratur)?

• nicht bei analytisch integrierbaren Funktionen, sondern

• bei analytisch gegebenen, aber nicht analytisch integrierbaren Funktionen,

• bei nur numerisch gegebenen Funktionen,

• bei Funktionen mit sehr komplizierten analytischen Integralausdrücken.

5.1.1 Grundprinzipb∫

a

f(x) dx =N∑i=1

cif(xi) + Fehler(N, . . .), (5.1)

• unabhängig von der Form von f ,

• Lage der Stützstellen xi bestimmt Werte der Koe�izienten ci,

• N möglichst klein,

• Fehler für gegebenes N möglichst klein und abschätzbar,

• Fehler soll für wachsendes N schnell gegen Null gehen.

Alle Integrationsverfahren dieses Typs machen implizite Annahmen über den Verlauf von f(x)zwischen den Integrationsstützstellen xi. Das ist theoretisch und praktisch nicht so gefährlich wie esscheint.

39

Page 40: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

5.2 Trapezregel (Euler-Verfahren)(bei äquidistanten Stützstellen: Newton-Cotes-Verfahren)Grundidee: Interpoliere die Funktion an bestimmte Punkte und integriere das Polynom exakt.

a bxixi+1

h

b∫a

f(x) dx ≈ 〈f〉|ba (b− a) (5.2)

= h

N∑i=1

〈f〉|xi+1

xi(5.3)

= h

N∑i=1

1

2(fi + fi+1) (5.4)

= h

(1

2f1 + f2 + · · ·+ fN−1 +

1

2fN

)(5.5)

In jedem Intervall der Breite hwird f(x) durch Gerade (Polynom 1.Ordnung) approximiert. Darausfolgt:

• Die Formel ist exakt nur dann, wenn f(x) eine Gerade ist;

• Wenn wir f(xi+1) durch eine Taylorreihe um f(xi) approximieren:

f(xi+1) = f(xi) + hf ′(xi) +h2

2!f ′′(xi) + · · · (5.6)

brechen wir hier also nach dem linearen Glied ab.⇒ der Fehler ist von der Ordnung1

O(

1

N2

)= O(h2) (5.7)

⇒ doppelte Schri�anzahl bzw. halbe Schri�weite verringert den Fehler um einen Faktor 4.

Kontrolle der Konvergenz in der Praxis:

• Einmalige Berechnung des Integrals (mit einem geratenen Wert für h) ist gefährlich; nur mitweiteren Informationen zu rechtfertigen (z.B. hinreichend genaue Resultate mit diesem h-Wertbei sehr ähnlichen Funktionen); sonst immer nötig:

• Mehrmalige Berechnung des Integrals mit jeweils kleiner werdenden h-Werten, bis Änderungder Integralapproximation kleiner als vorgegebene Schranke ε.

• Extrapolation für verschiedene Werte von h: Romberg-Integration (vgl. Richardson-Extrapolation für Di�erentiation)

• ACHTUNG: Ein konvergiertes Resultat heißt nicht immer ein korrekt berechnetes Integral.

1Diese Herleitung ist etwas salopp. Es stellt sich heraus, dass das Integral, approximiert mit einem Trapez einen Fehlervon O(h3f ′′) hat. Die Summation über viele Trapeze ergibt schließlich einen Fehler von O(h2f ′′). Siehe Neumeier,„Introduction to Numerical Analysis“, Kap. 4.3.

40

Page 41: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

5.3 Simpsonregel und andere Verfahren• Simpson/Keplersche Fassregel: f(x) wird im Intervall h nicht durch Gerade, sondern durch

Parabel angenähert; dies ergibt:

b∫a

f(x) dx ≈ h

3(f1 + 4f2 + 2f3 + 4f4 + · · ·+ 2fN−2 + 4fN−1 + fN) (5.8)

• Achtung: Zahl der Punkte muss ungerade sein. (Gerade Zahl an Intervallen).

• Diese Formel ist exakt für Polynome 3. Ordnung;

• Der Fehler ist von höherer Ordnung als bei der Trapezregel:

O(

1

N4

)= O(h4) (5.9)

• Implementation sehr ähnlich zur Trapezregel.

• Zahlreiche weitere Formeln dieser Art verfügbar: Bis zur 7. Ordnung. Danach aufgrund vonnegativen Gewichten nicht mehr sinnvoll.

• In manchen Situationen wichtig (s.u.): Es gibt auch sog. „o�ene“ Formeln, bei denen dieFunktionswerte f(a) und/oder f(b) an den Intervallgrenzen nicht berechnet werden müssen,sondern nur Funktionswerte an Punkten streng innerhalb des Intervalls.

1https://de.wikipedia.org/wiki/Datei:Composite_Simpsons_rule2.png

41

Page 42: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

5.4 Adaptive �adratur• Manche zu integrierende Bereiche benötigen mehr Integrationspunkte als andere.

y Idee: Entwickle einen Algorithmus, der adaptiv (problemangepasst) ein Integral bis zur er-wünschten Genauigkeit löst.

• Adaptive Romberg-�adratur: Romberg-�adratur in Teilintervallen des Integrals∫ baf(x)dx,

ausgehend vom Startpunkt a.

• Mehrgi�er-Verfahren:

1. Starte bei einem groben Gi�er (per Trapezintegration)

2. Verfeinere das Gi�er durch Verfahren höherer Ordnung (Trapez→Simpson)

3. Bestimme aus dem Genauigkeitsgewinn vom groberen zum feineren Gi�er, wo feinereIntervalle nötigt sind.

4. Iteriere bis zur Konvergenz.

y Die Gi�erpunkte sammeln sich dort, wo „viel passiert“.

• Probleme: Fehlerabschätzung, Robustheit

• Beispiele von resultierenden Integrationsgi�ern:

0

10

20

30

40

50

60

70

80

90

100

0 0.2 0.4 0.6 0.8 1

y

x

FunktionIntegrationspunkte

0

20

40

60

80

100

0 0.2 0.4 0.6 0.8 1

y

x

FunktionIntegrationspunkte

42

Page 43: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

5.5 Einschub: Orthogonale Polynome• Erinnerung: Funktionen können sich mathematisch ähnlich wie Vektoren verhalten (Vektor-

raumdefinition, siehe MfC2)

• Wichtige Klasse von Funktionen, welche ein vollständiges Orthogonalsystem bilden: (klassi-sche) Orthogonale Polynome

• Unterschiedliche Arten je nach Definitionsbereich und Art des Skalarprodukts:

〈m |n〉 ≡b∫

a

pm(x)pn(x)W (x)dx = hnδm,n = hn ·

{1, m = n,

0, m 6= n.(5.10)

• W (x) nennt man Wichtungsfunktion.

• Alle orthogonalen Polynome erfüllen die folgenden rekursiven Beziehungen:

p−1(x) = 0, (5.11)p0(x) = 1, (5.12)

pj+1(x) = (x− aj)pj(x)− bjpj−1(x), j = 0, 1, 2, . . . , (5.13)

aj =〈pj |x| pj〉〈pj | pj 〉

=

∫ bapj(x) · x · pj(x)W (x)dx∫ bapj(x)pj(x)W (x)dx

=

∫ bapj(x) · x · pj(x)W (x)dx

hj

(5.14)

bj =〈pj | pj 〉〈pj−1 | pj−1 〉

=hjhj−1

. (5.15)

• Beweis der Rekursion: Beginne bei x und führe sukkzessive eine Gram-Schmidt-Orthogonalisierung mit obigen Skalarprodukt durch.

• Die Polynome sind zudem Lösungen von bestimmten Di�erentialgleichungen (DGL) undtauchen daher in der Physik sehr o� auf.

• Wichtige Eigenscha�: Ein orth. Polynom vom Grad n hat n verschiedene Nullstellen, welchejeweils zwischen den Nullstellen vom Polynom vom Grade n− 1 zu finden sind.

• Die wichtigsten orthogonalen Polynome:

Name [a, b] W (x) Rekursion DGL

Legendre [−1, 1] 1 (j + 1)pj+1 = (2j + 1)xpj − jpj−1 (1− x2)y′′ − 2xy + j(j + 1)y = 0Laguerre [0,∞) exp(−x) (j + 1)pj+1 = (2j + 1− x)pj − jpj−1 xy′′ + (1− x)y′ + jy = 0Hermite (−∞,∞) exp(−x2) pj+1 = 2xpj − 2jpj−1 y′′ − 2xy′ + 2jy = 0

Chebychev [−1, 1]√

1− x2 pj+1 = 2xpj − pj−1 (1− x2)y′′ − xy′ + j2y = 0

Beispiel Legendrepolynome:

-1

-0.5

0

0.5

1

-1 -0.5 0 0.5 1

Legendre Polynome

x

P_n(

x)

P₀(x)P₁(x)P₂(x)P₃(x)P₄(x)P₅(x)

p0(x) = 1p1(x) = xp2(x) = 1

2(3x2 − 1)

p3(x) = 12(5x3 − 3x)

p4(x) = 18(35x4 − 30x2 + 3)

p5(x) = 18(63x5 − 70x3 + 15x)

p6(x) = 116

(231x6 − 315x4 + 105x2 − 5)pn(x) = 1

2nn!· dn

dxn(x2 − 1)n

1https://de.wikipedia.org/wiki/Datei:Legendrepolynome6.svg43

Page 44: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

5.6 Gauß-Integration• Newton-Cotes: Äquidistante Stützstellen, unterschiedliche Wichtungen der Punkte. Formel mitn Stützstellen kann intervallweise maximal Polynom (N − 1)-ten (N ungerade) oder N -ten(N gerade) Grades exakt integrieren.

• Idee der Gauß-Integration: Hebe die Beschränkung von äquidistanten Stützstellen auf!

• Dadurch ist es möglich, mit N Stützstellen Polynome vom maximalen Grad 2N − 1 exakt zuintegrieren! Doppelt-Exponentielle Konvergenz mit N .

• Wichtig: Dadurch gibt es Probleme bei Integranden, welche nicht gut durch Polynome appro-ximiert werden können, sogenannte nichtanalytische Funktionen.

5.6.1 Beispiel• Finde x1, x2, w1, w2, sodass p3(x) = a0 + a1x + a2x

2 + a3x3, x ∈ [−1, 1] exakt numerisch

integrierbar ist:

1∫−1

p3(x)dx =2∑i=1

wip3(xi) (5.16)

⇔ a0

1∫−1

1dx

︸ ︷︷ ︸2

+a1

1∫−1

xdx

︸ ︷︷ ︸0

+ a2

1∫−1

x2dx

︸ ︷︷ ︸2/3

+a3

1∫−1

x3dx

︸ ︷︷ ︸0

= w1(a0 + a1x1 + a2x21 + a3x

31) + w2(a0 + a1x2 + a2x

22 + a3x

32) (5.17)

• Koe�izientenvergleich führt zu vier nichtlineare Gleichungen:

2a0 = a0(w1 + w2) (5.18)0a1 = a1(w1x1 + w2x2) (5.19)2

3a2 = a2(w1x

21 + w2x

22) (5.20)

0a3 = a3(w1x31 + w2x

32) (5.21)

• Lösung:

w1 = w2 = 1, x1/2 = ± 1√3

y 2 Stützstellen können ein Polynom vom Grad 2 · 2− 1 = 3 exakt integrieren!

1∫−1

p3(x)dx!

= p3

(− 1√

3

)+ p3

(+

1√3

)(5.22)

44

Page 45: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

5.6.2 Verallgemeinerung• Allgemeiner Ansatz:

b∫a

W (x)f(x) dx ≈N∑i=1

wif(xi) (5.23)

• Wenn f ein Polynom vom max. Grad 2N − 1 ist, ist die Gleichung exakt.

• Man kann zeigen, dass xi die Nullstellen des N ten orthogonalen Polynoms sind.

• Die Wichtungen sind dann

wi =

b∫a

W (x)N∏

j=1,j 6=i

x− xjxi − xj

dx. (5.24)

• Je nach Wichtungsfunktion W (x) werden unterschiedliche orthogonale Polynome verwendet.

• Transformation g(x) = W (x)f(x) und vi = wi/W (xi) liefert Formel ohne explizite Wich-tungsfunktion

b∫a

g(x)dx ≈N∑i=1

vig(xi) (5.25)

• Vom Polynomsystem abhängiges Integrationsintervall [a, b] kann zu [a, b] transformiert werdenmit

wi = (b− a)wi2, xi =

1

2[(b− a)xi + (a+ b)]. (5.26)

5.6.3 Adaptive Gauß-�adratur• Mehrgi�erverfahren: Au�eilen des Intervalls [a, b] in Unterintervalle unter Benutzung der

vorherigen �adraturpunkte.

• Dafür werden speziellere �adraturverfahren verwendet:

• Gauß-Loba�o

– Integrationsgrenzen a und b sind in xi enthalten.

– Dadurch: Beschreibung von zwei Polynomordnungen weniger als normale �adratur(2N − 3 ansta� 2N − 1).

– Sonst wie Gauß-Legendre.

– Einfach zu programmieren.

• Gauß-Kronrod

– Spezielles Schema: N + 1 Punkte werden einer N -Punkt �adratur hinzugefügt, sodassPolynome vom max. Grad 3N + 1 exakt integriert werden können.

y Nur bestimmte Integrationsordnungen möglich.

– Besser, aber komplizierter als Gauß-Loba�o.

45

Page 46: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

5.7 Berechnungen der Wichtungen und Punkte• Berechnungen der Punkte=Nullstellen des N ten orth. Polynoms:2

• Gl. (5.13) kann umgestellt werden zu:

pj+1(x) = (x− aj)pj(x)− bjpj−1(x), [Gl. (5.13)]xpj(x) = ajpj(x) + bjpj−1(x) + pj+1(x) (5.27)

• Dies führt zur folgenden Matrix-Gleichung:

x

p0

p1...

pN−2

pN−1

=

a0 1 0 0b1 a1 1 0

0...

...bN−2 aN−2 1

0 0 bN−1 aN−1

︸ ︷︷ ︸

≡T

×

p0

p1...

pN−2

pN−1

+

00...0pN

. (5.28)

• Für pN(xj) = 0 ergibt sich die Eigenwertgleichung

xp = Tp (5.29)

• Eigenwerte von T sind also unsere Nullstellen vom N ten Polynom und damit die gesuchten�adraturpunkte!

• Allein aus numerischen Gründen wird die tridiagonale Matrix symmetrisiert:3

J = D

a0 1 0 0b1 a1 1 0

0...

...bN−2 aN−2 1

0 0 bN−1 aN−1

D−1 =

a0

√b1 0 0√

b1 a1

√b2 0

0...

... √bN−2 aN−2

√bN−1

0 0√bN−1 aN−1

(5.30)

• Erinnerung: Eine Ähnlichkeitstransformation ändert nicht die Eigenwerte.

• Für normierte Eigenvektoren kann man zeigen, dass sich die Wichtung wj aus dem erstenWert des zu xj gehörenden Eigenvektors vj ergibt:

wj = v2j,0

b∫a

W (x)dx. (5.31)

• Die Diagonalisierung einer tridiagonalen Matrix kann sehr e�izient durchgeführt werden. DieBerechnungen von {xi, wi} ist also einfach.

• Für Loba�o-�adratur: Ersetze aN−1 und bN−1 durch die Lösung von(pN−1(x1) pN−2(x1)pN−1(xN) pN−2(xN)

)×(aLob.N−1

bLob.N−1

)=

(x1pN−1(x1)xNpN−1(xN)

)(5.32)

1G. H. Golub,J. H. Welsch, Math. Comp., 23, 221-230 (1969).2Dies ist e�zienter als numerische Nullstellensuche.3D ist hier eine Diagonalmatrix

46

Page 47: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

5.8 Schwierige IntegrandenUnstetige Integranden Bei bekannten Sprungstellen: Au�eilung des Integrals, sodass die Sprung-

stellen jeweils die Integrationsgrenzen sind. Unbekannte Sprungstellen: Lokalisierung eben-dieser durch adaptive �adratur.

Nadelimpulse/Singularitäten

• Zuerst: Au�eilung des Integrals, wie bei den unstetigen Integranden, anschließend:

• Variablentransformation (s. u.), oder:

• tanh-sinh-�adratur:

– Trapezregel nach Variablensubstitution x = g(t) = tanh(π2

sinh(t)),

–∫ 1

−1f(x)dx =

∫∞−∞ f

(g(t)

)g′(t)dt ≈

∑∞k=−∞ ωkf(xk),

– xk = tanh(π2

sinh(kh)), mit Schri�weite h,

– ωk =12hπ cosh(kh)

cosh2(π2

sinh(kh))

– Mit der Variablensubstitution fällt der Integrand doppelt-exponentiell ab.

– Neben Singularitäten an den Grenzen auch gut geeignet für hochgenaue Integration.

• Wenn Stellen nicht bekannt: Adaptive �adratur und Lokalisierung der Stellen; Au�eilungdes Integrals.

Uneigentliche Integrale

• Benutzung von entsprechender Gauß-�adratur (Laguerre, Hermite), sofern der Inte-grand dafür geeignet ist (analytisch).

• |a| =∞ oder |b| =∞: Variablentransformation mit x = 1/t, dx = dt/t2, also

b∫a

f(x) dx =

1/b∫1/a

1

t2f

(1

t

)dt (5.33)

und dann eine „o�ene“ Formel anwenden (ohne Berechnung von f(a) bzw. f(b)), umSingularität bei 1/t2 zu vermeiden. Achtung: Der Integrand muss schneller abfallen alsx−2!

• Beide Grenzen∞: Au�eilung in zwei Integrale.

• Oder : Integration über genügend großen Bereich falls bekannt ist, dass der Integrandschnell abklingt.

Stark oszillierende Integranden O�mals Knockout, evt. analytische Mi�elung über Teilintervalle

47

Page 48: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

5.9 Mehrdimensionale IntegrationAuch Kubatur genannt. Bei einfachen Grenzen, schwach veränderlichem Integranden und hohemGenauigkeitsanspruch: Wiederholte 1D-Integrationen:

Dabei sind die Grenzen der 2., 3., . . . Integration durch Funktionen der vorhergehenden Variablenauszudrücken:∫ ∫

V

∫f(x, y, z)dxdydz =

x2∫x1

y2(x)∫y1(x)

z2(x,y)∫z1(x,y)

f(x, y, z) dz dy dx (5.34)

Zum Beispiel ergibt sich für ein Integral über einen Kreis mit Radius 1 um den Ursprung:

1∫−1

√1−x2∫

−√

1−x2

f(x, y) dy dx (5.35)

Problem dieses Zugangs: Anzahl der Stützstellen skaliert bei naivem Vorgehen exponentiell mitder Anzahl der Dimensionen:

x x x x

xx

x

x

x

x x x

x x x

x x x

x x x

xx

x

x

x

x x x

x x x

x x x

x x x

x

x

x

x

x x x

x x x

x x x

x x x

x

x

x

x

x x x

x x x

x x x

x x x

x

x

x

x

x x x

x x x

x x x

x x x

Alternative: Dünnbesetzte Gi�er, z. B. Smolyak- oder Clenshaw-Curtis-�adratur:4

Hat der Integrand „lokale Spitzen“ in unbekannten Stellen, ist hochdimensionale Integrationho�nungslos.

4http://people.sc.fsu.edu/~jburkardt/datasets/sparse_grid_cce/345.png

48

Page 49: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

5.10 Monte-Carlo VerfahrenAuf Zufallszahlen basierte Algorithmen.

5.10.1 Monte-Carlo-Berechnung von π

r

r

0

Fläche 4Fläche 2

=πr2/4

r2=

1

4π (5.36)

⇒ Algorithmus zur Berechnung von π:

1. Generiere zwei Zufallszahlen xi, yi (gleichverteilt in [0, 1); implizite Annahme: r = 1)

2. Teste, ob Punkt (xi, yi) im Viertelkreis liegt (tri�t zu, wenn x2i + y2

i ≤ 1)

3. π = 4 · Anzahl Punkte im ViertelkreisAnzahl aller Punkte

4. Wenn noch nicht konvergiert, gehe zu (1)

Konvergenz:

• Vergleiche Resultate für π von einer Iteration zur nächsten; Abbruch wenn Di�erenz unterhalbder gewünschten Genauigkeit.

• Generell wichtig: Anstieg der Genauigkeit mit der Anzahl N der Iterationen, z.B. linear, qua-dratisch, kubisch,. . . , exponentiell; je stärker, desto besser!Hier allerdings nur ca. wie

√N .

49

Page 50: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

5.10.2 Monte-Carlo-Integrationzwei mögliche Sichtweisen / Verfahren:

mittlere Fläche: wie MC-Berechnung von π:

<f>

a br12 3r r a b

y

b∫a

f(x) dx = 〈f〉(b− a) (5.37)

mit 〈f〉 =1

N

N∑i=1

f(ri) (5.38)

b∫a

f(x) dx =

y(b− a)x,y-Punkte unter f(x)

alle x,y-Punkte(5.39)

O�ensichtlich ist Verfahren 1 einfacher: Nur eine sta� zwei Zufallszahlen pro Funktionsberech-nung.

Konvergenz allerdings ebenso schlecht wie bei MC-π-Berechnung.

In mehr als einer Dimension ist MC-Integration eine gute Wahl, wenn

• die Integrationsgrenzen kompliziert sind und/oder

• der Integrand schwach veränderlich ist (keine „lokalen Spitzen“) und/oder

• niedrige Genauigkeit ausreicht.

50

Page 51: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

5.10.3 Einschub: Zufallszahlengeneration• Ein Computer arbeitet deterministisch, kann also nicht „raten“.

• Durch die Detektion von externen Signalen (Mausbewegung, Spannungs-/Frequenzunterschiede, . . . ) können Zufallszahlen („Entropie“) gesammelt werden.

• Für viele Zufallszahlen reicht das aber nicht aus.

• Besser: Pseudozufallszahl: Starte von einer Zufallszahl I0 (random seed) als Initialisierungund berechne daraus neue Zufallszahlen.

• Die Berechnung erfolgt über eine Funktion.

• Simples(!) Beispiel für Generierung von Zahl Ij+1 ausgehend von Zahl Ij :

Ij+1 = mod(a · Ij + c,m), (5.40)

wobei a, c Parameter sind. (mod liefert den Rest einer Division zurück).

• Diese Funktion liefert eine natürliche Zufallszahl (Integer) zwischen 0 und m.

• Erzeugung von Gleitkommazahlen über

r =Ijm. (5.41)

• Vorteil: Wiederverwendung des Initialisierungswertes I0 führt zum selben Programmablauf.

• Problem 1: Die Zahlensequenz soll gleichverteilt sein

• Problem 2: Die Zahlensequenz wird sich irgendwann wiederholen.

y In der Praxis werden deutlich kompliziertere Formeln als Gl. (5.40) verwendet.

• De-facto-Standard: Mersenne-Twister,5 welcher sich erst nach 219937 − 1 ≈ 4, 3 · 106001 Be-rechnungen wiederholt.

• Einfacher Test: Graphische Au�ragung einer Zahlensequenz als Punkte in einem 2D-plot.

• Schlechter versus guter Zufallszahlengenerator:6

5https://en.wikipedia.org/wiki/Mersenne_twister6http://www.reedbeta.com/blog/2013/01/12/quick-and-easy-gpu-random-numbers-in-d3d11/

51

Page 52: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6 Suche nach Nullstellen undExtremwerten

6.1 Nullstellensuche (root finding)Einfachste Variante: Suche Nullstelle(n) einer 1D-Funktion:

f(x) = 0. (6.1)

Dies umfasst bereits scheinbar andere Fälle, z.B. Schni�punkt(e) zweier Funktionen:

f(x) = c ⇒ f(x)− c = 0, (6.2)f(x) = g(x) ⇒ f(x)− g(x) = 0 (6.3)

oder auch das tabellarische Aufstellen impliziter Funktionen: z.B. definiert

exp(−x2 − y2) = x2y + y2x3 (6.4)

implizit eine Funktion y = f(x). In der Form

exp(−x2 − y2)− x2y − y2x3 = 0 (6.5)

kann man für beliebig vorgegebene Werte x jedoch durch Nullstellensuche den y-Wert finden, derzu y = f(x) gehört.

Für das Problem f(x) = 0 gibt es verschiedene, relativ robuste und allgemeine Verfahren, die aberiterativ sind und auch scheitern können. Daher ist eine numerische Lösung nur sinnvoll, wenn eineanalytische Lösung nicht möglich ist (Auflösen von f(x) und ggf. g(x) nach x).

Der nD-Fall sieht ähnlich aus

f(x) = 0, (6.6)

ist aber u.U. extrem schwierig, siehe Diskussion dazu am Ende dieses Kapitels.

6.1.1 FixpunktiterationIst die zu ermi�elnde Gleichung von der Form

0 = φ(x)− x, (6.7)

so ergibt die Umformung

x = φ(x) (6.8)

automatisch die Iterationsvorschri�

x(k+1) = φ(x(k)), k = 0, 1, . . . , (6.9)

welche gestoppt wird, wenn |x(k+1) − x(k)| < ε.Es gibt unterschiedliche Möglichkeiten, die Konvergenz zu beschleunigen, da es o�mals verschiedeneWege gibt, eine Gleichung auf die Form 6.8 zu bringen.

52

Page 53: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.1.2 Nullstellen eingrenzen (bracketing)In 1D ist es möglich, Nullstellen (ungerader Ordnung) zunächst einzugrenzen, also ein Intervall zufinden, in dem sich (mindestens) eine Nullstelle befinden muss, wenn die Funktion stetig ist:

Finde [a, b] , so dass : sign{f(a)} 6= sign{f(b)} (6.10)

Tatsächlich gibt es aber mehrere einfache Möglichkeiten, wie dieses Rezept scheitern kann, z.B.:

• mehrfache oder eng benachbarte Nullstellen: Vorzeichenwechsel nicht vorhanden oder schwerlokalisierbar;

• Polstellen können Gl.6.10 erfüllen, ohne dass eine Nullstelle vorhanden ist.

⇒ Die Eingrenzung kann auch scheitern.Trotzdem empfiehlt es sich, eine Eingrenzung vorzunehmen, und viele Algorithmen gehen auch

davon aus.

53

Page 54: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

54

Page 55: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.1.3 BisektionMit einer banalen Intervallteilung kann man eine eingegrenzte Nullstelle sicher und beliebig genaufinden:

1. Gegeben sei ein eingrenzendes Intervall [a, b], so dass sign{f(a)} 6= sign{f(b)}

2. Halbiere das Intervall: c = a+ (b− a)/2

3. Berechne f(c)

4. Ersetze entweder a oder b durch c, sodass [a, c] bzw. [c, b] wieder ein eingrenzendes Intervallist

5. Wenn ε = (b− a)/2 oder |f(c)| kleiner ist als eine gewünschte Toleranz, stop.

6. Sonst: Gehe zu (2)

Beachte: Pro Iteration genau eine Funktionsauswertung.

Vorteile:

• Extrem einfach

• Funktioniert garantiert(genauer: was auch immer den Vorzeichenwechsel verursacht, wird gefunden)

• Gleichmäßige Konvergenz: Wenn die Nullstelle bei der n-ten Iteration in einem Intervall derBreite εn war, wird sie bei der (n+ 1)-ten Iteration in einem halb so breiten Intervall sein:

εn+1 = εn/2 (6.11)

Daher ist die für eine gewünschte Endtoleranz εf nötige Anzahl n von Iterationen bei einergegebenen Anfangsintervallbreite ε0 im voraus angebbar:

n = log2

ε0εf

(6.12)

(Mehr als 40 Iterationen sind i.d.R. kaum nötig, weil 2−40 ≈ 10−12)

Nachteile:

• Findet nur eine Nullstelle, wenn mehrere im Anfangsintervall

• Konvergenz nur linear, langsamer als andere Methoden

55

Page 56: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.1.4 Sekantenmethode, regula falsi (false position method)In der engeren Umgebung einer Nullstelle kann die Funktion durch eine Taylorreihe approximiertwerden, die bereits nach dem linearen Term abgebrochen wird. Ersetzen wir die 1. Ableitung (Di�e-rentialquotient, Tangente) im linearen Term durch eine einfache numerische Approximation daran(Di�erenzenquotient, Sekante), erhalten wir diese beiden Methoden (beachte: wieder nur eineFunktionsauswertung pro Iteration):

1. Gegeben sei ein eingrenzendes Intervall [a, b], so dass sign{f(a)} 6= sign{f(b)}

2. Konstruiere die Gerade g(x) durch die beiden Punkte (a, f(a)) und (b, f(b))

3. Ermi�le c als Nullstelle dieser Geraden: g(c) = 0

4. Berechne f(c)

5. Alternative Ersetzungsregeln:

regula falsi: Ersetze entweder a oder b durch c, sodass [a, c] bzw. [c, b] wieder ein eingren-zendes Intervall ist

Sekantenmethode: Ersetze den älteren der beiden Punkte a und b durch c.

6. Wenn ε = |b− a| oder |f(c)| kleiner ist als eine gewünschte Toleranz, stop.

7. Sonst: Gehe zu (2)

Unterschied: Bei der regula falsi bleibt die Nullstelle strikt eingegrenzt (wie bei Bisektion), beider Sekantenmethode nicht; daher kann die Sekantenmethode versagen. Dafür konvergiert dieSekantenmethode schneller und in vorhersagbarer Weise:

limk→∞|εk+1| ∝ |εk|ϕ (6.13)

mit dem goldenen Schni� ϕ = (1 +√

5)/2 ≈ 1.618.

Situation, in der beide Methoden extrem langsam konvergieren:

56

Page 57: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Sekantenmethode:

regula falsi:

• Besser, aber komplizierter: Brents Methode (Bisektion + inverse quadratische Interpolation),welche quadratisch konvergent ist.

57

Page 58: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.1.5 Newton-RaphsonWenn die 1. Ableitung von f(x) analytisch zur Verfügung steht, kann man sta� lokaler Sekanten-approximationen auch die Tangente verwenden, um eine neue Approximation an die Nullstelle zukonstruieren. Da man für die Sekante zwei Punkte braucht, aber für die Tangente nur einen (und dieSteigung), kommt man dann auch ganz ohne Intervallschachtelungen aus:

1. Rate einen Startpunkt xi, i = 1

2. Berechne f(xi) und f ′(xi)

3. Approximiere die Funktion lokal durch die Tangente, d.h. die nächste Approximation für dieNullstelle ist die Nullstelle der Geraden durch den Punkt (xi, f(xi)) mit der Steigung f ′(xi).Die Endformel dafür ist:

xi+1 = xi −f(xi)

f ′(xi)(6.14)

4. Wenn die Schri�weite abs(xi+1 − xi) oder der Funktionswert |f(xi+1)| kleiner ist als eineToleranzgrenze, stop.

5. Sonst i← i+ 1

6. Gehe zu (2).

Herleitung durch Taylor-Entwicklung an der Stelle xi:

f(x) ≈ f(xi) + f ′(xi)(x− xi)!

= 0 (6.15)

⇒ xi+1 = xi −f(xi)

f ′(xi)(6.16)

Beachte: pro Iterationsschri� brauchen wir hier zusätzlich zur Funktionsberechnung auch einmaleine Ableitungsberechnung. Wenn diese Ableitung numerisch approximiert werden muss (finiteDi�erenzen), ist es daher besser, regula falsi oder das Sekantenverfahren zu verwenden!

58

Page 59: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Vorteile:

• Kein Anfangsintervall nötig, nur ein einzelner Startwert

• �adratische Konvergenz: εi+1 = −ε2if ′′(x)2f ′(x)

Nachteile:

• Langsame Konvergenz bei Nullstellen höherer Ordnung

• Die Tangentenextrapolation kann auch spektakulär schiefgehen;

• Keine Möglichkeit, die Nullstellenapproximationen in einem eingrenzenden Intervall zu halten.

Fehler im Newton-Verfahren: Divergenz:

Fehler im Newton-Verfahren: Oszillation:

• Ausweg: Führe Bisektion durch, wenn die Konvergenz zu langsam ist, oder xi+1 � xi.

• Weitere spezielle Methoden, z. B. für Polynome. Siehe Numerical Recipes.

59

Page 60: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.2 Verfahren im Überblick

Name Formel für neues xk Konvergenz

Bisektion xk−1 + 12(xk−1 − xk−2) εk−1/2

Sekante xk−1 − f(xk−1)(xk−1−xk−2)

f(xk−1)−f(xk−2)ε1.618k−1

Sekante (robuster) xk−1 −(xk−2−xk−1)

f(xk−1)

f(xk−2)

1−f(xk−1)

f(xk−2)

Regula Falsi analog zu Sekante < ε1.618k−1

Newton-Raphson xk−1 − f(xk−1)

f ′(xk−1)ε2k−1

f ′′(x)2f ′(x)

xk−1 und xk−2 sind gegebenfalls die Intervallgrenzen.

60

Page 61: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.3 Extremwertsuche = OptimierungMaximierung von f(x) ist Minimierung von −f(x), daher ist im Folgenden immer nur von Minimie-rung die Rede.

6.3.1 GenauigkeitFehler des Minimums in 1D: Taylorentwicklung von f an der vermuteten Nullstelle b:

f(x) ≈ f(b) +1

2f ′′(b)(x− b)2 (6.17)

der zweite Term ist vernachlässigbar (kleiner ε|f(b)|), wenn

|x− b| <√ε|b|

√2|f(b)|b2f ′′(b)︸ ︷︷ ︸∼1

. (6.18)

Daher kann ein Extremum o�mals nur mit einer Genauigkeit von√εMaschine gefunden werden!

61

Page 62: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.3.2 Eindimensionale MinimierungZur Eingrenzung von Minima braucht man nicht zwei, sondern drei Punkte:

Die stetige Funktion f(x) hat im Intervall [a, b] mit a < c < b ein Minimum, wennf(c) < f(a) und f(c) < f(b).

Die drei Punkte a, b, c sind jedoch im Prinzip leichter zu finden als bei der Nullstellensuche: DieVorschri� „gehe runter (ggf. in immer größeren Schri�en), bis die Funktion wieder ansteigt“, ist sehro� erfolgreich, aber auch nicht immer: 2 Beispiele für Fehlersituationen:

1

2

3

4

1

2

3

4

62

Page 63: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.3.3 Intervallschachtelung nach dem goldenen Schni�Minimierung in Analogie zur Bisektion bei der Nullstellensuche (ebenfalls mit einer Funktionsaus-wertung pro Iteration):

1. Gegeben sei ein Intervall [a, b] und ein weiterer Punkt c, die ein Minimum eingrenzen (s.o.).

2. Konstruiere einen neuen Punkt d im größeren der beiden Intervalle [a, c] bzw. [c, b] (dies seiz.B. [c, b]), sodass

• d im größeren der beiden Intervalle (hier: [c, b]) liegt,

• und zwar von c aus gesehen um die Strecke w · (b − c) in dieses Intervall hinein, mitw = (3−

√5)/2.

(dadurch erreicht man eine über die sukzessiven Intervallschachtelungen skaleninvariantoptimale Unterteilung, siehe Numerical Recipes)

3. Abbruch, wenn die Punkte c, d ausreichend dicht beieinander liegen; beste Approximation ansMinimum: der kleinere der beiden Werte f(c), f(d). Sonst:

4. Wähle aus den jetzt vier Punkten a, c, d, b ein neues Tripel von Punkten, sodass das neue Tripeldas mit den niedrigst möglichen Funktionswerten ist und gleichzeitig noch das Minimumeingrenzt.

5. Gehe zu (2).

Das jeweils nächste Intervall ist hier 0.61803 mal so breit wie das vorige; nicht ganz so gut wie dasVerhältnis 0.5 bei Bisektion (in beiden Fällen ist die Konvergenz linear).

63

Page 64: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.3.4 Inverse parabolische InterpolationÄhnlich wie eine Funktion in der Nähe einer Nullstelle näherungsweise linear ist, ist eine Funktionin der Nähe eines Minimums näherungsweise parabolisch. Das Pendant zu den Sekantenmethodenist daher die inverse parabolische Interpolation:

1. Gegeben sei ein Intervall [a, b] und ein weiterer Punkt c, die ein Minimum eingrenzen (s.o.).

2. Konstruiere eine Parabel durch a, c, b; der neue Punkt d ergibt das Minimum dieser Parabelund ist explizit gegeben durch:

d = b− 1

2

(b− a)2[f(b)− f(c)]− (b− c)2[f(b)− f(a)]

(b− a)[f(b)− f(c)]− (b− c)[f(b)− f(a)](6.19)

3. Abbruch, wenn die Punkte c, d ausreichend dicht beieinander liegen; beste Approximation ansMinimum: der kleinere der beiden Werte f(c), f(d). Sonst:

4. Wähle aus den jetzt vier Punkten a, c, d, b ein neues Tripel von Punkten, sodass das neue Tripeldas mit den niedrigst möglichen Funktionswerten ist und gleichzeitig noch das Minimumeingrenzt.

5. Gehe zu (2).

Problematisch dabei ist, dass Gl.6.19 genausogut zu einem Maximum wie zu einem Minimum führenkann und natürlich versagt, wenn die Funktionsform stark von einer Parabel abweicht.

64

Page 65: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Ein robusteres Praxisverfahren ist daher die Minimierung nach Brent, bei der je nach ErfolgSchri�e gemäß inverser parabolischer Interpolation bzw. gemäß goldenem Schni� eingesetzt werden.

1. Ableitungsinformation kann in unterschiedlicher Weise eingesetzt werden, zwischen folgendenExtremen:

• konservativ: nur zur Entscheidung, ob ein neuer Punkt d in [a, c] oder in [c, b] liegen sollte;

• aggressiv: Konstruktion von interpolierenden Polynomen höherer Ordnung, unter Verwendungvon Funktions- und Ableitungsinformation einiger alter Punkte.

Welche Strategierichtung erfolgreicher ist, hängt davon ab, „wie pathologisch“ die untersuchteFunktion ist.

65

Page 66: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.4 Multidimensionale Minimierung• Anwendungsbeispiel 1: „Geometrieoptimierung“: Optimiere potentielle Energie V als Funktion

der Atomstruktur in Molekülen.1

• Anwendungsbeispiel 2: Nichtlineare Optimierung der Elektronenstruktur (Hartree-Fock, CAS-SCF).

• Deutlich schwieriger als in 1D, da strikte Eingrenzung des Minimums nicht möglich ist.

• Wie auch in 1D: Es wird ein lokales Minimum gefunden, nicht das globale (dafür: Spezialalgo-rithmen + aktuelle Forschung).

• Für Minimierung unter Beschränkungen (Hartree-Fock, stat. Thermodynamik. . . ): Z.B. Ver-wendung der Methode der Lagrangeschen Multiplikatoren, siehe MfC1.

6.4.1 Genereller Ansatz• Approximation der Funktion f am Punktx0 durch Taylorentwicklung bis zur zweiten Ordnung:2

f(x) ≈ f(x0) + gT0 (x− x0) +1

2(x− x0)TH0(x− x0). (6.20)

• g0: Gradient dfdx

am Punkt x0

• H0: Hesse-Matrix d2fdx2 am Punkt x0

• Erinnerung 1: aTb = bTa ist ein Skalarprodukt.

• Erinnerung 2: Die Hesse-Matrix ist symmetrisch (Satz von Schwarz: ∂f∂x1∂x2

= ∂f∂x2∂x1

).

• Ableitung von f :

∇f(x) = g0 + H0(x− x0). (6.21)

• Nullsetzen der Ableitung führt zum Minimum der Approximation x1 = −H−10 (g0 −H0x0)

• Ausgehend von x1 kann die Iteration bis zur Konvergenz fortgeführt werden.

• Problem 1: H und evt. sogar g o� nicht verfügbar!

• Problem 2: Selbst wenn H verfügbar wäre, ist die Matrix o� zu groß für diesen direkten Ansatz(Beispiel: Geometrieoptimierung eines Proteins. . . ).

6.4.2 Methoden ohne Gradienten• Deutlich schwieriger als in 1D (s. o.).

• Neue Methoden: BOBYQA,3NEWUOA,4welche geschickt mehrdimensionale, quadratische Interpo-lation durchführt.

• Ältere Algorithmen (Simplex, Powell, Brent): Siehe Numerical Recipes.

1H. B. Schlegel, WIREs Comput Mol Sci, 1, 790-809 (2011).2Nomenklatur: Kleine Buchstaben und fettgedruckt: Vektoren; große Buchstaben und fettgedruckt: Matrizen.3M. J. D. Powell, The BOBYQA algorithm for bound constrained optimization without derivatives, Cambridge NA Report

NA200906, 20094M. J. D. Powell, Developments of NEWUOA for minimization without derivatives, IMA J. Numer. Anal., 28, 649–664

(2008).

66

Page 67: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.4.3 Methode des steilsten Abstiegs (steepest descent)1. Gegeben sei ein Startpunkt xi, i = 0, im Suchraum.

2. Berechne den Gradienten gi = ∇f(xi); die Richtung des steilsten Abstiegs ist dann gegebendurch −gi.

3. Verwende einen beliebigen 1D-Minimierungsalgorithmus, um in dieser Richtung das Minimumzu finden: minα(xi − αgi) (line search).

4. Wenn abs(f(xi)− f(xi−1)

)/abs

(f(xi)

)oder ‖gi‖ kleiner als eine gegebene Toleranz, stop.

5. Sonst: i← i+ 1

6. Gehe zu (2).

Hinweis: Die 1D-Minimierung muss keine hohe Genauigkeit haben.

Nachteil

• Sukzessive Schri�richtungen stehen per Konstruktion aufeinander senkrecht. Dies führt jedochim Allgemeinen nicht direkt zum Minimum bzw. ist schlecht an schwierigere Funktionsformenangepasst.

• Dadurch: Der Fehler, welcher in einer Iteration in einer Richtung reduziert wird, wird in dernächsten Iteration evt. wieder größer; m. a. W.: Der Algorithmus nutzt keine Informationenvon den bisherigen Iterationen!

67

Page 68: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.4.4 Methode der konjugierten Gradienten (conjugate gradient)Idee

• Wie steepest descent zeigt, sind die optimalen 1D-Suchrichtungen auf der Fläche nicht ortho-gonal zu der vorherigen Suchrichtung.

• Besser: Suche eine neue Suchrichtung, durch die f(x) minimiert wird, während man in derNähe des Minimums der vorherigen Suchrichtung bleibt (der Fehlervektor in diese Richtungbleibt also Null).

• Es wird sich herausstellen, dass diese optimalen Suchrichtungen nicht orthogonal, sondernkonjugiert sind : xTk+1Hxk = 0 anstelle von xTk+1xk = 0. Erklärung: Die Hesse-Matrix erzeugtKopplungen zwischen den Koordinaten:

• Die folgende Herleitung zeigt, dass man diese Suchrichtung auch herausfinden kann, ohne Hzu kennen.5

Herleitung

• Für

f(x) = cT (x) +1

2xTHx (6.22)

(Beschränkung auf Taylorentwicklung an Punkt 0 ist kein Problem, da das Koordinatensystemtranslatiert werden kann).

• Annahme: Gegeben seien xk: k + 1 linear unabhängige Vektoren p0,p1, . . .pk, in Spalten alsMatrix Pk dargestellt.

• Gesucht: Ein ωωω, sodass xk + Pkωωω zum Minimum von Gl. (6.22) führt.

• Dazu: Einsetzen von xk + Pkωωω in Gl. (6.22) liefert folgende Funktion, welche ωωω minimiert

5Eine sehr gute Erläuterung zu dieser Methode (angewandt auf das Lösen von linearen Gleichungssystemen) �ndet sichin J. R. Shewchuk, An Introduction to the Conjugate Gradient Method without the Agonizing Pain, Edition 1 1

4 , 1994,https://www.cs.cmu.edu/~quake-papers/painless-conjugate-gradient.pdf

68

Page 69: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

(Nichtbeachtung der Terme ohne ωωω):6

f(xk + Pkωωω) = cT (xk + Pkωωω) +1

2(xk + Pkωωω)TH(xk + Pkωωω) (6.23)

⇔ f(xk + Pkωωω) = cT (xk + Pkωωω) +1

2

{xTkH(xk + Pkωωω) +ωωωTPT

kH(xk + Pkωωω)}(6.24)

⇒ fω(ωωω) = ωωωTPTk (c + Hxk)︸ ︷︷ ︸≡gk=∇f(xk)

+1

2ωωωT PT

kHPk︸ ︷︷ ︸≡H

ωωω. (6.25)

• Minimierung von fω:

∇fω(ωωω) = PTk gk + Hωωω

!= 0⇒ ωωω = −H−1PT

k gk. (6.26)

• Also ist der nächste Vektor der Iterationsfolge, xk+1, gegeben durch

xk+1 = xk + Pkωωω = xk −PkH−1PT

k gk = xk −Pk(PTkHPk)

−1PTk gk. (6.27)

• Damit gilt weiterhin:

PTk gk+1 = PT

k (c + H xk+1︸︷︷︸Gl. (6.27)

) = PTk (c + Hxk︸ ︷︷ ︸

=gk

+HPkωωω) (6.28)

= PTk gk + PT

kHPkωωω = 0 (Gl. (6.26)) (6.29)⇒ gTk+1pi = 0, i ∈ [0, k]. (6.30)

Die Gradienten von f(x) an der Stelle xk+1, gk+1, sind also orthogonal zu den Vektoren pi(Spalten von Pk)!

• Damit gilt allgemein

gTj pi = 0, j > i. (6.31)

• Durch die Orthogonalität vereinfacht sich Gl. (6.27) drastisch:

xk+1 = xk −PkH−1gTk pkek, (6.32)

wobei ek der k-te Einheitsvektor (nur Nullen außer im kten Element eine 1) ist.

• Bisher habe wir keine Aussagen über Pk gemacht. Die einzige Bedingung ist, dass die Vektorenpi linear unabhängig sind.

• Zur Vereinfachung nehmen wir die pi, welche konjugiert zu H sind:

pTi Hpj = 0, i 6= j (6.33)

• Damit ist H = PTkHPk diagonal. Die pi sind also so gewählt, dass sie die Eigenvektoren von

H sind!

6Dabei wurde ωωωTPTk c = cTωωωPk verwendet.

69

Page 70: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Damit vereinfacht sich Gl. (6.32) wiederum:

xk+1 = xk−PkH−1gTk pkek = xk−gTk pk

Pk

PTkHPk

ek = xk−gTk pkpTkHpk

pk = xk+αkpk. (6.34)

(der Einheitsvektor ek „konvertiert“ die Matrizen zu Vektoren)

• αk ist der Schri� zum Minimum von f(x) entlang der Richtung pk (xk + Pkωωω soll zumMinimum führen)! Vergleiche mit steepest descent! pk im Gegensatz zu gk.

• Beachte, dass über die Minimumssuche die Berechnung von H umgangen werden kann!

• Jetzt muss noch Pk spezifiziert werden.

• Es gilt

gi+1 − gi ≡ yi = H(xi+1 − xi) = αiHpi, (Definition von gi und Gl. (6.34)), (6.35)⇒ yTi pj = αip

Ti Hpj = 0, i 6= j. (6.36)

Die Konjugationsbedingung pTi Hpj = 0 ist also äquivalent zur OrthogonalitätsbedingungyTi pj = 0 (i 6= j).

• Als Ansatz können die bisher unbekannten Vektoren pi aufgebaut werden, indem p0 perSteepest-Descent-Schri� generiert wird (Richtung −g0) und alle darau�olgenden VektorenLinearkombinationen von gk und pk sind:

pk = −gk +k−1∑j=0

βkjpj. (6.37)

• Mit dieser Vorschri� für die pk ist auch gk eine Linearkombination von p0,p1, . . .pk. gi istalso im Raum span(p0,p1, . . .pk) enthalten. Damit lässt sich Gl. (6.31) (gTj pi = 0, j > i)erweitern auf

gTj gi = 0, j > i. (6.38)

• Nun müssen wir die βkj herausfinden. Multiplikation von Gl. (6.37) mit pTi H ergibt

pTi Hpk = − pTi H︸︷︷︸=α−1

i yTi

gk +k−1∑j=0

βkj pTi Hpj︸ ︷︷ ︸

=0,j 6=i

(6.39)

= − 1

αi(gi+1 − gi)

Tgk + βkipTi Hpi ∝ δik. (6.40)

• Aufgrund von Gl. (6.38) verschwindet der erste Term für i < k − 1. Damit kann für i < k − 1βki = 0 gewählt werden. Es ist also nur βk,k−1 ≡ βk−1 ungleich Null!

• βk−1 wird erhalten, wenn Gl. (6.37) mit yTk−1 multipliziert wird, da yTi pj = 0, i 6= j:

0 = −yTk−1gk + βk−1yTk−1pk−1, (6.41)

⇔ βk−1 =yTk−1gk

yTk−1pk−1

, (6.42)

⇒ pk = −gk + βk−1pk−1. (6.43)

70

Page 71: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Aufgrund der Orthogonalität der Gradienten gi und der Definition der pk ergibt sich nocheine andere, alternative Definition von βk−1:

βk−1 =gTk gk − gTk−1gk

gTk pk−1 − gTk−1pk−1

=gTk gk − 0

0− gTk−1(−gk−1 + βk−1pk−2)(6.44)

⇔ βk−1 =gTk gk

gTk−1gk−1

(6.45)

• Damit haben wir mit Gl. 6.34 eine vollständige Iterationsvorschri�.

• Die Polak-Ribiere-Korrektur

βk−1 =(gTk − gTk−1)gk

gTk−1gk−1

(6.46)

führt bei f(x), welche nicht der quadratischen Form genügen, zur schnelleren Konverenz, dadort generell nicht gTk−1gk = 0 gilt.

• Für quadratische Funktionen der DimensionD führt diese Methode per Konstruktion innerhalbvon D Iterationen zum Minimum.

• Anmerkung: Das Verfahren kann auch dazu verwendet werden, Gleichungssysteme der FormAx = b iterativ zu lösen, siehe Abschni� 8.8.1.

Iterationsvorschri�

Initialisierung

• xk← Startvektor

• fx← f(xk)

• gAlt,gNeu← ∇f(xk)

• pAlt← −gAlt (Erster Schri� ist steepest descent)

Schleife

1. Berechne neues xk per 1D-Minimierung in Richtung von pAlt (Gl. (6.34))

2. gNeu← ∇f(xk)

3. fxNeu← f(xk)

4. Wenn abs(fxNeu− fx)/abs(fxneu) oder ‖gNeu‖ kleiner als eine gegebene Toleranz, stop.

5. Berechne neues pAlt nach Gl. (6.43).

6. gAlt← gNeu

7. fx← fxNeu

8. Gehe zu 1.

71

Page 72: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.4.5 �asi-Newton• Schri�e in konjugierte Richtungen, mit expliziter, sukzessiver Verbesserung einer genäherten

Hesseschen Matrix.

• Traditionelles BFGS-Update (Broyden–Fletcher–Goldfarb–Shanno) von H:

Hi+1 = Hi + ∆H, (6.47)

∆HBFGS =∆g∆gT

∆gT∆x− Hi∆x∆xTHi

∆xTHi∆x, (6.48)

∆g = gi+1 − gi (6.49)

• H0 ist beispielsweise eine gegebene Approximation an H, im schlechtesten Falle die Einheits-matrix.

• Problem: Ab und zu zu große Schri�e. Daher notwendige Einführung einer Schri�weitenkon-trolle.

• Vorteil: Teure line-searches können durch viele Varianten mit intelligenter Schri�weitensteue-rung ersetzt werden (augmented Hessian, rational function optimization, eigenvector following,geometry DIIS).

• Nachteil: Benötigt Speicher von der Ordnung O(Dim.2). Daher nicht verwendbar für hochdi-mensionale Probleme (Dim. > 1000)

• Am häufigsten verwendet: low-storage BFGS, welches die Speicherung von H durch Speiche-rung von den vorhergehenden Vektoren der letzten ∼ 10 Schri�e vermeidet.

72

Page 73: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.4.6 Direct Inversion in the Iterative Subspace (DIIS)• x0 sei die exakte Lösung.

• Dann ist der Fehlervektor em an Punkt xm definiert als

em = xm − x0 (6.50)

• Eine neue, bessere Lösung wäre

xm =m∑i=1

dixi (6.51)

• Nun sind die di herauszufinden:

xm =m∑i=1

dixi!

= x0 (6.52)

⇔m∑i=1

di(x0 + ei) = x0 (6.53)

⇔m∑i=1

dix0 +m∑i=1

diei = x0 (6.54)

⇒m∑i=1

di = 1,m∑i=1

diei = 0 (6.55)

• Die letzte Bedingung kann o�mals nur näherungsweise erfüllt werden.

• Minimierung mit der Nebenbedingung∑m

i=1 di = 1 führt nach Lagrange zum Gleichungssys-tem (

E 11T 0

)d =

(01

), Eij = eTi ej (6.56)

(1 und 0 sind m-dimensionale Vektoren),

• Als Fehlervektor wird o� ei ≈ H−1gi verwendet (oder entsprechende Approximationen).

• DIIS wurde als Beschleunigungsverfahren für die Minimierung der Hartree-Fock-SCF-Gleichungen erfunden und wird in allen gängigen Qchem-Programmen verwendet. 7

• Als Löser für lineare Gleichungssysteme under den Namen GMRES (Generalized Minimum ofthe RESidual)

• Nachteil für große Dimensionen: Speicherung von xi und ei aus vorhergehenden Iterationenund anschließende Lösung von Gl. (6.56) nötig.

7P. Pulay, Chem. Phys. Lett., 73, 393-398 (1980)

73

Page 74: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

6.5 Mehrdimensionale nichtlineare NullstellensucheEine Möglichkeit, das Problem f(x) = 0 zu lösen,8 ist eine einfache Erweiterung von 1D-Newton-Raphson: Wir entwickeln f in eine Taylorreihe:

f(x + δx) = f(x) + Jδx +O(δx2) (6.57)

mit der Jacobi-Matrix J:

Jij =∂fi∂xj

(6.58)

Wenn wir quadratische und höhere Terme vernachlässigen (! lineare Approximation, i.Ggs. zurquadratischen bei der multidimensionalen Minimierung) und f(x + δx) = 0 setzen, finden wir alsKorrekturschri� δx zur Nullstelle:

xi+1 = xi + δx = xi − J−1f (6.59)

Dummerweise ist die direkte Verwendung dieser Vorschri� in nD erheblich kritischer als die Ver-wendung von Newton-Raphson in 1D.

Die i.A. zu gefährlichen Newton-Raphson-Schri�e lassen sich jedoch folgendermaßen entschärfen:Für die Hilfsfunktion F = 1

2fT f ist der Schri� nach Gl.6.59 ein Schri� steilsten Abstiegs:

∇F · δx = (f J) · (− J−1f) = −f · f < 0 (6.60)

Also kann man zunächst immer den Schri� nach Gl.6.59 versuchen. Wenn sich dadurch jedoch Fnicht verkleinert, reicht es aus, in derselben Richtung weniger weit zu gehen (backtracking), bis sicheine akzeptable Schri�weite ergibt.

8Im Gegensatz zur Minimierung ist f(x) eine vektorielle und keine skalare Funktion!

74

Page 75: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Warum ist nD-Nullstellensuche schwieriger als nD-Minimierung?

Wir können zwar ho�en, n Unbekannte mit n Gleichungen bestimmen zu können, aber es gibtkeine Garantie, dass eine Lösung existiert.

Bei der oben vorgestellten nD-Minimierung sind die Gradientenkomponenten voneinander ab-hängig. Das ganze Problem ist vorstellbar als die Suche nach einem tiefsten Punkt in einer hügeligenLandscha�. Es gibt daher lokale Information (Gradient→ steilster Abstieg), die zwangsläufig zumErfolg führen muss.

Im Gegensatz dazu sind n nichtlineare Gleichungen i.A. unabhängig voneinander. Für nur zweiFunktionen f(x, y) = 0 und g(x, y) = 0 ist das wie unten abgebildet vorstellbar. Lösungen sind anden Schni�punkten der Null-Konturen f = 0 und g = 0, die völlig unabhängig voneinander sindund jeweils auch aus mehreren unzusammenhängenden Teilen bestehen können. Um festzustellen,ob es Lösungen gibt und wenn ja, wie viele, müßte man alle diese Teil-Konturen komple� nachSchni�punkten absuchen. Die Situation wird dadurch noch weiter verkompliziert, dass die obeneingeführte Hilfsfunktion F multiple Minima hat, z.B. an allen Stellen, an denen sich f = 0und g = 0 nahe kommen, wie etwa im Punkt „M“ – dort befindet sich jedoch keine Lösung desGleichungssystems.

75

Page 76: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7 Gewöhnliche Di�erentialgleichungen7.1 Einführung

7.1.1 Vergleich zur Integration• Das Aufsuchen der Lösung y(b) des Integrals

b∫a

f(x) dx = y(b) (7.1)

ist äquivalent zum Aufsuchen der Lösung von

dy

dx≡ y′ = f(x) (7.2)

mit Anfangsbedingung y(a) = 0 und an einem Punkt x = b.

y Lösung über Integration möglich.1

• Allgemeine gewöhnliche Di�erentialgleichung (ODE, Ordinary Di�erential Equation):

y′ = f(x, y) (7.3)

mit Anfangs- und/oder Randbedingungen, s. u..

Gewöhnlich: y ist eine Funktion einer Variable.

1. Ordnung: Nur y′ kommt in der Gleichung vor.

Explizit: Form von y′(x) explizit bekannt.

Skalar: x ist ein Skalar.

y Bis auf die Anfangs/Randbedingungen ist y nicht bekannt.

y Es wird eine Art extrapolierendes Verfahren benötigt.

• Zudem:

– Häufig weniger gutartiges Verhalten von y(x)

– Funktionsverlauf von f(x, y) nicht von vornherein bekannt.

y Robuste und flexible Algorithmen werden benötigt. Gute ODE-Löser haben z. B. fast immereine adaptive Schri�länge oder Ordnung.

7.1.2 Anfangswert- und RandwertproblemeDie für die Numerik wichtigste Unterscheidung bei allen Di�erentialgleichungen ist folgende:

Anfangswertproblem Randwertproblem

gegeben: ein Punkt (x0,y0) mehrere Punkte (x0,y0), (x1,y1), . . .gesucht: y1 (bei gegebenem Wert x1) Form von y, sodass

Randbedingungen erfüllt sindAnzahl Lösungen: 1 (i.A. eindeutig) 0, 1, viele

Anfangswertprobleme sind viel einfacher und weniger aufwendig als Randwertprobleme.1Es ist oftmals auch sinnvoll, eine schwierige Integration numerisch über die entsprechende Di�erentialgleichung zu

lösen.

76

Page 77: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7.1.3 Gewöhnliche Di�erentialgleichungssysteme 1. Ordnung• Nicht mehr 1 Wert y und f(x, y), sondern N Werte yi und fi(x, yj), i, j = 1, 2, . . . , N

• Allgemein:

y(x)′ = f(x,y) (7.4)

• ODE-Systeme sind der Normalfall.

• Die verwendeten Algorithmen müssen nur für Vektoren verallgemeinert werden; sonst ändertsich nichts.

7.1.4 Gewöhnliche Di�erentialgleichungen höherer Ordnung• Di�erentialgleichungen des Typs

dny

dxn= f(x, y, y′, y′′, . . . , y(n−1)) (7.5)

• Rückführung auf n ODE-Systeme 1. Ordnung immer möglich.

• Beispiel für y′′ = f(x, y)

– Sei u = y′.

– Dann ist

dy

dx= u (7.6)

du

dx= f(x, y) (7.7)

77

Page 78: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7.2 Explizites Euler-Cauchysches Polygonzugverfahren• DGL

y′ =dy

dx= f(x, y) (7.8)

• Gegeben: f(x, y) und eine Anfangsbedingung (x0, y0).

• Gesucht: Weitere Punkte (x, y) der Funktion y(x).

• Für jeden Punkt (x, y) gibt das bekannte f(x, y) die Steigung von y(x) an.

y Idee: Verwendung der Gradienteninformation für eine linear-extrapolierende Konstruktionvon y(x):

x1

x0

x2

x

y

y0

• Ersetze y′ durch Vorwärtsdi�erenz

y′(xj−1) =y(xj)− y(xj−1)

h+O(h) (7.9)

⇒ y(xj) = y(xj−1) + hf(xj−1, y(xj−1)

)+O(h2) (7.10)

• Kurzform: yj ≡ y(xj)

• Dies ergibt folgende Rekursion mit obiger Anfangsbedingung:

yj = yj−1 + hf(xj−1, yj−1), j = 1, 2, . . . , N. (7.11)

y Variables h = ∆x wird bei den einfachsten Verfahren konstant gehalten.

7.2.1 Analyse• Vergleich mit Taylorreihe von y nach Abbruch 1. Ordnung:

y(xj−1 + h) = y(xj) = y(xj−1) + hy′(xj−1) +O(h2). (7.12)

• Dies ist ein Verfahren 1. Ordnung, da der Fehler quadratisch in h ist.

• Aufgrund der Vorwärtsdi�erenz lineare Extrapolation, im Gegensatz zur Trapezintegration,welche interpoliert.

y Im Gegensatz zur Integration ist das Euler-Verfahren für ODEs in der Regel nicht e�izientgenug.

78

Page 79: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7.3 Runge-Ku�a-Verfahren• Generelle Idee: Nutze Gradienten nicht vom Anfang, sondern in der Intervallmi�e:

– Konstruiere einen Hilfspunkt in der Intervallmi�e: x1/2 = x0 + 12h

– Berechne den dortigen y-Wert: y1/2 = y0 + 12hf(x0, y0)

(bis hierher ist das ein Euler-artiger Schri� mit h/2)

– Berechne Steigung in (x1/2, y1/2): f(x1/2, y1/2)

– Gehe anschließend von x0 nach x1:y1 = y0 + hf(x1/2, y1/2)(das ist wieder ein Euler-artiger Schri�, diesmal mit der Schri�weite h)

x1

x0

x2

x

y

y0

x1/2

h

• Notation mi�els zwei Hilfsgrößen k1 und k2:

k1 = f(xi, yi) (7.13)

k2 = f

(xi +

1

2h, yi + h · 1

2k1

)(7.14)

yi+1 = yi + h · k2 +O(h3) (7.15)

• Das Verfahren nennt man Runge-Ku�a 2. Ordnung (RK2, modifiziertes Euler-Verfahren,midpoint-Verfahren).

• Die Erhöhung der Fehlerordnung erkau� man sich durch 2 Funktionsberechnungen pro Schri�

79

Page 80: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Verallgemeinerung zur höheren Ordnung möglich; allgemeine Formel für ein Verfahren m-terOrdnung

yj+1 = yj + hj

m∑l=1

γlkl(xj, yj), (7.16)

kl(x, y) = f

(x+ αlhj, y + hj

m∑r=1

βlrkr(x, y)

)(7.17)

• βlr ist eine untere Dreiecksmatrix und βii = 0; es ergeben sich also 2m+m(m−1)2

freie Parameterpro Ordnung m.

• Erhalt der Parameter βlr, αl, γl über die Erzwingung von bestimmten Bedingungen (sog. Kon-sistenzbedingungen wie

∑i γi = 2 oder

∑i γiαi = 1/2 etc., siehe Deuflhardt, Band 2).

• Anders formuliert: Geschickte Kombination verschiedener Di�erenzenquotienten um höhereGlieder in einer Taylorentwicklung aufzuheben.

• Auflistung der Koe�izienten o� per Butcher-Schema:α βββ

γT

• Besonders o� verwendet: RK 4. Ordnung, welches mit der Simpson-Regel bei der Integrationverwandt ist:

k1 = f(xi, yi) (7.18)

k2 = f(xi +1

2h, yi + h · 1

2k1) (7.19)

k3 = f(xi +1

2h, yi + h · 1

2k2) (7.20)

k4 = f(xi + h, yi + h · k3) (7.21)

yi+1 = yi + h · 1

6(k1 + 2k2 + 2k3 + k4) +O(h5) (7.22)

• Butcher-Schema:0 0 0 0 0

1/2 1/2 0 0 01/2 0 1/2 0 01 0 0 1 0

1/6 1/3 1/3 1/6

• Preis für die Ordnung O(h5): 4 (aufwendige!) Funktionsberechnungen pro Schri�.

• O�mals gilt in der Praxis:

h bei Runge-Ku�a 4. Ordnung ≥ 2h bei midpoint ≥ 4h bei Euler

y 4 Funktionsberechnungen werden durch längere Schri�weite überkompensiert.

• Wie bei der Integration gilt allerdings auch hier:

– höhere Ordnung 6= höhere Genauigkeit (bei vergleichbarem Aufwand)/E�izienz; Gleich-heit nur bei hinreichend gutartigen Di�erentialgleichungen möglich;

– Konvergenztests (verschiedene Schri�weiten h) extrem wichtig.

80

Page 81: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

– Zu kleine Schri�weite h wegen begrenzter Computergenauigkeit auch nicht gut (sieheÜbungen zur numerischen Di�erentiation).

• Viele weitere Verfahren, siehe z. B. https://en.wikipedia.org/wiki/List_of_Runge%E2%80%93Kutta_methods

81

Page 82: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7.4 Adaptive Schri�weitenkontrolle

7.4.1 Grundideen• Feste Schri�weite ungünstig, da dann die ungünstigste Region die Schri�weite im Gesamtin-

tervall bestimmt.

• Für adaptive Schri�weite benötigt: Fehlerabschätzung:

– Vergleich eines Schri�es mit gleichem h von zwei Verfahren der Ordnung N und N + 1⇒ z.B. Runge-Ku�a-Fehlberg; oder:

– „Schri�verdopplung“: Vergleiche Lösung von xi → xi+1 von Schri�weite 2h mit Doppel-schri� xi →→ xi+1 mit Schri�weite h.

• Bei der Schri�verdopplung gilt dann (z.B. für Runge-Ku�a 4.Ordnung):

(2h-Schri�) : y(x+ 2h) = yRK,1 + (2h)5φ+O(h6) (7.23)2 · (h-Schri�) : y(x+ 2h) = yRK,2 + 2(h5)φ+O(h6) (7.24)

⇒ ∆ = |yRK,2 − yRK,1| ∝ h5 (7.25)

• ∆ soll kleiner als ε sein:

∆ ≤ ε = ATOL + |yRK,1| · RTOL (7.26)

y Für gewünschten, relativen Fehler ε Berechnung der nötigen Schri�weite:

hneu = h∣∣∣ ε∆

∣∣∣1/5 (7.27)

• Allerdings: hneu wurde für xi → xi+1 berechnet, soll aber auf xi+1 → xi+2 angewandt werden.

• Daher besser: Konservativere Abschätzung hneu = Ch∣∣ ε

∣∣1/5, C - 1 und zusätzliches Abfan-gen von zu großen/kleinen Werten (z. B. maximal Schri�weiten-verdopplung/halbierung)

y Generell ist die Fehlerabschätzung mit signifikantem Mehraufwand verbunden. „Unstetigkei-ten“ müssen abgefangen werden.

• Dennoch kann die adaptive Schri�weitenkontrolle sehr lohnend sein:

– Einfache Kontrolle der Zielgenauigkeit (⇒ Black-Box-Routinen)

– Jede Region bekommt während der Propagation automatisch ein an sie angepasstes h;

– Bei guter ε-Wahl werden Iterationen des Gesamtverfahrens ggf. völlig überflüssig.

• Meistens kann die relative und absolute Fehlertoleranz, ATOL und RTOL, auf den selbenWert gesetzt werden (für steife Probleme ist das meistens ein Muss, siehe Abschni� 7.6). Fürstark oszillierende Funktionen sollte ATOL = 0 sein.

82

Page 83: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7.4.2 Runge-Ku�a-Fehlberg• Es können Koe�izienten gefunden werden, welche sowohl für ein RK-Verfahren nter Ordnung,

als auch für ein Verfahren (n− 1)ter Ordnung gelten.

• Beispiel: Runge-Ku�a-Fehlberg 5(4):0

1/4 1/43/8 3/32 9/32

12/13 1932/2197 −7200/2197 7296/21971 439/216 −8 3680/513 −845/4104

1/2 −8/27 2 −3544/2565 1859/4104 −11/4016/135 0 6656/12825 28561/56430 −9/50 2/55 (RKF5)25/216 0 1408/2565 2197/4104 −1/5 0 (RKF4)

• Der Fehler ist damit bis zur 5ten Ordnung direkt abschätzbar, ohne Schri�verdopplung. Dieneue Schri�weite ergibt sich wieder nach Gl. (7.27).

• Ähnlich, aber besser als RKF5(4): Dormand-Prince-Methode (RKDP)

• Sehr häufig verwendet: RKDP5(4) und RKDP8(5,3) (12 Funktionsevaluationen benötigt).

83

Page 84: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7.5 Weitere Verfahren

7.5.1 Prädiktor-Korrektor/Mehrschri�verfahrenGrundidee: Bei bisherigen Verfahren ist jeder ermi�elte Punkt ein neuer Anfangspunkt; alte y-Wertewerden „vergessen“. Bei Prädiktor-Korrektor-Verfahren werden sta�dessen die folgenden beidenSchri�e alternierend iteriert:

• Prädiktor-Schri�: Mehrere alte y-Werte werden benutzt, um einen neuen y-Wert zu extrapolie-ren

• Korrektor-Schri�:

– Wenn die y-Werte bekannt wären, könnte man dydx

= f(x, y) inb∫a

f(x, y) dx = y(b)

zurückverwandeln und mit bekannten Integrationsformeln ausrechnen.

– Hier sind N − 1 alte und ein neuer (extrapoliert, im Prädiktor-Schri�) y-Wert bekannt

y Wende eine geeignete N -Punkte-Integralformel an, um einen y-Wert zu berechnen, derden extrapolierten Wert aus dem Prädiktor-Schri� verbessert.

• Häufig verwendet: „Adams-Bashforth-Moulton“ (ABM):

– Beispiel für 3. Ordnung:

yn+1Prädiktor = yn +

h

12(23y′n − 16y′n−1 + 5y′n−2) +O(h4), (Adams-Bashforth-Schri�)

(7.28)

yKorrektorn+1 = yn +

h

12(5yn+1

′ + 8y′n − y′n−1) +O(h4), (Adams-Moulton-Schri�).

(7.29)

– Anfangswerte werden o� per RK2 oder ähnliche Verfahren generiert.

– Sehr gutes Verfahren, wenn die Lösung der ODE nicht stark oszillativ und die Berechnungvon f sehr aufwändig ist.

– Di�erenz Prädiktor-Korrektor→ Genauigkeitsabschätzung→ Schri�weiten- oder Ord-nungskontrolle; aber:

– Programmierung sehr aufwendig (Buchhaltung alter Werte nötig);

– Programmieraufwand steigt mit Schri�weitenkontrolle noch einmal erheblich.

– Allerdings: Altes, daher ausgerei�es Verfahren⇒ moderne Implementationen enthaltenJahrzehnte an Entwicklungsarbeit

84

Page 85: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7.5.2 Bulirsch-StoerExtrapolation der Resultate eines großen (variablen) Schri�s H (mit H >> h), der mit Verfahrensteigender Ordnung N wiederholt wird, von N = 2, 4, 6, . . . auf N →∞ (mit rationalen Funktionenoder Polynomen, Richardson-Extrapolation):

x0

x

y

y0

x0+H

Extrapolation

1

2

3

• Relativ einfach zu programmieren;

• E�ektiv (wenige f -Berechnungen);

• Nicht gut für problematische y-Funktionen (nicht-kontinuierlich, Singularitäten); dort Runge-Ku�a mit variabler Schri�weite robuster.

85

Page 86: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7.6 Steife Anfangswertprobleme• Beispiel:

y′(x) = λ(y(x)− 2), y(0) = 1, λ < 0 (7.30)⇒ y(x) = 2− exp(λx) (7.31)

• Lösung mi�els (explizitem) Euler-Verfahren:

yn+1 = yn + hy′n = (1 + hλ)yn − 2hλ. (7.32)

• Nur wenn |1 + hλ| < 1 liefert das Verfahren brauchbare Werte. Ansonsten divergiert dieLösung gegen∞ für große n, obwohl y(x) für große x konstant ist und der exp-Term in yvernachlässigbar ist.

• Die Bedingung |1 + hλ| < 1 grenzt das Stabilitätsgebiet des Euler-Verfahrens ein. Nurinnerhalb des Stabilitätsgebiets ist das Verfahren sinnvoll.

• Derartige Probleme nennt man steif (sti� ).

• Allgemein für ODE-Systeme der Art y′ = −Cy ist die Steifigkeit definiert durch2

S :=max |R(λλλ)|min |R(λλλ)|

, C = Tdiag(λλλ)T−1, (7.33)

• S ist stark verwandt mit der Kondition der Matrix C (siehe Kapitel 8.2).

• Die Schri�weite muss für explizite Verfahren immer kleiner als der inverse maximale Eigenwertsein.

• Abhilfe: Lösung der ODE mi�els Rückwärtsdi�erentiation, das implizite Eulerverfahren:

y(x− h) = y(x)− hy′(x) +O(h2) (7.34)⇒ yn+1 = yn + h y′n+1︸︷︷︸

=f(xn+1,y)

+O(h2) (7.35)

• Für obiges Beispiel, Gl. (7.30), ergibt sich

yn+1 =yn − 2hλ

1− hλ(7.36)

• Für λ < 1 ist das implizite Verfahren immer stabil.

• Beispiel für verschiedene Schri�weiten:

2R(x) gibt den reellen Teil a der komplexen Zahl x = a+ ib zurück.

86

Page 87: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Problem: Für die Verwendung von Gl. (7.35) muss y′n+1 schon vorher bekannt sein. Lösung z. B.mi�els Fixpunktverfahren (mehrmalige Verwendung der Gleichung, bis die Lösung konvergiert,siehe Abschni� 6.1.1) oder (mehrdimensionaler!) Nullstellensuche.

• Ausweg: Linearisierung von Gl. (7.35) (Newton-Raphson, siehe Abschni� 6.5):

yn+1 = yn + h

[f(yn) +

∂f

∂y

∣∣∣∣yn

· (yn+1 − yn)

](7.37)

⇔ (1− hJn)yn+1 = (1− hJn)yn + hf(yn), (7.38)⇒ yn+1 = yn + h [1− hJn]−1 · f(yn), (7.39)

Jn =∂f

∂y

∣∣∣∣yn

(7.40)

• J ist die Jacobi-Matrix

• Derartige Verfahren nennen sich semi-implizit.

• Achtung: Lösung von Gl. (7.39) kann für große ODE-Systeme sehr aufwendig sein (> 1000Gleichungen sind keine Seltenheit, das Lösen von linearen Gleichungssystemen skaliert kubischmit der Zahl der Gleichungen).

• Für viele Algorithmen (Runge-Ku�a, Bulirsch-Stoer,. . . ) gibt es entsprechende implizite odersemi-implizite Verfahren.

• Die absolute Toleranz ATOL (Gl. (7.26)) von adaptiven Verfahren sollte bei steifen Proble-men nicht auf Null gesetzt werden, da sich das Verfahren sonst an den stark abfallendenLösungsanteilen „festfrisst“.

87

Page 88: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7.6.1 Beispiel• Beispiel (Moler, Kap. 7.9):

y′ = y2 − y3, y(0) = δ, x ∈ [0, 2/δ]. (7.41)

• Für δ = 10−5 liefert RK5(4) mit einer Genauigkeit von 10−4 folgendes Ergebnis:

• Es werden 3040 Schri�e und 20179 Funktionsevaluationen benötigt.

• Spezieller ODE-Löser für steife Anfangswerte liefert dahingegen:

• Es werden nur 99 Schri�e und 412 Evaluationen benötigt.

88

Page 89: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7.7 Zusammenfassung und Praxistipps

Generell• Das einfache Eulerverfahren ist nicht e�izient.

• Wie bei Di�erentiation gilt: Zu kleine Schri�weiten führen zu Rundungsfehlern.

• Adaptive Verfahren sind der Normalfall.

• Die E�izienz der jeweiligen Verfahren hängen sehr stark von der Form der ODE ab.

• Für jedes Problem sollten daher vor Produktionsrechnungen mehrere Verfahren getestetwerden.

• Höhere Ordnung heißt nicht größere E�izienz.

• Komplizierte Integrale können über die entsprechende Di�erentialgleichung gelöst werden.ODE-Löser sind meistens ausgefeilter als Integralroutinen.

• Man sollte sich informieren, ob es für die verwendete ODE eventuell spezielle Löser gibt, sieheAbschni� 7.8.3.

Nichtsteife Anfangswertprobleme• Falls das Verhalten der ODE unbekannt ist oder stark oszilliert: Verwendung der adaptiven

Runge-Ku�a-Dormand-Price-Verfahren RKDP5(4) oder RKDP8(5,3).

• Hinreichend unproblematische Funktionen: Lösung per adaptivem Bulirsch-Stoer-Verfahren.

• Hinreichend unproblematische Funktion und sehr aufwändige Berechnung von f : Verwendungvon adaptiven Prädiktor-Korrektor-Verfahren wie Adams-Bashforth-Moulton.

Steife Anfangswertprobleme• Rückführung auf weniger steifes Problem möglich?

• Verwendung von (semi-)impliziten Verfahren.

• Die Jacobi-Matrix wird (fast) immer benötigt.

89

Page 90: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7.7.1 RandwertproblemeEinfaches Schießverfahren

• Beispiel: Formuliere

y′′ = f(x, y, y′), mit y(x0) = a, y(x1) = b (7.42)

um in ein Anfangswertproblem

y′′ = f(x, y, y′), mit y(x0) = a, y′(x0) = s (7.43)

y Rate Versuchswert s0 und propagiere von x0 zu x1.

• Je nach y(x1) wird s0 in geeigneter Weise zu s1 verändert. Iteration bis zur Konvergenz.

x0

x

y

y0

x1

s0

s1

s2

sn

1y

• Veränderung von s per Nullstellensuche von F (s) = y(x1; s)− b

• Nachteile:

– Nicht jede gegebene Randbedingung (x1, y1) muss notwendigerweise erfüllbar sein⇒keine theoretische Garantie für eine Lösung;

– Die Wahl von s0 kann so falsch sein, dass dazu gar kein y(x1) existiert;

– y1 kann so sensibel von s abhängen, daß das Au�inden des korrekten s praktisch unmög-lich wird⇒ keine praktische Garantie für eine Lösung.

Relaxationsmethode

• Ersetze Di�erentialquotienten dy/dx, d2y/dx2, . . . durch geeignete finite Di�erenzen ∆y/∆xusw.

• Löse die DGL auf einem Gi�er von x0 zu x1

y Konvertierung der DGL zu einem linearen Gleichungssystem.

• Ändere die Werte auf dem Gi�er, bis die DGL mit allen Randwerten gelöst ist.

y Optimierung von vielen Variablen

90

Page 91: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7.8 Partielle Di�erentialgleichungen• Weitere Schwierigkeitsstufe, weil Variabilität noch einmal höher:

Integration → gew. DGL-System → partielles DGL-Systemdydx

= f(x) dyidx

= f(x, y1, y2, . . .)∂yi∂xj

= f(x1, x2, . . . , y1, y2, . . .)(7.44)

y Weites, neues Feld mit vielen speziellen Methoden;

• Zwei Standardstrategien:

– Ersatz der Di�erentialquotienten durch finite Di�erenzen, oder

– Entwicklung der unbekannten Lösungsfunktionen in Reihen aus bekannten Basisfunk-tionen

y Umwandlung der partiellen DGL in Probleme der linearen Algebra umwandeln und mit dendort etablierten Methoden lösen (lineare Gleichungssysteme, Matrix-Eigenwertproblem).

7.8.1 Beispiel Finite Di�erenzen I2. Fouriersches Gesetz der Wärmeleitung/2. Ficksches Gesetz (in 1D):

∂T

∂t= c

∂2T

∂x2(7.45)

Approximation der zweiten Ableitung durch finite Di�erenzen

y′′i =yi+1 − 2yi + yi−1

h2+O(h3) (7.46)

ergibt also auf der rechten Seite

c∂2T

∂x2

∣∣∣∣xi

=c

h2(Ti+1 − 2Ti + Ti−1). (7.47)

Definiert man die Temperatur am Punkt xi als Ti, erhält man auf diesem 1D-Ortsraumgi�er also(inkl. zweier Randbedingungen):

dT0

dt= a (7.48)

dT1

dt=

c

h2(T2 − 2T1 + T0) (7.49)

dT2

dt=

c

h2(T3 − 2T2 + T1) (7.50)

...dTn−1

dt=

c

h2(Tn − 2Tn−1 + Tn−2) (7.51)

dTndt

= b (7.52)

Das ist ein System gewöhnlicher DGLs, also mit den üblichen Methoden direkt lösbar.

91

Page 92: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7.8.2 Beispiel Finite Di�erenzen IIDie Schrödingergleichung für die Bewegung eines Teilchens der Masse m in einer Raumdimensionx lautet:

HΨ = EΨ, (7.53)

mit dem Hamilton-Operator

H = − ~2

2m

d2

dx2+ V (x). (7.54)

Mit den Abkürzungen

Q(x) = −2m

~2V (x), ω = −2m

~2E. (7.55)

erhalten wir:

d2Ψ(x)

dx2+Q(x) Ψ(x) = ωΨ(x). (7.56)

Die Diskretisierung der 2. Ableitung von Ψ nach x

d2Ψ

dx2≈ Ψ(xi+1) + Ψ(xi−1)− 2Ψ(xi)

∆x2(7.57)

führt nach Einsetzen in Gleichung (7.56) zum Gleichungssystem

[Ψ(xi+1) + Ψ(xi−1) + aiΨ(xi)] = λΨ(xi) (7.58)

mit den Abkürzungen

ai = ∆x2 ·Q(xi)− 2 = −2m∆x2

~2V (xi)− 2, λ = ∆x2 · ω = −2m∆x2

~2E (7.59)

Mit den Randbedingungen Ψ(x0) = Ψ(xN+1) = 0 gilt für das erste bzw. das letzte Intervall:

[Ψ(x2) + a1Ψ(x1)] = λΨ(x1), (7.60)[Ψ(xN−1) + aNΨ(xN)] = λΨ(xN). (7.61)

Somit lassen sich die Gleichungen (7.58) in Matrixform schreiben als:

a1 1 0 · · · 0 01 a2 1 · · · 0 00 1 a3 · · · 0 0...

......

. . ....

...0 0 0 · · · aN−1 10 0 0 · · · 1 aN

·

Ψ(x1)Ψ(x2)Ψ(x3)

...Ψ(xN−1)Ψ(xN)

= λ ·

Ψ(x1)Ψ(x2)Ψ(x3)

...Ψ(xN−1)Ψ(xN)

, (7.62)

was ein einfaches Eigenwertproblem einer tridiagonale Matrix ist.Nachteile dieser sehr einfachen Strategie sind die relativ ungenaue Diskretisierungsformel (⇒

große Matrizen) und Probleme bei der Verallgemeinerung auf mehr als eine Dimension.

92

Page 93: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

7.8.3 Spezielle Verfahren in der theoretischen Chemie• An das physikalische Problem angepasste DGL-Löser sind deutlich besser als Standardverfah-

ren.

• Beispiel 1: Klassische Molekulardynamiksimulationen: Verlet-, Bocksprung-(Leapfrog-)-Algorithmus, symplektische Integration;siehe chem0503, chem1004D

• Beispiel 2: Zeitunabhängige Schrödingergleichung (partielle DGL!): �antenchemie-Verfahren(Coupled Cluster etc.), Galerkin/Finite Basisdarstellung, Numerov-Methode, Kollokation;siehe chem1004D

• Beispiel 3: Zeitabhängige Schrödingergleichung: Short Iterative Lanczos, symplektische Inte-gratoren, Chebyche�, Split-Operator, Taylor-Reihe, . . . ;siehe chem1004D

7.8.4 Beispiel: Basisfunktionsentwicklung (Galerkin/FiniteBasisdarstellung)

Wesentlich allgemeiner und sehr leicht auf beliebige Dimensionszahlen verallgemeinerbar ist dieEntwicklung der gesuchten Lösungsfunktion(en) Ψ(x) in einen Satz von Basisfunktionen φi(x),i = 1, 2, . . . , n (Spektraldarstellung):

Ψ(x) =n∑i=1

ci φi(x). (7.63)

Dieser Basisfunktionensatz sollte theoretisch vollständig sein, was bei hinreichend nicht-trivialenProblemen unendlich viele Funktionen (n → ∞) erfordert. Das ist in der Praxis natürlich nichtmöglich; man kann konkret nur mit Basisfunktionssätzen endlicher Größe umgehen (finite basisrepresentation, FBR).

Einsetzen der Entwicklung Gl. 7.63 in Gl. 7.53 liefert:∑i

ciHφi(x) = E∑i

ci φi(x). (7.64)

Im Folgenden kürzen wir die au�retenden Integrale mit der Diracschen bra-ket-Schreibweise ab:

∞∫−∞

φ∗jOφidr = 〈φj|O|φi〉. (7.65)

Multiplikation von Gl. 7.64 mit der Basisfunktion φj (beliebiges j) und Integration über alle Ko-ordinaten r entspricht also formal einer Multiplikation von links mit dem bra 〈φj| und ergibt:

∑i

ci〈φj|H|φi〉 = E∑i

ci〈φj|φi〉. (7.66)

Wenn die Basis {φi} orthonormal ist, gilt für die Überlappungsmatrix

Sji = 〈φj|φi〉 = δij (7.67)

93

Page 94: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

und die Summe auf der rechten Seite kollabiert zu einem einzigen Term:∑i

ci〈φj|H|φi〉 :=∑i

ciHji = Ecj. (7.68)

Für jeden Wert von j gibt es eine solche Gleichung; diese können zusammengefasst werden zu derMatrix-Vektor-Gleichung

Hc = Ec. (7.69)

Für eine FBR-Basis aus n Funktionen erhält man zwangsläufig eine n× n-Matrix H und damitgenau n Eigenwerte (die nicht alle verschieden sein müssen) und dazugehörige Eigenvektoren.Dementsprechend gibt es n verschiedene Matrix-Vektor-Gleichungen Gl. 7.69, die man abkürzendzu einer einzigen Matrix-Matrix-Gleichung zusammenfassen kann:

HC = EC. (7.70)

Dabei sind die Vektoren c die Spaltenvektoren der Matrix C, und die Diagonalmatrix E enthält dien Eigenwerte E auf der Diagonalen.

Beachte: Bei der Herleitung von Gl. 7.69 haben wir keinerlei Voraussetzungen über die Anzahlder Raumdimensionen unseres Problems gemacht. Wenn unsere Basisfunktionen also alle dieseRaumdimensionen in einem hinreichend großen Bereich abdecken und wir über alle diese Dimen-sionen integrieren, ist diese Strategie völlig allgemein und liefert für n Basisfunktionen immer einn × n-Matrixeigenwertproblem. Da der Hamiltonoperator (fast) immer hermitesch (oder sogarsymmetrisch) ist, ist die resultierende Matrix auch hermitesch (oder symmetrisch).

94

Page 95: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

8 Lineare Gleichungssysteme

8.1 GrundlegendesEin lineares Gleichungssystem besteht aus M Gleichungen mit linearen Termen aus N Unbekann-ten und N ·M Koe�izienten. Einzelne Terme ohne Unbekannte kann man auf der rechten Seitezusammenfassen:

a11x1 + a12x2 + · · ·+ a1NxN = b1 (8.1)a21x1 + a22x2 + · · ·+ a2NxN = b2 (8.2)

...

aM1x1 + aM2x2 + · · ·+ aMNxN = bM (8.3)

a11 a12 · · · a1N

a21 a22 · · · a2N...

.... . .

...aM1 aM2 · · · aMN

x1

x2...xN

=

b1

b2...bM

(8.4)

⇔ Ax = b (8.5)

Auch möglich sind:

• Mehrere rechte Seiten bi bei gleicher Matrix A:

Ax1 = b1 , Ax2 = b2 , . . . , (8.6)⇒ AX = B. (8.7)

• Wenn B = 1N×N , dann ist X = A−1⇒Matrixinversion

95

Page 96: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

8.1.1 Kleines Matrix-Nomenklatur-LexikonAM×N

quadratisch: M = N

rechteckig: M 6= N

diagonal, tridiagonal, band-diagonal, block-diagonal

schwach besetzt

Dreiecksmatrix Hier abgekürzt: Obere/untere4-Matrix

symmetrisch (hermitesch/selbstadjungiert): A = AT (A = A† = (AT )∗)

• Alle Eigenwerte reell

• Eigenvektoren bilden vollständiges Orthonormalsystem

positiv definit:

• Symmetrische (hermitesche) Matrizen mit positiven Eigenwerten

• Haben immer ein Inverses

positiv semi-definit:

• Neben positiven Eigenwerten auch der Eigenwert 0 erlaubt

orthogonal (unitär): A† = A−1

• Die Spaltenvektoren bilden ein Orthonormalsystem

• Bei Av bleibt die Norm von v erhalten: ‖Av‖ = ‖v‖

normal: AA† = A†A

• Die Eigenvektoren bilden ein vollständiges Orthonormalsystem;

• Bei reellen Matrizen sind alle symmetrischen und alle orthogonalen Matrizen normal

singulär:

• Linear abhängige Zeilen (oder Spalten), det(A) = 0

regulär: det(A) 6= 0

96

Page 97: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

8.1.2 Lösbarkeit

AM×NxN = bM . (8.8)

Inhomogene Systeme: b 6= 0

• M = Neindeutige Lösung, wenn A nicht singulär: det(A) 6= 0.Wenn det(A) = 0, dann

– Keine Lösung, oder

– Ein- oder mehrfach unendliche Lösungsmannigfaltigkeit,d.h. eine oder mehrere Unbekannte xi bleiben unbestimmt.

• M < N : Unterbestimmt(e�ektiv auch der Fall, wenn det(A) = 0)Singularitäten von A analysierbar und Lösungsmannigfaltigkeit bestimmbar mit Singulär-wertzerlegung (singular value decomposition, SVD, siehe Abschni� 9.7)

• M > N : ÜberbestimmtMögliche Lösung durch lineare Regression finden (Minimierung der Fehler mit least squares);ggf. auch wieder mit SVD machbar.

97

Page 98: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

8.2 Konditionierung• Bei Ax = b kann sowohl A als auch b mit Fehlern beha�et sein, bzw. gestört werden.

• A sei im Folgenden regulär, das Gleichungssystem hat also eine eindeutige Lösung.

8.2.1 Störung von b

• Störung z. B. durch Rundungsfehler:

b→ b + ∆b (8.9)

• Suche nun eine Störung in x (bei ansonsten exakter Rechnung), sodass das Gleichungssystemwieder exakt gelöst wird:

A(x + ∆x) = b + ∆b, (8.10)⇒ A∆x = ∆b, (8.11)⇒ ∆x = A−1∆b, (8.12)⇒ ‖∆x‖ = ‖A−1∆b‖ ≤ ‖A−1‖‖∆b‖. (4− Ungleichung) (8.13)

• Weiterhin gilt:

Ax = b, (8.14)⇒ ‖b‖ = ‖Ax‖ ≤ ‖A‖‖x‖, (8.15)

⇔ 1

‖x‖≤ ‖A‖‖b‖

. (8.16)

• Mit Gl. (8.13) folgt

‖∆x‖‖x‖︸ ︷︷ ︸

Rel. Fehler im Ergebnis

≤ ‖A−1‖‖A‖ ‖∆b‖‖b‖︸ ︷︷ ︸

Rel. Fehler in Eingabe

, (8.17)

κ ≡ cond(A) ≡ ‖A−1‖‖A‖. (8.18)

• cond(A) ist die Kondition von A (siehe auch Abschni� 3.3).

98

Page 99: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

8.2.2 Störung von A

• Analog zu Abschni� 8.2.1:

(A + ∆A)(x + ∆x) = b, (A + ∆A sei weiterhin regulär), (8.19)⇔ Ax + A∆x + ∆A(x + ∆x) = b (8.20)

⇒ A∆x = −∆A(x + ∆x), (8.21)⇒ ∆x = −A−1∆A(x + ∆x), (8.22)⇒ ‖∆x‖ ≤ ‖A−1‖‖∆A‖‖x + ∆x‖, (8.23)

⇔ ‖∆x‖‖x‖

≤ ‖A−1‖‖A‖‖∆A‖‖A‖

‖x + ∆x‖‖x‖

, (8.24)

⇔ ‖∆x‖‖x‖

≤ cond(A)‖∆A‖‖A‖

(1 +‖∆x‖‖x‖

), (8.25)

⇔(

1− cond(A)‖∆A‖‖A‖

)︸ ︷︷ ︸

sei > 0

·‖∆x‖‖x‖

≤ cond(A)‖∆A‖‖A‖

, (8.26)

⇒ ‖∆x‖‖x‖

- cond(A)‖∆A‖‖A‖

. (8.27)

8.2.3 Résumé• Der relative Fehler ist proportional zur Kondition der Matrix.

• Mit der euklidischen Norm gilt

cond(A)2 = ‖A−1‖2‖A‖2 =

√∣∣∣∣λmax

λmin

∣∣∣∣. (8.28)

• Je größer also das Verhältnis zwischen größtem und kleinstem Eigenwert λ, desto größer auchdie Kondition!

• Für eine gute Kondition auf dem Computer muss mit dem Maschinenepsilon εmach

cond(A)εmach � 1 (8.29)

gelten.

• Mit t-stelliger Gleitkommazahlarithmetik und einer Kondition von cond(A) ≈ 10α kann einGleichungssystem nur mit einer Genauigkeit von t − α − 1 Dezimalstellen gelöst werden!(Bezogen auf die betragsgrößte Komponente)

• Der Octave-Befehl cond berechnet die Kondition. Tipp: cond(A,1) berechnet die Konditionmit der 1-Norm, was deutlich schneller ist (dennoch muss A noch invertiert werden. DieBerechnung der Kondition ist also aufwendiger als das Lösen des Systems und anschließendeBerechnung des Residuums, siehe unten).

99

Page 100: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

8.3 Gaußsches Eliminationsverfahren• Formal würde Multiplikation von Ax = b von links mit A−1 liefern:

A−1Ax = A−1b ⇒ x = A−1b (8.30)

Dies wird in der numerischen Praxis nie so gemacht, weil die Matrixinversion nach obigemSchema so aufwendig ist wie eine N -malige Lösung des Gleichungssystems Ax = b undnach anderen Schemata die numerisch ungünstige Berechnung von Determinanten benötigt.Desweiteren ist eine direkte Matrixinversion mit größerem, numerischen Fehler beha�et.

• Daher: Gaußsches Eliminationsverfahren, siehe auch MfC-1.

• Wichtig: Der Lösungsvektor x bleibt unverändert, wenn beliebige Zeilen des Gleichungs-systems vertauscht werden, oder wenn von einer Zeile das Vielfache einer anderen Zeilesubtrahiert wird.

• Idee: Bringe das System auf4-Form

A11x1 + A12x2 + · · ·+ A1NxN = b1 (8.31)0 + A22x2 + · · ·+ A2NxN = b2 (8.32)

...

0 + AMNxN = bM (8.33)

• Beispiel: Um Ai1x1 in Zeile 2 bis M zu eliminieren, muss von allen Einträgen ab Spalte 2Ai1A11

A1j subtrahiert werden. A11 nennt man dann Pivotelement und Ai1A11

Multiplikator.

• Wichtig für numerische Stabilität: Zeilen werden so vertauscht, dass immer der Eintragmit dem größten absoluten Wert Pivotelement wird. Dies nennt man teilweise Pivotierung(Spaltenpivotierung).

• Algorithmus für AN×NxN = bN :p← 1, . . . , N B Speicherung der Permutationenfür Spalten k = 1, . . . , N − 1 :

imax ← max(|Aik|, i = k, . . . , N)wenn |Aimaxk| < ε dann

Matrix ist Singulär; Abbruch.wenn_endeVertausche kte Zeile mit imaxter Zeile B SpaltenpivotierungVertausche pk und pimax

für Zeilen i = k + 1, . . . , N :d← Aik

Akkfür Spalten j = k + 1, . . . , N :

Aij ← Aij − Akj · dfür_endeAik ← 0 B Unteres4 wird Nullbi ← bi − bk · d

für_endefür_ende

• Vollständige Pivotierung (Zeilen- und Spaltentausch) auch möglich, aber aufwändiger und inder Praxis o� nicht nötig.

100

Page 101: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Beachte: A und b werden überschrieben.

• Anschließend Rückwärtssubstitution zur Berechnung von x:für i = N, . . . , 1 :

s← bifür j = i+ 1, . . . , N :

s← s− Aijxjfür_endexi ← s

Aiifür_ende

• Zuletzt Beachtung der Permutation: x← x(p).

• Algorithmus skaliert mit O(N3), Rückwärtssubstitution nur mit O(N2).

101

Page 102: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

8.3.1 Beispiel• Gegeben sei

10−4x1 + x2 = 1, (8.34)x1 + x2 = 2, (8.35)

⇒ x1 =104

9999, (8.36)

x2 =9998

9999, (8.37)

cond(A) = 2.6. (8.38)

• Mit einer Mantissenlänge von 3 ergibt sich:

x1 ≈ 0.100 · 101, (8.39)x2 ≈ 0.100 · 101. (8.40)

• Ohne Pivotierung berechnet sich das Gleichungssystem nach

0.100 · 10−3x1 + 0.100 · 101x2 = 0.100 · 101, (8.41)0.100 · 101x1 + 0.100 · 101x2 = 0.200 · 101, (8.42)

MultiplikatorA21

A11

=0.100 · 101

0.100 · 10−3= 0.100 · 105, (8.43)

y (0.100 · 101 − 0.100 · 105 · 0.100 · 10−3)x1 + (0.100 · 101 − 0.100 · 105 · 0.100 · 101)x2

= 0.200 · 101 − 0.100 · 105 · 0.100 · 101, (8.44)⇒ 0.100 · 10−3x1 + 0.100 · 101x2 = 0.100 · 101, (8.45)

−0.100 · 105x2 = −0.100 · 105, (8.46)⇒ x2 = 0.100 · 101, (8.47)

x1 = 0.000. (8.48)

• x1 ist o�ensichtlich falsch! Für eine Mantissenlänge von drei ist das Lösen schlecht Konditio-niert.1

• Beachte, dass in Gl. (8.43) aus einem kleinen Pivotelement ein großer Multiplikator wurde.

• Mit Pivotierung (Vertauschung der Reihenfolge der Gleichungen):

0.100 · 101x1 + 0.100 · 101x2 = 0.200 · 101, (8.49)0.100 · 10−3x1 + 0.100 · 101x2 = 0.100 · 101, (8.50)

Multiplikator0.100 · 10−3

0.100 · 101= 0.100 · 10−3, (8.51)

⇒ 0.100 · 101x1 + 0.100 · 101x2 = 0.200 · 101, (8.52)0.100 · 101x2 = 0.100 · 101, (8.53)

⇒ x2 = 0.100 · 101, (8.54)x1 = 0.100 · 101. (8.55)

• Die Pivotierung (kleiner Multiplikator) ist also essentiell. Damit ergeben sich Zahlen mit einerähnlichen Größenordnung⇒ kein/vermindertes Weghebephänomen.

1Pivotierung ist aber immer nötig, da A durchaus auch Nullen enthalten kann, ohne dass die Matrix singulär ist.

102

Page 103: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

8.4 LU-Zerlegung• Problem beim Gauß-Verfahren: Muss für viele bi erneut angewandt werden.

• O�mals löst man aber mehrere Gleichungssysteme mit der selben Koe�izientenmatrix A.

• Daher besser: Finde ein Verfahren, welches A so variiert, dass Gleichungssysteme einfachergelöst werden können.

• Ein Gauß-Eliminationsschri� s mit Multiplikatoren lik = AikAkk

ergibt sich letztlich durchMultiplikation mit der sogenannten Frobenius-Matrix

Ls =

1. . .

1−ls+1,s

.... . .

−ln,s 1

. (8.56)

Das Inverse von Ls ergibt sich durch Vorzeichenwechsel der lik.

• Wiederholte Anwendung führt zur oberen4-Matrix:

LN−1 . . .L1A =

x x x x x0 x x x x0 0 x x x...

. . ....

0 0 . . . 0 x

= U (8.57)

• A muss entsprechend erhalten werden, wenn man in umgekehrter Reihenfolge L−1s auf U

anwendet. Das Produkt der Inversen von Ls führt zu einer unteren Dreiecksmatrix mit Einsenauf der Diagonalen:

L−11 . . .L−1

N−1 =

1 0 0 0 0l21 1 0 0 0l31 l32 1 0 0...

. . ....

lN1 lN2 . . . lN,N−1 1

= L (8.58)

⇒ A =[L−1

1 . . .L−1N−1

][LN−1 . . .L1A

]= LU (8.59)

• Dies ist die LU-Zerlegung (lower/upper triangular matrix; im Deutschen: LR-Zerlegung).

• Lösung von Gleichungssystemen mi�els Vorwärts- und Rückwärtssubstitution:

Ax = b, (8.60)⇔ L Ux︸︷︷︸

z

= b, (8.61)

Lz = b, Lösung per Vorwärtssubstitution, (8.62)Ux = z, Lösung per Rückwärtssubstitution. (8.63)

103

Page 104: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Wenn die Diagonale von L nicht abgespeichert wird, kann sowohl L als auch U in A gespei-chert werden (inplace).

• Mit teilweiser Pivotierung lässt sich schreiben:

PA = LU, (8.64)A = P−1LU = LU. (8.65)

P ist die Permutationsmatrix (als Vektor speicherbar!). L ist keine 4-Matrix.

• Crout-Algorithmus mit teilweiser Pivotierung und Speicherung inplace:p← 1, . . . , N B Speicherung der Permutationenfür Spalten k = 1, . . . , N − 1 :

imax ← max(|Aik|, i = k, . . . , N)wenn |Aimaxk| < ε dann

Matrix ist Singulär; Abbruch.wenn_endeVertausche kte Spalte mit imaxter SpalteVertausche pk und pimax

für Zeilen i = k + 1, . . . , N :Aik ← Aik

AkkB Überschreibe Aik mit lik

für Spalten j = k + 1, . . . , N :Aij ← Aij − Akj · Aik

für_endefür_ende

für_ende

• Wie Gauß-Verfahren, nur dass die Multiplikatoren im unteren4 gespeichert werden.

104

Page 105: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

8.5 Cholesky-Zerlegung• Für symmetrisch, positiv definite Matrizen A gilt

1. ∀x ∈ RN : xTAx > 0,

2. Alle Eigenwerte sind positiv,

3. Alle Diagonalelemente sind positiv,

4. maxij |Aij| = maxi |Aii| (nur Diagonalpivotierung nötig!),

5. Bei jeder Gauß-Elimination ohne Pivotsuche ist die Restmatrix wiederum positiv definit.

• Letzte Eigenscha� lässt sich wie folgt zeigen:

A =

(A11 zT

z B(0)

), z = (A12, A13, . . . , A1N)T , (8.66)

A(1) = L1A =

(A11 zT

0 B(1)

). (8.67)

Multiplikation von A(1) von rechts mit LT1 eliminiert zT :

L1ALT1 =

(A11 0T

0 B(1)

). (8.68)

Eine Ähnlichkeitstransformation L1ALT1 ändert nicht die Positiv-Definitheit. Also muss B(1)

auch positiv definit sein.

• Fortsetzung der Multiplikation mit Ls wie in Gl. (8.68) führt zur LDL-Zerlegung:2

LN . . .L1︸ ︷︷ ︸=L

ALT1 . . .LTN︸ ︷︷ ︸

=LT

= D, D = diag(d), (8.69)

⇔ A = L−1D(LT )−1 = LDLT (8.70)

• Wurzelziehung der Diagonalmatrix führt zur Cholesky-Zerlegung

A = LD12D

12LT = CCT . (8.71)

• Dies ist wegen der Wurzelziehung nur für positiv definite Matrizen möglich (D ist positivdefinit).

• Der Algorithmus ergibt sich über:C11 0 0 0 0C21 C22 0 0 0C31 C32 C33 0 0

.... . .

...CN1 CN2 . . . CN,N−1 CNN

C11 C12 C13 . . . C1N

0 C22 C23 C2N

0 0 C33 CN−1,N...

. . ....

0 0 . . . 0 CNN

=

A11 A12 A13 . . . A1N

A21 A22 A23 A2N

A31 A32 A33 AN−1,N...

. . ....

AN1 AN2 . . . AN,N−1 ANN

(8.72)

2Diese funktioniert auch für nicht positiv-de�nite, aber symmetrische Matrizen.

105

Page 106: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

y Akk = C2k1 + · · ·+ C2

k,k−1 + C2kk, i = k, (8.73)

y Aik = Ci1Ck1 + · · ·+ Ci,k−1Ck,k−1 + CikCkk, i > k. (8.74)

• Also:für Spalten k = 1, . . . , N :

wenn Akk < ε dann B Beachte: Kein BetragMatrix ist nicht positiv-definit; Abbruch.

wenn_endeCkk =

√Akk

für Zeilen i = k + 1, . . . , N :Cik = Aik

Ckkfür Spalten j = k + 1, . . . , i : B Beachte: Schleife geht nur bis i

Aij ← Aij − CikCjkfür_ende

für_endefür_ende

• Da die letzte Schleife nur bis i geht und keine Pivotierung benötigt wird, ist der Algorithmusmindestens doppelt so schnell wie LU-Zerlegung.

• Da A symmetrisch und C eine4-Matrix ist, gibt es kompakte Speicherformen, die die Matrixjeweils als Vektor der Länge N(N + 1)/2 speichert.

8.5.1 AnwendungsbeispieleDie Cholesky-Zerlegung ist von sehr großer Bedeutung und wird für viele Probleme angewandt.Zwei sehr häufige werden kurz vorgestellt.

Verallgemeinerte Eigenwertprobleme

• Neben dem typischen Eigenwertproblem (Lösung per Diagonalisierung von H)

HX = diag(e)X, H† = H (8.75)

kommt sehr häufig das verallgemeinerte Eigenwertproblem

HX = diag(e)SX, (8.76)

mit S als symmetrisch, positiv definiter Matrix vor.

• Dies muss nun in ein normales Eigenwertproblem überführt werden.

• Lösung per

[S−1H]X = diag(e)X (8.77)

nicht sinnvoll, da S−1H nicht mehr hermitesch ist.

106

Page 107: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Besser: Lösung per Cholesky-Zerlegung von S:

S = CC†, (Cholesky) (8.78)y HX = diag(e)CC†X, (8.79)

⇒ C−1HX = diag(e)C†X, (8.80)⇔ C−1H([C†]−1︸ ︷︷ ︸

H

C†)X = diag(e)C†X, (8.81)

y HX = diag(e)X, (8.82)H = C−1H[C−1]†, (8.83)X = C†X. (8.84)

• H ist eine Ähnlichkeitstransformation von H und damit erhalten sich sowohl die Hermitizitätals auch die Eigenwerte.

• Am Ende: Rücktransformation per X = [C†]−1X.

• Cholesky-Zerlegung und Invertierung von C problemlos möglich, sofern S numerisch positivdefinit ist (keine zu große Kondition). (Die Invertierung kann aber auch durch Lösung vonCA = B umgangen werden.)

Orthogonalisierung

• Ähnliches Problem: Finde Y, sodass

X†X = S, (8.85)Xorth = XY, (8.86)

⇒ X†orthXorth = 1, (8.87)

mit S als positiv definiter Matrix.

• Lösung wieder per Cholesky-Zerlegung:

S = C†C, (Cholesky) (8.88)y X†X = C†C, (8.89)

⇒ [C†]−1X†X = C, (8.90)⇒ [C†]−1X†XC−1 = 1, (8.91)⇔ [XC−1]†XC−1 = 1, (8.92)

⇒ Xorth = XC−1. (8.93)

• Diese („kanonische“) Orthogonalisierung ist identisch zur Gram-Schmidt-Orthogonalisierung.

8.6 Nachiteration• Das Erreichen von hoher Genauigkeit ist für lineare Gleichungssysteme mit schlecht konditio-

nierten Matrizen schwierig.

• Eine Nachbesserung der erhaltenen Lösung ist aber sehr einfach möglich: Nachiteration,iterative refinement

107

Page 108: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Gegeben sei Ax = b mit der mit Rundungsfehler beha�eten Lösung x(0).

• Der Residuenvektor/das Residuum ist entsprechend definiert durch

r(x(0)) = b−Ax(0) = A(x− x(0)) = A∆x(0). (8.94)

• ∆x(0) ist die Korrektur zu x(0):

x(1) = x(0) + ∆x(0), (8.95)

mit x(1) als verbesserte Lösung.

• ∆x(0) kann durch Lösen des Gleichungssystems in Gl. (8.94) berechnet werden:

A∆x(0) = r(x(0)). (8.96)

• Dieses Verfahren kann iterativ bis zur gewünschten Genauigkeitsverbesserung durchgeführtwerden.

• Da die Faktorisierung von A schon gegeben ist, hat dieses Verfahren nur einen Aufwand vonO(N2) und ist damit im Verhältnis zum Gesamtaufwand der Faktorisierung deutlich geringer.

• Die Berechnung von r sollte am Besten in größerer Genauigkeit als das eigentliche Systemgelöst werden (z. B. vierfache Genauigkeit, 4 Byte Speicher pro Gleitkommazahl, εmach,2 =1.93 · 10−34).

• Nachiteration hil� natürlich nicht, wenn A oder b schon mit Fehlern beha�et sind, oder dieKondition von A zu groß ist.

8.7 Kahan-Summation• Falls keine größere Genauigkeit verwendet werden kann, kann die Genauigkeit der Summa-

tionen (in der Zerlegung und in der Matrix-Vektor-Multiplikation) dennoch durch geeigneteAlgorithmen verbessert werden.

• Eine Möglichkeit: Kahan-Summation: s =∑

i xi

s← 0 B Die Summec← 0 B Korrekturvariablefür alle Elemente e im Eingabevektor x :

y ← e− ct← s+ y B Rundungsfehler für große s und kleine y.a← (t− s) B Dies sind nur die ersten Stellen von yc← a− y B Erhalt der letzten Stellen von y, die in s vernachlässigt sinds← t

für_ende

• Wenn in t← s+ y abgerundet wird, ist c negativ und wird im nächsten Schri� subtrahiert,also wird |c| auf das zu kleine s aufaddiert.

• Wenn in t← s+ y aufgerundet wird, ist c positiv und im nächsten Schri� wird das zu große sdurch die Subtraktion mit c entsprechend kleiner.

• Beispiel: Summiere 3.14159 und 2.71828 auf 10000.0 mit einer Genauigkeit von sechs Stellen:

108

Page 109: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Korrektes Resultat: 10005.85987 = 10005.9

• Ohne Kahan-Summation ergibt sich ein falsch gerundetes Resultat:

s = (10000.0 + 3.14159) + 2.71828 = 10003.1 + 2.71828 = 10005.8 (8.97)

• Mit Kahan-Summation korrekte Rundung:

Zahl 1 (8.98)y = 3.14159− 0, (c ist noch 0), (8.99)t = 10000.0 + 3.14159 (8.100)

= 10003.1, (vier Stellen gehen verloren) (8.101)a = 10003.1− 10000.0 = 3.100000 (8.102)c = a− 3.14159 (8.103)

= −0.0415900, (die Stellen, welche verloren gegangen waren) (8.104)s = 10003.1, (8.105)

Zahl 2 (8.106)y = 2.71828−−0.0415900 (ziehe c ab) (8.107)

= 2.75987 (8.108)t = 10003.1 + 2.75987 = 10005.85987 = 10005.9 (8.109)a = 10005.9− 10003.1 = 2.80000 (8.110)c = a− 2.75987 = 0.040130 (8.111)s = 10005.9 (Korrekt gerundetes Endergebnis) (8.112)

• Wichtig: Kompilierende Programmiersprachen optimieren den Korrekturschri� weg, wennman nicht aufpasst.3

• Weitere (bessere) Summationsalgorithmen sind möglich.4

8.8 Direkte Verfahren• In vielen Anwendungen (z. B. Lösung von partiellen Di�erentialgleichungen) sind die erhalte-

nen Matrizen sehr groß (N ∼ 106–109), aber schwach besetzt/sparse.

• Die gesamte Matrix kann dann nicht abgespeichert werden, sehr wohl aber alle Elemente, dienichtverschwindend sind.

• Klassische Algorithmen sind für solche Matrizen nicht zu gebrauchen, da sich dort das Musterder Besetztheit ändert und die Matrix andauernd verändert wird.

• Besser: Direkte Verfahren, welche nur Matrix-Vektor-Multiplikationen verwenden.

• Es gibt hierfür eine Fülle von Algorithmen. Hier nur Besprechung von conjugate gradient.

3Deklaration der Variablen als volatile hilft in C oder Fortran.4Siehe z. B. Takeshi Ogita, Siegfried M. Rump, Shin’ichi Oishi: Accurate Sum and Dot Product with Applications, Procee-

dings of 2004 IEEE International Symposium on Computer Aided Control Systems Design, Taipei, 152155 (2004)

109

Page 110: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

8.8.1 Conjugate Gradient• Siehe Abschni� 6.4.4 zur Minimierung.

• Dort wurde f(x) = cTx + 12xTHx minimiert, was e�ektiv die Lösung des Gleichungssystems

Hx = −c ist.

• Hier: Ax = b, A ist symmetrisch, positiv definit.

• In diesem Kontext etwas andere Notation: Residuenvektor r ansta� Gradient, β−1 = 0,p−1 =0.

• Der Algorithmus ist ansonsten analog zu dem in Abschni� 6.4.4, nur dass αk in Gl. (6.34) direktberechnet wird:

xk+1 = xk + αkpk, (8.113)

αk = +pTk rk

pTkApk, (8.114)

αk ist hier positiv, da Hx = −c→ Ax = b.

• Der Algorithmus ist entsprechend:x0 B Startvektor, Zufallsvektor, falls nichts besseres bekannt istr0 = b−Ax0

für k = 0, . . . , kmax :pk ← rk + βk−1pk−1

αk ←pTk rk

pTkApk

xk+1 ← xk + αkpk B Das temporäre Ergebnisrk+1 ← rk − αkApk B Gradientwenn ‖rk+1‖ < ε dann

Konvergiert; Schleifenabbruch.wenn_endeβk ←

rTk+1rk+1

rTk rk

für_ende

• Pro Iteration braucht es nur eine Matrix-Vektor-Multiplikation.

• Theoretisch braucht der Algorithmus N Schri�e für eine N ×N -Matrix.

• Allerdings ist die numerische Konvergenz schon nach wenigen ∼ 10− 100 Schri�en erreicht.Dies hängt aber sehr von der Kondition von A ab!

• Erweiterung auf nicht-symmetrisch-positiv-definite Matrizen ergibt das BiCG-Verfahren(biconjugate gradient). Weitere Variationen sind vorhanden.

Präkonditionierung

• Direkte Verfahren konvergieren nur schnell, wenn die Kondition der Matrix klein ist.

• Verringerung der Konvergenz durch einen Vorkonditionierer M−1, der näherungsweise demInversen von A entspricht (oder eine entsprechende Funktion, welche Gleichungssysteme fürM löst).

110

Page 111: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Anstelle von Ax = b wird also

M−1Ax = M−1b, (8.115)⇔M−1(Ax− b) = 0 (8.116)

gelöst.

• Im obigen Algorithmus wird M−1 auf die Residuen r angewandt.

• Da Rundungsfehler au�reten können, ist die Polak–Ribière-Korrektur wieder zu empfehlen(Gl. (6.46)).

• Die Wahl geeigneter Präkonditionierer ist schwierig: Das Gleichungssystem My = b sollschnell gelöst werden und M nicht viel Arbeitsspeicher belegen, aber dennoch die Konditionsehr stark verringern.

• Mögliche Wahlen

– Jacobi-Konditionierung: M ist eine Diagonalmatrix mit den Diagonaleinträgen von A(sinnvoll für diagonal dominante Matrizen).

– Sog. unvollständige Cholesky-Zerlegung für schwachbesetzte Matrizen, welche dasselbeBesetzungsmuster von A für die Dreiecksmatrix annimmt.

– Lösung einer einfacheren Di�erentialgleichung etc.

• Präkonditionierung und die Suche nach einem guten Konditionierer lohnt sich immer !

111

Page 112: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

9 Matrixeigenwertproblem

9.1 Grundlagen• Gesucht für die n× n-Matrix A: Eigenvektoren x mit Eigenwerten λ:

Ax = λx. (9.1)

• Insg. für alle n Eigenvektoren:

AX = Xdiag(λλλ). (9.2)

• Gl. (9.1) lässt sich umformen zu

(A− λ1)x = Ax = 0. (9.3)

• Das wäre ein homogenes lineares Gleichungssystem, sofern λ bekannt wäre.

• Damit es neben der trivialen Lösung x = 0 noch weitere Lösung gibt, muss gelten, dass

det(A) = 0. (9.4)

• Daraus ergibt sich, das ein Polynom n-ter Ordnung in λ Null wird.

• Nach dem Fundamentalsatz der Algebra hat ein Polynom n-ter Ordnung genau n Nullstellen.Also hat eine n× n-Matrix immer genau n Eigenwerte (und dazugehörige Eigenvektoren);

• Einige Eigenwerte können identisch (entartet) sein. Die Eigenvektoren zu entarteten Eigen-werten spannen dann (für normale Matrizen) den Eigenunterraum in irgendeiner Weise(Linearkombinationen) auf.

• Für unsymmetrische Matrizen gibt es linke,

xLA = λLxL, (9.5)

und rechte Eigenvektoren,

AxR = λRxR. (9.6)

• Adjungierung von Gl. (9.5) zeigt, dass die linken Eigenvektoren die rechten Eigenvektoren vonA† sind. Die Eigenwerte sind komplex konjugiert zueinander:

(xLA)† = A†x†L = λ∗Lx†L. (9.7)

• Im Folgenden: Beschränkung auf selbstadjugierte Matrizen (A† = A).

• Dann müssen die Eigenwerte identisch und reell sein (λ∗ = λ). Außerdem gilt dann

x†L = xR ≡ x. (9.8)

112

Page 113: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• In Matrixform, für alle Eigenvektoren ergibt sich

AX = Xdiag(λλλ), X†A = diag(λλλ)X† (9.9)⇒ X†AX = X†Xdiag(λλλ), X†AX = diag(λλλ)X†X, (9.10)

also muss X†X mit diag(λλλ) kommutieren, was nur für Diagonalmatrizen allgemein möglichist.

• Dementsprechend ist X (bei geeigneter Normierung) unitär :

X−1X = X†X = 1. (9.11)

• Damit gilt die Ähnlichkeitstransformation

X†AX = diag(λλλ) ⇔ Xdiag(λλλ)X† = A. (9.12)

• Dies nennt man auch Diagonalisierung.

• Wichtig: Die Phase der Eigenvektoren ist nicht wohldefiniert. Multiplikation des gesamtenVektors mit exp(iφ), φ ∈ R (±1 bei reellen Eigenvektoren) ändert also die Eigenwert-Gleichung(9.1) nicht.

• Eigentlich ist neben der Phase auch die Norm des Eigenvektors nicht definiert. Die Normierungauf 1 (Gl. (9.11)) wird stillschweigend angenommen.

9.1.1 Grundidee zur Diagonalisierung• Grundsätzlich möglich zur Eigenwertfindung: Bestimmung der Nullstellen des aus der Säku-

lardeterminante resultierenden Polynoms in λ.

• Problem dafür: Aufstellen des Polynoms (Determinantengenerierung) und (numerische) Null-stellensuche.

• Generell ist die Nullstellensuche von Polynomen sehr o� schlecht konditioniert. Beispiel: Poly-nom

p(λ) =20∏k=1

(λ− k). (9.13)

Ein leicht gestörtes Polynom

p(λ) = p(λ)− ελ19, ε = 2−23 ≈ 10−7 (9.14)

erzeugt eine Änderung des Koe�izienten in λ19 um 10−7%, generiert aber eine drastischeÄnderung in den Nullstellen:

1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,

10.1± 0.6i, 11.8± 1.7i, 14.0± 2.5i, 16.7± 2.8i, 19.5± 1.9i, 20.8. (9.15)

• Daher andere Grundstrategie: Finde eine Sequenz von unitären ÄhnlichkeitstransformationenPi, welche A auf Diagonalform bringen:

P−1N . . .P−1

2 P−11︸ ︷︷ ︸

X†

AP1P2 . . .PN︸ ︷︷ ︸X

= diag(λλλ). (9.16)

113

Page 114: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Pi generieren möglichst viele Nullen auf der Außerdiagonalen in der Matrix.

• Die Eigenvektoren ergeben sich direkt aus dem Produkt der Ähnlichkeitstransformationsma-trizen.

• Auch möglich: Transformation auf Tridiagonalform und anschließende Verwendung von Algo-rithmen speziell für tridiagonale Matrizen.

• Weitere Möglichkeit über Matrixfaktorisierungen (z. B. QR-Verfahren):

A = CD⇒ C−1A = D (9.17)⇔ DC = C−1AC (9.18)

• Für symmetrische (hermitische) Matrizen ist die Eigenwertberechnung in der Regel gut kon-ditioniert. Die relative Konditionszahl für einen Eigenwert λ ist (siehe Deuflhard, Band I)

κrel(λ) =‖A‖|λ|

. (9.19)

• Im Folgenden: Beschränkung auf reelle Matrizen.

9.2 Orthogonale Matrizen in zwei DimensionenDamit eine allgemeine Matrix

P =

(p11 p12

p21 p22

)(9.20)

eine Orthogonalmatrix ist, müssen ihre Spaltenvektoren normiert und orthogonal sein:

PPT = PTP = 1 (9.21)⇒ p2

11 + p221 = 1, (9.22)

p212 + p2

22 = 1, (9.23)p11p12 + p21p22 = 0. (9.24)

Gln. (9.22) und (9.23) lassen sich erfüllen mit:

p11 = cos(φ), p21 = sin(φ), (9.25)p12 = sin(ψ), p22 = cos(ψ). (9.26)

mit zwei freien Parametern φ und ψ. Einsetzen in Gl. 9.24 liefert jedoch:

cos(φ) sin(ψ) + sin(φ) cos(ψ) = 0. (9.27)

Die linke Seite dieser Gleichung lässt sich mit einem der Winkeladditionstheoreme umformen zu:

sin(φ+ ψ) = 0. (9.28)

Diese Gleichung mit zwei Unbekannten stellt also eine Beziehung zwischen den Parametern φ undψ dar; sie ist erfüllt, wenn ψ = nπ − φ, n = 1, 2, . . ..Eine orthogonale 2× 2-Matrix hat also nur einen freien Prameter.

114

Page 115: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Damit hat man für geradzahlige n

cos(ψ) = cos(φ), sin(ψ) = − sin(φ) (9.29)

und als orthogonale Matrix:

P =

(cos(φ) − sin(φ)sin(φ) cos(φ)

)(9.30)

Diese Matrix dreht einen Vektor um den Winkel φ um die z-Achse, im Sinne einer Rechte-Hand-Regel.Für ungeradzahlige n gilt

cos(ψ) = − cos(φ), sin(ψ) = sin(φ), (9.31)

und die entsprechende orthogonale Matrix lautet:

P =

(cos(φ) sin(φ)sin(φ) − cos(φ)

)(9.32)

Diese Matrix spiegelt einen Vektor an einer Geraden mit der Steigung φ/2. Jede spezielle P-Operationist jedoch auch mit Drehungen realisierbar. Daher ist die DrehmatrixP der Prototyp der orthogonalen2× 2-Matrix.

Beachte: Da es sich um eine orthogonale Matrix handelt, ist ihre Inverse gleich ihrer Transponierten:

P−1 = PT =

(cosφ sinφ− sinφ cosφ

)(9.33)

Zum selben Schluss kommt man mit der Beobachtung, dass die inverse Drehoperation dieselbeDrehachse und denselben Betrag des Drehwinkles hat, aber das umgekehrte Vorzeichen des Dreh-winkels. Dabei nutzt man die folgenden elementaren Symmetriebeziehungen der Winkelfunktionenaus:

cos(−φ) = cos(φ), sin(−φ) = − sin(φ). (9.34)

Will man in n Dimensionen bzw. Koordinaten eine Drehung um eine Achse parallel zu einer derKoordinatenachsen ausführen, sodass die Koordinatenwerte p und q verändert werden und alleanderen Koordinaten unverändert bleiben, lautet die Drehmatrix ganz analog (alle nicht explizitbezeichneten Außerdiagonalelemente sind Null, alle nicht explizit bezeichneten DiagonalelementeEins):

Ppq =

1. . .

c · · · s...

...−s · · · c

. . .1

← p

← q(9.35)

↑ ↑p q

Hier wie im folgenden kürzen wir ab (es handelt sich nicht um zwei unabhängige Parameter c unds!):

c ≡ cos(φ), s ≡ sin(φ). (9.36)

115

Page 116: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

9.3 Jacobi-VerfahrenGrundidee (s.o.):1

· · ·P−13 P−1

2 P−11 AP1P2P3 · · · = diag(λ1, . . . , λn) (9.37)

Betrachte eine dieser Operationen P−1AP (die Matrix A ist i.A. voll besetzt, aber symmetrisch):

1. . .

c · · · −s...

...s · · · c

. . .1

a1p a1q...

...ap1 · · · app · · · apq · · · apn

......

aq1 · · · aqp · · · aqq · · · aqn...

...anp anq

1. . .

c · · · s...

...−s · · · c

. . .1

(9.38)

Beachte: Diese Operation (Jacobi-Rotation) beeinflusst alle Matrixelemente in den Reihen p und qvon A!

Erwünscht ist die Berechnung von Vorstufen der kün�igen Eigenwerte auf der Diagonalen

a′pp = c2app + s2aqq − 2scapq, (9.39)a′qq = s2app + c2aqq + 2scapq, (9.40)

und die Berechnung der zugehörigen Außerdiagonalelemente (apq = aqp wegen der Symmetrie derMatrix):

a′pq = (c2 − s2)apq + sc(app − aqq). (9.41)

Ein eigentlich unerwünschter aber nicht zu vermeidender Nebene�ekt ist die Wirkung auf alleanderen Elemente der p-ten und q-ten Zeilen und Spalten (r 6= p, q, und wiederum arp = apr sowiearq = aqr):

a′rp = carp − sarq, (9.42)a′rq = carq + sarp. (9.43)

Wir können direkt erzwingen, dass die Elemente a′pq bei dieser Operation exakt Null werden,indem wir a′pq = 0 fordern; aus Gl. (9.41) ergibt sich damit sofort:

θ ≡ cot(2φ) =c2 − s2

2sc=aqq − app

2apq. (9.44)

Mit der Setzung t = s/c erhält man eine quadratische Gleichung zur Bestimmung von t, aus dersich ergibt

t =sign(θ)

|θ|+√θ2 + 1

. (9.45)

Daraus ergibt sich dann, dass die gesuchten Größen c und s gegeben sind als

c =1√t2 + 1

, s = tc. (9.46)

1 C. G. J. Jacobi, Crelle’s Journal für die reine und angewandte Mathematik, 30, 51-94 (1846).

116

Page 117: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Über die Hilfsgrößen t und θ kann man also die Parameter c und s (und damit die komple�e„Mikro“-Drehmatrix P) aus den bekannten Elementen app, aqq, apq der Matrix A bestimmen.

Da bei iterativer Wiederholung derartiger Operationen die Matrixelemente app und aqq vongleicher Größenordnung bleiben, die Elemente apq aber per Konstruktion gegen Null gehen, kannnach Gl. (9.44) θ sehr groß werden und damit u.U. die �adrierung von θ im Nenner von Gl. (9.45) zunumerischem Überlauf führen. Für große θ kann man t jedoch sta� nach Gl. (9.45) in guter Näherungauch folgendermaßen berechnen:

t =1

2θ. (9.47)

Ebenso ist es zur Verbesserung der numerischen Genauigkeit anzuraten, nicht die obigen Gln.(9.39) bis (9.43) zu verwenden, sondern diese nach Einführung einer weiteren Hilfsgröße

τ ≡ s

1 + c(9.48)

umzuformen zu:

a′pp = app − tapq, (9.49)a′qq = aqq + tapq, (9.50)a′pq = 0, (9.51)a′rp = arp − s(arq + τarp), (9.52)a′rq = arq + s(arp − τarq). (9.53)

Eine elementare Jacobi-Operation besteht also aus der Ermi�lung der Größen s, c, t, τ aus den geradeaktuellen Werten der Matrixelemente app, aqq, apq und der nachfolgenden Berechnung der neuenMatrixelemente app, aqq, apq, arp, arq aus den Gln. (9.49) bis (9.53).

Ziel des Gesamtverfahrens ist es, die Summe S der Absolutbeträge der AußerdiagonalelementeNull zu machen. Tatsächlich kann man zeigen, dass für

S =∑r 6=s

|ars|2 (9.54)

eine Anwendung des obigen Gleichungssystems Gln. (9.49) bis (9.53) folgendes ergibt:

S ′ = S − 2 |apq|2. (9.55)

Mit freier Wahl der Indices p, q und der Tatsache, dass per Definition immer S ≥ 0 gilt, folgt, daßS → 0 in der Praxis iterativ erreichbar ist.

Das Gesamtresultat des Jacobi-Verfahrens ist

diag(λ1, . . . , λn) = XTAX, mit X = P1P2P3 · · · (9.56)

wobei die Spalten der Matrix X die Eigenvektoren enthalten. Also können diese gleich mitberechnetwerden, wenn wir bei jeder Iteration i das Matrixprodukt

Xi = Xi−1Pi (9.57)

mitberechnen (ausgehend von der Einheitsmatrix: X0 = 1). Explizit und in der obigen Notation istdas:

x′rs = xrs, für s 6= p, q, (9.58)x′rp = xrp − s(xrq + τxrp), (9.59)x′rq = xrq + s(xrp − τxrq). (9.60)

117

Page 118: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Im Prinzip wäre es günstig, für die jeweils nächste Jacobi-Operation das momentan größteAußerdiagonalelement zu bestimmen und dieses dann zu Null zu machen. Dies erfordert jedoch eineSuche über alle Außerdiagonalelemente (oder ein sorgfältiges Buchführen über deren Veränderungen).Dies kann zu einem höheren Aufwand führen als ein einfaches Abarbeiten der Spalten von links nachrechts und der Zeilen von oben nach unten („zyklische Jacobi-Methode“), auch wenn man dabeimehr Jacobi-Operationen benötigt. In jedem Fall benötigt man i. A. mehrere Durchläufe (sweeps)durch die gesamte Matrix.

118

Page 119: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

9.3.1 Jacobi-Algorithmus und dessen ImplementationVerwende obige Formeln, insbesondere:

• Berechne X gleich mit;

• Betrachte nur ein Außerdiagonaldreieck von A und lasse das andere unverändert (symmetri-sche Matrix!);

• Mache die Operationen für die Diagonalelemente nicht an diesen selber, sondern an einemzusätzlichen Vektor e→ Eigenwerte;

Implementation

• Initialisiere e-Vektor auf aii, X auf 1

• Große Schleife über ca. 100 sweeps (normal: ca. 5–10); wenn dann nicht konvergiert, stop mitFehlermeldung;

• Konvergenztest: Konvergiert, wenn

S =n∑j=2

j−1∑i=1

|aij| ≤ 10−20 (9.61)

• Doppelschleife über ein Außerdiagonal-Dreieck: q = 2 : n; p = 1 : q − 1

– (In den ersten drei sweeps): Führe Rotation nur aus, wenn |apq| > S5n2 .

– (Nach 4 sweeps) Wenn |apq| ≤ 10−18|app|, dann apq = 0 und continue

– Bestimme c, s, t, τ ; dabei Test ob in Gl. (9.44) apq zu klein relativ zu |aqq − app| z.B. mit:

|ep − eq|+ 100 apq = |ep − eq| (9.62)

Wenn dieser Test erfüllt ist, verwende Gl. (9.47) sta� Gl. (9.45) zur Berechnung von t.

– Update der Elemente arp, arq für r = 1 : n und r 6= p, q nach Gln. (9.52) und (9.53);zerlege die Schleife über r dazu in drei Schleifen (r = 1 : p− 1, r = p + 1 : q − 1 undr = q + 1 : n) und verändere jeweils nur die Elemente im gewünschten Dreieck!

– Update der Diagonalelemente im Vektor e nach Gln. (9.49) und (9.50)– Bilde alle neuen Elemente xrp, xrq für r = 1 : n nach Gln. (9.58) bis (9.60).

• Ende der Doppelschleife über q und p.

• Achten Sie peinlich darauf, dass Matrixelemente vor Veränderung gespeichert werden, fallsdiese Elemente anschließend noch gebraucht werden.

119

Page 120: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

9.4 Andere Verfahren• Gesamtaufwand der Diagonalisierung:O(n3). (O(n2) Rotationen und jede hat einen Aufwand

von O(n)).

• Problem beim Jacobi-Verfahren: Eingeführte Nullen werden wieder zerstört.

y Jacobi-Verfahren nur gut für kleine (n - 20) Matrizen.

• Besser: Finde Verfahren, welche die Nullen nicht wieder zerstören und welche möglichst nochmehr Nullen einführen.

• Es gibt außerdem weitere Verfahren, welche z. B. alle Eigenwerte in einem bestimmten Bereichfinden etc. (siehe unten).

9.4.1 Givens-Methode• Wähle die Ppq clever, sodass vorherige Nullen nicht zerstört werden.

• Insbesondere: Ein Element wird Null, welches nicht in den vier „Ecken“ (app, apq, aqq) sitzt(siehe Gl. (9.38)).

• Daher: Wähle zuerst P23 um a31 bzw. a13 auszulöschen. Wähle anschließend P24 um a41

auszulöschen usw.

• Dies funktioniert, weil a′rp und a′rq Linearkombinationen von arp und arq (Gl. (9.52) und (9.53))sind. Wenn arp und arq schon Null sind, sind auch a′rp und a′rq Null.

• Allgemeine Sequenz:

P23,P24, . . . ,P2,n;P34, . . .P3,n; . . . ;Pn−1,n (9.63)

Pjk eliminiert ak,j−1.

• Damit werden immer O(n2/2) Rotationen benötigt.

9.4.2 Householder-Transformation• Eine weitere orthogonale Transformation ist die Householder-Transformationsmatrix

H = 1− 2

vTvvvT (9.64)

(v ist ein Spaltenvektor, vvT eine Matrix).

• H entspricht einer Spiegelung an eine Hyperebene, auf der v senkrecht steht:2

2https://upload.wikimedia.org/wikipedia/commons/2/2a/Householdertransformation.svg

120

Page 121: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Wie auch die Gauß-Transformationsmatrizen, aber im Gegensatz zur Givens/Jacobi-Rotationkönnen diese H in der transformierten Matrix gleichzeitig mehrere Komponenten annihilieren.

• Ähnlich wie bei der LU-Transformation erhält man mit den Householder-Matrizen auch eineobere 4-Matrix. Das Produkt der Householder-Matrizen ist aber keine untere 4-Matrix,sondern eine orthogonale Matrix. Dies führt zur QR-Faktorisierung:

A = QR, QTQ = 1, Q = H1H2 . . .Hn−1. (9.65)

• Orthogonale Matrizen sind auch die Eigenvektormatrizen in der Diagonalisierung XTAX =diag(λλλ).

• Daher Idee: Verwende die Householder-Transformationen/QR-Zerlegung, um A zu diagonali-sieren.

• Problem: Householder-Transformationen, angewandt von links und von rechts auf A, können(ohne Zerstörung von vorher eingeführten Nullen) A nur auf Tridiagonalform bringen (sieheHermann):

x x x x xx x x x xx x x x xx x x x xx x x x x

H1·−−→

y y y y y0 y y y y0 y y y y0 y y y y0 y y y y

·HT1−−→

z 0 0 0 0z z z z zz z z z zz z z z zz z z z z

(9.66)

• Algorithmus (siehe Hermann): Schleife über k = 1, . . . n− 2 mit A1 = A:

1. QR-Zerlegung: Ak = QR, ⇒ QTAk = R.

2. Bildung von Ak+1 = RQ (= QTAQ)

• Anschließend können aber Givens-Rotationen verwendet werden, um die tridiagonale Matrixzu diagonalisieren.

121

Page 122: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

9.5 Eigenwertabschätzung: Gerschgorin-Kreise• Sei A eine normale, komplexe, nicht notwendigerweise symmetrische, N ×N -Matrix.

• Der Satz von Gerschgorin besagt nun, dass die Vereinigung alles Kreisscheiben

Ki ≡ {z ∈ C : |z − Aii| ≤ σi}, i ∈ [1, N ], (9.67)

σi =N∑j=1j 6=i

|Aij| (9.68)

alle Eigenwerte enthält.

• Dies lässt sich leicht zeigen: Seien λ und x ein Eigenwert und -vektor von A. Dann gilt fürirgendeine Komponente von x:

(Ax)i =∑j

Aijxj = λxi, i ∈ [1, N ], (9.69)

⇔∑j 6=i

Aijxj = λxi − Aiixi = xi(λ− Aii). (9.70)

• Sei nun xk das betragsmäßig größte Element von x (es ist also nicht 0). Dann gilt für dieseKomponente, indem man Gl. (9.70) durch xk teilt und den Betrag nimmt:

|λ− Akk| =∣∣∣∣∑

j 6=k Akjxj

xk

∣∣∣∣ ≤∑j 6=k

∣∣∣∣Akjxjxk

∣∣∣∣ ≤∑j 6=k

|Akj| = Kk. (9.71)

Die letzte Ungleichheit ist erfüllt, da |xj/xk| ≤ 1 (j 6= k). Damilt gilt Gl. (9.67).

• Entsprechend kann man auch Gerschgorin-Kreise für die Zeilensumme aufstellen:

σi =∑j 6=i

|Aji|. (9.72)

(Beweis wie oben, nur mit dem Transponierten von A).

• Entsprechende Vereinfachung für symmetrische Matrizen (reelle Eigenwerte, s. o.).

122

Page 123: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Beispiel:

A =

21 0 1 −1 −21 −11 1 3 20 −1 −13 3 −33 0 −1 21 3−3 2 −1 2 9

(9.73)

hat die Gerschgorin-Kreise:

-20 -15 -10 -5 0 5 10 15 20 25

-15

-10

-5

0

5

10

15Tatsächliche Eigenwerte

• Weiterhin kann man zeigen, dass disjunkte Vereinigungen von n Kreisen auch n Eigenwertebeinhalten, was im Beispiel schon ersichtlich ist.

• Passende Ähnlichkeitstransformationen T−1AT können die Kreise weiter verkleinern.

• Die Abschätzungen sind vor allem für iterative Verfahren (Abschni� 9.6) und für Eigenwerts-kalierungen (z. B. auf den Bereich [−1, 1]) sehr sinnvoll.

• Andere Anwendung: Abschätzung der Norm einer Matrix.

123

Page 124: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

9.6 Iterative Verfahren

9.6.1 Potenzverfahren/Vektoriteration• Sei A eine normale, komplexeN ×N -Matrix mit dem nach betragsmäßiger Größe geordneten

Eigenwerten

|λ1| > |λ2| ≥ |λ3| · · · ≥ |λN |. (9.74)

Beachte die erste Bedingung |λ1| > |λ2|!

• Die zugehörigen Eigenvektoren vi seien auf 1 normiert.

• Gegeben Sei nun ein Startvektor x0 mit x†0v1 6= 0. Dann gilt

x1 = Ax0 =∑i

λivi(v†ix0), (Spektralzerlegung von A), (9.75)

x2 = A2x0 =∑i

λ2ivi(v

†ix0), (9.76)

...

xk = Akx0 =∑i

λki vi(v†ix0), (9.77)

⇔ xk = λk1

[v1(v†1x0) +

n∑i=2

(λiλ1

)kvi(v

†ix0)

]. (9.78)

• (λi/λ1)k geht für k →∞ gegen 0, da λ1 der betragsmäßig größte Eigenwert ist.

• Entsprechend gilt für k →∞

x†kxk+1

x†kxk→ (λk1)∗(v†1x0)∗v†1λ

k+11 (v†1x0)v1

(λk1)∗(v†1x0)∗v†1λk1(v†1x0)v1

(9.79)

=(λk1)∗(v†1x0)∗v†1(v†1x0)v1

(λk1)∗(v†1x0)∗v†1(v†1x0)v1

· λk+11

λk1= λ1 (9.80)

• Aus einer hinreichend langen Folge von Matrix-Vektor-Multiplikationen, ausgehend aus einemZufallsvektor, lässt sich also der betragsmäßig größte Eigenwert extrahieren.

• In der Praxis: Skalierung von xk, um zu große Werte (overflow) zu vermeiden.

• Möchte man den betragsmäßig kleinsten Eigenwert erhalten, so lässt sich Vektoriteration mitA−1 durchführen.

• Vektoriteration von (A−σ1)−1, σ ∈ C (Shi� der Eigenwerte von A um σ) führt entsprechendzum Eigenwert, der am nächsten an σ liegt. Dies nennt man inverse Iteration.

• Bestimmung von passenden σ z. B. über die Gerschgorin-Kreise (Abschni� 9.5)

• Problem davon: Lösen des Gleichungssystems (A− σ1)x = b.

124

Page 125: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

9.6.2 Lanczos-Verfahren• Nachteile der Vektoriteration: Erhalt nur jeweils eines Eigenvektors/Werts, keine Nutzung

der Information aus vorherigen Iterationen. Besser: Lanczos-Methode (häufigstes direktesVerfahren zur Diagonalisierung).

• Das Eigenwertproblem kann auch als Minimierungsproblem angesehen werden. So erge-ben sich die kleinsten/größten Eigenwerte durch Minimierung/Maximierung des Rayleigh-�otienten

R(x) =xTAx

xTx, (9.81)

⇒ λmin = minx 6=0

R(x), λmax = maxx 6=0

R(x). (9.82)

R(x) wurde in Gl. (9.79) schon angewandt.

• Beweis mi�els Ähnlichkeitstransformation (ändert nichts an den Eigenwerten):

QTAQ = diag(λλλ) = ΛΛΛ, y ≡ Qx (9.83)⇒ xTAx = (Qy)TAQy = yTQTAQy = yTΛΛΛy, (9.84)

⇒ miny 6=0

yTΛΛΛy

yTy= minΛΛΛ = λmin. (9.85)

• Wie wir in den Abschni�en zum Conjugate-Gradient-Verfahren (6.4.4 und 8.8.1) schon gesehenhaben, lassen sich Minimierungen durch Matrix-Vektor-Multiplikationen lösen.

• Mehrfache Multiplikation von einer Matrix auf einen Vektor ergibt den sogenannten Krylov-Raum3

Vk ≡ span{x,Ax, . . .Ak−1x}. (9.86)

• Mit hinreichend großem k sollten die gesuchten Eigenvektoren in Vk enthalten sein.

• Aus numerischen Gründen wird nicht direkt mit den Krylov-Vektoren Aix gearbeitet, sondernmit einer daraus generierten Orthonormalbasis{vi}i=1k (per Gram-Schmidt-Verfahren). DieBasis ergibt sich aus der Drei-Term-Rekursion (für eine symmetrische Matrix A)

v0 = 0, v1 =x

‖x‖2

, β1 = 1, (9.87)

αk = vTkAvk, (9.88)ωωωk+1 = Avk − αkvk − βkvk−1, (9.89)βk+1 = ‖ωωωk+1‖2, (9.90)

vk+1 =ωωωk+1

βk+1

. (9.91)

• Mit der Matrix Qk ≡ [v1, . . . ,vk], welche die Spaltenvektoren vi beinhaltet ergibt sichanschließend eine Ähnlichkeitstransformation zu einer tridiagonalen Matrix

QTkAQk =

α1 β2

β2 α2. . .

. . . . . . βk−1

βk−1 αk

= Tk. (9.92)

3Conjugate-Gradient ist also auch ein Krylov-Verfahren.

125

Page 126: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

A ist eine N × N -Matrix, Q eine N × k-Matrix, also ergibt sich eine tridiagonale k × k-Lanczos-Matrix.

• Dies entspricht einer Projektion in dem Krylov-Unterraum Vk, aufgespannt durch die vi.

• Wie wir beim Beweis für Gl. (9.82) gesehen haben, bleiben diese Gleichungen nach orthogonalerTransformation bestehen.

• Also sind die Eigenwerte von Tk Approximationen an die Eigenwerte von A.

• Man kann zeigen, dass somit die betragsmäßig größten Eigenwerte generiert werden. Findenvon anderen Eigenwerten mi�els inverser Iteration (siehe Abschni� 9.6.1).

• Diagonalisierung von Tk einfach, da k ≪ N und tridiagonale Matrizen schnell per Givens-Rotationen diagonalisiert werden können (Abschni� 9.4.1).

• Das Verfahren wird bis zu einer vorgegeben Kryloraumgröße L durchgeführt, oder bis|βk+1| < ε. Anschließend: Diagonalisierung, Generierung der Eigenvektoren und Neustart mitEigenvektor als neuen Startvektor x.

• Verallgemeinerung auf nichtsymmetrische Matrizen: Arnoldi-Verfahren.

• Lanczos mit Präkonditionierer und damit robuster: Davidson-Methode (�antenchemiker).4

• Neuere, teilw. bessere Methoden als das Lanczos-Verfahren sind allerdings schon in Anwen-dungsreife.5

4E. R. Davidson,J. Comp. Phys., 17, 87 (1975).5 E. Polizzi, Phys. Rev. B, 79, 115112 (2009),

I. Nebot-Gil, J.Chem. Theo. Comp., 11, 472 (2015).

126

Page 127: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

9.7 Singulärwertzerlegung/singular value decomposition(SVD)

Jede(!) M ×N -Matrix A kann zerlegt werden nach

N→

M ↓

A

=

(9.93)

N N→ →

M ↓

U

w1

w2 0w3

0. . .

wN

N ↓ VT

orthog. Spalten orthogonal

Zahlreiche nützliche Eigenscha�en:

• Die U sind die Eigenvektoren von AA†, die V sind die Eigenvektoren von A†A

• Die wi sind die Wurzeln der Eigenwerte von AA† und A†A

• Ist ein oder mehrere wi = 0, ist A singulär

• Ist ein oder mehrerewi ≈ 0, istA beinahe singulär und damit numerisch schlecht konditioniert→ Probleme bei Gauß-Algorithmen und LU-Zerlegung

• Die Spalten j von U mit wj 6= 0 spannen den Lösungsraum von A auf

• Die Spalten i von V mit wi = 0 spannen den sogenannten Nullraum auf (der leer ist, wenn Anicht singulär ist)

• die Vektoren

x = Vdiag

(1

wi

)(UTb) (9.94)

liefern

– Vernün�ige Lösungen für singuläre und beinahe singuläre Matrizen A, wenn man fürwi ≈ 0 einsetzt 1

wi= 0

– Für M < N Informationen über den Lösungsraum

– Für N < M eine Lösungsmethode für Ausgleichsrechnungen nach der Methode derkleinsten �adrate (least-squares-fit).

Die Programmierung der SVD-Zerlegung ist jedoch nicht-trivial, basiert auf QR-Zerlegung.

127

Page 128: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

9.8 Bilbiotheksroutinen

9.8.1 BLAS• Die Bibliothek überhaupt, wenn es um Matrizen und Vektoren geht.

• Basic Linear Algebra Subprograms

• Drei Level:

1. Skalare und Vektor-Operationen:

y← αx + y, (9.95)α← xTy, (9.96)α← ‖x‖2, . . . (9.97)

2. Matrix-Vektor-Operationen

y← αAx + βy, . . . (9.98)

3. Matrix-Matrix-Operationen

C← αAB + βC, . . . (9.99)

• Routinennamen haben ein bestimmtes System:

1. Genauigkeit: S: Reell, einfache Genauigkeit, D: Doppelt, C: Komplex, Z: Komplex, doppelte

2. Matrix-Typ (Level 2 und 3): GE: Allgemein, GB: Bandmatrix, SY: Symmetrisch,SB:Symmetrisch Band, SP: Symmetrisch, kompakt, HE: Hermitiesch, TR: Tridiagonal, . . .

3. Anschließend: Typ der Durchführung: MV: Matrix-Vektor, MM:Matrix-Matrix,. . .

• Wichtigste Routine: DGEMM (allgemeine Matrix-Matrix-Multiplikation, doppelte Genauig-keit)

9.8.2 LAPACK• Die Bibliothek überhaupt, wenn es um Probleme in der linearen Algebra geht.

• Linear Algebra PACKage

• Lösen von Gleichungssystemen, Diagonalisierung, Matrixfaktorisierungen, lineare Regressi-onsprobleme, Konditionen, Fehlerabschätzung . . .

• Verwendet intern BLAS-Routinen.

• Routinennamensyntax ähnlich wie BLAS.

• Beispiel: DSYEV: Diagonalisierung (EV: Eigenvektoren) von symmetrischen Matrizen in dop-pelter Genauigkeit.

• LAPACK Users Guide: http://www.netlib.org/lapack/lug/

• Dokumentation der Routinen: http://www.netlib.org/lapack/explore-html/

• Bei Verwendung lohnt sich der Blick auf die Dokumentation. Z. B. gibt es 7 Routinen fürdie Diagonalisierung von symmetrischen Matrizen in doppelter Genauigkeit (neben DSYEVRoutinen basierend auf schnellere Algorithmen mit mehr Speicherbedarf (Divide and Conquer,Berechnung von nur bestimmten Eigenwerten, . . . )

128

Page 129: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

9.8.3 Implementationen• BLAS und LAPACK (Fortran-Code) sind direkt auf www.netlib.org erhältlich.

• Schni�stellen zu anderen Programmiersprachen sind vorhanden.

• Deutlich schneller: Spezielle Implementationen der Bibliothek, optimiert auf die unterschiedli-chen Prozessortypen.

• ATLAS: Automatically Tuned Linear Algebra Subprograms: Automatische Generierung vonCode speziell für den verwendeten Prozessortyp (frei verfügbar).

• AMD ACML: Frei verfügbare Bibliothek speziell für AMD-Prozessoren.

• Intel MKL: Kommerzielle Bibliothek (kostenlos für nichtkommerzielle Nutzung), etwas langsa-mer für AMD-Prozessoren.

• Weitere Anbieter, z. B. NAG.

• Daneben: Spezielle Implementationen für parallele Architekturen (SCALAPACK, PLASMA,SLEPc) und heterogene Rechnerarchitekturen wie Graphikprozessoren (MAGMA),

• Matlab benutzt intern die MKL. Bei Octave muss sich der Benutzer um eine schnelle Imple-mentation kümmern.

9.8.4 Weitere• Speziell für C++: Eigen, welches eine komple� neue Implementation von Algorithmen für

lineare Algebraprobleme ist.

• FEAST: Sehr neuer Algorithmus zur Berechnung von bestimmten Eigenwerten, auch nur mi�elsMatrix-Vektor-Operationen. Neben einer kostenlosen Version auch in der MKL enthalten.

• PETSc: Riesige Bibliothek, spzeiell für massiv-parallele Anwendungen; nicht nur Linear-Algebra-Probleme, sondern auch Lösung von Di�erentialgleichungen etc.

• Trilinos: Ähnlich wie PETSc

• . . .

• Siehe auch https://en.wikipedia.org/wiki/List_of_numerical_libraries

129

Page 130: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

10 Interpolation

• Allgemeines Interpolationsproblem:

– Gegeben seien n+ 1 (unterscheidbare) Stützpunkte xi, i ∈ [0, n] mit Funktionswertenfi an den Stellen xi.

– Gesucht: Eine Funktion φ(x; a0, a1, . . . , an) mit (typischerweise) n + 1 Parametern ai,sodass

∀i ∈ [0, n], φ(xi; a0, a1, . . . , an)!

= fi. (10.1)

– Gegebenenfalls sollen auch die Ableitungen von φ mit denen von f an den Stellen xiübereinstimmen.

– φ soll f an Stellen x /∈ {xi} möglichst gut approximieren.

• Für x ∈ [a, b] mit a = min{xi} und b = max{xi} spricht man von Interpolation. Fürx /∈ [a, b] spricht man von Extrapolation.

• Insbesondere Extrapolation kann äußerst riskant sein und ist nur sinnvoll, wenn φ so aufgestelltwird, dass es sich außerhalt des Intervalls hinreichend ähnlich zu f verhält (z. B. exponentiellerAbfall).

• Unterschied zur Ausgleichsrechnung (fi�en): Dort ist Gl. (10.1) keine Zwangsbedingung undes gibt (vorzugsweise) deutlich mehr Stützpunkte xi als Parameter aj , welche zudem Fehlerbe-ha�et sein können.

• Anwendungsfälle:

– Interpolation von tabellarisch gegebenen Funktionswerten.

– Lösung von Di�erentialgleichungen (Entwicklung von Verfahren, dense output).

– Interpolierende Funktionen für Lösung von partiellen Di�erentialgleichungen (Kollokati-on).

– Herleitung von Formeln für numerische Integration.

– Konvergenzbeschleunigung in numerischen Verfahren durch (Richardson)-Extrapolation.

– Fourieranalyse (trigonometrische Interpolation).

– . . .

• Häufigster Fall: Lineares Interpolationsproblem: φ hängt linear von seinen Parametern ai ab:

φ(x; a0, a1, . . . an) =n∑i=0

aiϕi(x). (10.2)

• Generell gilt:

– Unterschiedliche Interpolationsmethoden eignen sich (nur) für unterschiedliche Funkti-onsformen und Wahl der Stützstellen (äquidistant, zufällig, andere Struktur)

– Eine Vergrößerung der Zahl der Stützstellen führt nicht notwendigerweise zu einerbesseren Approximation! Die Approximation kann sogar wieder (gegebenenfalls lokal)schlechter werden.

130

Page 131: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

– Beispiel: Funktionsverlauf von vier unterschiedlichen Interpolationsmethoden:

• Besonders o� verwendet werden Polynome, da sich Ableitungen und Integrale leicht berechnenlassen (diese sind wieder Polynome).

• Direkte Anwendung des Interpolationsproblems

y(xi) = a0ϕ0(xi) + a1ϕ1(xi) + a2ϕ2(xi) + · · ·+ anϕn(xi), i ∈ [0, n], (10.3)

führt zum Gleichungssystemϕ0(x0) ϕ1(x0) ϕ2(x0) . . . ϕn(x0)ϕ0(x1) ϕ1(x1) ϕ2(x1) . . . ϕn(x1)

......

......

ϕn(xn) ϕ1(xn) ϕ2(xn) . . . ϕn(xn)

a0

a1...an

=

y(x0)y(x1)

...y(xn)

. (10.4)

• Speziell für Polynome ergibt sich

y(xi) = a0 + a1xi + a2x2i + · · ·+ anx

ni , i ∈ [0, n], (10.5)

1 x0 x20 . . . xn0

1 x1 x21 . . . xn1

......

......

1 xn x2n . . . xnn

︸ ︷︷ ︸

≡V

a0

a1...an

=

y(x0)y(x1)

...y(xn)

. (10.6)

• V ist die Vandermonde-Matrix, welche aber in der Regel schlecht konditioniert ist. Die Lösungdes Gleichungssystems, Gl. (10.6) bzw. Gl. (10.4), ist also mit großen Fehlern beha�et.

• Besser ist es, Gl. (10.5) so umzuformen, dass sich besser lösbare Probleme ergeben und V evt.sogar analytisch invertierbar ist.

131

Page 132: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

10.1 Taylor-Interpolation• Taylor-Reihenentwicklung:

f(x) ≈ Pn(x) =n∑k=0

f (k)(x0)

k!(x− x0)k. (10.7)

• Bei dieser besonderen Interpolation stimmtPn am Punkt x0 mit f und allen seinen Ableitungenbis zum Grad n überein.

• Meistens ist Taylor-Interpolation eine schlechte Idee, da:

– f wird um x0 nur lokal gut approximiert (mehr Extrapolation als Interpolation).

– Es werden viele Ableitungen benötigt.

• Beispiel: Taylor-Approximation von sin(x) an der Stelle x0 = 0:

• Fehlerabschätzung durch das Restglied der Taylorreihe (siehe MfC 1):

f(x) = Pn(x) +Rn(x), (10.8)

Rn(x) =(x− x0)n+1

(n+ 1)!f (n+1)(ξ), ξ ∈ [x, x0]. (10.9)

• Nichtsdestominder kann Taylor-Interpolation für spezielle Anwendungen sinnvoll sein (z. B.lokale, mehrdimensionale quadratische Approximation an mehreren Punkten).

• Anwendungen u. a. auch für Formelherleitungen für numerische Di�erentiation und Lösenvon Di�erentialgleichungen.

132

Page 133: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

10.2 Lagrange-Interpolation• Die Vandermonde-Matrix ist für Polynome schlecht konditioniert.

• Besser: Ansta� ϕi(x) = xi andere Formen wählen, die dennoch dasselbe Polynom darstellen.

• Eine Gerade P1 kann eine Funktion, gegeben durch zwei Wertepaare (x0, y0) und (x1, y1), wiefolgt interpolieren:

P1(x) =x− x1

x0 − x1︸ ︷︷ ︸L0(x)

y0 +x− x0

x1 − x0︸ ︷︷ ︸L1(x)

y1, (10.10)

da gilt

P1(x0) = 1 · y0 + 0 · y1 = y0, P1(x1) = 0 · y0 + 1 · y1 = y1. (10.11)

• Dies liegt daran, dass

Li(xk) = δik. (Orthogonalität auf dem Gi�er) (10.12)

• Generell gilt: Polynominterpolation vom Grad n braucht n+ 1 Stützstellen (oder Ableitungen).

• Für Polynominterpolation höherer Ordnung (mehr Stützstellen) ist der Ansatz ähnlich zu Gl.(10.10). Es muss nur die Bedingung 10.12 erfüllt sein.

• Allgemein ist Bedingung Li(xk) = 0 für i 6= k erfüllt, wenn im Zähler von Li

zi(x) = (x− x0)(x− x1) . . . (x− xi−1)(x− xi+1) . . . (x− xn) (10.13)

steht.

• Li(xi) = 1 impliziert anschließend, dass der Nenner von Li mit Gl. (10.13) übereinstimmenmuss. Daher ist der Nenner zi(xi) für die Funktion Li.

133

Page 134: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Damit ergibt sich die vollständige Definition der Lagrange-Polynome

Li(x) =(x− x0)(x− x1) . . . (x− xi−1)(x− xi+1) . . . (x− xn)

(xi − x0)(xi − x1) . . . (xi − xi−1)(xi − xi+1) . . . (xi − xn)=

n∏k=0k 6=i

x− xkxi − xk

. (10.14)

• Beispiel für diese Polynome: Zwei verschiedene Gi�er, einmal 8, einmal 16 Stützstellen:

• Das gesuchte Interpolationspolynom durch die (verschiedenen) Punkte {x0, x1, . . . , xn}, wasdie Funktion mit den Werten {y0, y1, . . . , yn} beschreibt, ergibt sich dann durch

Pn(x) =n∑k=0

Lk(x)yk. (10.15)

• Das Interpolationspolynom Pn vom Grad ≤ n ist eindeutig definiert: Nehmen wir an, es gäbeein weiteres Polynom Qn vom Grad ≤ n, was die Interpolationsbedingung erfüllt:

Pn(xk) = Qn(xk) = yk, k ∈ [0, n]. (10.16)

Dann besitztD(x) = Pn(x)−Qn(x) die n+1 verschiedenen Nullstellen {x0, . . . xk}. DaD(x)aber maximal vom Grad ≤ n sein kann (wie Pn und Qn), folgt aus dem Fundamentalsatz derAlegbra, dass D(x) = 0. Ergo ist Pn(x) = Qn(x) und damit eindeutig definiert.

• Anders gesagt: Lagrange-Interpolation ist polynomiale Interpolation, nur dass die φi(x) nichtxi sondern Li(x) sind.

10.2.1 Neville-Algorithmus• Direkte Anwendung von Gl. (10.15) aufwändig/nicht sinnvoll.

• Besser: Neville-Verfahren. Rekursives Schema.

• Rekursionsformeln:

pi(x) = yi, (10.17)

pi0,i1,...,ik(x) =(x− xi0)pi1,i2,...ik(x)− (x− xik)pi0,i1,...,ik−1

(x)

xik − xi0. (10.18)

• Pi0,i1,...,ik hat einen Index mehr als Pi1,...,ik .

134

Page 135: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Es gilt Pi0,i1,...,ik(xij) = f(xij), j ∈ [0, k].

• Die Rekursion ist erfüllt, da:

pi0,...,ik(xi0) =−(xi0 − xik)xik − xi0

pi0,...ik−1(xi0) = f(xi0), (erster Term Null), (10.19)

pi0,...,ik(xik) =xik − xi0xik − xi0

pi1,...,ik(xik) = f(xik), (zweiter Term Null), (10.20)

pi0,i1,...,ik(xij) =(xij − xi0)f(xij)− (xij − xik)f(xij)

xik − xi0= f(xij). (10.21)

• Beispiel für ein Polynom 3. Ordnung:

Ordnung k = 0 1 2 3

x0 f(x0) = p0(x)p01(x)

x1 f(x1) = p1(x) p012(x)p12(x) p0123(x) = P3(x)

x2 f(x1) = p2(x) p123(x)p23(x)

x3 f(x3) = p3(x)

• Die nächsten Polynome ergeben sich immer aus den vorrangehenden zwei Nachbarn:

p123(x) =(x− x1)p23(x)− (x− x3)p12(x)

x3 − x1

. (10.22)

• Das Verfahren wird für jeden zu berechnenden Wert x angewandt.

• Dies erfordert pro zu berechnender Stützstelle einen Aufwand von O[(n+ 1)2]

• Verbesserte Versionen verwenden die Di�erenzen aufeinanderfolgender Zwischenpolynome(siehe Numerical Recipes).

• Das Verfahren kann auch so verwendet werden, dass zuerst bei Stützstelle xk angefangenwird, die am nächsten zur benötigten Stelle x liegt. Anschließend wird das Verfahren solangedurchgeführt, bis sich die Werte der Polynome nicht mehr voneinander unterscheiden.

• Analog ergeben sich Algorithmen für die ite Ableitung.

10.2.2 Fehler• Der Fehler, welcher durch die Interpolation gegeben ist, wird beschrieben durch

f(x)− Pn(x) = ωn+1(x) · f(n+1)(ξ)

(n+ 1)!, ξ ∈ [a, b], (10.23)

ωn+1(x) = (x− x0)(x− x1) . . . (x− xn). (10.24)

(Für f als n+ 1 mal stetig di�erenzierbare Funktion.)

• Vergleiche mit dem Fehler der Taylorreihe, Gl. (10.9)!

• Beweis:

135

Page 136: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

– Für x = xj ist die Aussage wahr, da ω(xj) = 0.

– Für x 6= xj , definiere

F (x) = f(x)− p(x)− γω(x). (10.25)

– Wenn nun F (x) an der Stelle x verschwinden soll, muss F (x) im Intervall [a, b] mindes-tens n+ 2 Nullstellen {x0, . . . , xn, x} haben.

– Daher besitzt F ′(x) mindestens n+ 1 Nullstellen (zwischen je 2 Nullstellen muss es auchein Extremum geben).

– Entsprechend hat F (n+1)(x) im Intervall [a, b] mindestens eine Nullstelle ξ.P (n+1)(x) muss 0 sein. Ergo

F (n+1)(ξ) = f (n+1)(ξ)− 0− γ (n+ 1)!︸ ︷︷ ︸ω(n+1)n+1 (x)

= 0, (10.26)

⇔ γ =f (n+1)(ξ)

(n+ 1)!. (10.27)

– Daraus folgt Gl. (10.23).

• ω(x) hängt stark von der Wahl der Stützstelle ab. Insbesondere gibt es große Fehler in derAsymptote (Ordnung xn+1)!

• Beispiel: 16 Stützstellen: Legendre-Nullstellen und äquidistantes Gi�er (x ∈ [−1, 1]):

• Das Beispiel zeigt, wie stark Extrapolation (x /∈ [−1, 1]) mit Fehlern beha�et sein kann.

136

Page 137: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

10.2.3 Wahl der Stützstellen• Generell gilt: Für gewöhnliche polynomiale Interpolation sind äquidistante Stützstellen

ungeeignet, da diese dann mit großem Fehler beha�et ist.

• An den Rändern des Interpolationsintervalls müssen mehr Stellen als in der Mi�e vorkommen,um Verläufe wie in oben gezeigter Au�ragung von ω für ein äquidistantes Gi�er zu vermeiden.

• Allgemein soll der maximale Wert des Polynoms ω im Interpolationsintervall [a, b] minimiertwerden (Minimax-Aufgabe):

min

[maxt∈[a,b]

|ωn+1(t)|]

(10.28)

• Genau diese Eigenscha� ist gegeben, wenn ω ein Chebyche�-Polynom ist (siehe auch Abschni�5.5).

• Daher: Optimale Stützstellenwahl: Nullstellen des Chebyche�-Polynoms, transformiert aufdas Intervall [a, b]:

xi =a+ b

2+b− a

2cos

(n− in

π

), i ∈ [0, n]. (10.29)

10.3 Interpolation mit rationalen Funktionen• Einige Funktionen sind sehr schwer durch Polynome zu approximieren, lassen sich aber sehr

gut durch rationale Funktion darstellen (inkl. Polstellen):

• Die Funktion

Rn,m(x) =Qn(x)

Pm(x)=a0 + a1x+ · · ·+ anx

n

b0 + b1x+ · · ·+ bmxm(10.30)

hat m+ n+ 1 = N + 1 und nicht m+ n+ 2 Parameter, da beliebig erweitert werden kann,sodass nur das Verhältnis a0/b0 relevant ist.

• Es ergibt sich allerdings ein nicht-lineares Interpolationsproblem:

a0 + a1xi + · · ·+ anxni

b0 + b1xi + · · ·+ bmxmi= f(xi), i ∈ [0, N ] (10.31)

⇒ a0 + a1xi + · · ·+ anxni = f(xi)[b0 + b1xi + · · ·+ bmx

mi ] (10.32)

137

Page 138: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Dafür: Sehr flexibler Ansatz, der aber in speziellen Situationen scheitern kann.

• Verbesserung: Baryzentrische Form:

R(x) =

∑N−1i=0

ωix−xiy(xi)∑N−1

i=0ωix−xi

(10.33)

• Mit bestimmten Wichtungen ωi kann jeder rationale Interpoland in diese Form gebrachtwerden.

10.4 Stückweise/Spline-Interpolation• Probleme der Polynominterpolation:

– Sehr schlechtes Verhalten für äquidistante Stützstellen.

– Polynome höheren Grades schwingen stark an den Rändern.

• O� erwünschtes Verhalten: Die interpolierende Funktion soll möglichst gla� durch die Stütz-punkte verlaufen.

• Daher: Verwendung von lokalen Polynomen niedrigen Grades und Verbindung dieser Polynomean den Stützpunkten: Splines.

• Name und Analogie: Strakla�e/Kurvenlineal/Keilwelle, engl. spline:

• Es gilt, dass ein Spline aus Polynomen (2m+ 1)ten Grades zusammengesetzt ist und auf demGesamtintervall 2m mal stetig di�erenzierbar ist. Für m = 1 ergeben sich kubische Splines,die häufigste Form, da Abweichungen in der zweiten Ableitung (Krümmung) noch mit demAuge erkennbar sind.

• Ein kubisches Spline S(x) muss also folgende Bedingung erfüllen:

a) S(x) ist auf dem Intervall [xj, xj+1), j ∈ [0, n − 1] ein kubisches Polynom mit derBezeichnung Sj(x).

b) S(xj) = f(xj), j ∈ [0, n],

c) Sj+1(xj+1) = Sj(xj+1), j ∈ [0, n− 2],

d) S ′j+1(xj+1) = S ′j(xj+1), j ∈ [0, n− 2],

e) S ′′j+1(xj+1) = S ′′j (xj+1), j ∈ [0, n− 1],

138

Page 139: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Zusätzlich muss eine der folgenden Bedingungen erfüllt sein:

i) S ′′(x0) = S ′′(xn) = 0 (freier Rand, natürliche Splines)

ii) S ′(x0) = f ′(x0), S ′(xn) = f ′(xn), (eingespannter Rand)

iii) S(i)(x0) = S(i)(xn), i ∈ [0, 2] (periodische Splines)

• Splines mit eingespannten Rand sind meistens bessere Approximationen, benötigen aberInformationen über die Ableitung von f .

10.4.1 Herleitung• Anwendung der obigen Bedingungen auf das kubische Polynom

Sj(x) = aj + bj(x− xj) + cj(x− xj)2 + dj(x− xj)3, j ∈ [0, n− 1] (10.34)

und Bestimmung der freien Parameter.

• Aus den Interpolationsbedingungen erfolgt sofort

Sj(xj) = aj!

= f(xj). (10.35)

• Aus Bedingung c) folgt

Sj+1(xj+1) = aj+1!

= Sj(xj+1) (10.36)= aj + bj(xj+1 − xj) + cj(xj+1 − xj)2 + dj(xj+1 − xj)3. (10.37)

• Mit hj ≡ xj+1 − xj und an ≡ f(xn) (Sn wird eig. nicht benötigt) ergibt sich

aj+1 = aj + bj + cjh2j + djh

3j , j ∈ [0, n− 1]. (10.38)

• Aus der ersten Ableitung ergibt sich

S ′j(x) = bj + 2cj(x− xj) + 3dj(x− xj)2, (10.39)⇒ S ′j(xj) = bj. Bedingung d) ergibt, (10.40)

bj+1 = bj + 2cjhj + 3djh2j , bn ≡ S ′(xn). (10.41)

• Entsprechend ergibt die Berechnung der zweiten Ableitung mit Bedingung e)

S ′′j (x) = 2cj + 6dj(x− xj), cn ≡ S ′′(xn)/2, (10.42)S ′′j (xj) = 2cj, (10.43)⇒ cj+1 = cj + 3djhj, (10.44)

⇔ dj =cj+1 − cj

3hj. (10.45)

• Substituieren von Gl. (10.45) in (10.38) führt zu

aj+1 = aj + bjhj +h2j

3(2cj + cj+1), (10.46)

⇒ bj =1

hj(aj+1 − aj)−

hj3

(2cj + cj+1). (10.47)

139

Page 140: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Entsprechend folgt aus der Substitution von Gl. (10.45) in (10.41)

bj+1 = bj + hj(cj + cj+1). (10.48)

• Verkleinerung des Index in Gl. (10.47) entspricht

⇒ bj−1 =1

hj−1

(aj − aj−1)− hj−1

3(2cj−1 + cj) (10.49)

• Selbiges für Gl. (10.48), Einsetzen von Gl. (10.47) in die linke Seite vom resultierenden Ausdruckund Gl. (10.49) in die rechte Seite ergibt das folgende lineare Gleichungssystem:

hj−1cj−1+2(hj−1+hj)cj+hjcj+1 =3

hj(aj+1−aj)−

3

hj−1

(aj−aj−1), j ∈ [1, n−1]. (10.50)

• Dies ist noch unterbestimmt. Randbedingung i) führt zu

cn ≡ S ′′(xn)/2 = 0, S ′′(x0) = 0 = 2c0 + 6d0(x0 − x0), (10.51)

• Dies führt zu einem tridiagonalen Gleichungssystem der Dimension n+ 1:1 0 . . .h0 2(h0 + h1) h1

0 h1 2(h1 + h2) h2...

. . .hn−2 2(hn−2 + hn−1) hn−1

c0

c1...cn

=

0

3h1

(a2 − a1)− 3h0

(a1 − a0)...

3hn−1

(an − an−1)− 3hn−2

(an−1 − an−2)

0

. (10.52)

• Tridiagonale Gleichungssysteme können mit einem Aufwand vonO(n2) schnell gelöst werden.

• Anschließend: Einsetzen der Koe�izienten cj in Gl. (10.48) und (10.45) zur Bestimmung von bjund dj .

• Aus Gl. (10.37) können dann die intervallweise definierten Polynome ermi�elt werden.

• Analoge tridiagonale Gleichungssysteme ergeben sich für die anderen Randbedingungen.

10.4.2 Weiteres• Spline-Interpolation ist meistens zweischri�ig (im Gegensatz zur normalen polynomialen

Interpolation):

1. Lösung des Gleichungssystems (10.52).2. Beliebige o� Verwendung der Lösung zur eigentlichen Interpolation.

• Für Splines mit eingespanntem Rand (Bedingung ii)) kann man folgenden Fehler innerhalbdes Interpolationsintervalls I ermi�eln:

maxx∈I|f(x)− S(x)| ≤ 5 maxx∈I |f (4)(x)|

384max(xj+1 − xj)4. (10.53)

140

Page 141: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Also: Der Fehler skaliert quartisch mit dem maximalen Stützpunktabstand.

• Weiterhin lässt sich zeigen, dass die Krümmung der Splines minimiert wird (siehe z. B. Her-mann). Daher sind Splines (meistens) so gla�.

• Wichtig: Bei flachen Daten und bei Nadelimpulsen neigen Splines zu Schlängelverhalten. Dieerste Ableitung ist daher o� mit großem Fehler beha�et.

10.5 Trigonometrische Interpolation• Interpolation einer periodischen Funktion über ein trigonometrisches Polynom:

φN =N−1∑j=0

cj exp(ijx), x ∈ [0, 2π], cj ∈ C, i ≡√−1. (10.54)

• Für ungerade N = 2n+ 1 ist dies äquivalent zu

φ2n+1(x) =a0

2+

n∑j=1

(aj cos(jx) + bj sin(jx)

), aj, bj ∈ R, (10.55)

und für gerade N = 2n ergibt sich

φ2n(x) =a0

2+

n−1∑j=1

(aj cos(jx) + bj sin(jx)

)+an2

cos(nx). (10.56)

• Aufgrund der linearen Unabhängigkeit der Basis {exp(ijx)}Nj=0 ist das Interpolationsproblemfür N Punkte eindeutig.

• Im Folgenden gehen wir von äquidistanten Stützstellen aus:

xj =2πj

N, j ∈ [0, N − 1]. (10.57)

• Die Vandermonde-Gleichung (Gl. (10.6)) ist dann1

ωj ≡ exp(ixj) = exp(i2πj/N), (10.58)1 ω0 ω2

0 . . . ωN−10

1 ω1 ω21 . . . ωN−1

1...

......

...1 ωN−1 ω2

N−1 . . . ωN−1N−1

︸ ︷︷ ︸

≡VN−1

c0

c1...

cN−1

=

f(x0)f(x1)

...f(xn)

≡f0

f1...fn

. (10.59)

• Aufgrund der Struktur der Vandermonde-Matrix ist das Gleichungssystem für dieses Interpo-lationsproblem analytisch lösbar.

1Die zu interpolierende Funktion wird hier aus Konventionsgründen als f bezeichnet.

141

Page 142: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Dazu zeigen wir die Orthonormalität der Basisfunktionen exp(ixj) auf dem Gi�er der Stütz-stellen mit dem Skalarprodukt

〈f | g 〉 ≡ 1

N

N−1∑j=0

f(xj)∗g(xj). (10.60)

Einsetzen der Basisfunktion ergibt

〈exp(ixb) | exp(ixa)〉 =1

N

N−1∑k=0

exp(i2πbk/N)∗ exp(i2πak/N), (10.61)

=1

N

N−1∑k=0

exp(i2πk(a− b)/N), (10.62)

=1

N

N−1∑k=0

qk, q ≡ exp(i2π(a− b)/N). (10.63)

Diese Partialsumme aus der geometrischen Reihe kann analytisch berechnet werden:

N−1∑k=0

qk =1− qN

1− q, (10.64)

y 〈exp(ixb) | exp(ixa)〉 =1

N

1− exp(i2π(a− b)

)1− exp(i2π(a− b)/N)

= δab, da (10.65)

∀a 6= b, a, b ∈ N, exp(i2π(a− b)

)= 1, (10.66)

⇒1− exp

(i2π(a− b)

)1− exp(i2π(a− b)/N)

= 0, a 6= b, (10.67)

lima→b

1

N

1− exp(i2π(a− b)

)1− exp(i2π(a− b)/N)

L’Hospital= lim

a→b

1

N

exp(i2π(a− b)

)N−1 exp(i2π(a− b)/N)

(10.68)

= 1. (10.69)

• Die Koe�izienten cj für die Interpolation sind dann

φN(xk) =N−1∑j=0

cj exp(ixk) =N−1∑j=0

cjωjk

!= f(xk) = fk, k ∈ [0, N − 1], (10.70)

cj =1

N

N−1∑k=0

fkω−jk . (10.71)

Dies zeigt sich leicht durch Einsetzen:

N−1∑j=0

cjωjk =

N−1∑j=0

(1

N

N−1∑k=0

fkω−jk

)ωjl =

1

N

N−1∑k=0

fk

N−1∑j=0

ω−jk ωjl (10.72)

=1

N

N−1∑k=0

fkδklN = fl. (10.73)

142

Page 143: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

10.5.1 Analogie zur Fourier-Transformation• Für ungerade N = 2n+ 1 lässt sich die Interpolation umformen zu

φ2n+1(xk) =2n+1∑j=0

cj exp(ixkj) =n∑

j=−n

cj exp(ixkj). (10.74)

• Dies ist äquivalent zur abgebrochenen Fourier-Reihe

f(x) =n∑

j=−n

f(j) exp(ixj), (10.75)

f(j) =1

2π∫0

f(x) exp(−ixj)dx, (10.76)

wenn das Integral in Gl. (10.76) durch Trapezintegration approximiert wird:

2π∫0

g(x)dx ≈ 2π

N

N−1∑k=0

g(xk), (10.77)

f(j) ≈ 1

N

N−1∑k=0

fk exp(−ixkj) =1

N

N−1∑k=0

exp(−i2πkj/N)fk = cj. (10.78)

• Entsprechend spricht man bei dieser trigonometrischen Interpolation auch von der diskretenFouriertransformation.

10.5.2 Schnelle Fourier-Transformation• Der Aufwand zur Berechnung eines Koe�izienten cj (Gl. (10.71)) ist O(N). Da es N Koe�izi-

enten gibt, skaliert die direkte Implementation mit O(N2). Tatsächlich gibt es einen deutliche�izienteren Algorithmus.

• Sei N = 2n gerade. Dann gilt

fk =N−1∑j=0

cj exp

(i2π

Njk

)Au�eilung in gerade und ungerade Indices: (10.79)

=

N2−1∑

j=0

c2j exp

(i2π

N(2j)k

)+

N2−1∑

j=0

c2j+1 exp

(i2π

N(2j + 1)k

)(10.80)

=

N2−1∑

j=0

c2j exp

(i2π

N/2jk

)+ exp(i2πk/N)

N2−1∑

j=0

c2j+1 exp

(i2π

N/2jk

)(10.81)

= Gk + exp(i2πk/N)Uk. (10.82)

• Gk und Uk sind wieder Fouriertransformationen von Vektoren der Länge N/2.

• Aufgrund der Periodizität der Basisfunktionen gilt

Gk+N/2 = Gk, (10.83)Uk+N/2 = Uk. (10.84)

143

Page 144: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Daher lässt sich schreiben

fk =

{Gk + exp(i2πk/N)Uk , k ∈ [0, N/2),

Gk−N/2 + exp(i2πk/N)Uk−N/2 , k ∈ [N/2, N).(10.85)

• Für den Phasenphaktor gilt:

exp

(i2π

N(k +N/2)

)= exp

(i2πk

N− iπ

)= − exp

(i2πk

N

). (10.86)

• Entsprechend lässt sich für k ∈ [0, N/2) schreiben

fk = Gk + exp(i2πk/N)Uk, (10.87)fk+N/2 = Gk − exp(i2πk/N)Uk. (10.88)

• Für fk+N/2 lassen sich also schon vorher berechnete Ergebnisse wiederverwenden.

• Dies lässt sich für Vektorlängen der Größe N = 2n wiederholen: Der Vektor wird erst halbiertund Gl. (10.87) und (10.88) angewandt. Da Gk und Uk aber wiederum Fouriertransformationensind, kann der selbe Trick noch einmal (rekursiv) angewendet werden usw.

• Damit ergeben sich ansta� der O(N2) nur O(N log2(N)

)Rechenoperationen.

• Aufgrund der Au�eilung in gerade und ungerade Indices liefert der Algorithmus beiin-place-Transformation die Ausgabe nicht in der Reihenfolge von k = 0, . . . , N − 1, sonderndie Werte in der letzten Häl�e kommen zuerst:2

• Diese schnelle Fouriertransformation (ein divide and conquer-Algorithmus) wurde erstmals vonGauß entwickelt und (u. a.) 1965 von Tukey und Cooley wiederentdeckt.

• Es gibt noch viele weitere Varianten der FFT, die auch mit Vektoren, welche nicht die Länge2n haben, zurechtkommen. Beispielsweise gibt es eine Verallgemeinerung, sodass LängenN = 2a3b5c, a, b, c ∈ N möglich sind.

2https://en.wikipedia.org/wiki/File:DIT-FFT-butterfly.png

144

Page 145: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

10.6 Mehrdimensionale Interpolation• Reguläres, D-dimensionales Gi�er aufgrund der exponentiellen Skalierung nur für bis zu

dreidimensionale Probleme möglich.

• Dafür wurden spezielle Methoden wie Triangulierung (in 2D) entwickelt.

• Hier kurz behandelt: Interpolation von verstreuten Punkten im Mehrdimensionalen (keineexponentielle Skalierung).

10.6.1 Interpolation mit radialen Basisfunktionen• Approximative Annahme: Jeder Stützpunkt

(xi, y(xi)

)„beinflusst“ seine lokale Umgebung

unabhängig von der Richtung.

• Der Funktionswert in der Umgebung vom Stüzpunkt hängt dann nur vom radialen Abstand‖x− xi‖2 ab.

• Dementsprechend lautet der Interpolationsansatz

y(x) =n−1∑i=0

ωiφ(‖x− xi‖2) (10.89)

bei gegebener 1D(!) Basisfunktion φ und zu bestimmenden Wichtungen ωi.

• Ermi�lung der Wichtung durch Einsetzten der Interpolationsbedingung

y(xj)!

=n−1∑i=0

ωiφ(‖xj − xi‖2), j ∈ [0, n− 1]. (10.90)

Dies führt zu einem linearen Gleichungssystem. Lösung dieses Systems skaliert also kubisch(!)mit der Zahl der Punkte.

• Diese Art kann also nur für wenige Punkte bis zu n ∼ 104 noch vernün�ig verwendet werden.

• Weitere Variante: Normierte Basisfunktion:

y(x) =

∑n−1i=0 ωiφ(‖x− xi‖2)∑n−1i=0 φ(‖x− xi‖2)

, (10.91)

⇔ y(x)n−1∑i=0

φ(‖x− xi‖2) =n−1∑i=0

ωiφ(‖x− xi‖2). (10.92)

• Viele Basisfunktionen φ sind möglich. Am Häufigsten verwendet:

– Multiquadratische Funktion:φ(r) =√r2 + r2

0 mit Skalierungsparameter r0 (sollte größersein als der typische Abstand zwischen zwei Stützstellen).

– Genauso möglich: Inverse multiquadratische Funktion φ(r) = 1√r2+r20

.

145

Page 146: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

10.6.2 Shepard Interpolation/Inverse Distanzwichtung• Nehme normierte, radiale Basisfunktionen (Gl. (10.91)) und φ(r) sodass φ mit r > 0 monoton

abnimmt und für r → 0 gegen Unendlich geht.

• Dann ergibt die Interpolationsbedingung

y(xj)!

= limx→xj

∑n−1i=0 ωiφ(‖x− xi‖2)∑n−1i=0 φ(‖x− xi‖2)

= limx→xj

ωjφ(‖x− xj‖2)

φ(‖x− xj‖2)= ωj. (10.93)

• Die Wichtungen ωj sind also die Funktionswerte:

y(x) =

{∑n−1i=0 y(xi)φ(‖x−xi‖2)∑n−1i=0 φ(‖x−xi‖2)

,∀j ∈ [0, n− 1],x 6= xj,

y(xj) ,x = xj.(10.94)

• Diese Methode erfordert kein Lösen eines Gleichungssystems und der Aufwand skaliert linearmit der Zahl der Stützstellen, allerdings weniger genau als normale Interpolation per radialerBasisfunktion.

• O�mals verwendete Basisfunktion: φ(r) = r−p, mit p als reelle Zahl zwischen 1 und 3.

• Verbesserung möglich, indem für die Wichtung, ωi, anstelle der Funktionswerte y(xi) eineTaylorentwicklung (bis zur 2. Ordnung) verwendet wird.3 Die Wichtung ist dann (wie die radialeBasisfunktion) abhängig vom Abstand zur Stützstelle. Diese Art der Shepard-Interpolation istdann letztlich eine gewichtete Mi�elung von Taylorreihen an den Stützstellen.

• Großer Vorteil: Zusätzliche Stützstellen können ohne zusätzlichen Aufwand hinzugenommenwerden.

3Genauer: Taylorentwicklung in reziproken Längen (1/x), siehe J. Ischtwan, M. A. Collins, J. Chem. Phys., 100, 8080(1994).

146

Page 147: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

11 Ausgleichungsrechnung• Gegeben: N Datenpunkte (xi, yi), i = 1, . . . , N , o�mals mit Fehlern beha�et.

• (möglichst sinnvolles) Modell: y(x) = y(x; a1, a2, . . . , aM) mit M anzupassenden Parametern.

• Gesucht : Parameter ai, quantifizierbares Maß für Güte des Ausgleichs.

• Nomenklatur: yi ist ein Datenpunkt, y(xi) der entsprechende Wert der Modellfunktion.

• Normalerweise ist N �M .

• Generell gilt: Der Ausgleich kann bei Datenpunkten mit Fehlern nie perfekt sein.

• Daher Unterschied zur Interpolation: Die Modellfunktion y(x) geht nicht durch die Daten-punkte. Sta�dessen versucht man, die quadrierte Di�erenz [y(xi)− yi]2 unter Beachtung desFehlers von yi zu minimieren: Methode der kleinsten �adrate, least squares fi�ing.

• Interpolation ist aufgrund der Fehler der Datenpunkte und aufgrund der mehr oder wenigerguten Modellfunktion auch nicht sinnvoll:

• Für spezielle Modellfunktionen gibt es optimierte Verfahren:

– Linear: y(x) = a1x+ a2

– Polynomial: y(x) =∑N

i=0 aixi

– Rational: y(x) =(∑N

j=0 ajxj)/(∑N

i=0 aixi)

– Gauß-Funktion: y(x) =∑N

i=1 ai exp

[−(x−x0iσi

)2]

– . . .

• Für hochdimensionale Probleme sehr viel aktuelle Forschung (Neuronale Netzwerke, MachineLearning, . . . ).

147

Page 148: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

11.1 Hintergrund: Statistik• Naheliegende Frage (A): „Wie wahrscheinlich ist es, dass ein Parametersatz {ai}Ni=1 korrekt

ist?“ ist strenggenommen sinnlos, denn:

– nicht nur die Parameter, auch das Modell kann falsch sein;

– es gibt nur einen wahren funktionalen Zusammenhang mit einem Parametersatz; beidesind prinzipiell unbekannt.

• Besser ist die umgedrehte Frage (B): „Gegeben sei ein Modell und ein Parametersatz. Wiewahrscheinlich ist dann der vorliegende Datensatz?“

• Mögliche Antworten darauf erlauben Folgerungen:

– (sehr) wahrscheinlich: Parametersatz o.k., Modell (evtl.) auch;

– (sehr) unwahrscheinlich: wenn keine vernün�igen Parameter gefunden werden können,ist das Modell zu verbessern.

• Definition Fit: Maximiert die obige Wahrscheinlichkeit (B).

• Annahmen: Die Fehler an jedem Messpunkt seien

– zufällig (nicht systematisch),

– unabhängig,

– normalverteilt (Gauß-verteilt)1, mit Standardabweichung σi.

• Dann ist die zu maximierende Gesamtwahrscheinlichkeit P (Daten |Modell) für diesen Da-tensatz das Produkt aus den Einzelwahrscheinlichkeiten:

P (Daten |Modell) =N∏i=1

{exp

[−1

2

(yi − y(xi; a1, . . . , aM)

σi

)2]

∆y

}. (11.1)

Dabei müssen wir für jeden Messpunkt eine (feste) Abweichungsbreite ∆y zulassen, weil esbeliebig unwahrscheinlich ist, dass alle Datenpunkte mathematisch exakt auf der Modellkurveliegen (P = 0 für ∆y = 0).

• Erinnerung: P (A |B ) ist die bedingte Wahrscheinlichkeit, dass Ereignis A eintri�, unter derBedingung, dass das Ereignis B schon eingetreten ist.

• Erinnerung: Die Standardabweichung σi ist ein Maß für die Breite der Gaußkurve an jedemMesspunkt i, nach folgenden Faustregeln1: 68% aller Datenpunkte sind im Intervall ±σi, 95%in ±2σi, 99.7% in ±3σi, usw.

1Nur korrekt im Limit sehr großer Zahlen; typische Meßpunkte sind eher Poisson-verteilt = höhere Wahrscheinlichkeitfür größere „Ausreißer“.

148

Page 149: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

11.1.1 χ2-Statistik• Maximierung von P ist äquivalent zu Minimierung des negativen Logarithmus von P :

1

2

N∑i=1

(yi − y(xi; a1, . . . , aM)

σi

)2

−N log ∆y︸ ︷︷ ︸const.

. (11.2)

• Weglassen der konstanten Terme liefert die neue Größe

χ2 =N∑i=1

(yi − y(xi; a1, . . . , aM)

σi

)2

. (11.3)

• Mit σi = const. ist Minimierung von χ2 äquivalent zur Minimierung der Fehlerquadratsumme(least squares fit).

• χ2 ist auch wieder eine Wahrscheinlichkeitsverteilung und beschreibt die Verteilung derSumme von ν quadrierten, unabhängigen Zufallsvariablen. Die Dichte der Verteilung siehtwie folgt aus2

• Hier ist ν die Zahl der Freiheitsgrade (N −M ).

• Für diese funktionale Form lässt sich analytisch die Wahrscheinlichkeit Q dafür berechnen,dass χ2 größer als der aus dem Fit resultierende χ2-Wert ist:

Q(χ2∣∣ ν ) = QΓ

2,χ2

2

). (11.4)

Dabei ist QΓ(a, x) die unvollständige Γ-Funktion:

QΓ(a, x) = 1− PΓ(a, x) =Γ(a, x)

Γ(a)=

1

Γ(a)

∞∫x

e−tta−1dt, (11.5)

wobei die vollständige Γ-Funktion gegeben ist durch

Γ(a) =

∞∫0

e−tta−1dt. (11.6)

(Für a ∈ N0 gilt Γ(a) = (a− 1)! (Fakultät).)2https://de.wikipedia.org/wiki/Datei:Chi-square_pdf.svg

149

Page 150: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Bei einem akzeptablen Fit gilt χ2 ≈ ν. Vorsicht: χ2 � ν bedeutet meistens over-fi�ing:Die Fehler der Daten wurden entweder überschätzt, oder das Modell beinhaltet zu vieleVariablen, sodass das Rauschen der Daten (noise) mitbeschrieben wird.

• Wenn Q groß ist, dann ist die Wahrscheinlichkeit, ein größeres χ2 zu finden, groß (Definitionvon Q). Da χ2 möglichst klein sein soll, soll entsprechend Q möglichst groß sein.

• Q-Werte liefern daher ein quantitatives Maß für die Fit-Güte. Faustregeln:

– Q < 0.001: Modell falsch?

– Q & 0.001 Fit evtl. akzeptabel, oder σi unterschätzt, oder Abweichungen nicht Gauß-verteilt (unsichere Folgerung, da das hier vorausgesetzt wurde)

– Q & 0.1: Fit vermutlich o.k.

– Q - 1: Fehler überschätzt, oder Betrug.

Abschätzung der Standardabweichung

• Die Standardabweichung σ ist o�mals nicht bekannt und wird o� nachträglich abgeschätzt:

– Setze σi = σ (also gleich für alle Meßpunkte).

– Führe die Regression durch.

– Berechne σ2 =∑N

i=1[yi − y(xi)]2/N .

• Dabei sollte man jedoch beachten, daß

– Dieses σ nur dann sinnvoll ist, wenn der Fit in Ordnung ist;

– Dann χ2 nicht mehr unabhängig von diesem σ als Fit-Gütemaß verwendet werden kann.

Durchführung der Minimierung

• Minimierung von χ2 erfolgt in der üblichen Weise:

Setze die 1. Ableitung von χ2 nach den Parametern ak, k = 1, 2, . . . ,M , gleich Null. Wirerhalten (Ke�enregel):

0 =N∑i=1

(yi − y(xi; a1, . . . , aM)

σ2i

)(∂y(xi; a1, . . . , aM)

∂ak

), für k = 1, 2, . . . ,M. (11.7)

• Das sind M Gleichungen für die M unbekannten ak-Werte.

• Je nach der Art des Modells y(x) = y(x; a1, a2, . . . , aM) können diese Gleichungen sein

– nicht-linear

– linear.

150

Page 151: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

11.2 Allgemeine lineare Regression• Wir können sehr viele Modellfunktionen y(x) als Linearkombination geeigneter Basisfunktio-

nen Xk(x) darstellen:

y(x) =N∑k=1

akXk(x). (11.8)

• Xk kann beliebig nichtlinear in x sein.

11.2.1 Ausgleichsgeraden• Die Ermi�lung einer Ausgleichsgerade ist der einfachste, nich�riviale Spezialfall von Gl. (11.8):

y(x) = a0 + a1x = a+ bx. (11.9)

• Einsetzen in χ2 (Gl. (11.3)) liefert

χ2(a, b) =N∑i=1

(yi − a− bxi

σi

)2

. (11.10)

• Erinnerung: χ2 ist nur dann sinnvoll, wenn die Fehler normalverteilt sind! Wertepaare mitvielen „Ausreißern“ können mit den hier behandelten Methoden nicht sinnvoll angepasstwerden. Für spezielle Methoden dafür, siehe Numerical Recipes.

• Minimierung von χ2 über Nullsetzen der Ableitung mit Definition von sinnvollen Abkürzungen:

∂χ2

∂a!

= 0 = −2N∑i=1

yi − a− bxiσ2i

, (11.11)

∂χ2

∂b!

= 0 = −2N∑i=1

xi(yi − a− bxi)σ2i

, (11.12)

S ≡N∑i=1

σ−2i , Sx ≡

N∑i=1

xiσ−2i , Sy ≡

N∑i=1

yiσ−2i , (11.13)

Sxx ≡N∑i=1

x2iσ−2i , Sxy ≡

N∑i=1

xiyiσ−2i , (11.14)

⇒ Sy = aS + bSx, (11.15)Sxy = aSx + bSxx. (11.16)

• Damit ergibt sich die Lösung

∆ ≡ SSxx − (Sx)2, (11.17)

a =SxxSy − SxSxy

∆, (11.18)

b =SSxy − SxSy

∆. (11.19)

151

Page 152: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Gaußsche Fehlerfortpflanzung liefert für die Varianz in a und b

σ2f =

N∑i=1

σ2i

(∂f

∂yi

)2

, (11.20)

∂a

∂yi=Sxx − Sxxi

σ2i ∆

, (11.21)

∂b

∂yi=Sxi − Sxσ2i ∆

, (11.22)

⇒ σ2a =

Sxx∆, σ2

b =S

∆. (11.23)

• Die Kovarianz ergibt sich als

Cov(a, b) = −Sx∆. (11.24)

(Die Kovarianz beschreibt den Zusammenhang zwischen zwei Zufallsvariablen mit gemein-samer Wahrscheinlichkeitsverteilung. Positiver Wert heißt, dass große a-Werte mit großenb-Werten einhergehen. Negative Kovarianz heißt, dass große a-Werte mit kleinen b-Werteneinhergehen. Ist die Kovarianz ungefähr null, so besteht kein monotoner Zusammenhangzwischen a und b.)

• Speziell für Ausgleichsgeraden: Der empirische lineare Korrelationskoe�izient ist

rab =−Sx√SSxx

. (11.25)

Dieser beschreibt, wie gut die Korrelation zwischen den Datenpaaren durch ein lineares Modellbeschrieben werden kann. rab = ±1 heißt perfekte lineare Korrelation (positive/negativeSteigung).

• Hier besser ist das Bestimmtheitsmaß r2ab = R2, Dies definiert den Anteil der Variation

der Variablen, der durch die lineare Regression erklärt werden kann. Für R2 = 1 bestehtein perfekter linearer Zusammenhang. Für R2 = 0 besteht überhaupt gar kein linearerZusammenhang.

• Q ergibt sich aus der allgemeinen Formel, Gl. (11.4): Erst Berechnung von χ2, anschließend ein-setzen in die Formel fürQ. ν ist hier dannN−2 (Zahl der Freiheitsgrade; eine Ausgleichgeradehat zwei Parameter).

• Achtung: Die hier gezeigten Formeln sind schlecht konditioniert (Rundungsfehler). Der Voll-ständigkeit halber hier eine numerisch robustere Vorgehensweise:

ti = σ−1i

(xi −

SxS

), i ∈ [1, N ], Stt =

N∑i=1

t2i , (11.26)

b =1

Stt

N∑i=1

tiyiσi, a =

Sy − SxbS

, (11.27)

σ2a =

1

S

(1 +

S2x

SStt

), σ2

b =1

Stt, (11.28)

Cov(a, b) = − SxSStt

, rab =Cov(a, b)

σaσb. (11.29)

• Falls xi auch mit Fehlern beha�et ist: Siehe Numerical Recipes.

152

Page 153: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Überführung auf Geraden

• Es können viele einfache Formeln durch geeignete Variablentransformation auf eine lineareForm überführt werden. Klassisches Beispiel: Exponentialfunktion

y(x; a, b) = a exp(−bx), (11.30)log(y) ≡ Y = log(a)− bx = c− bx. (11.31)

Logarithmieren der y-Werte (Transformation nach Y ) ergibt also einen linearen Zusammen-hang.

• Achtung: Die Fehlerverteilung kann sich dadurch ändern! (Nicht mehr normalverteilt).

• Anbei einige mögliche Transformationen:3

Empirische Formel Linearisierte Form Transformation

y = ax+ by = axb Y = α + bX, X = log(x), Y = log(y), α = log(a)y = abx Y = α + βx, Y = log(y), α = log(a), β = log(b)y = a+ b

xY = ax+ b, Y = xy

y = 1ax+b

Y = ax+ b, Y = 1y

y = xax+b

Y = ax+ b, Y = xy

y = a log(x) + b y = aX + b, X = log(x)

3Siehe Hermann und Demidovich, Maron, Shuvalova, Numerische Methoden der Analysis, VEB, Berlin 1968.

153

Page 154: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

11.2.2 Allgemeiner Fall• Einsetzen des allgemeinen linearen Modells Gl. (11.8) in das Gleichungssystem Gl. (11.7) zur

Minimierung von χ2 liefert M lineare Gleichungen:

0 =N∑i=1

1

σ2i

[yi −

M∑j=1

ajXj(xi)

]Xk(xi), k = 1, . . . ,M. (11.32)

Diese lassen sich umschreiben zu den sogenannten Normalgleichungen:

M∑j=1

(N∑i=1

1

σ2i

Xj(xi)Xk(xi)

)aj =

N∑i=1

1

σ2i

yiXk(xi). (11.33)

Diese Gleichungen lassen sich zu einer Matrix-Vektor-Gleichung zusammenfassen:

Aij =1

σiXj(xi) , bi =

yiσi, (11.34)

αjk =N∑i=1

1

σ2i

Xj(xi)Xk(xi) = ααα = ATA, (11.35)

βk =N∑i=1

1

σ2i

yiXk(xi) = βββ = ATb, (11.36)

⇒(ATA

)a = AT b ⇔ ααα× a = βββ. (11.37)

• Üblicherweise ist N �M . Dann sind:

– A eine Rechtecksmatrix („design matrix“) mit N Zeilen und M Spalten;

– ααα = AT ×A eine M ×M -Matrix;

– βββ = AT b ein Vektor mit M Komponenten;

– a, b Vektoren mit M Komponenten.

• Lösung des Gleichungssystem (11.37) liefert also einen Parametersatz {ak}Nk=1, der das χ2-Maßminimiert.

• Der resultierende χ2-Wert läßt sich nach der Lösung der Normalgleichungen direkt aus seinerDefinition Gl. (11.3) berechnen, da nach Lösung des Gleichungssystems die Parameter ak unddamit die Modellfunktion y(x) nach Gl. (11.8) bekannt sind.

• Alternativ dazu kann man auch nachträglich Standardabweichungen der einzelnen Parameteraus den Diagonalelementen der Inversen der Matrix ααα bestimmen (Rechnung analog zurHerleitung von σ für die Ausgleichsgerade, Gl. (11.23)):

σ2(aj) =(ααα−1

)jj. (11.38)

• Die Kovarianzen sind entsprechend die Außerdiagonalelemente von ααα−1.

• Da N �M ist o�mals das Aufstellen von A und Berechnen von ααα aufwendiger als Lösen derNormalengleichung.

• ααα ist normalerweise symmetrisch, positiv definit. Daher Lösung per Cholesky-Zerlegungmöglich. Allerdings:

154

Page 155: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

Lösung per Singulärwertzerlegung

• Problem: O� reichen die Trends in den Daten nicht aus, um zwischen eigentlich verschiedenenBasisfunktionen zu unterscheiden. Dann wird die Matrix ααα singulär.

y Besser: Verwendung von Singulärwertzerlegung (Abschni� 9.7). Dies ist deutlich robuster undfunktioniert „immer“.

• Die Minimierung in χ2 kann auch als

mina‖A× a− b‖2

2 = minaχ2 (11.39)

formuliert werden, was zum Gleichungssystem

Aa = b (11.40)

führt. (Vergleiche mit Gl. (10.6) bei der Interpolation!)

• Dieses Gleichungssystem ist hier allerdings überbestimmt und kann so nicht direkt gelöstwerden.

• Multiplikation mit AT ergibt dann die Normalengleichung (11.37)

ATAa = ATb⇒ a = (ATA)−1ATb = ααα−1ATb = ααα−1βββ. (11.41)

• Dies führt zur Definition der (linken) Pseudoinversen

A+ = (AAT )−1AT . (11.42)

(Erinnerung: A ist rechteckig und kann nicht direkt invertiert werden).

• A+ kann im Falle von Singularitäten in AAT über die Singulärwertzerlegung berechnetwerden:

A+ = Vdiag(σσσ)+UT . (11.43)

• Das Pseudoinverse der Diagonalmatrix σσσ ergibt sich durch durch Ersetzung der nichtver-schwindenden Elemente σi (also nicht Null) in σσσ durch ihren reziproken Wert.

• Varianz und Kovarianz sind dann

σ2(aj) =M∑i=1

(Vjiσi

)2

, (11.44)

Cov(aj, ak) =M∑i=1

VjiVkiσ2i

, (11.45)

wobei nur über die nichtverschwindenden Einträge (σi 6= 0) summiert wird.

• Alternative zur SVD: QR-Zerlegung von ααα. Vorteil davon: ααα ist kleiner at A

155

Page 156: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

11.3 Nichtlineare Regression• y(x; a1, . . . , aM) hängt nicht linear von seinen Parametern ai ab. Die funktionale Form von y

ist komple� frei (dem Nutzer überlassen).

• Vorsicht bei Scheinparametern! Das Modell

y(x) = a exp(−bx+ d) (11.46)

mit (scheinbar) drei Parametern (a, b, d) enthält tatsächlich nur zwei (b, c):

y(x) = a exp(−bx+ d) = a exp(d) exp(−bx) = c exp(−bx). (11.47)

Versucht man trotzdem, das Modell in der ursprünglichen Form mit drei Parametern zu fi�en,wird das resultierende Gleichungssystem exakt singulär und einfache Verfahren versagen(nicht jedoch SVD).

• Wiederum wird eine Fehlerquadratsumme χ2 minimiert, aber Ausgangspunkt und Strategiesind i. A. etwas anders als bei linearer Regression:

– Das Modell, y(x, a1, . . . , aM), kann beliebig allgemein sein und nichtlinear von seinenParametern ai abhängen.

– Im Gegensatz zur einzigen, eindeutigen Lösung bei der linearen Regression (M Glei-chungen für M Unbekannte) gibt es hier einen wesentlich komplizierteren funktionalenVerlauf von χ2 und eine Vielzahl möglicher Lösungen. Daher

∗ braucht man ein iteratives Verfahren (basierend auf einem einfachen, approximativenModell an den komplizierten χ2-Verlauf),

∗ ist es nicht möglich, in einem Schri� die „richtige“ (welche?) Lösung zu finden,

∗ ist eine gefundene Lösung evtl. weder die beste noch die eigentlich gesuchte; ver-schiedene Startpunkte der Iteration liefern evtl. verschiedene Lösungen.

• Daher: Vorgang analog zu Abschni� 6.4: Die Approximation einer beliebigen mehrdimensio-nalen Funktion f(a) an der Stelle a = (a1, a2, . . . , an)T geschieht mit einer Taylorreihe umeinen Entwicklungspunkt a0 (hier zur Vereinfachung a0 = 0):

f(a) =f(a0) +∑i

∂f

∂ai

∣∣∣∣a0i

ai +1

2

∑i,j

∂2f

∂ai∂aj

∣∣∣∣a0ia0j

xixj + · · · (11.48)

=f(a0)− dT × a +1

2xT ×D× aT + · · · (11.49)

mit Gradient d = −∇f |a0und Hessescher Matrix D mit Dij = ∂2f

∂ai∂aj

∣∣∣a0

.

• Analog zur Prozedur in Abschni� 6.4 ergibt Abbruch der Reihenentwicklung nach 2. Ordnungdie iterative Formel

ai − am = D−1 ∇f |ai . (11.50)

• Gegeben sei nun eine beliebige Modellfunktion y = y(x, a) mit linearen und/oder nichtlinearenParametern ak, k = 1, 2, . . . ,M .

156

Page 157: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Wie bei der linearen Regression versuchen wir, diese Parameter dadurch zu bestimmen, dasswir das Minimum des Fit-Maßes χ2 suchen, gegenüber N gegebenen Datenpunkten (xi, yi),i = 1, 2, . . . , N :

χ2(a) =N∑i=1

(yi − y(xi, a)

σi

)2

(11.51)

• Diese im Praxisfall vermutlich komplizierte Funktion approximieren wir wie oben mit einernach dem quadratischen Term abgebrochenen Taylorreihe:

χ2(a) ≈ γ − dTa +1

2aTDa. (11.52)

• Wichtig: Im Gegensatz zu dem Normalfall einer mehrdimensionalen Minimierung ist hier dieHesse-Matrix bekannt.

• Wenn die quadratische Approximation also vernün�ig ist, ergibt sich, ausgehend von einemStartvektor a0, iterativ die bessere Lösung

aj = ai −D−1 ∇χ2∣∣ai. (11.53)

• Diese Näherung muss aber nicht notwendigerweise gut sein! In diesem Fall ist ein kleinersteepest-descent-artiger Schri� besser:

aj = ai − const. · ∇χ2∣∣ai. (11.54)

• Nur Anwendung von Gl. (11.53) (Newton-Verfahren) sollte in der Praxis so nicht angewendetwerden, da es nur in der Nähe von Minima wie gewünscht funktioniert. An anderen Stellenergibt sich i. A. keinerlei Konvergenz zu einem Minimum.

• Auch wenn wir das Modell y(x, a) überhaupt nicht näher spezifizieren, können wir dennochaufgrund der allgemeinen Form von χ2 nach Gl. (11.51) den Gradienten und die Hesse-Matrixangeben, vorausgesetzt, wir kennen auch die Ableitungen von y(x, a) nach a.

• Für den Gradienten ergibt sich

∂χ2

∂ak= −2

N∑i=1

yi − y(xi, a)

σ2i

∂y(xi, a)

∂ak, k = 1, 2, . . . ,M, (11.55)

und für die Elemente der Hesseschen Matrix (Produktregel):

∂2χ2

∂ak∂a`= 2

N∑i=1

1

σ2i

(∂y(xi, a)

∂ak

∂y(xi, a)

∂a`− [yi − y(xi, a)]

∂2y(xi, a)

∂ak∂a`

). (11.56)

• Da wir ohnehin nur approximativ-iterativ rechnen, können wir es uns hier leisten, den zweitenTerm gegenüber dem ersten zu vernachlässigen, was auch deshalb berechtigt ist, weil er den(vermutlich kleinen) Faktor (yi− y(xi, a)) enthält, der nicht mit dem Modell korreliert und beider Summenbildung zur Kompensation tendiert. Einbeziehung des Terms führt daher o�malszu schlechteren Konvergenz.

• Wichtig: Da der Gradient nicht geändert wird, führen Variationen an der Hesse-Matrix dennochzum (lokalen) Minimum.

157

Page 158: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Mit dieser „Näherung“ und mit den Abkürzungen

δak = ak,neu − ak,alt, (11.57)

βk = −1

2

∂χ2

∂ak, (11.58)

αk` =1

2

∂2χ2

∂ak∂a`=

N∑i=1

1

σ2i

[∂y(xi, a)

∂ak· ∂y(xi, a)

∂a`

](11.59)

wird aus Gl. (11.53) für den Newton-artigen Schri�:

M∑`=1

αk` δa` = βk , k = 1, 2, . . . ,M (11.60)

• Dies ist eine lineare Matrix-Vektor-Gleichung

ααα δa = βββ. (11.61)

• Gleichzeitig wird aus Gl. (11.54) für den steepest-descent-Schri�

δa` = const. · β`. (11.62)

• Für die Regression wird also sowohl die Modellfunktion nebst Gradienten in a als auch dieJacobi-Matrix der Modellfunktion benötigt.

11.3.1 Levenberg-Marquardt-Methode• Wir wissen qualitativ, wann wir Newton-Schri�e und wann wir steepest-descent-Schri�e

machen sollten.

• Dies würden wir jedoch gerne automatisiert entscheiden lassen und dabei eine Art „fließendenÜbergang“ zwischen beiden Schri�-Typen konstruieren.

• Es zeigt sich, daß wir zu diesem Zweck die noch freie Konstante in Gl. (11.62) ausnutzenkönnen.

• Setzen wir für diese Konstante (diagonale Approximation der Hesse-Matrix)

const. =1

λα``(11.63)

mit einem adjustierbaren Parameter λ an, wird dadurch aus Gl. (11.62)

λα`` δa` = β`. (11.64)

• Dadurch können wir diese modifizierte Gleichung für den steepest-descent-Schri� „auf dieDiagonale“ der Matrixgleichung Gl. (11.61) für den Newton-Schri� bringen, indem wir eineneue Matrix ααα′ definieren, mit den Elementen

α′jk = αjk, für j 6= k, (11.65)α′jj = αjj(1 + λ). (11.66)

158

Page 159: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Dadurch können wir beide Schri�-Typen in einem einzigen linearen Gleichungssystem vereini-gen:

ααα′δa = βββ. (11.67)

• Wenn dabei der adjustierbare Parameter λ groß wird, wird die Matrix ααα′ diagonal dominantund wir führen steepest-descent-Schri�e aus.

• Für λ→ 0, geht ααα′ gegen die unmodifizierte Matrix ααα und wir machen Newton-Schri�e.

Algorithmus:

• Die grobe Programmstruktur für den Levenberg-Marquardt-Algorithmus sieht folgendermaßenaus:

– Rate einen Satz von Parametern a (Startpunkt).

– Berechne das zugehörige χ2(a).

– Rate einen Startwert für λ (z.B. λ = 0.001).

∗ Stelle die Matrix und den Rechte-Seiten-Vektor für das Gleichungssystem Gl. (11.67) auf.

– Löse dieses Gleichungssystem;die Lösung ist der Schri�vektor δa.

– Berechne χ2(a + δa).

– Wenn χ2(a + δa) ≥ χ2(a), dann war der Schri� schlecht und wird verworfen;vergrößere λ (z.B. Multiplikation mit 10) und gehe zurück zu ∗.

– Anderenfalls war der Schri� in Ordnung und wird akzeptiert (d.h. wir setzen a = a+ δa);für den nächsten Schri� probieren wir eine Verringerung von λ (z.B. Division durch 10)und gehen zu ∗.

• Die Konstruktion der Matrix und des Rechte-Seiten-Vektors ist sehr ähnlich zum Fall derlinearen Regression.

• Das Verhalten des Algorithmus in dieser Form ist allerdings in der Praxis nicht unkritisch:Große λ-Werte garantieren, dassααα′ positiv definit ist (was im Minimum der Fall sein sollte) undnicht singulär wird, bedeuten aber auch kleine steepest-descent-Schri�chen – und umgekehrt.

• Daher gilt auch hier, dass gegebenenfalls Singulärwertzerlegung verwendet werden sollte.

• Professionelle Implementationen haben noch ra�iniertere Stabilisierungsmethoden.

• Die Iteration sollte beendet werden, wenn folgendes eintri�:

δχ2 = |χ2(a + δa)− χ2(a)| < 0.1 (absolut), (11.68)

oderδχ2

χ2< 10−3 (relativ). (11.69)

• Ein lediglich steigendes χ2 ist kein Grund zum Abbruch, da diese Situation in den folgendenIterationsschri�en in der Regel von λ-Änderungen ( = Schri�-Typ-Änderungen) abgefangenwird.

159

Page 160: Uni Kielravel.pctc.uni-kiel.de/scripts/numerics_WS1516/numerik.pdf · Prof. Dr. Bernd Hartke, hartke@pctc.uni-kiel.de Henrik R. Larsson, larsson@pctc.uni-kiel.de Inhaltsverzeichnis

Prof. Dr. Bernd Hartke, [email protected] Henrik R. Larsson, [email protected]

• Nach Konvergenz ergibt sich die Covarianz-Matrix wie bei der linearen Regression durch(λ = 0!)

C = ααα−1. (11.70)

• Die Optimierung sollte immer mit verschiedenen Startparametern a durchgeführt werden.Je nach Modell und Parametersatz ist die Regression sehr schwer und es gibt viele mögli-che Lösungen. Durch Variation der Startparameter lässt sich auch die Empfindlichkeit derFitparameter ai abschätzen.

• Wichtig: Das Verfahren kann auch scheitern! (Keine Konvergenz.)

160