Computational Physics

Ähnliche Dokumente
2.5.2 Selbstorganisierte Karten: das Modell von Kohonen. Weil es beim Perzeptron keine Wechselwirkung in der Verarbeitungsschicht

Wir untersuchen die Bewegungsleichung des mathematischen (gedämpften) Fadenpendels in einer Dimension. = 0, ϕ (0)

6 Symmetrische Matrizen und quadratische Formen

Lösungen zum 9. Übungsblatt zur Vorlesung Höhere Mathematik II für biw/ciw/mach/mage/vt

Technische Universität München Zentrum Mathematik. Übungsblatt 12

Seite 1. sin 2 x dx. b) Berechnen Sie das Integral. e (t s)2 ds. (Nur Leibniz-Formel) c) Differenzieren Sie die Funktion f(t) = t. d dx ln(x + x3 ) dx

Lösungsvorschlag zur Modulprüfung Numerische Methoden Sommersemester 2016

6 Symmetrische Matrizen und quadratische Formen

Kapitel 11 Eigenwerte und Eigenvektoren

Klausurenkurs zum Staatsexamen (SS 2015): Lineare Algebra und analytische Geometrie 2

Fachbereich Mathematik/Informatik 16. Juni 2012 Prof. Dr. H. Brenner. Mathematik für Anwender II. Testklausur mit Lösungen

Lineare Algebra und Numerische Mathematik für D-BAUG

SYSTEMANALYSE 2 Kapitel 7: Zeitdiskrete Modelle

Lina II - Aufgaben zur Vorbereitung für die Klausur (Teil 1) - Lösungen

Kapitel 16. Aufgaben. Verständnisfragen. Rechenaufgaben

Aufgaben zu Kapitel 16

Kommentierte Musterlösung zur Klausur HM II für Naturwissenschaftler

Lösungen zu Prüfung Lineare Algebra I/II für D-MAVT

9 Eigenwerte und Eigenvektoren

9 Eigenwerte und Eigenvektoren

(d) das zu Grunde liegende Problem gut konditioniert ist.

PROBEPRÜFUNG MATHEMATIK I UND II

Systeme von Differentialgleichungen. Beispiel 1: Chemische Reaktionssysteme. Beispiel 2. System aus n Differentialgleichungen 1. Ordnung: y 1.

P AP 1 = D. A k = P 1 D k P. = D k. mit P 0 3

4.6 Berechnung von Eigenwerten

Systemanalyse und Modellbildung

Prüfung zur Vorlesung Mathematik I/II

Nichtlineare Gleichungssysteme

Nichtlineare Dynamik Einführung

Ergebnis: Allg. Lösung der homogenen DGL ist Summe über alle Eigenlösungen: mit

5 Eigenwerte und die Jordansche Normalform

, r [0, 2], ϕ [0,π/2], ϑ [0,π/6]. x 3. x 2 2 x 2 1. F(x) = x 2 3

AUFGABENSAMMLUNG ZU VEKTORRECHNUNG FÜR USW

Übungen zum Ferienkurs Ferienkurs Lineare Algebra für Physiker WiSe 2017/18 Blatt 3 - Lösung

Mathematische Methoden in der Systembiologie Universität Heidelberg, Sommer 2017

Aufgaben und Lösungen zur Klausur Lineare Algebra im Frühjahr 2009

Wenn man den Kreis mit Radius 1 um (0, 0) beschreiben möchte, dann ist. (x, y) ; x 2 + y 2 = 1 }

Kapitel 1. Vektoren und Matrizen. 1.1 Vektoren

Deterministisches Chaos

Inhalt. Mathematik für Chemiker II Lineare Algebra. Vorlesung im Sommersemester Kurt Frischmuth. Rostock, April Juli 2015

Aufgabe 1. Berechnen Sie die absolute und die relative Kondition des Problems x f(x) für die Abbildung. x = x 2 e x 1.

Übungsblatt

7 Lineare Abbildungen und Skalarprodukt

Mathematik für Physiker, Informatiker und Ingenieure

Übungen zu Lineare Algebra und Geometrie 1

BC 1.2 Mathematik WS 2016/17. BC 1.2 Mathematik Zusammenfassung Kapitel II: Vektoralgebra und lineare Algebra. b 2

Eigenwerte und Diagonalisierung

KLAUSUR zur Numerik I mit Lösungen. Aufgabe 1: (10 Punkte) [ wahr falsch ] 1. Die maximale Ordnung einer s-stufigen Quadraturformel ist s 2.

5 Lineare Algebra (Teil 3): Skalarprodukt

Berechnung der Determinante

Lineare Algebra II 11. Übungsblatt

Fixpunkt-Iterationen

Eigenwerte. Ein Eigenwert einer quadratischen n n Matrix A ist ein Skalar λ C (eine komplexe Zahl) mit der Eigenschaft Ax = λx (1)

Inhaltsverzeichnis. I Lineare Gleichungssysteme und Matrizen 1. Vorwort

Lösung zu Serie [Aufgabe] Faktorisieren Sie die folgenden Polynome so weit wie möglich:

Vorlesung Mathematik für Ingenieure 3 (Wintersemester 2009/10)

1 Singulärwertzerlegung und Pseudoinverse

18 λ 18 + λ 0 A 18I 3 = / Z 2 Z 2 Z Z Z 1

ETH Zürich Analysis I Zwischenprüfung Winter 2014 D-BAUG Musterlösungen Dr. Meike Akveld

a b Q = b a 0 ) existiert ein Element p Q, so dass gilt: q 1 q 2 = 2 b 1 b 2 a 1 b 2 a 2 b 1 a 1 a 2 b 1 b 2 a 1 b 2 a 2 b 1 a b p = 1 det(q) C 2 2,

2 Die Algebra der Matrizen

Kapitel 5. Eigenwerte. Josef Leydold Mathematik für VW WS 2017/18 5 Eigenwerte 1 / 42

Mathematik II Frühjahrssemester 2013

Vorbereitung für die Prüfung Mathematik II für Informatiker

Eigenwerte (Teschl/Teschl 14.2)

Lösungsvorschläge zum 4. Übungsblatt, WS 2012/2013 Höhere Mathematik III für die Fachrichtung Physik

Lösungsskizzen der Klausur zur Linearen Algebra im Herbst 2015

Repetitorium A: Matrizen, Reihenentwicklungen


3.3 Klassifikation quadratischer Formen auf R n

Pr[X t+1 = k] = Pr[X t+1 = k X t = i] Pr[X t = i], also. (q t+1 ) k = p ik (q t ) i, bzw. in Matrixschreibweise. q t+1 = q t P.

5 Numerische Mathematik

Tutorium Mathematik II, M Lösungen

Musterlösung zu den Übungen zur Vorlesung Mathematik für Physiker II. x 2

Ausgewählte Lösungen zu den Übungsblättern 9-10

D-INFK Lineare Algebra HS 2014 Roman Glebov Marc Pollefeys. Serie 13

Übungen zur Theoretischen Physik 2 Lösungen zu Blatt 13

Störungstheorie. Kapitel Motivation. 8.2 Zeitunabhängige Störungstheorie (Rayleigh-Schrödinger) nicht-entartete Störungstheorie

Klausur zur Vorlesung Lineare Algebra II, SoSe 2016,

3. Berechnen Sie auch die Beschleunigung a als Funktion der Zeit t. 4. Erstellen Sie ein SIMULINK Modell, das x(t) numerisch berechnet.

1. Übungsblatt: Lineare Algebra II Abgabe: 8./ in den Übungsgruppen

= 11 ± 5, also k 1 = 3 und k 2 = 8.

Apl. Prof. Dr. N. Knarr Musterlösung , 120min

Musterlösung Donnerstag - Determinanten und Eigenwerte

Serie 13. Analysis D-BAUG Dr. Cornelia Busch FS 2016

8 Extremwerte reellwertiger Funktionen

Lineare Algebra II 8. Übungsblatt

Mathematische Grundlagen für die Vorlesung. Differentialgeometrie

cos(x)cos(2x)cos(4x) cos(2 n x) = sin(2n+1 x) 2 n+1 sin(x) = sin(2n+2 x) 2 n+2 sin(x).

Lineare Algebra: Determinanten und Eigenwerte

y hom (x) = C e p(x) dx

3.6 Eigenwerte und Eigenvektoren

A 1 A 2 A 3 A 4 A 5 A 6 A 7

Satz. Wie wirkt sich ein Basiswechsel auf die Darstellungsmatrix einer linearen Abbildung F : V n V n aus?

5 Eigenwerte, Eigenvektoren und Diagonalisierbarkeit

Basisprüfung, Gruppe A Analysis I/II

Eigenwertprobleme. 25. Oktober Autoren: 1. Herrmann, Hannes ( ) 2. Kraus, Michael ( ) 3. Krückemeier, Paul ( )

Kleine Formelsammlung zu Mathematik für Ingenieure IIA

Eigenwerte und Eigenvektoren

Aufgabe 2 (5 Punkte) y = 1 x. y + 3e 3x+2 x. von f. (ii) Für welches u in R 2 gilt f(u) = [3, 3, 4] T? x 2 + a x 3 x 1 4x 2 + a x 3 2x 4

Transkript:

omputational Physics Physik am omputer Michael Bestehorn 15. Juli 2013

2

Inhaltsverzeichnis 1 Einführung, Beispiel und Literatur 7 1.1 Die typischen drei Schritte des iterativen Approaches......... 7 1.2 Ein erstes Beispiel Logistische Abbildung................ 9 1.2.1 Abbildung.............................. 9 1.2.2 Programm.............................. 10 1.2.3 Differentialgleichung........................ 11 1.2.4 Lyapunov-Exponent........................ 13 1.2.5 Aufgaben.............................. 16 1.3 Literatur................................... 17 2 Abbildungen 19 2.1 Frenkel-Kotorova-Modell.......................... 19 2.1.1 Klassische Formulierung...................... 19 2.1.2 Stationäre Lösungen........................ 20 2.1.3 Standardabbildung......................... 20 2.1.4 Aufgaben.............................. 22 2.2 Affine Abbildungen und Fraktale..................... 22 2.2.1 Sierpinski-Dreieck.......................... 23 2.2.2 Fraktale Dimension........................ 26 2.2.3 Von Farnen und anderen Gewächsen............... 28 2.2.4 Aufgaben.............................. 30 2.3 Neuronale Netze............................... 30 2.3.1 Perzeptron.............................. 31 2.3.2 Selbstorganisierte Karten: das Modell von Kohonen....... 35 2.3.3 Aufgaben.............................. 40 3 Lineare Gleichungssysteme und Matrizen 45 3.1 Reelle Matrizen............................... 45 3.1.1 Eigenwerte und Eigenvektoren................... 45 3.1.2 harakteristisches Polynom.................... 45 3.1.3 Bezeichnungen........................... 46 3.1.4 Normale Matrizen.......................... 46 3.2 Komplexe Matrizen............................. 47 3.2.1 Bezeichungen............................ 47 3.2.2 Die Jordansche Normalform.................... 48 3.3 Inhomogene lineare Gleichungssysteme.................. 49 3.3.1 LR-Zerlegung............................ 51 3

4 INHALTSVERZEIHNIS 3.3.2 Thomas-Algorithmus........................ 60 3.3.3 Beispiel: Methode der kleinsten Quadrate............. 61 3.4 Homogene lineare Gleichungssysteme................... 63 3.4.1 Eigenwertprobleme......................... 63 3.4.2 Problemstellung........................... 65 3.4.3 LR-Faktorisierung......................... 66 3.4.4 QR-Faktorisierung......................... 68 3.4.5 Anwendung: lineare Federkette.................. 68 3.4.6 Anwendung: Nullstellen eines Polynoms.............. 70 3.4.7 Aufgaben.............................. 74 4 Gewöhnliche Differentialgleichungen I 77 4.1 Quasilineare Differentialgleichungen.................... 77 4.2 Beispiel: mathematisches Pendel...................... 78 4.3 Numerische Stabilität des Euler-Verfahrens................ 82 4.4 Implizite und explizite Verfahren..................... 84 4.5 Verfahren höherer Ordnung........................ 84 4.5.1 Verfahren von Heun........................ 85 4.5.2 Aufgabe............................... 87 4.5.3 Runge-Kutta-Verfahren....................... 88 4.5.4 RK4 mit adaptiver Schrittweite.................. 93 4.6 Anwendung: Kepler-Problem........................ 97 4.6.1 Geschlossene Planetenbahnen................... 97 4.6.2 Quasiperiodische Planetenbahnen, Periheldrehung........ 99 4.6.3 Mehrere Planeten: Ist unser Sonnensystem stabil?........ 100 4.6.4 Aufgaben.............................. 102 4.7 haos.................................... 103 4.7.1 Harmonisch angetriebenes Pendel................. 103 4.7.2 Poincaré-Schnitt und Bifurkationsdiagramm........... 105 4.7.3 Lyapunov-Exponenten....................... 105 4.7.4 Lyapunov-Exponenten höherer Ordnung............. 111 4.7.5 Numerische Berechnung aller Lyapunov-Exponenten....... 112 4.7.6 Beispiel angetriebenes Pendel................... 113 4.7.7 Lyapunov-Zeit............................ 114 4.7.8 Fraktale Dimension......................... 119 4.7.9 Aufgaben.............................. 124 4.8 DGLs mit periodischen Koeffizienten................... 126 4.8.1 Floquet-Theorem.......................... 126 4.8.2 Stabilität von Grenzzyklen..................... 127 4.8.3 Parametrische Instabilität: Pendel mit oszillierendem Aufhängepunkt................................ 128 4.8.4 Mathieu-Gleichung......................... 130 4.8.5 Aufgaben.............................. 133 5 Gewöhnliche Differentialgleichungen II 135 5.1 Vorbemerkungen.............................. 135 5.2 Beispiel schiefer Wurf........................... 136

INHALTSVERZEIHNIS 5 5.3 Finite Differenzen.............................. 137 5.3.1 Diskretisierung........................... 137 5.3.2 Beispiel Schrödinger-Gleichung.................. 140 5.4 Methode der gewichteten Residuen.................... 146 5.4.1 Verschiedene Verfahren....................... 146 5.4.2 Beispiel Stark-Effekt........................ 148 5.5 Nichtlineare Randwertprobleme...................... 150 5.5.1 Nichtlineare Systeme........................ 150 5.5.2 Newton-Raphson.......................... 150 5.5.3 Beispiel: nichtlineare Schrödinger-Gleichung........... 152 5.6 Schießverfahren............................... 157 5.6.1 Beispiel: senkrechter Fall mit quadratischer Reibung....... 159 5.6.2 Gleichungssysteme......................... 163 5.6.3 Programm.............................. 164 5.6.4 Aufgaben.............................. 169 6 Vortragsaufgaben 173 6.1 Drei Massepunkte.............................. 174 6.2 Dreikörperproblem............................. 175 6.3 Doppelpendel................................ 176 6.4 Gedämpftes angetriebenes Pendel..................... 177 6.5 Rekonstruktion und fraktale Dimension.................. 178 6.6 Stationäre Schrödinger-Gleichung I.................... 179 6.7 Stationäre Schrödinger-Gleichung II.................... 180 6.8 Delay-Gleichung............................... 182

6 INHALTSVERZEIHNIS

Kapitel 1 Einführung, Beispiel und Literatur 1.1 Die typischen drei Schritte des iterativen Approaches In dieser Vorlesung soll das selbstständige Umsetzen von physikalisch-mathematischen Problemstellungen in omputerprogramme erlernt werden. Es wird empfohlen, Programme aus dem technisch-wissenschaftlichen Bereich in FORTRAN zu schreiben. Diese Sprache ist im Gegensatz zu dem ebenfalls weitverbreiteten (oder ++) besser zur Bearbeitung von Aufgaben aus der theoretischen Physik wie z.b. dem Lösen von Differentialgleichungen oder dem Rechnen mit komplexen Zahlen geeignet. Man kann dies sicher alles auch mit bewältigen, nur eben umständlicher und komplizierter, womit die Möglichkeit Fehler zu machen, größer wird. mag seine Vorteile im maschinennahen Programmieren besitzen (Entwicklung von ompilern, Betriebssystemen, etc.) von denen wir jedoch hier sicher nicht profitieren würden. Wer also unbedingt (oder ++) verwenden will, darf dies natürlich tun, ist dann aber auch selbst schuld, wenn es damit langsamer und schlechter voran geht! Programmentwicklung ist ein iterativer Prozess. Das heisst, man nähert sich dem gewünschten Resultat langsam und erreicht es, wenn überhaupt, nach N Iterationen. Eine Iterationsschleife sieht dabei folgendermaßen aus: (1) Editieren (2) ompilieren (3) Programm starten goto (1) In (1) wird ein ASII-File mittels Texteditor erstellt, welcher das Programm (den Source- oder Quellcode) in einer Standardprogrammiersprache enthält (siehe oben). Dazu ruft man einen Editor (z.b. emacs) mit dem Befehl $ emacs Programm.f auf. Nach Erstellen des Quellcodes wird (2) durch ein script z.b. der Form f95 -O1 $1.f -o $1 -L/usr/lib -llapack -lpgplot 7

8 KAPITEL 1. EINFÜHRUNG, BEISPIEL UND LITERATUR (1) Quellcode editieren mit Texteditor (emacs, etc.) (2) ompilieren und Executable bauen mit script file "make_for" (FORTRAN) (3) Programm ausfuehren Ziel erreicht? nein ja STOP Abbildung 1.1: Der iterative Approach erreicht. Nennen wir das Skript make for, so lässt es sich auf einem Linux- Betriebssystem ausführen. Dazu müssen wir ihm allerdings erst das Attribut executable durch $ chmod u+x make_for geben. Gestartet wird es dann durch $./make_for <Programm> Der Befehl f95 ruft zunächst den FORTRAN ompiler (Standard Fortran95) eventuell mit zusätzlichen Optionen auf, welche man unter $ man f95

1.2. EIN ERSTES BEISPIEL LOGISTISHE ABBILDUNG 9 studieren kann. Die Option-o bewirkt, dass das ausführbare Programm(executable) den Namen <Programm> besitzt, -L/... gibt den Weg für die folgenden libraries an, in diesem Fall lapack und pgplot [2], letztere wird für die interaktive Grafikausgabe benötigt. (3) Läuft des Skript ohne Fehlermeldung durch, so befindet sich im Arbeitsverzeichnis ein binärer, d.h. nicht editierbarer file Programm, welcher mit $./Programm ausgeführt wird. 1.2 Ein erstes Beispiel Logistische Abbildung 1.2.1 Abbildung Als einfaches Beispiel untersuchen wir die Abbildung (Rekursionsformel) [4] x n+1 = ax n (1 x n ), n = 0,1,2... 0 a 4, 0 x 0 1 (1.1) welche unter der Bezeichnung Logistische Abbildung bekannt ist. (1.1) kann als einfaches Modell zur zeitlichen Entwicklung einer zunächst wachsenden Population betrachtet werden, wobei x n die Bevölkerungsdichte einer Spezies zur Zeit (im Jahr) n misst. Der Term ax n alleine führt zu exponentiellem Wachstum wenn a > 1, sonst zum Aussterben der Spezies. Für a > 1 beschränkt die Nichtlinearität ax 2 n das Wachstum durch Ressourcenknappheit (beschränkte Nahrungsmittel oder Lebensraum) und führt zu Sättigung. Je nach a haben wir die beiden asymptotischen Lösungen { 0 für a < 1 x n x s =, n. (1.2) 1 1/a für a > 1 Die Lösungen (1.2) ergeben sich aus mit der Abkürzung x s = f(x s ) (1.3) f(x) = ax(1 x). (1.4) Die nichtriviale Lösung wird allerdings instabil, sobald a > 3, was man durch eine lineare Stabilitätsanalyse zeigt. Hierzu untersuchen wir, wie sich infinitesimale Abweichungen ǫ 0 << 1 von x s x n = x s +ǫ n (1.5) unter Iteration verhalten. Einsetzen von (1.5) in (1.1) ergibt x s +ǫ n+1 = f(x s +ǫ n ) = f(x s )+f (x s )ǫ n +O(ǫ 2 n), (1.6)

10 KAPITEL 1. EINFÜHRUNG, BEISPIEL UND LITERATUR oder bei Berücksichtigung ausschließlich linearer Terme in ǫ n ǫ n+1 = f (x s )ǫ n. (1.7) Die kleine Abweichung ǫ 0 wird durch Iteration genau dann anwachsen, wenn f (x s ) > 1 gilt, was mit (1.4) auf die beiden Fälle führt. a < 1, a > 3 Was passiert für a > 3? Die unten vorgestellte omputerlösung Abb. 1.2 zeigt ein periodisches Verhalten, also x n = x n 2 = x p1, x n+1 = x n 1 = x p2 oder x p1 = f(f(x p1 )), x p2 = f(f(x p2 )). Man zeigt wiederum durch lineare Stabilitätsanalyse, dass die periodische Lösung für a > 1+ 6 instabil wird, es entsteht ein Viererzyklus, bei dem sich die x n regelmäßig zwischen vier Werten abwechseln (Übungen). 1.2.2 Programm Numerisch untersuchen wir die logistische Abbildung mit dem Programm PROGRAM LOGIST REAL*8 A,X Bereich fuer A AMIN=2. AMAX=4. c initialisiere Grafik ALL PGBEGIN(0, /xwin,1,1)! auf den Schirm ALL PGPAP(10.,1.)! Groesse des Schirms (Breite, Seitenverh.) ALL PGENV(AMIN,AMAX,0.,1.,0,1)! xy-skala ALL PGSI(1) c ITMAX=200! Zahl der Iterationen je A-Wert IVOR=1000! Vorlauf TINY=1.E-6! Startwert x DA=(AMAX-AMIN)/1000.! Schrittweite fuer A

1.2. EIN ERSTES BEISPIEL LOGISTISHE ABBILDUNG 11 DO 10 I=1,1000 A=FLOAT(I-1)*DA+AMIN AP=A X=TINY! x0 DO 20 IT=1,ITMAX+IVOR X=A*X*(1.-X)! log. Abbildung XP=X IF(IT.GT.IVOR) THEN ALL PGPT(1,AP,XP,-1)! zeichnet ein Pixel am Ort AP,XP ENDIF 20 ONTINUE 10 ONTINUE c beende Grafik ALL PGEND END Zur Visualisierung wird die Grafik-Library PGPLOT [2] verwendet. Nach ompilieren und Ausführen entsteht die Grafik aus Abb. 1.2. 1.2.3 Differentialgleichung Im Zusammenhang mit der logistischen Abbildung untersuchen wird die gewöhnliche Differentialgleichung 1. Ordnung dx dt = (a 1)x ax2, (1.8) die das zeitliche Verhalten von x(t) bei gegebenem x(0) = x 0 definiert (Anfangswertproblem). Eine Lösung erhält man durch Separation der Variablen wobei die Integrationskonstante c x(t) = a 1 a+c e (1 a)t (1.9) c = a(1 x 0) 1 x 0 durch die Anfangsbedingung festgelegt ist. Für t erhält man die asymptotischen Lösungen { 0 für a < 1 x s =, (1.10) 1 1/a für a > 1

12 KAPITEL 1. EINFÜHRUNG, BEISPIEL UND LITERATUR Abbildung 1.2: Logistische Abbildung welche mit den asymptotischen Lösungen der logistischen Abbildung übereinstimmen. Wir fragen uns jetzt, wie (1.1) mit der Differentialgleichung (1.8) zusammenhängt: Wir werden später ausführlich auf numerische Lösungen von Differentialgleichungen zurück kommen. Hier muss man nur wissen, dass man eine Ableitung näherungsweise durch den Differenzenquotienten ausdrücken kann dx dt x(t+ t) x(t) t, (1.11) was für t 0 exakt wird. Setzt man (1.11) auf der linken Seite von (1.8) ein, so ergibt sich nach kurzer Rechnung ( x n+1 = ax n t 1 1 ( 1 1 ) ) x n, (1.12) a t wobei wir mit x n die x-werte zu den Zeitpunkten n t bezeichnet haben, x n = x(n t). Setzen wir jetzt t = 1, so geht (1.12) in (1.1) über, d.h. die diskretisierte Form der DGL (1.8) entspricht gerade der logistischen Abbildung. Dies erklärt dasselbe Verhalten für a < 3, d.h. das asymptotische Annähern an x s und die richtigen Werte der

1.2. EIN ERSTES BEISPIEL LOGISTISHE ABBILDUNG 13 asymptotischen Lösungen. Nicht erklären lassen sich aber die weiteren Verzweigungen für a > 3 oder gar das chaotische Verhalten für größeres a, was in der Lösung (1.9) natürlich nicht enthalten sein kann. Woher kommt dann das wesentlich komplexere Verhalten der diskretisierten Form (1.12)? Um das zu sehen, müssen wir die Stabilität von (1.12) für beliebiges t näher untersuchen. Eine stationäre Lösung (Fixpunkt) von (1.12) für a > 0 ist natürlich x s = 1 1/a. Wenn man x(t) = x s +ǫ(t) ansetzt und bezüglich ǫ linearisiert, lässt sich zeigen, dass für t = 1 x s numerisch instabil wird sobald a > 3. D.h. bei den Verzweigungen zu periodischen Lösungen bis hin zum haos handelt es sich um numerische Artifakte, die von einem zu großen Zeitschritt kommen (Übungen). 1.2.4 Lyapunov-Exponent Wir wenden uns wieder der logistischen Abbildung (1.1) zu. Die ersten Verzweigungen lassen sich noch analytisch angeben, für die höheren Bifurkationen steigt der Aufwand jedoch schnell. Wir wollen deshalb eine Größe definieren, die das Stabilitätsverhalten für beliebiges a zeigt. Startet man die Iteration bei x 0, so ergibt sich für x n x n = f(f(f(...f(x 0 )...))) f (n) (x 0 ), (1.13) wobei f (n) die n-fach Iterierte bezeichnet. Eine zweite Iteration soll mit einem dicht benachbarten Anfangswert x 0 +ǫ beginnen und liefert eine andere Folge y 1,y 2...y n : y n = f (n) (x 0 +ǫ). (1.14) Die Frage ist nun, ob sich die beiden anfangs dicht benachbarten Folgen von einander entfernen. Wir bilden den Abstand und erhalten mit ǫ 0 d n = x n y n = ǫ f (n) (x 0 +ǫ) f (n) (x 0 ) ǫ = limǫ d ǫ 0 dx f(n) (x). (1.15) x0 Nimmt man jetzt an, dass der Abstand exponentiell mit den Iterationen anwächst (instabil), bzw. abnimmt (stabil), also d n = d 0 e λn = ǫ e λn, so wird λ als Lyapunov-Exponent bezeichnet. Offensichtlich liegt bei λ > 0 eine instabile Iterationsfolge vor, bei λ < 0 eine stabile. Aus (1.15) folgt dann 1 λ = lim n n ln d dx f(n) (x). (1.16) x0

14 KAPITEL 1. EINFÜHRUNG, BEISPIEL UND LITERATUR Abbildung 1.3: Logistische Abbildung und Lyapunov-Exponent Wir wenden die Kettenregel an d dx f(n) (x) = d x f(x 0 )d x f(x 1 )...d x f(x n ) x0 und erhalten schließlich 1 λ = lim n n n ln d dx f(x). (1.17) x=xk k=0 Diese Formel lässt sich relativ einfach programmieren. Natürlich kann man sie nicht

1.2. EIN ERSTES BEISPIEL LOGISTISHE ABBILDUNG 15 für n auswerten, man wählt ein genügend großes maximales n von z.b. 1000. Das Programm könnte folgendermaßen aussehen: PROGRAM LOGIST_LYAP REAL*8 A,X,FLY DIMENSION FLP(1000),XLP(1000) Bereich fuer A AMIN=2.7 AMAX=4. c initialisiere Grafik ALL PGBEGIN(0, /xwin,1,1)! auf den Schirm ALL PGPAP(10.,1.)! Groesse des Schirms (Breite, Seitenverh.) c ALL PGVPORT(0.1,.9,0.05,0.5)! Unterer Graph, Iterationen ALL PGSWIN(AMIN,AMAX,0.,1.)! xy-skala ALL PGBOX( BNT,0.,0, BNT,0.,0) ITMAX=1000 IVOR=1000 TINY=1.E-6! Zahl der Iterationen je A-Wert! Vorlauf! Startwert x DA=(AMAX-AMIN)/1000.! Schrittweite fuer A DO 10 I=1,1000 A=FLOAT(I-1)*DA+AMIN AP=A X=TINY FLY=0. DO 20 IT=1,ITMAX+IVOR X=A*X*(1.-X)! log. Abbildung XP=X IF(IT.GT.IVOR) THEN ALL PGPT(1,AP,XP,-1) IF(ABS(X-.5).GT.1.E-30) FLY=FLY+LOG(ABS(A*(1.-2.*X)))! Summe Lyapunov-Epxonen c ENDIF 20 ONTINUE FLP(I)=FLY/FLOAT(ITMAX)! Lyapunov-Exponent FLMAX=MAX(FLMAX,FLP(I)) FLMIN=MIN(FLMIN,FLP(I))

16 KAPITEL 1. EINFÜHRUNG, BEISPIEL UND LITERATUR XLP(I)=A! Werte x-achse (A) 10 ONTINUE WRITE(6,*) FLMAX,FLMIN ALL PGVPORT(0.1,.9,0.55,0.98)! Oberer Graph, Lyapunov-Exponent ALL PGSWIN(AMIN,AMAX,FLMIN,FLMAX)! xy-skala ALL PGBOX( BTNA,0.,0, BTN,0.,0) ALL PGLINE(1000,XLP,FLP) ALL PGEND END Das Resultat zeigt Abb.1.3. Man sieht negative λ für die Fixpunkte und die periodischen Zyklen (diese sind stabil), positive in den chaotischen Bereichen. An Bifurkationspunkten gilt λ = 0, da am n-ten Verzweigungspunkt der n-periodische Zyklus instabil wird zugunsten eines 2n-periodischen, der dann für größeres a wieder stabil wird. 1.2.5 Aufgaben Mit Papier und Bleistift: 1. Berechnen Sie den Zweierzyklus x p1,x p2 für die logistische Abbildung. 2. Zeigen Sie, dass dieser für a > 1+ 6 instabil wird. 3. Zeigen Sie, dass (1.12) numerisch instabil wird, sobald t > 2/(a 1) gilt. 4. Geben Sie einen analytischen Ausdruck für den Lyapunov-Exponenten λ der logistischen Abbildung im Bereich 0 < a < 1+ 6 an. Berechnen Sie die Polstellen, das sind die superstabilen Zyklen, von λ. Und zum Programmieren: 1. Plotten Sie die Funktion (1.9) mit Hilfe von PGPLOT für verschiedene Anfangsbedingungen und verschiedene Werte von a. 2. Untersuchen sie die Abbildung (1.12) als numerische Lösung der DGL (1.8) für verschiedene Zeitschritte t und a. 3. Untersuchen Sie die Abbildung (1.12) für verschiedene Zeitschritte mit dem Programm LOGIST LYAP, indem Sie dort die entsprechenden Funktionen ändern.

1.3. LITERATUR 17 1.3 Literatur 1. Skript zur Vorlesung (2. korrigierte Version in Arbeit), http://www.tu-cottbus.de/fakultaet1/de/statistische-physik/ --> Lehre, Skripte --> omputational Physics I 2. Anleitung zum Grafik-Paket PGPLOT, c. T.J.Pearson, altech, USA, http://www.astro.caltech.edu/~tjp/pgplot/old_manual.ps.gz 3. R. H. Landau, M. J. Paez,.. Bordeianu, omputational Physics, WILEY- VH (2007) 4. W. Kinzel, G. Reents, Physik per omputer, Spektrum (1996) 5. W. H. Press, B. P. Flannery, S. A. Teukolsky, W. T. Vetterling, Numerical Recipies ambridge Univ. Press (2007) 6.. A. J. Fletcher, omputational Techniques for Fluid Dynamics, Vol. I, Springer- Verlag (2005) 7. J. Argyris, G. Faust, M. Haase, R. Friedrich Die Erforschung des haos, Springer- Verlag (2010) 8. H. Ritter, T. Martinetz, K. Schulten, Neuronale Netze, Addison-Wesley (1994) 9. J. Stoer, R. Bulirsch Numerische Mathematik 1, Springer-Verlag (2007) 10. J. Stoer, R. Bulirsch Numerische Mathematik 2, Springer-Verlag (2007)

18 KAPITEL 1. EINFÜHRUNG, BEISPIEL UND LITERATUR

Kapitel 2 Abbildungen Wir werden weitere Rekursionsformeln untersuchen, bei denen aus einem Startwert alle weiteren Werte einer betimmten Variablen folgen. 2.1 Frenkel-Kotorova-Modell 2.1.1 Klassische Formulierung Wir untersuchen eine eindimensionale Kette aus N Massepunkten jeweils mit der Masse m, deren Glieder durch Federn mit der Federkonstante D = 1 und der Ruhelänge null gekoppelt sein sollen. Außerdem soll sich die Kette in einem äußeren Potential V befinden, welches periodisch im Ort ist, V(x) = V(x+1). (2.1) Die einzelnen Massepunkte der Kette befinden sich am Ort x n und haben den Impuls p n. Die Hamilton-Funktion lautet dann H(x n,p n ) = N n=1 [ p 2 n 2m +V(x n)+ 1 ] 2 (x n x n 1 ) 2. (2.2) Um das dynamische Problem zu formulieren, stellt man die Hamiltonschen Gleichungen ṗ n = H x n, ẋ n = H p n (2.3) auf und hat 2N gekoppelte, gewöhnliche DGLs zu lösen. 19

20 KAPITEL 2. ABBILDUNGEN 2.1.2 Stationäre Lösungen Auf Probleme der Art (2.3) werden wir im übernächsten Kapitel eingehen, hier wollen wir nur nach den stationären Lösungen ṗ n = 0, ẋ n = 0, p n = 0 suchen. Aus (2.3) folgt oder Wir defineren H x n = 0 (2.4) V (x n )+(x n x n 1 ) (x n+1 x n ) = 0. (2.5) y n x n x n 1 (2.6) und erhalten aus (2.5) und (2.6) die zweidimensionale Abbildung y n+1 = y n +V (x n ) x n+1 = x n +y n+1 = x n +y n +V (x n ). (2.7) D.h. aus einem beliebiegen Startwert (x 0,y 0 ) folgt eindeutig (determiniert) die ganze Reihe (x n,y n ). Natürlich ist dabei nichts über die Stabilität der statonären Lösung ausgesagt. Es handelt sich lediglich um eine Gleichgewichtskonstellation bei der sich nach (2.4) die Kräfte auf jedes Teilchen aufheben. Dabei kann es sich sogar um ein instabiles Geichgewicht handeln (Potentialmaximum). 2.1.3 Standardabbildung Um weiter zu machen, müssen wir V(x) spezifizieren. In Übereinstimmung mit (2.1) setzen wir V(x) = K (2π) 2(1 cos(2πx)) (2.8) mit K als Kontrollparameter und erhalten schließlich aus (2.7) y n+1 = y n + K 2π sin(2πx n) x n+1 = x n +y n+1. (2.9) Die Rekursionsvorschrift (2.9) wird als Standardabbildung, hirikov-abbildung oder Kreisabbildung bezeichnet und wird in der Literatur ausführlich untersucht (z.b. [7]). Abb.2.1 zeigt das Verhalten von x,y im Bereich 0..1 für K = 1. Ausgehend von einem Startwert werden 10000 Punkte gezeichnet. Die Startwerte werden interaktiv mit der Maus bestimmt. Ein Programm zur Anfertigung der Abb.2.1 könnte so aussehen: PROGRAM FRENKEL

2.1. FRENKEL-KOTOROVA-MODELL 21 Abbildung 2.1: Standardabbildung für K = 1 REAL*8 X,Y,PI2,VOR HARATER*1 INTEGER PGURS PI2=2.*3.14159265 AMP=1. VOR=AMP/PI2 IMAX=10000! der Wert fuer K! Anzahl der Iterationen je Startwert ALL PGBEGIN(0, /xwin,1,1) ALL PGPAP(10.,1.)

22 KAPITEL 2. ABBILDUNGEN NOL=15! in 15 verschiedenen Farben ALL PGENV(0.,1.,0.,1.,1,1) 10 K=PGURS(X0,Y0,)! Mausabfrage X=X0! Startwert Y=Y0 I=I+1! Farbe wechseln IF(I.GT.NOL) I=1 ALL PGSI(I) DO 100 I=1,IMAX Y=Y+VOR*SIN(PI2*X)! Standardabbildung X=X+Y XP=MOD(X,1.)! Plottwerte modulo 1 YP=MOD(Y,1.) ALL PGPNTS(1,XP,YP,-1,1) 100 ONTINUE IF(IHAR().NE.32) GOTO 10 ALL PGEND END 2.1.4 Aufgaben 1. Untersuchen Sie (2.9) für verschiedene Werte von K. Für K = 0 geht es ohne omputer. 2. Plotten Sie die Kettenlänge für festes x 0 als Funktion von y 0. Versuchen Sie verschiedene Werte von x 0. 2.2 Affine Abbildungen und Fraktale Wir untersuchen lineare, eindeutige (bijektive) Abbildungen, die sich aus den drei Operationen Verschiebung: q = q + a Drehung: q = L D q Skalierung+Scherung: q = L S q

2.2. AFFINE ABBILDUNGEN UND FRAKTALE 23 zusammensetzen. Wir beschränken uns auf zwei Dimensionen, also q = (x,y), L D ist dann die Drehmatrix L D = ( cosθ sinθ sinθ cosθ ) und L s die Skalierungs-Scher-Matrix ( sx b L S = 0 s y Die zusammengestetzte Transformation lautet ). q = L D L S q + a, (2.10) wobei die verschiedenen Abbildungen nicht kommutieren, d.h. es kommt auf die Reihenfolge an (Drehung und Skalierung vertauscht aber, wenn s x = s y,b = 0). Transformiert man ein Dreieck mit der Fläche A, so gilt wegen Det(L D ) = 1 A = Det(L S ) A = s x s y A. Wendet man die Abbildung (2.10) iterativ an, so entsteht eine selbstähnliche Struktur. q n+1 = L D L S q n + a, (2.11) 2.2.1 Sierpinski-Dreieck Als einfache Anwendung konstruieren wir das Sierpinski-Dreieck. Mit der f95-funktion RAN() bringen wir den Zufall ins Spiel. RAN liefert einen gleichverteilten Wert zwischen null und eins. Achtung: dies ist keine Standard-Fortran Funktion und kann von ompiler zu ompiler verschieden aussehen. Auf anderen ompilern benötigt sie ein Argument RAN(IS), oder sie wird durch RANF() bzw. RAND() (auch mit Argument) aufgerufen. Hier hilft nur Manual lesen oder ausprobieren. Die Konstruktionsvorschrift lautet: 1. Definiere ein Dreieck durch die Punkte (a 1,b 1 ),(a 2,b 2 ),(a 3,b 3 ). 2. Wähle einen zufälligen Punkt (x, y) innerhalb des Dreiecks

24 KAPITEL 2. ABBILDUNGEN 3. Wähle eine zufällige ganze Zahl i=1,2,3 (gleichverteilt) 4. Wenn i=1: Setze einen Punkt in die Mitte von (x,y) und (a 1,b 1 ) Wenn i=2: Setze einen Punkt in die Mitte von (x,y) und (a 2,b 2 ) Wenn i=3: Setze einen Punkt in die Mitte von (x,y) und (a 3,b 3 ) 5. Gehe nach 3. und verwende den in 4. gesetzten Punkt als neuen Punkt (x,y) Als Abbildung formuliert, lautet die iterative Vorschrift q n+1 = 1 2( qn + a i ), i = 1,2,3 (zufällig) (2.12) wobei. a i = (a i,b i ) Ein einfaches Programm PROGRAM SIERPINSKI HARATER*1 INTEGER PGURS DIMENSION A(3), B(3) ITER=20000 A(1)=.0 B(1)=0. A(2)=1. B(2)=0. A(3)=0.5 B(3)=1.! Anzahl Iterationen! die drei Ecken ALL PGBEGIN(0, /xwin,1,1) ALL PGPAP(10.,1.) ALL PGSWIN(0.,1.,0.,1.) K=PGURS(X,Y,)! Startpunkt mit Maus setzen DO 100 N=1,ITER I=INT(3.*RAN()+1.)! zufaellige Auswahl 1,2,3 (gleichvert.) X=(X+A(I))/2.! affine Abbildung Y=(Y+B(I))/2. ALL PGPT(1,X,Y,-1)

2.2. AFFINE ABBILDUNGEN UND FRAKTALE 25 100 ONTINUE ALL PGEND END liefert als Ergebnis die Abb.2.2. Abbildung 2.2: Sierpinski-Dreieck als fraktales Gitter Offensichtlich ensteht eine sehr regelmäßige Struktur, obwohl der Zufall bei der Konstrutkion eine entscheidende Rolle spielt. Auch der Anfangswert bleibt ohne Einfluss, die Iteration konvergiert nach wenigen Schritten auf das Sierpinski-Gitter, welches deshalb auch als Attraktor für die gesamte Ebene innerhalb des Dreiecks bezeichnet werden

26 KAPITEL 2. ABBILDUNGEN kann. Die Struktur des Sierpinski-Dreiecks ist selbstähnlich, jedes beliebig herausgegriffene Unterdreieck sieht (bis auf seine Größe) gleich aus. Allerdings ist die Ebene beinahe leer, jedes Dreieck hat unendlich viele Löcher auf allen Längenskalen (bei unendlich vielen Iterationen). Es handelt sich um eine fraktale Struktur. 2.2.2 Fraktale Dimension Abbildung 2.3: Box-ounting-Methode. Zur Bestimmung der (fraktalen) Dimension eines Objektes zählt man die Quadrate, die man zu dessen Bedeckung braucht. Halbiert man die Quadratseitenlänge, so benötigt man etwa doppelt soviel Kästchen wenn das Objekt wie hier die Dimension eins besitzt (Linie). Ausgehend vom euklidischen Dimensionsbegriff (Punkt=0, Linie=1, Fläche=2...) lässt sich einem fraktalen Gebilde wie in Abb.2.2 eine fraktale Dimension d f zuordnen. Wir verwenden die Box-ounting-Methode. Dazu wird eine Einheitsfläche E mit N N gleichen Quadraten der Seitenlänge L = 1/N bedeckt. Auf E befinde sich ein Objekt, dessen Dimension man messen möchte, z.b. eine Linie, (Abb.2.3). Für gegebenes L zählt man die Quadrate, die von der Linie durchlaufen werden, M. Halbiert man jetzt L (d.h. die Anzahl der Quadrate vervierfacht sich), so wird sich M etwa verdoppeln. Es besteht also der Zusammenhang M L 1. (2.13) Besteht das Objekt aber aus einer bestimmten Anzahl K von Punkten, so wird bei genügend kleinem L immer M = K sein, unabhängig von L, also M = const. (2.14) Wäre das Objekt schließlich zweidimensional, also ein Teil der Fläche, so wäre M proportional zur Anzahl der Quadrate, oder M L 2. (2.15)

2.2. AFFINE ABBILDUNGEN UND FRAKTALE 27 Offensichtlich lassen sich alle drei Gesetzmäßigkeiten durch M L d (2.16) ausdrücken, wobei d die Dimension des Objekts ist. Diese Methode lässt sich auf das Sierpinski-Dreieck anwenden. Dazu wird ein Feld IBOX definiert, dessen Element IBOX(I,J) auf eins gesetzt wird, wenn ein Punkt in das entsprechende Quadrat (I,J) fällt: PROGRAM FRAKTAL DIMENSION A(3), B(3), IBOX(1024,1024),XP(10),YP(10) ITER=100000 A(1)=.0 B(1)=0. A(2)=1. B(2)=0. A(3)=0.5 B(3)=1.! Anzahl Iterationen! die drei Ecken XL=1.! L am Anfang DO 10 L=1,10! zehn verschiedene Gitter XL=XL/2.! halbe Laenge ID=NINT(1./XL) DX=1./FLOAT(ID) DO 101 I=1,ID! Nullsetzen DO 101 J=1,ID IBOX(I,J)=0 101 ONTINUE x=0.5! Startwert y=0.5 DO 100 N=1,ITER I=INT(3.*RAN()+1.)! zufaellige Auswahl 1,2,3 X=(X+A(I))/2.! affine Abbildung Y=(Y+B(I))/2. IX=X/DX+1 IY=Y/DX+1 IBOX(IX,IY)=1! Kaestchen I,J berechnen! eins setzen

28 KAPITEL 2. ABBILDUNGEN 100 ONTINUE N=0! Anzahl der getroffenen Kaestchen ermitteln DO 110 I=1,ID DO 110 J=1,ID N=N+IBOX(I,J) 110 ONTINUE WRITE(6,*) N XP(L)=LOG(1./XL)! LOG-LOG-Kurve YP(L)=LOG(FLOAT(N)) 10 ONTINUE ALL PGBEGIN(0, /xwin,1,1)! Kurve zeichnen ALL PGPAP(10.,1.) ALL PGENV(XP(1),XP(10),YP(1),YP(10),0,1) ALL PGLINE(10,XP,YP) ALL PGPT(10,XP,YP,26) FDIM=(YP(8)-YP(3))/(XP(8)-XP(3))! Steigung berechnen WRITE(6,*) Und die fraktale Dimension ist:,fdim ALL PGEND END Danach wird der Zusammenhang(2.16) doppelt logarithmisch aufgetragen(abb.2.4) und die Steigung bestimmt, die gerade d f entspricht. d f = logm logl (2.17) Es ergibt sich d f 1.585. Der Wert lässt sich durch ein anderes Verfahren auch analytisch bestimmen (siehe z.b. [4]), man erhält d f = log(3)/log(2) = 1.5849625... 2.2.3 Von Farnen und anderen Gewächsen Viele in der Natur vorkommende Strukturen besitzen eine fraktale Geometrie (wir verweisen auf das Buch von B. Mandelbrot, Die fraktale Geometrie der Natur). Der englische Mathematiker Michael Barnsley schlug 1985 eine zufallsgesteuerte Abbildung

2.2. AFFINE ABBILDUNGEN UND FRAKTALE 29 Abbildung 2.4: Anzahl der Kästchen über der Kästchenlänge, doppelt logarithmisch. Im Idealfall erhält man eine Gerade, deren Steigung der fraktalen Dimension entspricht. zur Konstruktion von Farnen vor, die seither als Barnsley-Farne bezeichnet werden. Die Abbildung lautet q n+1 = L i q n + a i, q 0 = (0.5,0) (2.18) und sowie a 1 = L 3 = L 1 = ( 0 0 0 0.27 ( 0.17 0.215 0.222 0.176 ) ( 0.139 0.263, L 2 = 0.246 0.224 ) ( 0.781 0.034, L 4 = 0.032 0.739 ( ) ( ) ( ) 0.5 0.57 0.408, a 2 =, a 3 =, a 4 = 0 0.036 0.0893 ), ) ( ) 0.1075. 0.27 (2.19) Die Auswahl von i erfolgt jetzt nicht mehr mit gleicher Verteilung, sondern nach der Regel i = (1,2,3,4), mit P(i) = (0.02,0.15,0.13,0.7), wobei P(i) die Wahrscheinlichkeit angibt, i zu ziehen. Das Ergebnis nach 30000 Iterationen zeigt Abb.2.5 Eine andere Iterationsvorschrift liefert einen Baum, Abb.2.6. Hier wurde ( ) ( ) ( 0.05 0 0.05 0 0.46 0.15 L 1 =, L 0 0.6 2 =, L 0 0.5 3 = 0.39 0.38 L 4 = ( 0.47 0.15 0.17 0.42 ) ( 0.43 0.28, L 5 = 0.25 0.45 ) ( 0.42 0.26, L 6 = 0.35 0.31 ), ),(2.20)

30 KAPITEL 2. ABBILDUNGEN. Abbildung 2.5: Ein Barnsley-Farn nach (2.19) und a 1 = ( ) 0, a 2 = 0 ( ) ( ) ( ) 0 0 0, a 3 =, a 4 =, a 5 = 1 0.6 1.1 verwendet. Die Wahrscheinlichkeiten sind jetzt P(i) = (0.1,0.1,0.2,0.2,0.2,0.2). ( ) ( ) 0 0, a 6 = 1 0.7 2.2.4 Aufgaben 1. Berechnen Sie (mit Bleistift) den Kommutator [L D,L S ]. 2. Programmieren Sie Farn und Baum nach (2.19), bzw. (2.20). Spielen Sie mit den Farben (verschiedene Farben für verschiedene i). Ändern Sie die Wahrscheinlichkeiten. 3. Berechnen Sie die fraktalen Dimensionen von Farn und Baum. 2.3 Neuronale Netze Etwa ab 1990 wurde die Disziplin der Neuroinformatik ins Leben gerufen, die Bereiche aus verschiedenen Gebieten wie Physik, Mathematik, hemie, Medizin umfasst und deren Ziel es ist, die Funktionsweise des Gehirns zu erforschen und zu verstehen. Ein Ansatz verfolgt dabei die Modellierung biologischer Intelligenz (Gedächtnis, Lernprozesse, logische Verknüpfungen) durch neuronale Netze. Wir können das Thema hier natürlich nur anreisen und werden zwei Beispiele ausführlicher behandeln, das Perzeptron und die selbstorganisierten Karten von Kohonen. für weitere Details und Vertiefung verweisen wir auf das Buch von Ritter et al. [8].

2.3. NEURONALE NETZE 31. Abbildung 2.6: Ein fraktaler Baum, erzeugt mit (2.20) 2.3.1 Perzeptron Das menschliche Gehirn besteht aus ca 100 Milliarden Nervenzellen (Neuronen), die über 10 14 Kontaktstellen (Synapsen) miteinander verbunden sind. Die Verbindungen

32 KAPITEL 2. ABBILDUNGEN Eingabeschicht S S S S 1 2 3 S 4 5 dynamische Verarbeitungsschicht w 1 S Ausgabeneuron Abbildung 2.7: Perzeptron mit N = 5 Eingabeneuronen. o w 5 sind dynamisch, d.h. sie können ja nach Anforderungen verstärkt oder abgebaut werden (Lernen). Als stark vereinfachtes Modell kann das Perzeptron aufgefasst werden. Es verfügt nur über N Eingabeneuronen S j die nicht untereinander verbunden sind, eine Verarbeitungsschicht beschrieben durch die synaptischen Gewichte w j, sowie ein Ausgabeneuron (Abb.2.7). Jedes Neuron soll nur zwei Zustände besitzen, nämlich aktiv (S j = 1) und ruhend (S j = 1). Die Kopplung der Eingabeschicht an das Ausgabeneuron wird durch den einfachen Zusammenhang ( N ) S o = sign w j S j j (2.21) beschrieben, wobei sign(x) = { 1 für x 0 1 für x < 0 die (leich modifizierte) Signumfunktion darstellt. Die Stärke der Verbindungen wird durch die Werte von w j beschrieben, welche hemmend w j < 0 oder erregend (w j > 0) sein können und sich im Laufe des Lernprozesses verändern. Lernregel Was überhaupt heißt nun Lernprozess? ein neuronales Netz wird nicht programmiert und enthält keine vorgegebenen Regeln oder Verschaltungen. Man bietet im Beispiele an, hier eine bestimmte Anzahl (M) Ein/Ausgabepaare ( x (n) j,y (n) ), n = 1...M. (2.22)

2.3. NEURONALE NETZE 33 Das Netz lernt nun durch dynamische Veränderung der synaptischen Stärken w i, d.h. Gl. (2.21) soll durch möglichst viele (im Idealfall alle) Paare (2.22) erfüllt werden: y (n)! = sign ( N j w j x (n) j ). (2.23) Im Jahr 1949 stellte Donald O. Hebb(1904-1985) die Theorie auf, dass synaptische Verbindungen sich an die Aktivität ihrer jeweiligen Ein- und Ausgangsneuronen anpassen (Hebbsche Lernregel). Bezeichnet w i die Änderung von w i bei einem Lernschritt, so lässt sich die Hebbsche Regel als w j = 1 N y(n) x (n) j (2.24) formulieren. Soll nur ein Paar (M = 1) gelernt werden und setzt man am Anfang alle w j = 0, so gilt nach einem Lernschritt w j = 1 N yx j und, eingesetzt in (2.23) y = sign ( y 1 N N j x 2 j ) = sign(y), was für alle yǫ(1, 1) erfüllt ist. Soll das Netz aber mehrere Paare lernen, so muss man die Regel (2.24) leicht verändern: Jedes Paar soll nur dann die Verbindungen verändern, wenn es noch nicht richtig gelernt wurde (Rosenblatt-Regel, nach Frank Rosenblatt (1928-1971)): w j = 1 N y(n) x (n) j 0 sonst wenn y (n) ( N j w j x (n) j ) 0 Dadurch stoppt der Algorithmus, wenn alle Muster richtig gelernt sind.. (2.25) Zeitreihenanalyse Als Anwendung verwenden wir das Perzeptron zur Zeitreihenanalyse. Die Struktur einer gegebenen Zeitreihe F = (1, 1, 1,1,1, 1, 1...) soll gelernt werden, indem man als Eingangsmuster ein Fenster aus N Bits aus F eingibt: x (n) j = F j+n, j = 1..N. Der Ausgabewert y (n) soll dann dem nächsten Element (Vorhersage) aus der Reihe y (n) = F N+n+1 = sign ( N j w j x (n) j )

34 KAPITEL 2. ABBILDUNGEN entsprechen. Gibt man z.b. die periodische Reihe F = (1, 1,1, 1,1, 1...) ein, so lernt das Perzeptron die Sequenz nach wenigen Schritten und liefert richtige Vorhersagen. Ändert man die Folge auf F = (1,1,1, 1,1,1,1, 1,1,1,1, 1,..) so wird auch diese schnell erlernt und richtige Vorhersagen geliefert. Wir schließen diesen Abschnitt mit einem einfachen Programm ab. Anstatt (1,-1) lauten die Eingaben hier (1,0) (einfacher zu tippen), 0 wird in -1 umgesetzt. PROGRAM PERZEPTRON PARAMETER (N=10)! Anzahl der Eingabe-Neuronen DIMENSION IS(N),S(N) DATA IS /N*1/! alle mit IS=1 vorbelegen ITR=0.! Anzahl der richtigen Vorhersagen (Treffer) 1 ONTINUE M=M+1 WRITE(6,*) Eingabe (0/1)? READ(5,*) IN IF(IN.LT.0.OR.IN.GT.1) GOTO 1! falsche Eingabe IF(IN.EQ.0) K=-1! 0 entspricht -1 IF(IN.EQ.1) K=1 Vorhersage X=0. DO 10 I=1,N X=X+S(I)*FLOAT(IS(I)) 10 ONTINUE IF(X.GT.0.) THEN IV=1! IV = Vorhersage fuer naechste Eingabe ELSE IV=0 ENDIF Learning IF(X*FLOAT(K).LE.0.) THEN! Rosenblatt-Regel DO 20 I=1,N S(I)=S(I)+FLOAT(K*IS(I))/FLOAT(N)! Synapsen aendern (falsche Vorhers.) 20 ONTINUE ELSE

2.3. NEURONALE NETZE 35 ITR=ITR+1! Trefferanzahl +1 ENDIF WRITE(6,*) Vorhersage, Erfolgsquote:,IV,FLOAT(ITR)/FLOAT(M) DO 30 I=N-1,1,-1! Fenster eins nach rechts schieben IS(I+1)=IS(I) 30 ONTINUE IS(1)=K GOTO 1 END 2.3.2 Selbstorganisierte Karten: das Modell von Kohonen Weil es beim Perzeptron keine Wechselwirkung in der Verarbeitungsschicht zwischen den einzelnen Neuronen gibt, spielt deren räumliche Anordnung keine Rolle. Dies ist im Gehirn anders: Ähnliche Reize werden in räumlich benachbarten Gebieten verarbeitet. Dies ist die grundlegende Idee der selbstorganisierten Karten, die von dem finnischen Ingenieur Teuvo Kohonen 1982 entwickelt wurde. Modell J I Abbildung 2.8: Quadratische Verarbeitungsschicht beim Modell von Kohonen.

36 KAPITEL 2. ABBILDUNGEN Meist geht man von Neuronen aus, die in einem zweidimensionalen Netzwerk angeordnet sind. Jedem Neuron lässt sich dann ein Ortsvektor ( ) I r = J zuordnen, mit (I,J) = (0,0)...(M 1,N 1) (Abb.2.8). Außerdem soll wie beim Perzeptron jedes Neuron mit der Eingangsschicht über die dynamischen synaptischen Stärken l = 1...L w l r, verknüpft sein (der obere Index l nummeriert die Neuronen der Eingangsschicht). Die Hebbsche Lernregel wird nun folgendermaßen modifiziert (Kohonen-Algorithmus): 1. Initialisierung. Wähle geeigneten Anfangswert für die w r l, z.b. zufallsverteilt oder null. 2. Eingangsmuster. Das zu erlernende Signal v l wird aus einer Zufallsverteilung mit gegebener Wahrscheinlichkeit ausgewählt. 3. BMU. Als BMU wird die Best Matching Unit bezeichnet, das ist dasjenige Neuron, welches den kleinsten euklidischen Abstand zum Lernsignal hat. Wenn L (v l w r l )2 l L (v l w r) l 2 für alle r (2.26) l gilt, befindet sich die BMU am Ort r, welcher auch als Erregungszentrum bezeichnet wird. 4. Dynamik. Im Adaptionschritt werden schließlich die synaptischen Stärken gemäß w l r = ǫh(d)(v l w l r), mit d r r (2.27) für alle r verändert, was bis auf die zusätzliche Funktion h(d) der Hebbschen Regel (2.24) entspricht. Bei h(d) andelt es sich um eine unimodale Funktion mit Maximum bei d = 0, z.b. einer Gauß-Kurve mit Breite σ h(d) = exp( d 2 /2σ 2 ). (2.28) Dadurch wird erreicht, dass nicht nur die BMU angepasst wird, sondern auch die Neuronen im räumlichen Umfeld des Erregungszentrums. 5. Verfeinerung. Um die räumliche Struktur zu verfeinern, wird σ nach jedem Lernschritt verkleinert, d.h. es wird am Ende nur noch die BMU verändert, das Verfahren stoppt. 6. Gehe nach 2.

2.3. NEURONALE NETZE 37 Farbkarten Zur Verdeutlichung wollen wir eine Kohonenkarte für Farben programmieren. Farben lassen sich anhand ihrer Rot-, Grün und Blauanteile klassifizieren, dem sogenannten RGB-Wert. So entspricht z.b. ein RGB-Wert von (1/0/0) der Farbe Rot,(0/1/0) Grün, (1/1/0) Gelb und (1/1/1) Weiß. Jedem Neuron werden also drei synaptische Stärken zugeordnet, w (1) r für Rot, w (2) r für Grün, w (3) r für Blau, wobei gilt. 0 w (l) r 1 Ein Programm zum Umsetzen des Kohonen-Algorithmus (im Programm wird w (1) das Feld R, w (2) das Feld G und w (3) das Feld B zugeordnet): PROGRAM KOHONEN PARAMETER (IDIM=15) INTEGER IEN(IDIM,IDIM) DIMENSION R(IDIM,IDIM),G(IDIM,IDIM),B(IDIM,IDIM) ID2=IDIM**2! Anzahl der Neuronen TMAX=3000.! maximale Iterationszahl SIG0=5.! Sigma am Anfang c grafik initialisieren ALL PGBEGIN(0, /xwin,1,1) ALL PGPAP(6.,1.) ALL PGSWIN(0.,1.,0.,1.) DO 30 I=1,ID2 J1=INT(FLOAT(I-1)/FLOAT(IDIM))+1 I1=I-(J1-1)*IDIM RF=RAN()! synaptische Staerken am Anfang zufaellig GF=RAN() BF=RAN() ALL PGSR(I+1, RF, GF, BF) IEN(I1,J1)=I+1 R(I1,J1)=RF G(I1,J1)=GF B(I1,J1)=BF 30 ONTINUE T=0.

38 KAPITEL 2. ABBILDUNGEN 50 ALL PGPIXL(IEN,IDIM,IDIM,1,IDIM,1,IDIM,0.,1.,0.,1.) zu erlernendes Muster aus zufaelligen RGB-Werten 50 RF=RAN() GF=RAN() BF=RAN() BMU suchen DMIN=100000. DO 100 I=1,IDIM DO 100 J=1,IDIM D=(RF-R(I,J))**2+(GF-G(I,J))**2+(BF-B(I,J))**2 IF(D.LT.DMIN) THEN DMIN=D IMIN=I JMIN=J ENDIF 100 ONTINUE! BMU bei (IMIN,JMIN) Learning SIG2=(SIG0*0.05**(T/TMAX))**2 Sigma^2 dynamisch (abnehmend) EPS=0.03 DO 200 I=1,IDIM DO 200 J=1,IDIM R2=(FLOAT(I-IMIN)**2+FLOAT(J-JMIN)**2)/2./SIG2! Gauss-Funktion H=EXP(-R2) R(I,J)=R(I,J)+EPS*H*(RF-R(I,J))! Lernen G(I,J)=G(I,J)+EPS*H*(GF-G(I,J)) B(I,J)=B(I,J)+EPS*H*(BF-B(I,J)) 200 ONTINUE Farben aendern (zum plotten) DO 300 I=1,ID2 J1=INT(FLOAT(I-1)/FLOAT(IDIM))+1 I1=I-(J1-1)*IDIM ALL PGSR(I+1,R(I1,J1),G(I1,J1),B(I1,J1)) 300 ONTINUE T=T+1. IF(T.LT.TMAX) GOTO 50 ALL PGEND END

2.3. NEURONALE NETZE 39 Abb.2.9 zeigt die Farbkarten bestehend aus einem Feld aus 15 15 Neuronen, nachdem 100, 500, bzw. 3000 zufällige RGB-Muster gelernt wurden. Für die Änderung von σ wurde die Formel σ = σ 0 (0.05) t/tmax, σ 0 = 5 verwendet sowie ǫ = 0.03. Man sieht, wie das am Anfang zufällige Muster sich schnell so organisiert, dass ähnliche Farben an benachbarten Orten liegen. Abbildung 2.9: Entstehen einer Farbkarte aus 15 15 Neuronen mit dem Kohonen- Algorithmus. Links oben: Anfangszustand, rechts oben nach t = 100 erlernten Zufallswerten, links unten nach t = 500 und rechts unten nach t = t max = 3000. Problem des Handlungsreisenden Wir wollen jetzt eine eindimensional angeordnete Neuronenreihe aus N Neuronen untersuchen, also eine Kette. Jedes Neuron der Kette soll einen zweidimensionalen Vektor ( ) xi w i = tragen, welcher auf einen Punkt im zweidimensionalen Ortsraum(z.B. einer Landkarte) zeigt. Durchläuft man die Neuronen der Reihe nach, so bilden die aufeinander folgenden y i

40 KAPITEL 2. ABBILDUNGEN Orte (x i,y i ) einen Weg. Wenden wir jetzt den Kohonen-Algorithmus an und bieten als Lernsignale bestimmte vorgegebene Punkte (Orte) auf der Landkarte an, so wird dieser Weg an die Punkte angepasst werden, was uns sofort auf das Problem des Handlungsreisenden (englisch: Traveling Salesman Problem, TSP) führt. Das TSP besteht darin, K vorgegebene Orte durch die kürzeste geschlossene Route zu verbinden, und zwar so, dass jeder Ort genau einmal durchlaufen wird. Wie man sich überlegen kann, gibt es 1 (K 1)! geschlossene Wege, die diese Bedingung erfüllen. 2 Durch Austesten könnte man das Minimum finden. Mit größerem K steigt der Rechenaufwand jedoch exponentiell (sogenanntes N P-hartes Problem), sodass sich bereits für relativ kleines zweistelliges K auch mit den schnellsten Rechnern so keine Lösung mehr finden lässt. Um den Kohonen-Algorithmus zur näherungsweisen Lösung des TSP zu nutzen, wählt man zunächst eine vorgegebene Anzahl von Ortschaften (Abb.2.10), z.b. 31 größere Städte in Deutschland. Dann verwendet man mit gleicher Wahrscheinlichkeit pro Lernschritt einen der Orte als Eingangssignal und passt die synaptischen Verbindungen entsprechend (2.27) an. Abb.2.10 zeigt den Zustand des Netzes nach 20, 80 und 2000 Lernschritten. Nach 2000 Schritten werden alle Orte durchlaufen. Allerdings hängt der Weg und damit auch seine Länge von den Anfangswerten (Initialisierungsschritt) der w i ab (vergleiche Abb.2.11 und Abb.2.12). Für alle drei Serien lagen die w i auf einem Kreis um den Mittelpunkt der Einheitsquadrate, jedoch mit verschiedenen Radien R. Als Parameter für den Lernschritt wurde ǫ = 0.8 sowie vewendet. σ = σ 0 (0.02) t/tmax, σ 0 = 2, t max = 4000 Aus den Abbildungen wird klar, dass man für verschiedene Anfangswerte verschiedene Wege und Weglängen bekommt. Da es aber nur eine Realisierung geben kann die zum kürzesten Weg führt, kann es sich bei den gezeigten Wegen nur um Näherungslösungen handeln. 2.3.3 Aufgaben 1. Ändern Sie bei der Farbkarte die Wahrscheinlichkeitsverteilung für die Lernsignale. Hinweis: Wenn RAN() eine Gleichverteilung in [0,1] liefert, so wird nach dem zentralen Grenzwertsatz x = N i ( RAN() 1 ) 2 für größere N mehr und mehr zur Gauß-verteilten Variablen im Bereich N/2 x N/2 und mit Mittelwert < x >= 0.

2.3. NEURONALE NETZE 41 Abbildung 2.10: Näherungslösung des TSP durch eine Kohonen-Karte. Es sollen vorgegebene Städte der Bundesrepublik auf einer möglichst kurzen Rundreise durchlaufen werden. Gezeigt ist die Situation am Anfang, nach 20 Lernschritten (rechts oben), nach 80 (links unten) und 2000 (rechts unten). Anfangsbedingung war ein Kreis mit Radius R = 0.5 (links oben), die Streckenlänge nach 2000 Lernschritten beträgt S E = 4.122. 2. Lösen Sie das TSP für K Orte und N Neuronen mit Hilfe des Kohonen-Algorithmus. Sie können die Koordinaten der Orte zufällig wählen.

42 KAPITEL 2. ABBILDUNGEN Abbildung 2.11: Dasselbe wie Abb.2.10, aber als Anfangsbedingung ein Kreis mit R = 0.3. Am Schluss ergibt sich ein etwas anderer Weg mit einer kürzeren Strecke S E = 4.081.

2.3. NEURONALE NETZE 43 Abbildung 2.12: Wieder eine andere Lösung für R = 0.15, diesmal mit S E = 4.221.

44 KAPITEL 2. ABBILDUNGEN

Kapitel 3 Lineare Gleichungssysteme und Matrizen In diesem Kapitel wollen wir Methoden zur Lösung linearer homogoner und inhomogener A x = 0 (3.1) A x = b (3.2) Gleichungssysteme angeben, wobei x, b N-komponentige Vektoren im Raum R N und A eine N N Matrix bezeichnen. Es folgen einige Definitionen und Eigenschaften von Matrizen. 3.1 Reelle Matrizen Sei A eine reelle N N Matrix, A ij ǫr. 3.1.1 Eigenwerte und Eigenvektoren Jeder Vektor v aus R N, für den gilt A v = λ v mit v i, λǫ (3.3) heißt Eigenvektor von A zum Eigenwert λ. 3.1.2 harakteristisches Polynom Das Polynom N-ten Grades P(λ) = det A λ1 = (λ 1 λ)(λ 2 λ)...(λ N λ) (3.4) 45

46 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN heißt charakteristisches Polynom von A. Seine N im Allgemeinen komplexen Nullstellen λ i sind die Eigenwerte von A und bilden das Spekrum von A. Mehrfache Nullstellen: sei λ i k i -fache Nullstelle von P, also P(λ) = (λ 1 λ) k 1 (λ 2 λ) k 2...(λ s λ) ks, so besitzt der Eigenwert λ i die algebraische Vielfachheit k i. 3.1.3 Bezeichnungen Die transponierte Matrix A T erhält man durch Vertauschen von Zeilen und Spalten von A: A T ij = A ji. (3.5) Die inverse Matrix A 1 ist definiert als A 1 A = A A 1 = 1. (3.6) Man erhält sie durch Lösen des linearen, inhomogenen Gleichungssystems (3.6), in Komponenten: N A ij A 1 jk = δ ik. (3.7) j Für symmetrische Matrizen gilt A = A T. Für orthogonale Matrizen gilt A 1 = A T. Dann sind wegen (3.7) alle Spalten sowie alle Zeilen jeweils paarweise orthogonal. Für normale Matrizen gilt A A T = A T A. Symmetrische und orthogonale Matrizen sind auch normal. 3.1.4 Normale Matrizen Sei A eine normale Matrix. Dann existiert eine orthogonale Matrix T so, dass T 1 A T = B, (3.8) wobei B Diagonalform besitzt, B ij = b i δ ij. A und B heißen ähnlich und haben das selbe charakteristische Polynom und demnach auch dasselbe Spektrum λ i = b i. Die Eigenvektoren von A sind paarweise orthogonal und bilden die Spalten der Transformationsmatrix T.

3.2. KOMPLEXE MATRIZEN 47 Symmetrische Matrizen Für jede symmetrische N N Matrix gilt: 1. Alle N Eigenwerte und Eigenvektoren sind reell. 2. Eigenvektoren zu verschiedenen Eigenwerten sind orthogonal. 3. Zum Eigenwert der algebraischen Vielfachheit k (k-fache Entartung) gehören k linear unabhängige Eigenvektoren, die sich durch ein Schmidtsches Verfahren orthogonalisieren lassen. 4. Aus 2. und 3. folgt: Die N Eigenvektoren bilden ein vollständiges Orthogonalsystem (VONS) in R N, d.h. sie spannen den gesamten R N auf. Orthogonale Matrizen Das Spektrum einer orthogonalen Matrix liegt auf dem Einheitskreis in der komplexen Ebene: λ j = 1, λ j ǫ oder λ j = exp(iϕ j ), ϕ j ǫr. Beispiel: Die Drehmatrix in 2 Dimensionen ( cosθ sinθ D = sinθ cosθ ) besitzt das charakteristische Polynom (cosθ λ) 2 +sin 2 θ = 0 und die Eigenwerte λ 12 = exp(±iθ). 3.2 Komplexe Matrizen Sei A eine komplexe N N Matrix, A ij ǫ. 3.2.1 Bezeichungen Die adjungierte Matrix A + erhält man durch Vertauschen und Komplex-Konjugieren von Spalten und Zeilen A T ij = A ji. (3.9)

48 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN Für die inverse Matrix A 1 gilt (3.6) und (3.7) unverändert. Spezielle Matrizen: Die selbstadjungierte Matrix mit A = A +. Selbstadjungierte Matrizen werden auch als hermitisch bezeichnet. Die unitäre Matrix mit A 1 = A +. Die normale Matrix mit A A + = A + A. Selbstadjungierte und unitäre Matrizen sind auch normal. 3.2.2 Die Jordansche Normalform Satz: Jede beliebige (komplexe oder reelle) N N Matrix A kann durch eine invertierbare Matrix (lineare Transformation) auf Jordansche Normalform gebracht werden: J 1 (λ 1 ) 0 0 0... 0 J 2 (λ 2 ) 0 0... 1 A = J = 0 0 J 3 (λ 3 ) 0... (3.10)... 0... J m (λ M ) mit den Matrizen (Jordankästchen) ( λi 1 J i (λ i ) = λ i, 0 λ i ), λ i 1 0 0 λ i 1 0 0 λ i, etc. (3.11) der Länge 1 2 3 etc. J i (λ i ) hat den einzigen (algebraisch 1,2,3,...-fachen) Eigenwert λ i. Die geometrische Vielfachheit eines Eigenwertes λ i ist gleich der Anzahl der linear unabhängigen Eigenvektoren zu λ i. Geometrische Vielfachheit = Anzahl der Jordankästchen mit λ i in J. Speziell für normale Matrizen gilt: Algebraische Vielfachheit = Geometrische Vielfachheit alle Jordankästchen haben die Länge 1 normale Matrizen sind immer diagonalisierbar Beispiel:

3.3. INHOMOGENE LINEARE GLEIHUNGSSYSTEME 49 Die Matrix J = λ 1 1 0 0 0 λ 1 0 0 0 0 λ 1 0 0 0 0 λ 2 besitzt bereits Jordansche Normalform und hat das charakteristische Polynom P(λ) = (λ 1 λ) 3 (λ 2 λ). Es ergibt sich demnach für die Eigenwerte λ 1 λ 2 algebraische Vielfachheit 3 1 geometrische Vielfachheit 2 1 D.h. J hat nur drei Eigenvektoren, zwei zu λ 1 und einen zu λ 2. Die Eigenvektoren bilden daher kein VONS. 3.3 Inhomogene lineare Gleichungssysteme Das System A x = b (3.12) besitzt dann eine eindeutige Lösung, wenn die inverse Matrix A 1 existiert, d.h. wenn deta 0: x = A 1 b. (3.13) Numerisch muss dann eine Matrix invertiert werden, was durch Standard-Routinen (LAPAK) erreicht werden kann. Je nach Form von A kommen verschiedene Bibliotheksroutinen in Frage (Tabelle 3.1), eine Dokumentation findet man z.b. in http://www.netlib.org/lapack/explore-html/files.html Die verschiedenen Namen der Routinen werden aus ihren jeweiligen Funktionen, Datentypen, etc. abgeleitet. Eine Beschreibung findet man in http://www.netlib.org/lapack/individualroutines.html Hier ein Auszug im Original: Obtaining individual routines in LAPAK

50 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN ------------------------------------------------------------------------ *LAPAK, Version 3.1.0* The *naming scheme* of each *LAPAK* routine is a coded specification of its function (within the very tight limits of standard Fortran 77 6-character names). All driver and computational routines have names of the form *XYYZZZ*, where for some driver routines the 6th character is blank. The first letter, *X*, indicates the data type as follows: S REAL D DOUBLE PREISION OMPLEX Z OMPLEX*16 or DOUBLE OMPLEX WARNING: for the new routines from LAPAK 3.1.0 using iterative refinement method: DSGESV, ZDESV the two first letters represent the precision used: DS: Data type in double but solving problem using single precision Z: Data type in complex*16 but solving problem using complex precision The next two letters, *YY*, indicate the type of matrix (or of the most significant matrix). Most of these two-letter codes apply to both real and complex matrices; a few apply specifically to one or the other. BD bidiagonal DI diagonal GB general band GE general (i.e., unsymmetric, in some cases rectangular) GG general matrices, generalized problem (i.e., a pair of general matrices) GT general tridiagonal HB (complex) Hermitian band HE (complex) Hermitian HG upper Hessenberg matrix, generalized problem (i.e a Hessenberg and a triangular matrix) HP (complex) Hermitian, packed storage HS upper Hessenberg OP (real) orthogonal, packed storage OR (real) orthogonal PB symmetric or Hermitian positive definite band PO symmetric or Hermitian positive definite PP symmetric or Hermitian positive definite, packed storage PT symmetric or Hermitian positive definite tridiagonal SB (real) symmetric band

3.3. INHOMOGENE LINEARE GLEIHUNGSSYSTEME 51 SP symmetric, packed storage ST (real) symmetric tridiagonal SY symmetric TB triangular band TG triangular matrices, generalized problem (i.e., a pair of triangular matrices) TP triangular, packed storage TR triangular (or in some cases quasi-triangular) TZ trapezoidal UN (complex) unitary UP (complex) unitary, packed storage The last three letters *ZZZ* indicate the computation performed. For example, SGEBRD is a single precision routine that performs a bidiagonal reduction (BRD) of a real general matrix. Their meanings are fully explained in the LAPAK Users Guide ------------------------------------------------------------------------ Die Matrix A wird dabei nicht vollständig invertiert, es genügt, sie auf Dreiecksform zu transformieren (Gaußsches Eliminationsverfahren, für Details siehe z.b. [9]). Durch geeignetes Vertauschen und Bilden von Linearkombinationen von (3.12) erhält man schließlich anstatt (3.12) A x = b (3.14) mit A = A 11... A 1N A 22... A 33... 0 A NN. Jetzt lässt sich (3.14) leicht lösen, man erhält (wenn A ii q für alle i) x i = b i N k=i+1 A ik x k A ii wobei i = N, N 1,...1 rückwärts durchlaufen wird., (3.15) 3.3.1 LR-Zerlegung Eine Vorgehensweise zum direkten Lösen eines inhomogenen Systems besteht in der LR-Zerlegung (auch LU-Zerlegung, engl.: LU-decompositon). Dabei wird die Matrix A als Produkt zweier Matrizen L R = A (3.16) geschrieben, wobei es sich bei L um eine linke (lower), bei R um eine rechte (upper) Dreiecksmatrix handelt. In Komponenten am Beispiel einer 4x4 Matrix hätten wir also

52 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN Tabelle 3.1: Verschiedene LAPAK-Routinen zur Berechnung von (3.12). Quelle: http://www.netlib.org/lapack/lug/node26.html L 11 0 0 0 L 21 L 22 0 0 L 31 L 32 L 33 0 L 41 L 42 L 43 L 44 Dann lässt sich (3.12) als R 11 R 12 R 13 R 14 0 R 22 R 23 R 24 0 0 R 33 R 34 0 0 0 R 44 = A 11 A 12 A 13 A 14 A 21 A 22 A 23 A 24 A 31 A 32 A 33 A 34 A 41 A 42 A 43 A 44 (3.17) A x = (L R) x = L (R x) = b (3.18) schreiben. Wir führen den Vektor ein und lösen zuerst y = R x (3.19) L y = b, (3.20)

3.3. INHOMOGENE LINEARE GLEIHUNGSSYSTEME 53 was wegen der unteren Dreiecksform von L sehr einfach geht: [ ] y i = 1 i 1 b i L ij y j, (3.21) L ii Hier gilt die Regel, dass die Summe rechts für i = 1 null ist und auf der rechten Seite auf die in den vorigen Schritten bereits berechneten y j zugegriffen wird. j=1 Als zweiter Schritt wird gelöst, was dir Form (3.14) besitzt. R x = y (3.22) Die eigentliche Aufgabe besteht also darin, die Zerlegung (3.16) und die Matrizen L und R zu finden. Dies geschieht durch Lösen des inhomogenen Systems K L ik R kj = A ij, i = 1..N, j = 1..N (3.23) k=1 wobei wegen der speziellen Struktur von L und R die Summe nur bis K = Min(i,j) läuft. Dies sind aber N 2 Gleichungen für 2 N2 +N = N 2 + N Unbekannte. Das 2 System ist unterbestimmt (die LR-Zerlegung ist daher nicht eindeutig) und wir können z.b. die N Diagonalelemente von L gleich Eins setzen: L ii = 1, i = 1..N. (3.24) Eine direkte Lösung von (3.23) wird durch den rout-algorithmus [5] erreicht: 1. Setze j = 1. 2. Berechne die j Koeffizienten i 1 R ij = A ij L ik R kj, i = 1..j (3.25) k=1 3. Berechne die N j Koeffizienten [ ] L ij = 1 j 1 A ij L ik R kj R jj k=1, i = j +1..N (3.26) 4. j := j +1. Wenn j N gehe nach 2. Wie man sich durch Ausprobieren überzeugt, werden bei jedem Schritt rechts nur Größen verwendet, die vorher ausgerechnet wurden.

54 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN Pivoting In (3.26) findet eine Division statt. Problematisch wird es, wenn R jj = 0. Man kann sogar zeigen, dass der rout Algorithmus (andere Eliminationsmethoden übrigens ebenfalls) instabil ist, wenn R jj klein im Vergleich zu den anderen Matrixelementen wird. Ein Ausweg bietet das Umordnen des Gleichungsystems (3.12). Man kann hier beliebig Spalten und Zeilen vertauschen(permutieren), muss dann aber die Elemente der Vektoren x und b ebenfalls permutieren. Das Auffinden einer geigneten Permutation, welche zu einem großen Divisor (Pivotelement) in (3.26) führt, nennt man Pivotierung oder pivoting. Man unterscheidet zwischen vollständiger und partieller Pivotierung. Im ersten Fall werden Reihen und Zeilen von A jeweils paarweise vetrauscht, im zweiten nur die Zeilen. Wie findet man das optimale Pivotelement? Die Wahl des jeweils betragsmäßig größten Elements führt normalerweise zum Erfolg. Um die Elemente verschiedener Reihen zu vergleichen, muss aber die Matrix A zuerst skaliert werden. Man kann hierzu das größte Element jeder Zeile auf eins skalieren, d.h. man berechnet für jede Zeile i einen Skalierungsfaktor s 1 i = max A ij und skaliert dann A ij = s i A ij, b i = s i b i. Das Programm LRZERL, frei nach Numerical Recipies [5], verwendet den rout- Algorithmus mit impliziter Skalierung und partieller Pivotierung. Dabei wird nicht wirklich skaliert, der Skalierungsfaktor wird lediglich abgespeichert und bei der Pivotierung berücksichtigt. j Die Inputmatrix A wird durch die LR-Zerlegung in der Form R 11 R 12 R 13 R 14 L 21 R 22 R 23 R 24 L 31 L 32 R 33 R 34 (3.27) L 41 L 42 L 43 R 44 ersetzt, d.h. es wird kein zusätzlicher Speicherplatz für L und R benötigt. Die Diagonalelemente von L brauchen nicht gespeichert zu werden, da diese gleich Eins sind. SUBROUTINE LRZERL(A,N,NP,INDX,D) c c uebernommen aus NUMERIAL REIPIES c c A(NP,NP) [In/Out] Eingangsmatrix, wird durch die Routine durch die c c L,R- Matrix gemaess (3.27) ersetzt. A wird durch Pivotierung zeilenweise permutiert, siehe INDX. c c N [In] Dimension der Matrix

3.3. INHOMOGENE LINEARE GLEIHUNGSSYSTEME 55 c c NP [In] phys. Dimensionierung von A c c INDX(NP) [Out] Zeiger auf die Zeilen von A nach Permutierung c c D [Out] Paritaet des perm. Systems c----------------------------------------------------------------------- PARAMETER (NMAX=500,TINY=1.0e-20) Groesstes angenommenes N und kleine Zahl DIMENSION INDX(N),A(NP,NP),VV(NMAX) VV speichert implizite Skalierung D=1. DO 12 I=1,N! impliziteskalierung, Maximumsuche DO 11 J=1,N IF (ABS(A(I,J)).GT.AAMAX) AAMAX=ABS(A(I,J)) 11 ONTINUE if (AAMAX.EQ.0.) stop singulaere Matrix in LRZERL Alle Elememente einer Zeile null VV(I)=1./AAMAX! Skalierung 12 ONTINUE DO 19 J=1,N! Aeusserster Loop ueber Spalten, Schleife 2-4 im! routs-alg. DO 14 I=1,j-1! Gl. (3.25) ausser fuer i = j. SUM=A(I,J) DO 13 K=1,I-1 SUM=SUM-A(I,K)*A(K,J) 13 ONTINUE A(I,J)=SUM 14 ONTINUE AAMAX=0.! Suche nach groesstem Pivotelement DO 16 I=J,N! Das ist i=j in (3.25) und i=j+1..n in (3.26). SUM=A(I,J) DO 15 K=1,J-1 SUM=SUM-A(I,K)*A(K,J) 15 ONTINUE A(I,J)=SUM DUM=VV(I)*ABS(SUM)! lohnt sich pivoting? IF(DUM.GE.AAMAX) THEN! jawoll! IMAX=I AAMAX=DUM

56 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN ENDIF 16 ONTINUE IF (J.NE.IMAX) THEN! muessen zwei Reihen permutiert werden? do 17 k=1,n! ja DUM=A(IMAX,K)! tauschen A(IMAX,K)=A(J,K) A(J,K)=DUM 17 ONTINUE D=-D! Paritaetswechsel VV(IMAX)=VV(J)! Skalierung ebenfalls vertauschen ENDIF INDX(J)=IMAX! Zeiger setzen IF(A(J,J).EQ.0.) A(J,J)=TINY! abfangen von Null im Pivotelement c Trick, um trotzdem weiter zu machen, auch mit sing. Matrix. c Man koennte hier auch stoppen, oder RETURN mit Fehler. IF(J.NE.N) THEN! alle Elemente werden durch Pivotel. dividiert DUM=1./A(J,J) DO 18 I=J+1,N A(I,J)=A(I,J)*DUM 18 ONTINUE ENDIF 19 ONTINUE! naechste Spalte RETURN END Bleiben noch die Rücksubstitutionen (3.20) und (3.22), die beide von der Routine LRSOLV durchgeführt werden: SUBROUTINE LRSOLV(A,N,NP,INDX,B) c uebernommen aus NUMERIAL REIPIES c Loesst den Satz linearer Gleichungen A X = B. c A(NP,NP) [In] Eingangsmatrix, LR-zerlegt durch LRZERL c durch Pivotierung zeilenweise permutiert, siehe INDX. c c N [In] Dimension der Matrix c c NP [In] phys. Dimensionierung von A c

3.3. INHOMOGENE LINEARE GLEIHUNGSSYSTEME 57 c INDX(NP) [In] Zeiger auf die Zeilen von A nach Permutierung c c B [In/Out] Beim Aufruf enthaelt B die Inhomog. b. Die Routine c ersetzt b durch Loesungsvektor x c----------------------------------------------------------------------- DIMENSION INDX(N),A(NP,NP),B(N) c Vorwaerts-Substitution nach Gl. (3.21) c DO 12 I=1,N LL=INDX(I) SUM=B(LL) B(LL)=B(I) DO 11 J=1,I-1 SUM=SUM-A(I,J)*B(J) 11 ONTINUE B(I)=SUM 12 ONTINUE DO 14 I=N,1,-1! es folg die Rueckwaerts-S. nach (3.22) SUM=B(I) DO 13 J=I+1,N SUM=SUM-A(I,J)*B(J) 13 ONTINUE B(I)=SUM/A(I,I)! I-Komponente des Loesungsvektors X 14 ONTINUE RETURN END Lineare Gleichungssysteme lassen sich also durch Hintereinanderausführen der beiden Routinen LRZERL und LRSOLV lösen. Beispiel: Lösen eines 3x3-Systems mit gegebenem A und b: DIMENSION A(3,3),INDX(3),B(3) A(1,1)=1.! Setzen der Matrix A(1,2)=2. A(1,3)=3.

58 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN A(2,1)=1. A(2,2)=4. A(2,3)=1. A(3,1)=0. A(3,2)=2. A(3,3)=5. B(1)=1. B(2)=2. B(3)=3.! setzen der rechten Seite (Inhomogenitaet) ALL LRZERL(A,3,3,INDX,D)!LR-Zerlegung, danach in A ALL LRSOLV(A,3,3,INDX,B)! Ruecksubstitution c X steht in B, ausschreiben: WRITE(6,*) B END Will man das System (3.12) für verschiedene Inhomogenitäten b lösen, so genügt es, die LR-Zerlegung einmal zu machen (ein Aufruf von LRZERL) und danach LRSOLV mit den verschiedenen b Vektoren aufzurufen. Fassen wir M Inhomogenitäten in der M N- Matrix B zusammen (die einzelnen Vektoren b sollen dabei die Spalten von B bilden), so lassen sich die M zu lösenden Systeme als A X = B zusammenfassen, wobei in den Spalten der M N-Matrix X die einzelnen Lösungsvektoren x stehen. Auf diese Weise lässt sich auch das Inverse von A finden. Man wählt hierzu M = N und für B die Einsmatrix: A X = 1. Dann entspricht X gerade A 1. Wir geben ein Beispiel, bei dem das Inverse einer 3x3 Matrix berechnet wird. Zur Probe bilden wir A A 1 = 1. DIMENSION A(3,3),INDX(3),AIN(3,3),B(3,3) Die Inverse zu A soll gebildet werden: A(1,1)=1. A(1,2)=2. A(1,3)=3. A(2,1)=1. A(2,2)=4.

3.3. INHOMOGENE LINEARE GLEIHUNGSSYSTEME 59 A(2,3)=1. A(3,1)=0. A(3,2)=2. A(3,3)=5. B=A! A nach B kopieren, weil INVERS die urspr. Matrix ueberschreibt ALL INVERS(B,3,3,AIN) c WRITE(6,*) die inverse Matrix lautet: DO 10 I=1,3 WRITE(6,*) (AIN(I,J), J=1,3) 10 ONTINUE zur Kotrolle bilden wir das Produkt A*AIN B=MATMUL(A,AIN) WRITE(6,*) die Matrix A*AIN lautet: DO 20 I=1,3 WRITE(6,*) (B(I,J), J=1,3) 20 ONTINUE END SUBROUTINE INVERS(A,N,NP,AIN) c berechnet die Inverse zu A in AIN c c A(NP,NP) [In/Out] Input Matrix A. c Achtung: wird durch LR-Matrix ueberschrieben c AIN(N,N) [Out] das Inverse zu A, A^(-1) c N [In] Rang von A c NP [In] Dimensionierung von A, NP >=N c c PARAMETER (NMAX=500)! max. N DIMENSION A(NP,NP),AIN(N,N),INDX(NMAX) AIN=0. DO 1 I=1,N! Konstruktion der Eins-Matrix AIN(I,I)=1. 1 ONTINUE ALL LRZERL(A,N,NP,INDX,D)! LR-Zerlegung von A

60 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN DO 10 I=1,N! Loesen der N Ruecksubstitutionen ALL LRSOLV(A,N,NP,INDX,AIN(1,I)) 10 ONTINUE RETURN END 3.3.2 Thomas-Algorithmus Hat die Matrix A eine bestimmte Struktur, so lässt sich das Verfahren teilweise erheblich vereinfachen. Wir zeigen dies am Beispiel einer Tridiagonalmatrix und untersuchen das System A x = y, wobei A gegeben sei als A = b 1 c 1 0 a 2 b 2 c 2... a i b i c i... 0 a N b N Zuerst wird (3.28) auf Dreiecksform gebracht. (3.28) A = was mit Hilfe der Substitutionen sowie c i 1 c 1 0 1 c 2.. 1 c i.. 0 1. (3.29) c 1 = c 1 b 1, y 1 = y 1 b 1 (3.30) c i =, b i a i c i 1 y i = y i a i y i 1, b i a i c i 1 i = 2...N (3.31) gelingt. Das Gleichungssystem A x = y lässt sich jetzt nach (3.15) leicht lösen: x N = y N sowie x i = y i x i+1 c i, i = N 1,...1. (3.32) Die Vorschrift (3.30-3.32) wird als Thomas-Algorithmus bezeichnet. Sie lassen sich relativ einfach auf Matrizen mit 5 oder 7 Nebendiagonalen erweitern.

3.3. INHOMOGENE LINEARE GLEIHUNGSSYSTEME 61 3.3.3 Beispiel: Methode der kleinsten Quadrate Es soll eine Kurve gefunden werden, die möglichst nahe an einer vorgegebenen Menge von Datenpunkten verläuft (Problem der Ausgleichsrechnung). Die Grundlagen der Methode wurden von Gauß ca. 1795 entwickelt. Sei eine Menge von Datenpaaren (x l,y l ), l = 1...m gegeben. Gesucht ist eine Funktion y = f(x,a k ), die den quadratischen Abstand s 2 = m (y l f(x l,a k )) 2 l minimiert bezüglich der Parameter a k, k = 1..K. Daraus folgt das System von K (im Allgemeinen nichtlinearen) Gleichungen a k m (y l f(x l,a k )) 2 = 0, k = 1...K (3.33) l zur Bestimmung der a k. Wir beschränken uns auf Polynome vom Grad n: f(x,a k ) = n a k x k (3.34) k=0 und erhalten aus (3.33) das lineare Gleichungssystem n A kk a k = b k (3.35) k =0 mit A kk = m l x k+k l, b k = m y l x k l. l Offensichtlich ist A eine symmetrische reelle Matrix, sodass wir die LAPAK- Routine DSYSV verwenden können. Als Beispiel nehmen wir m = 100 Punkte, die entlang der Kurve y(x) = sin(x)+ x 5 +1+ξ, 0 x 4π liegen, wobei ξ eine fluktuierende Größe in [0,1] ist (Random-Aufruf). Das Programm sieht so aus:

62 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN PROGRAM AUSGLEIH IMPLIIT REAL*8 (A-H,O-Z)! Doppelt genau wird empfohlen PARAMETER (M=100, KMAX=51, PI=3.14159265)! M Datenpunkte DIMENSION A(KMAX,KMAX),X(M),Y(M),B(KMAX),IPIV(KMAX),WORK(1000), * YP(M) REAL*4 XS(M),YS(M),YPS(M) ALL PGBEGIN(0, /xwin,1,1) ALL PGBEGIN(0, /PS,1,1) ALL PGPAP(6.,1.) ALL PGENV(0.,13.,0.,5.,0,1)! xy-skala IOL=1 c Erzeugen der Datenpunkte DX=4.*PI/FLOAT(M-1) DO 10 I=1,M X(I)=FLOAT(I-1)*DX Y(I)=SIN(X(I))+0.2*X(I)+1.+RAN() XS(I)=X(I) YS(I)=Y(I) 10 ONTINUE ALL PGPT(M,XS,YS,17) 11 WRITE(6,*) Welchen Grad (<=50)? READ(5,*,END=900) K IF(K.LT.0.OR.K.GT.49) GOTO 11 K1=K+1 Berechnen von A und B DO 50 I=1,K1 B(I)=0. DO 51 L=1,M B(I)=B(I)+X(L)**(I-1)*Y(L) 51 ONTINUE DO 50 J=1,K1 A(I,J)=0. DO 52 L=1,M A(I,J)=A(I,J)+X(L)**(I+J-2) 52 ONTINUE 50 ONTINUE LAPAK-Aufruf ALL DSYSV( U,K1,1,A,KMAX,IPIV,B,KMAX,WORK,1000,INFO)

3.4. HOMOGENE LINEARE GLEIHUNGSSYSTEME 63 c angepasstes Polynom und Abstand berechnen S=0.! Abstand DO 100 L=1,M YP(L)=0. DO 110 I=1,K1 YP(L)=YP(L)+B(I)*X(L)**(I-1) 110 ONTINUE S=S+ABS(YP(L)-Y(L)) YPS(L)=YP(L) 100 ONTINUE S=S/FLOAT(M) WRITE(6,*) mittlerer Abstand:,S IOL=IOL+1 ALL PGSI(IOL) ALL PGSLW(5) ALL PLINE(M,XS,YPS) GOTO 11 900 ALL PGEND END! dicke Linien Die Abb.3.1 zeigt das Ergebnis für verschiedene Polynome zusammen mit den Datenpunkten. Der mittlere Abstand s = 1 m m y l f(x l,a k ) l konvergiert schnell für größer werdendes n. 3.4 Homogene lineare Gleichungssysteme 3.4.1 Eigenwertprobleme Wir untersuchen jetzt homogone Gleichungen der Form (3.3) B x λ x = 0 (3.36) welche mit B λ1 = A die Form (3.1) besitzen. Das System (3.36) hat nur dann eine nichttriviale Lösung, wenn die Determinante det(b λ1) = 0

64 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN Abbildung 3.1: Ausgleichspolynome vom Grad (mittlerer Abstand in Klammern) n = 1 (rot, s = 0.6034),n = 4(grün, s = 0.6025),n = 10(blau, s = 0.2676),n = 40(hellblau, s = 0.2555). verschwindet. Dies führt nach Abschn.3.1.2 auf das charakeristische Polynom P(λ), dessen N Nullstellen den (nicht notwendig verschiedenen) Eigenwerten von B entsprechen. Zu jedem Eigenwert λ i gehört ein Eigenvektor v i sodass B v i = λ i v i, i = 1...N (3.37) wobei die Eigenvektoren nicht notwendig alle verschieden sein müssen(siehe Abschn.3.2.2).

3.4. HOMOGENE LINEARE GLEIHUNGSSYSTEME 65 3.4.2 Problemstellung Die numerische Aufgabe besteht also darin, die Eigenwerte und Eigenvektoren einer gegebenen Matrix zu finden. Nach Abschn.3.2.2 lässt sich jede Matrix auf Jordansche Normalform transformieren: 1 B = J. Da bei der Transformation das Spektrum nicht verändert wird, sind die Eigenwerte von A mit denen von J identisch und stehen in der Diagonalen: λ i = J ii. Die Eigenwerte sind also bekannt, wenn man die Transformationsmatrix gefunden hat. Um die Eigenvektoren von B zu finden, muss B diagonalisierbar sein, was der Fall für normale Matrizen ist. D.h. es gibt eine Transformation sodass mit der Diagonalmatrix 1 B = D D ij = λ i δ ij. Die gesuchten Eigenvektoren von B sind dann mit den Spalten der Matrix identisch (Für nicht-diagonalisierbare Matrizen gibt es spezielle Verfahren, auf die wir hier nicht weiter eingehen wollen). Wie lässt sich die Transformationsmatrix finden? Im Wesentlichen werden zwei unterschiedliche Verfahren angewandt, oft auch in Kombination. Wir wollen beide hier kurz erläutern, für mehr Details siehe z.b. [10]. 1. Einzeltransformationen Die Idee besteht darin verschiedene Transformationsmatrizen P i zu finden, die bestimmte Aufgaben erledigen, z.b. Nullsetzen bestimmter Elemente, ganzer Reihen oder Spalten, etc.. Man erhält B = P 1 k...p 1 2 P 1 1 BP 1 P 2...P k. Die am Schluss resultierende Matrix B muss nicht unbedingt diagonal sein (bzw. Dreiecksform aufweisen), sollte aber einfacher handhabbar sein als die Ausgangsmatrix. Diese kann dann durch Faktorisierung weiter diagonalisiert werden. 2. Faktorisierung Die Matrix B soll sich in einen rechten Faktor F R und in einen linken Faktor F L als B = F L F R (3.38)

66 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN zerlegen lassen. Aus den beiden Faktoren lässt sich durch Vertauschen eine neue Matrix B = F R F L (3.39) bilden. Andererseits folgt aus (3.38) nach Multiplikation mit F 1 L was, in (3.39) eingesetzt, F R = F 1 L B, B = F 1 L B F L (3.40) ergibt. Also sind B und B ähnlich und haben dieselben Eigenwerte. Man konstruiert nun die Folge B (n+1) = F 1 nl B(n) F nl = F nr F nl (3.41) mit B (0) = B und F nl, F nr als Faktoren von B (n). Man kann zeigen, dass diese B (n) füer n gegen eine Dreiecksmatrix konvergiert, wenn die Faktorisierung (3.38) bestimmte Eigenschaften erfüllt [10]. Dies wird im nächsten Abschnitt vertieft. 3.4.3 LR-Faktorisierung Wir verwenden für (3.38) die bereits in Abschn.3.3.1 ausführlich vorgestellte LR- Zerlegung, B = L R nach (3.17). Die Iterationsvorschrift (3.41) lautet demnach Ein Iterationsschritt sieht wie folgt aus: B (n+1) = L 1 n B (n) L n = R n L n. (3.42) 1. Zerlege B in L und R 2. Bilde B = R L 3. Setze B := B 4. Wenn B noch nicht in Dreiecksform, gehe nach 1. Bei jedem Schritt nähert sich B einer oberen Dreiecksmatrix. Hat B diese Form erreicht, so ändert sich nichts mehr, d.h. jede obere Dreiecksmatrix ist Fixpunkt der Abbildung (3.41). Dies wird klar, wenn man sich überlegt dass eine obere Dreiecksmatrix B in trivialer Weise in eine obere Dreieckmatrix R = B und die Eins-Matrix als untere Dreiecksmatrix L faktorisiert. Dann ist aber LR = RL und B = B. Die folgenden Programmzeilen bilden einen Iterationsschritt zur Dreieckstransformation von B:

3.4. HOMOGENE LINEARE GLEIHUNGSSYSTEME 67 DIMENSION B(N,N), BS(N,N)... 1. ALL LRZERL(B,N,N,indx,d)! LR-Zerlegung, siehe oben 2. ALL RL2BS(B,BS,N)! berechnet das Produkt R L in BS 3. B=BS! weist der Amtrix A die Matrix AS zu Dann muss B auf obere Dreiecksform getestet werden. Man bildet s = N i 1 B ij i=2 j=1 und testet IF(S.GT.EPSILON) goto 1 mit einem kleinen EPSILON. Das Unterprogramm RL2BS hat die Form SUBROUTINE RL2BS(A,AS,N) DIMENSION A(N,N),AS(N,N) DO 10 I=1,N DO 10 J=1,N AS(I,J)=0. DO 20 K=MAX(I,J),N IF(K.NE.J) AS(I,J)=AS(I,J)+A(I,K)*A(K,J) 20 ONTINUE IF(J.GE.I) AS(I,J)=AS(I,J)+A(I,J)! aufpassen beim Diagonalelement L_ii 10 ONTINUE RETURN END und setzt die Formel N A ij = R ik L kj um. (Beachte hierbei, wie L und R in A gespeichert sind, (3.27)). k=1

68 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN 3.4.4 QR-Faktorisierung Nicht jede Matrix lässt sich LR-zerlegen. Dagegen gilt für beliebige Matrizen die QR- Zerlegung B = Q R mit R als oberer Dreiecksmatrix und der orthogonalen Matrix Q. Anstatt (3.42) ergibt sich jetzt B (n+1) = Q 1 n B(n) Q n = R n Q n. (3.43) Es gelten die folgenden Aussagen (ohne Beweis, Details in [10]): Wenn alle Eigenwerte von B verschiedene Beträge haben, konvergiert B (n) für n gegen eine (obere) Dreiecksmatrix. Die Eigenwerte stehen dann mit aufsteigendem Betrag in der Diagonalen. Haben k Eigenwerte den selben Betrag λ i,i = 1...k, so konvergiert B (n) gegen eine (obere) Dreiecksmatrix mit Ausnahme einer diagonalen Blockmatrix der Ordnung k, deren Eigenwerte die λ i sind. 3.4.5 Anwendung: lineare Federkette y 0 a y y 1 2 a y 3 y N 1 y N y N+1 Abbildung 3.2: Federkette der Länge L = a(n +1). Die Länge der Feder zwischen den zwei Massepunkten i und i+1 beträgt (y i y i+1 ) 2 +a 2. Wir untersuchen das Beispiel aus Abb.3.2. Die einzelnen Massepunkte (Masse m) sollen jeweils einen Freiheitsgrad besitzen, d.h. sie können sich nur in y Richtung bewegen. Die potentielle Energie der Anordnung (Federenergie) lautet dann V(y 1...y N ) = D 2 N (y n y n+1 ) 2 +V 0, (3.44) n=0 wobei wir für die Federn die Ruhelänge null annehmen und die Kette die Randbedingungen y 0 = y N+1 = 0 erfüllen soll. Mit der Lagrange-Funktion L = m 2 N ẏn 2 V(y 1...y N ) n=1

3.4. HOMOGENE LINEARE GLEIHUNGSSYSTEME 69 folgen aus den Euler-Lagrange-Gleichungen die Bewegungsgleichungen mit ω 2 0 = D/m. Der Ansatz ÿ n = ω 2 0(2y n y n+1 y n 1 ) (3.45) y n (t) = v n exp(iωt) führt (3.45) in ein lineares homogenes System 2v n v n+1 v n 1 = ω2 v ω0 2 n (3.46) über, welches die Form (3.36) besitzt mit λ = ω2 ω 2 0 B = 2 1 0 1 2 1... 1 2 1... 0 1 2. Abbildung 3.3: Konvergenz der Diagonalisierung durch LR-Zerlegung für verschiedene Kettengrößen N. Dieses Problem ist exakt lösbar und besitzt die N verschiedenen Eigenwerte ( ) ( ) λ ex j = 4sin 2 jπ jπa = 4sin 2. (3.47) 2(N +1) 2L Wir wollen es zur Demonstration trozdem numerisch lösen. Dazu verwenden wir das in Abschn.3.4.3 beschriebene Verfahren und lesen die Eigenwerte, diesmal in aufsteigender Reihenfolge, als Diagonalelemente von B (n) ab: λ (n) i = B (n) ii, i = 1...N. (3.48)

70 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN Wie schnell konvergiert das Verfahren gegen eine Dreiecksmatrix und damit das Spektrum (3.48) gegen die exakten Werte (3.47)? Dazu berechnen wir den Abstand (mittlerer Fehler) d (n) = 1 N λ ex i λ (n) i N i=1 und zeichnen d über n (Abb.3.3). Es zeigt sich, dass das Verfahren für relativ kleine Matrizen schnell konvergiert, für größere jedoch eher schlecht. Dies liegt daran, dass die minimale Differenz zweier aufeinanderfolgender Eigenwerte min λ i λ i+1 1 N 2 ist, d.h. für großes N liegt Beinahe-Entartung vor. Auch steigt die Rechenzeit für die in jedem Iterationsschritt durchgeführte LR-Zerlegung n 3 (bei voll besetzter Matrix). Das sowie die Einschränkung auf LR-zerlegbare Matrizen begrenzen den praktischen Einsatz. Es empfiehlt sich im Fall der Matrizendiagonalisierung auf Bibliotheksroutinen wie LAPAK zurückzugreifen. Hier werden spezielle Routinen für spezielle Klassen von Matrizen (symmetrisch, orthogonal, tridiagonal, sparse, Hessenberg, etc.) angeboten, deren Effizienz erheblich größer ist. Eine Übersicht für symmetrische Matrizen gibt Tabelle 3.2, über allgemeine Matrizen Tabelle 3.3. 3.4.6 Anwendung: Nullstellen eines Polynoms Gegeben sei ein Polynom N-ten Grades in der Form P(x) = N a k x k (3.49) k=0 dessen N komplexe Nullstellen P(x i ) = 0, x i ǫ, i = 1...N bestimmt werden sollen. Hierzu gibt es verschiedene Verfahren. Wir wollen hier eine Methode angeben, die auf ein lineares Eigenwertproblem führt. Ausgehend von (3.49) normiert man b k = a k /a N, k = 0...N 1 und erhält das Polynom P (x) = x N + N 1 k=0 b k x k

3.4. HOMOGENE LINEARE GLEIHUNGSSYSTEME 71 Tabelle 3.2: Verschiedene LAPAK-Routinen zur Berechnung der Eigenwerte und Eigenvektoren von symmetrischen und orthogonalen Matrizen. Quelle: http://www.netlib.org/lapack/lug/node48.html

72 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN Tabelle 3.3: Verschiedene LAPAK-Routinen zur Berechnung der Eigenwerte und Eigenvektoren von allgemeinen sowie einigen speziellen Matrizen. Quelle: http://www.netlib.org/lapack/lug/node52.html welches dieselben Nullstellen wie P besitzt. Man definiert die Frobenius-Matrix(N N) 0 b 0 1 0 b 1 1 0 b 2 F =... (3.50).... 1 b N 1 und kann zeigen, dass det(f x1) = ( 1) N P (x) gilt. D.h., die N Eigenwerte von F entsprechen den Nullstellen von P. Bei (3.50) handelt es sich um eine Hessenberg-Matrix, das ist eine Matrix in Dreiecksform mit einer zusätzlichen Nebendiagonalen. Diese Matrizen lassen sich effektiv diagonalisieren, z.b. durch die LAPAK-Routine DHSEQR:

3.4. HOMOGENE LINEARE GLEIHUNGSSYSTEME 73 SUBROUTINE ZEROS(A,N,Z,AUX) berechnet die Nullstellen des Polynoms N-ten Grades P = A(N)*X^N +... A(0) A(0:N), real*8, die Koeefizienten (wird nicht veraendert) Die komplexen Nullstellen sind in Z(N), complex*16 AUX(N,N) Hilfsfeld NxN real*8 IMPLIIT REAL*8 (A-H,O-Z) DIMENSION A(0:N),Z(2*N),AUX(N,N),WORK(1000) Normierung AN=A(N) A=A/AN Frobenius-Matrix (Hessenberg) AUX=0 AUX(1,N)=-A(0) DO 10 I=2,N AUX(I,N)=-A(I-1) AUX(I,I-1)=1. 10 ONTINUE ALL DHSEQR( E, N,N,1,N,AUX,N,Z,Z(N+1),DOOF,1,WORK,1000,INFO) IF(INFO.NE.0) WRITE(6,*) Fehler in ZEROS Nullstellen in komplexe Notation konvertieren DO 100 I=1,N AUX(I,1)=Z(I) AUX(I,2)=Z(N+I) 100 ONTINUE DO 110 I=1,N K=2*I-1 Z(K)=AUX(I,1) Z(K+1)=AUX(I,2) 110 ONTINUE Normierung rueckgaengig machen A=A*AN

74 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN RETURN END 3.4.7 Aufgaben 1. Bestimmen Sie von Hand die Eigenwerte, Vielfachheiten und Eigenvektoren der folgenden Matrizen: 2 1 a 0 2 1 0 0 2, 1 0 1 0 2 a 0 0 2, cosϕ sinϕ 0 sinϕ cosϕ 0 0 0 1. 2. Verifizieren Sie den rout-algorithmus, indem Sie für die Matrix A = von Hand eine LR-Zerlegung durchführen. Lösen Sie dann das Gleichungssystem A x = 1 2 3 1 4 1 0 2 5 und geben Sie A 1 an. Was ergibt sich für den Kommutator [L,R]? 3. Zeigen Sie, dass (3.47) eine exakte Lösung von (3.46) ist. Wie lauten die Eigenvektoren v j? 4. Gegeben sind drei Massepunkte (Masse m), die mit drei gleichen Federn der Ruhelänge Null gekoppelt sind (Abb.3.4). Jeder Massepunkt habe die Ladung q. Im Ursprung soll sich die Ladung Q befinden. Die Anordnung soll sich in der xy-ebene bewegen und es soll b 1 b 2 b 3 Q >> q > 0 gelten, sodass man die elektrostatischen Abstoßungen der drei kleinen Ladungen untereinander vernachlässigen kann. Die potentielle Energie der Anordnung lautet also V( r i ) = qq 4πǫ 0 3 i 1 r i + D 2 [ ( r1 r 2 ) 2 +( r 2 r 3 ) 2 +( r 3 r 1 ) 2] (3.51)

3.4. HOMOGENE LINEARE GLEIHUNGSSYSTEME 75 y q r 1 r 0 Q x r 2 q q r 3 Abbildung 3.4: System aus drei beweglichen Massepunkten mit 6 Freiheitsgraden (a) Führen Sie zunächst dimensionslose Variable ein: Zeigen Sie, dass V( r i ) = α 3 i r = l r, t = τ t, V = V 0 V. (3.52) 1 + 1 [ ( r 1 r 2 ) 2 +( r 2 r 3 ) 2 +( r 3 r 1 ) 2] (3.53) r i 2 gilt. Was ergibt sich für α und V 0?, was für τ, wenn die dimensionslosen Bewegungsgleichungen r i = V r i lauten sollen? Im Folgenden werden wir nur die dimensionslosen Variablen (3.52) verwenden, lassen aber alle Querstriche der Einfachheit wegen weg. (b) BerechnenSiedieRuhelagen r i (0).NutzenSiedazuSymmetrieüberlegungen. (c) Stellen Sie die Bewegungsgleichungen für kleine Auslenkungen u i = r i r i (0) auf. Hinweis: Die Bewegungsgleichungen (dimensionslos) lauten r i = V r i.

76 KAPITEL 3. LINEARE GLEIHUNGSSYSTEME UND MATRIZEN Mit r i = r (0) i + u i ergibt sich nach Taylor-Entwicklung (kleine Auslenkungen) 3 u 2 V i = r i r j u j. ri (0) Dies lässt sich als j v = A v schreiben, wobei v den 6-komponentigen Vektor bezeichnet. Wie lautet A? v = (u x1,u y1,u x2,u y2,u x3,u y3 ) (d) Berechnen Sie die Eigenwerte und Eigenvektoren von A. Stellen Sie die Eigenvektoren grafisch dar. Interpretieren Sie das Ergebnis. Welche Bedeutung kommt einem verschwindenden Eigenwert (marginale Mode), welche einem negativen zu? (e) Berücksichtigen Sie jetzt auch die elektrostatische Abstoßung der Teilchen untereinander, d.h. die potentielle Energie(3.51) erhält die zusätzlichen Terme mit den Abständen V ww = q2 4πǫ 0 3 i 1 d i d i = r i r i+1, wobei r 4 = r 1 gilt. Wie lautet die erweiterte dimensionslose Form von (3.53)? Wie ändern sich die Eigenwerte von A abhängig vom Verhältnis q/q? 5. Schreiben Sie ein Programm, welches die Nullstellen des Polynoms P(x) = N k=0 ( 1) k x 2k+1 (2k +1)! für variables N berechnet. Drücken Sie diese als Vielfache von π aus.

Kapitel 4 Gewöhnliche Differentialgleichungen I, Anfangswertprobleme Die allermeisten Problemstellungen in der Physik führen auf Differentialgleichungen. Als Beispiel nennen wir die klassische Mechanik: ausgehend vom Newtonschen Grundgesetz werden Massen durch einwirkende Kräfte beschleunigt, ihre Gechwindigkeit ändert sich, v = at = F m t. Hängt die Kraft aber vom Ort oder von der Zeit ab (Beispiel Pendel, Planetenbewegung), so gilt dieser Zusammenhang nur für eine infinitesimal kurze Zeit, in der die Kraft konstant ist: v t = F(x(t),t) m Der Ort des Teilchens ändert sich dann um x = v(t) t was nach Grenzübergang t 0 zwei gekoppelte gewöhnliche DGLs ergibt dx dt = v(t), dv dt = F(x(t),t) m oder d 2 x dt = F(x(t),t). 2 m Dies ist die grundlegende DGL der klassischen Mechanik. 4.1 Quasilineare Differentialgleichungen Quasilineare Differentialgleichungen sind in der höchsten vorkommenden Ableitung linear. Man kann also y (n) = f(x,y,y,y,...y (n 1) ) (4.1) 77

78 KAPITEL 4. GEWÖHNLIHE DIFFERENTIALGLEIHUNGEN I mit y = y(x), y (k) = dk y dx k schreiben. Gleichung(4.1) ist äquivalent mit einem System von n DGLs erster Ordnung, die man aus der Substitution erhält: y 1 = y, y k+1 = y (k), k = 1...n 1 y 1 = y 2 y 2 = y 3... y n = f(x,y 1,y 2,...y n ), (4.2) oder, in Vektorschreibweise d y dx = f(x, y). (4.3) Es genügt also, Systeme 1. Ordnung der Form (4.2) zu untersuchen. Definiert man die Ableitung über den Differenzenquotienten d y dx = lim y(x+ x) y(x) x 0 x so lässt sich (4.3) für endliches, aber kleines x näherungsweise schreiben als (Taylor- Entwicklung) y(x+ x) = y(x)+ f(x, y(x)) x+o( x 2 ), (4.4) wobei x als Schrittweite bzeichnet wird. D.h. aber, aus jedem y(x) lässt sich y(x+ x) und damit iterativ für jeden anderen Wert rechts von x y(x+m x) bestimmen. Daraus wird klar, dass man zusätzlich zur Funktion f auch einen Anfangswert (eigentlich n Anfangswerte) y(x 0 ) = y 0 (4.5) vorgeben muss. Die Gleichungen (4.3,4.5) bilden ein Anfangswertproblem, (4.4) ein erstes numerisches Näherungsverfahren dazu, die sogenannte explizite Euler-Vorwärts- Methode., 4.2 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (gedämpften) Fadenpendels in einer Dimension ϕ+α ϕ+ω 2 0 sinϕ = 0, Ω 2 0 = g/l (4.6)

4.2. BEISPIEL: MATHEMATISHES PENDEL 79 mit der Fadenlänge l, Dämpfungskonstante α > 0 und dem Auslenkungswinkel ϕ aus der Vertikalen. Das äquivalente System 1. Ordnung lautet ϕ = ω ω = αω Ω 2 0 sinϕ (4.7) für die Variablen ϕ(t) und ω(t). Dazu kommen die Anfangsbedingungen ϕ(0) = ϕ 0, ω(0) = ω 0. Das System(4.7) besitzt zwei Fixpunkte (Ruhelagen) ϕ = ω = 0: ϕ (0) 0 = 0, ϕ (0) 1 = π wobei ϕ (0) 0 als stabiler Fokus, ϕ (0) 1 als ein instabiler Sattelpunkt bezeichnet werden. Energiesatz Multiplikation von (4.6) mit ϕ und Integration über t ergibt 1 2 ϕ2 Ω 2 0cosϕ = E 0 R(t) (4.8) mit E 0 als Integrationskonstante und monoton wachsendem R(t) = α dt ϕ 2. Den Ausdruck auf der linken Seite in (4.8) identifiziert man mit der dem System zur Verfügung stehenden mechanischen Gesamtenergie E/l 2 m, R entspricht der durch Reibung verbrauchten und in Wärme umgesetzten Energie: E(t) = E 0 R(t). Da E(t) Ω 2 0 und Ṙ 0 gelten, wird der Ruhezustand ϕ = 0, ω = 0 asymptotisch für t erreicht. Dabei wird die mechanische Energie R(t ) = E 0 +Ω 2 0 in Wärme umgesetzt und das Pendel kommt unabhängig von seiner Anfangsbedingung zur Ruhe. Solange E > E c mit E c = Ω 2 0 schwingt das Pendel durch die obere Ruhelage (Rotation),fürE < E c erhältmanschwingungenumdieuntereruhelage(oszillation). Im reibungsfreien Fall (α = 0) gilt Energieerhatlung E = E 0 und das Pendel kommt nie zur Ruhe. Entsprechend E 0 liegt entweder Oszillation oder Rotation vor. Für E 0 = E c besteht die Bewegung in einer unendlich lange dauernden Annäherung an die obere Ruhelage. Wählt man als Anfangswert ebenfalls die obere Ruhelage, so entspricht die Trajektorie im Phasenraum (ϕ-ω-ebene) einem homoklinen Orbit, der Separatrix, der in unendlich langer Zeit durchlaufen wird.

80 KAPITEL 4. GEWÖHNLIHE DIFFERENTIALGLEIHUNGEN I Euler-Vorwärts Wir wollen jetzt das System (4.7) mit dem Euler-Verfahren numerisch lösen: PROGRAM PENDEL HARATER*1 INTEGER PGURS DIMENSION FIPG(2),OMPG(2) PI=3.14159265 OMEGA=1.! Eigenfrequenz ALPHA=0.1! Daempfung TPER=2.*PI/OMEGA WRITE(6,*) DT? READ(5,*) DT ALL PGBEGIN(0, /xwin,1,1) ALL PGPAP(6.,1.) ALL PGENV(-PI,PI,-PI,PI,0,1) 1 FI=0. OM=0. K=PGURS(FI,OM,) IF(.EQ. L ) THEN ALL PGERAS ALL PGBOX( ABNT,0.,0, ABNT,0.,0) GOTO 1 ENDIF IF(.EQ. ) GOTO 999! Startpunkt mit ursor waehlen! Bildschirm loeschen durch L! Programm beenden durch <blank> T=0. N=0 10 ONTINUE T=T+DT FIP=OM OMP=-ALPHA*OM-OMEGA**2*SIN(FI) FI=FI+FIP*DT OM=OM+OMP*DT FIPG(1)=FIPG(2) OMPG(1)=OMPG(2)! Euler Vorwaerts

4.2. BEISPIEL: MATHEMATISHES PENDEL 81 FIPG(2)=FI OMPG(2)=OM IF(FI.GT.PI) THEN FI=FI-2.*PI FIPG=FI ELSE IF(N.NE.0) ALL PGLINE(2,FIPG,OMPG) ENDIF IF(FI.LT.-PI) THEN FI=FI+2.*PI FIPG=FI ELSE IF(N.NE.0) ALL PGLINE(2,FIPG,OMPG) ENDIF N=N+1 IF(N.EQ.50) THEN E=.5*FIP**2-OMEGA**2*OS(FI)! Gesamtenergie N=1 WRITE(6,*) T,FI,E ENDIF IF(T.LT.50.*TPER) GOTO 10 GOTO 1 999 ALL PGEND END Die Abbildungen 4.1 zeigen Phasenraum und Energie über t für verschiedene α und Zeitschritte. Für α = 0 (Abb.4.1 oben) erwarten wir eine konstante Energie, was aber nicht der Fall ist. Auch sollten die Trajektorien im Phasenraum geschlossen sein, anstatt nach außen zu spiralen. Offensichtlich erzeugt das Euler-Verfahren eine negative Reibung, die Energie nimmt zu und die Amplituden der Oszillationen ebenfalls, diese gehen dann sogar in Rotationen über. Dieses Verhalten ist qualitativ unabhängig von t. Abb.4.1 Mitte zeigt den gedämpften Fall, das Ergebnis sieht realistisch aus. Die Trajektorien spiralen nach innen und die Energie erreicht asymptotisch den Wert Ω 2. Dagegen ist das Verhalten in Abb.4.1 unten wieder durch numerische Instabilitäten bedingt. Für größere Zeitschritte ( t = 0.15) ergibt sich wieder eine Art negative Dämpfung und ein Anwachsen der Gesamtenergie. Wir ziehen ein vorläufiges Fazit: Die Ergebnisse für α = 0 sind alle falsch (negative numerische Dämpfung ). Für α > 0 erhält man qualitativ richtige Resultate für kleine t.

82 KAPITEL 4. GEWÖHNLIHE DIFFERENTIALGLEIHUNGEN I Auch im gedämpften Fall wächst die Energie an und die Trajektorien entfernen sich vom stabilen (!) Fixpunkt, wenn t zu groß wird. 4.3 Numerische Stabilität des Euler-Verfahrens Schon in Abschn.1.2.3 haben wir gesehen, dass der Zeitschritt durch die numerische Stabilität nach oben beschränkt ist. Wir untersuchen zunächst das allgemeine System (4.4). Sei y (0) ein stabiler Fixpunkt f(x, y (0) ) = 0 dann lässt sich (4.4) um diesen Fixpunkt linearisieren: mit der Jacobi-Matrix u(x+ x) = u(x)+l u(x) x (4.9) L ij = f i y j y (0). (4.10) Die Eigenwerte von L müssen alle negativen Realteil besitzen (Stabilität von y (0) ). Wir schreiben (4.9) als u(x+ x) = Q Ex u(x) (4.11) mit und Q Ex = 1+ x L u = y y (0). Die Abweichungen u müssen gegen Null gehen, was aus der Stabilität des Fixpunkts folgt. Dies ist aber nur gewährleistet, wenn der Spektralradius von Q Ex kleiner eins bleibt: ρ(q Ex ) < 1 (4.12) Die letzte Bedingung ergibt eine Obergrenze für x. Wir verdeutlichen dies am Beispiel des mathematischen Pendels. Linearisierung um den stabilen Fixpunkt ϕ = ω = 0 ergibt für die Jacobi-Matrix ( ) 0 1 L = Ω 2. 0 α Man erhält für den Spektralradius von Q ρ = 1 α t+ t 2 Ω 2 0 solange α < 2Ω 0 gilt, d.h. wir schließen den überdämpften Fall aus. Das Stabilitätskriterium ergibt dann t < α. Ω 2 0

4.3. NUMERISHE STABILITÄT DES EULER-VERFAHRENS 83 Abbildung 4.1: Trajektorien im Phasenraum (links) und Gesamtenergie über t für das gedämpftemathematischependel(ω 0 = 1)berechnetdurchdasEuler-Verfahren.Oben: α = 0, t = 0.05,Mitte:α = 0.1, t = 0.05,unten:α = 0.1, t = 0.15.DasVerhalten oben und unten entspricht nicht der Realität sondern ist auf numerische Instabilität zurückzuführen. Dies erklärt das Verhalten der Lösungen aus Abb.4.1. Als Stabilitätsbedingung erhalten

84 KAPITEL 4. GEWÖHNLIHE DIFFERENTIALGLEIHUNGEN I wir nämlich bei Ω = 1 t < α, was nur für die Situation in Abb.4.1 Mitte erfüllt ist. Für den ungedämpften Fall ist das Euler-Verfahren sogar für beliebig kleine t instabil. 4.4 Implizite und explizite Verfahren Das Euler-Verfahren gehört zur Klasse der expliziten Verfahren, weil die Variablen bei x + x automatisch auf der linken Seite der Iterationsvorschrift auftreten. Bei Impliziten Verfahren gilt dagegen anstatt (4.4) y(x+ x) = y(x)+ f(x+ x, y(x+ x)) x+o( x 2 ), (4.13) d.h. man muss um y(x+ x) zu berechnen nach y(x+ x) auflösen. Dies ist eindeutig nur für einen linearen Zusammenhang möglich und man erhält oder f( y) = A y (1 xa) y(x+ x) = y(x) y(x+ x) = Q Im y(x) (4.14) mit Q 1 = 1 xa. Im Die Stabilität ist jetzt also durch den Spektralradius von (1 xa) 1 bestimmt und dadurch teilweise erheblich verbessert. So ergibt sich beim mathematischen Pendel nach Linearisierung um die untere Ruhelage ρ(q Im ) = 1 1+α t+ω 2 0 t 2, wasfüralle t,sogarfürα = 0,kleinereinsist.D.h.dasimplizitenumerischeVerfahren ist für das linearisierte Pendel(harmonischer Oszillator) bedingungslos stabil und damit wesentlich besser geeignet als das explizite. Allerdings erzeugt der numerische Fehler jetzt eine positive Dämpfung, was dazu führt das auch für α = 0 die Schwingungen abklingen (Abb.4.2). Dies liegt daran das der Fehler immer noch von der Ordnung t 2 ist. 4.5 Verfahren höherer Ordnung Das Euler-Verfahren konvergiert schlecht und liefert ungenaue, z.t. unphysikalische Ergebnisse. Hauptsächlich bei konservativen Systemen kann dies zu qualitativ falschem Verhalten führen. Wir stellen deshalb jetzt zwei Verfahren höherer Ordnung in der Schrittweite vor. Bei beiden Methoden handelt es sich um explizite Verfahren.

4.5. VERFAHREN HÖHERER ORDNUNG 85 Abbildung 4.2: Harmonischer Oszillator, implizites Verfahren 1. Ordnung, α = 0. Obwohl geschlossene Trajektorien und konstante Energie erwartet wird, liefert das Verfahren eine gedämpfte Lösung. Die numerisch erzeugte Dämpfung wächst mit t(schwarz: t = 0.05, rot: t = 0.1). Das implizite Verfahren ist zwar für alle Zeitschritte stabil, aber immer noch ungenau. 4.5.1 Verfahren von Heun Wir beziehen uns zunächst auf eindimensionale Systeme dy dx = f(x,y) (4.15) die sich später leicht auf n Dimensionen verallgemeinern lassen. Integriert man (4.15) über x x+ x dx dy x+ x = y(x+ x) y(x) = dx f(x,y(x )) (4.16) dx x so erhält man die exakte Iterationsvorschrift y(x+ x) = y(x)+ x+ x x x dx f(x,y(x )). (4.17) Daraus folgt sofort die Euler-Methode, indem man das Integral durch die Rechteckregel nähert: x+ x x dx f(x,y) f(x,y(x)) x. Verwendet man dagegen die genauere Trapezregel x+ x so ergibt sich in (4.17) x dx f(x,y) y(x+ x) = y(x)+ ( ) x f(x,y(x))+f(x+ x,y(x+ x)) 2, ( f(x,y(x))+f(x+ x,y(x+ x)) ) x 2. (4.18)

86 KAPITEL 4. GEWÖHNLIHE DIFFERENTIALGLEIHUNGEN I Hierbei ist zu beachten dass auf der rechten Seite ebenfalls y(x + x) auftritt, d.h. es handelt sich zunächst um eine implizite (besser semi-implizite) Vorschrift. Um aus (4.18) ein explizites Schema zu machen, berechnet man y(x + x) auf der rechten Seite aus einem Euler-Verfahren: und erhält schließlich y(x+ x) = y(x)+ das Verfahren von Heun. y(x+ x) = y(x)+f(x,y(x)) x ( ) x f(x,y(x))+f(x+ x,y(x)+f(x,y(x)) x) 2, (4.19) Genauigkeit Von welcher Ordnung ist der Fehler beim Verfahren von Heun? Dazu schreiben wir (4.18) als (der Einfachheit wegen nehmen wir f(y) anstatt f(x,y) an) ( ) x y(x+ x) y(x) = f(y(x))+f(y(x)+f(y(x)) x) 2 und entwickeln die linke Seite nach x ( L.S. = dy dx x+1 d 2 y + 1 d 3 y +... = f x+ 1 df 2dx 2 x2 6dx 3 x3 2dy f x2 + 1 6 die rechte nach f x: R.S. = x 2 ( 2f + df dy f x+ 1 ) d 2 f x 2 +..., 2dy 2f2 f 2d2 f dy 2 +f ( ) ) 2 df x 3 +..., dy wobei... Terme der Ordnung x 4 bedeuten. Beide Seiten stimmen bis zur Ordnung x 2 überein, d.h. der Fehler hat die Ordnung x 3 und ist damit um eine Ordnung kleiner als der Fehler des Euler-Verfahrens. Numerische Stabilität Wie beim Euler-Verfahren lässt sich ein Iterationsschritt beim Heun-Verfahren nach Linearisierung um einen Fixpunkt als y(x+ x) = Q y(x) formulieren, mit Q = 1+ xl+ 1 2 x2 L 2 und L als Jacobi-Matrix (4.10). Die numerische Stabilität folgt wieder aus der Bedingung ρ(q) < 1, was schließlich auf ρ = max i 1+ xλ i + 1 2 x2 λ 2 i < 1

4.5. VERFAHREN HÖHERER ORDNUNG 87 mitdeneigenwertenλ i vonlführt.ambeispieldesharmonischenoszillatorserhalten wir mit λ 12 = α 2 ± 1 2 i 4Ω 2 0 α 2 die Bedingung für die Stabilitätsgrenze (maximaler Zeitschritt): α+ 1 2 α2 t 1 2 αω2 0 t 2 + 1 4 Ω4 0 t 3 = 0. Dies liefert einen oberen Zeitschritt, der für α > 0 größer als beim Eulerverfahren ist (Abb.4.3, t c 1.4). Für den ungedämpften Fall α = 0 ist das Heun-Verfahren für das Pendel allerdings immer noch bedingungslos instabil. Abbildung 4.3: Spektralradien über t, harmonischer Oszillator, Ω 0 = 1, links: gedämpft, α = 1/2, rechts: ungedämpft, α = 0. Grün: Euler, Rot: Heun, Gelb: Runge- Kutta (RK4). 4.5.2 Aufgabe rank-nicolson-verfahren Beim rank-nicolson-verfahren handelt es sich um eine Kombination von implizitem und explizitem Verfahren. Sei y(x) gegeben durch y (x) = f(y(x)) und ỹ(x) die numerische Näherungslösung. Ausgehend von ỹ(x 0 ) = y(x 0 ) liefert das rank-nicolson-schema ỹ(x 0 + x) ỹ(x 0 ) = 1 [ ] f(ỹ(x 0 ))+f(ỹ(x 0 + x)). x 2 Zeigen Sie, dass der numerische Fehler nach einem Schritt beträgt. ỹ(x 0 + x) y(x 0 + x) = O( x 3 )

88 KAPITEL 4. GEWÖHNLIHE DIFFERENTIALGLEIHUNGEN I 4.5.3 Runge-Kutta-Verfahren Die Erhöhung der Ordnung wirkt sich positiv auf Schrittweite und Genauigkeit aus. Es liegt nahe, Verfahren von noch höherer Ordnung zu konstruieren, allerdings steigt, gerade bei größeren Gleichungsystemen, der numerische Aufwand schnell. Schon beim Verfahren von Heun muss f bei jedem Schritt an zwei verschiedenen Stellen ausgewertet werden. In der Praxis wird man also einen Kompromiss zwischen Ordnung und Aufwand finden müssen. Bewährt hat sich das bereits 1895 (!) entwickelte Runge-Kutta-Verfahren (RK). RK gibt es in verschiedenen Ordnungen, normalerweise wird das Verfahren 4. Ordnung verwendet (RK4). Der Einfachheit halber erklären wir die Methode am Verfahren 2. Ordnung. Sei y = y(x) die gesuchte Lösung der DGL Man entwickelt y um x+ x/2 y = f(x,y(x)). y(x) = y(x+ x/2) x 2 y (x+ x/2)+ 1 2 y(x+ x) = y(x+ x/2)+ x 2 y (x+ x/2)+ 1 2 und erhält nach Subtraktion der beiden Gleichungen y(x+ x) = y(x)+ xy (x+ x/2)+o( x 3 ), ( ) 2 x y (x+ x/2)+o( x 3 ) 2 ( ) 2 x y (x+ x/2)+o( x 3 ) also eine Iterationsvorschrift der Ordnung x 2. Wie beim Heun-Verfahren muss man y = f rechts von x kennen, um die rechte Seite zu berechnen. Dies geschieht wie beim Euler-Verfahren y (x+ x/2) = f(x+ x/2,y(x+ x/2)) = f(x+ x/2,y(x)+ x/2f(x,y(x)))+o( x 2 ). Ein Iterationschritt sieht dann folgendermaßen aus: k 1 = xf(x,y(x)) 2 k 2 = xf(x+ x/2,y(x)+k 1 /2) (4.20) y(x+ x) = y(x)+k 2. Man hat ein Verfahren der Ordnung x 2 und muss dazu f bei jedem Iterationsschritt zwei mal auswerten. Genauso lässt sich RK4 konstruieren, wir geben den Algorithmus hier ohne Beweis an: k 1 = xf(x,y(x)) k 2 = xf(x+ x/2,y(x)+k 1 /2) k 3 = xf(x+ x/2,y(x)+k 2 /2) (4.21) k 4 = xf(x+ x,y(x)+k 3 ) y(x+ x) = y(x)+ 1 6 (k 1 +k 2 +k 3 +k 4 ).

4.5. VERFAHREN HÖHERER ORDNUNG 89 Der Fehler ist von der Ordnung x 5 und die Stabilitätseigenschaften folgen diesmal aus der Forderung ρ = max i 1+ xλ i + 1 2 x2 λ 2 i + 1 6 x3 λ 3 i + 1 24 x4 λ 4 i < 1. (4.22) Eine Auswertung für den harmonischen Oszillator ist ebenfalls in Abb.4.3 zu sehen. Wie erwartet ist das Stabilitätsverhalten wesentlich besser als für das Heun-Verfahren (der Zeitschritt kann mehr als doppelt so groß gewählt werden). Eine RK4-Iteration wird durch folgende Subroutine ausgeführt: SUBROUTINE RKG(Y,T,N,DT,AUX,EQ) Integriert das in der Subroutine EQ definierte DGL-System ueber t fuer einen Zeitschritt [T,T+DT] mit einem Runge-Kutta-Verfahren 4. Ordnung Y [In/Out] Abh"angige Variablen, Dimension Y(N) T [In] Unabh. Variable N [In] Anzahl der Gleichungen und der Variablen DT [In] Zeitschritt AUX [-] Arbeitsfeld zur internen Verwendung, Dimension WK(5*N) EQ [In] Name der Subroutine fuer rechte Seiten des DGL-Systems, EXTERNAL DIMENSION Y(*),AUX(*) ALL EQ(AUX,Y,T) DO 5 I=1,N AUX(3*N+I)=AUX(I) AUX(4*N+I)=Y(I)+0.5*DT*AUX(I) 5 ONTINUE ALL EQ(AUX,AUX(4*N+1),T+DT/2.) DO 6 I=1,N AUX(3*N+I)=AUX(3*N+I)+2.*AUX(I) AUX(4*N+I)=Y(I)+0.5*DT*AUX(I) 6 ONTINUE ALL EQ(AUX,AUX(4*N+1),T+DT/2.) DO 7 I=1,N AUX(3*N+I)=AUX(3*N+I)+2.*AUX(I) AUX(4*N+I)=Y(I)+DT*AUX(I) 7 ONTINUE ALL EQ(AUX,AUX(4*N+1),T+DT) DO 8 I=1,N AUX(3*N+I)=AUX(3*N+I)+AUX(I) 8 ONTINUE

90 KAPITEL 4. GEWÖHNLIHE DIFFERENTIALGLEIHUNGEN I DO 10 I=1,N Y(I)=Y(I)+AUX(3*N+I)*DT/6. 10 ONTINUE RETURN END SUBROUTINE EQS(RHSIDE,Y,T) DIMENSION RHSIDE(*),Y(*) RHSIDE(1)=...! hier steht das DGL-System. RHSIDE(2)=...! Notwendige Parameter koennen durch einen.! OMMON Block uebergeben werden... RHSIDE(N)=... RETURN END Die Subroutine EQS enthält dabei die Komponenten der Funktion f(x, y(x)). Programm-Library Ab hier werden wir nützliche Routinen (wie RKG) in einer Library zusammenfassen. Man kann hierzu den Librarian von LINUX verwenden. Einfacher geht es, indem die verschiedenen Unterprogramme in einem File zusammengefasst werden. Diesen File nennen wird zum Beispiel fortlib1.f Er enthält bisher die folgenden Routinen: c c Fortran-Subroutinen library source file c SUBROUTINE ZEROS(A,N,Z,AUX)! Die Nullstellen (Kap.3 SUBROUTINE LRZERL(A,N,NP,INDX,D)! LR-Zerlegung (Kap.3) SUBROUTINE LRSOLV(A,N,NP,INDX,B)! dito SUBROUTINE INVERS(A,N,NP,AIN)! Matrix-Inversion (Kap.3) SUBROUTINE RKG(Y,T,N,DT,AUX,EQ)! Runge-Kutta 4. Ordnung (Kap.4)

4.5. VERFAHREN HÖHERER ORDNUNG 91 c------------------------------------------------------------- c......... Nach Erstellen von fortlib1.f(oder nach Herunterladen von der Vorlesungs-homepage) compiliert man mit f95 -c fortlib1.f Die Option-c teilt dem ompiler mit, kein ausführbares Programm zu erstellen, sondern einen object-file, in diesem Fall fortlib1.o genannt. Will man eine Library-Routine aus fortlib1 verwenden, so muss im entsprechenden make-file (also z.b. make f95) der fortlib1 object-file dazugelinkt werden. Der make-file sollte dann so aussehen: f95 -O1 $1.f -o $1 fortlib1.o -L/usr/lib/ -lpgplot -llapack Mathematisches Pendel mit RK4 AlsBeispieluntersuchenwirwiederdasmathematischePendelmit f nach(4.7).bemerkenswert ist, dass RK4 selbst für den bisher problematischen ungedämpften Grenzfall α = 0 konvergierende Ergebnisse liefert und für kleine Zeitschritte sogar die Energie gut konserviert (ρ 1 in (4.22)), Abb.4.4. PROGRAM PENDEL_RK4 DIMENSION FIPG(2),OMPG(2),Y(2),AUX(10) EXTERNAL EQS! Subroutine fuer die DGLs OMMON /PARAM/ ALPHA,OMEGA! Parameter fuer EQD PI=3.14159265 OMEGA=1. WRITE(6,*) Alpha? READ(5,*) ALPHA! Eigenfrequenz! Daempfung TPER=2.*PI/OMEGA WRITE(6,*) DT? READ(5,*) DT

92 KAPITEL 4. GEWÖHNLIHE DIFFERENTIALGLEIHUNGEN I Abbildung 4.4: Das ungedämpfte mathematische Pendel (α = 0) mit RK4. Für zu großen Zeitschritt verfälscht die numerische Dämpfung das Resultat (oben, t = 1), für t = 0.1 (unten) bleibt die Energie über viele Perioden in guter Näherung erhalten. (Ω 0 = 1,T = 2π). ALL PGBEGIN(0, /xwin,1,1) ALL PGPAP(6.,1.) ALL PGSWIN(-PI,PI,-PI,PI) ALL PGBOX( ABNT,0.,0, ABNT,0.,0) Y(1)=2.! Anfangswert Y(2)=0. T=0. N=0 10 ONTINUE ALL RKG(Y,T,2,DT,AUX,EQS)! Ein Zeitschritt RK4 T=T+DT

4.5. VERFAHREN HÖHERER ORDNUNG 93 FIPG(1)=FIPG(2)! Plott im Phasenraum OMPG(1)=OMPG(2) FIPG(2)=Y(1) OMPG(2)=Y(2) IF(N.NE.0) ALL PGLINE(2,FIPG,OMPG) N=N+1 IF(N.EQ.50) THEN! Energie ausrechnen E=.5*Y(2)**2-OMEGA**2*OS(Y(1)) N=1 WRITE(6,*) T,E ENDIF IF(T.LT.50.*TPER) GOTO 10 ALL PGEND END SUBROUTINE EQS(RHSIDE,Y,T) DIMENSION RHSIDE(2),Y(2) OMMON /PARAM/ ALPHA,OMEGA RHSIDE(1)=Y(2) RHSIDE(2)=-ALPHA*Y(2)-OMEGA**2*SIN(Y(1)) RETURN END 4.5.4 RK4 mit adaptiver Schrittweite Bisher haben wir x vorgegeben, was einfach ist aber nicht immer gut sein muss. Zu große Schrittweite bedeutet ungenau und eventuell sogar numerisch instabil, zu kleine erhöht den Rechenaufwand unnötig und kann durch die größere notwendige Iterationszahl zu numerischer Ungenauigkeit führen. Ein Verfahren mit adaptiver Schrittweite kann hier Verbesserung schaffen. Zum einen lässt sich dann die erwünschte Genauigkeit vorgeben, zum anderen kann das Verfahren bei schwacher Änderung von y die Schritweite automatisch vergrößern, bzw. bei starker Änderung verkleinern. Bei RK4 ist der Fehler von O( x 5 ). Wir starten bei y(x) und betrachten zwei numerisch berechnete y 1 (x + x), y 2 (x + x), einmal mit der Schrittweite x (eine Iteration), und einmal mit x/2 (zwei Iterationen). Sei d( x) der (euklidische)

94 KAPITEL 4. GEWÖHNLIHE DIFFERENTIALGLEIHUNGEN I Abstand so gilt d( x) = y 1 y 2, d( x) = c x 5 wobei c von der 5. Ableitung von y abhängt. Berechnet man d für zwei verschiedene Schrittweiten, lässt sich c eliminieren: d( x 1 ) d( x 2 ) = ( ) 5 x1. x 2 Dieser Zusammenhang lässt sich nach x 2 auflösen: ( ) 1/5 d( x2 ) x 2 = x 1. d( x 1 ) Wenn man jetzt eine Iteration mit gegebenem x 1 berechnet und d( x 2 ) = ǫ als erwünschte Genauigkeit vorgibt, so erhält man die notwendige neue Schrittweite: ( ) 1/5 ǫ x 2 = x 1. d( x 1 ) In der Praxis erweist sich das Verfahren stabiler, wenn man den Exponenten variabel macht: ( ) p ǫ x 2 = x 1 d( x 1 ) und p = { 1/5 wenn d < ǫ 1/4 wenn d ǫ wählt. Wir testen das Schema am Pendel mit variabler Frequenz: Ω 0 (t) = Ω 00 (1+sin 2 (at)) Das Ergebnis zeigt Abb.4.5. Der Zeitschritt nimmt ab wenn Ω 0 zunimmt und umgekehrt. Programm: RK4 mit adaptivem Zeitschritt SUBROUTINE RKADT(Y,T,N,DT,AUX,EPS,EQS) c Integriert das in der Subroutine EQ definierte DGL-System ueber t fuer einen Zeitschritt [T,T+DT] mit einem Runge-Kutta-Verfahren 4. Ordnung, c variabler Zeitschritt Y [In/Out] Abh"angige Variablen, Dimension Y(N) T [In] Unabh. Variable N [In] Anzahl der Gleichungen und der Variablen

4.5. VERFAHREN HÖHERER ORDNUNG 95 Abbildung 4.5: Das ungedämpfte mathematische Pendel mit variabler Frequenz. Schwarz: ϕ(t), num. Lösung, Rot: adaptiver Zeitschritt, Blau: Ω 0 (t), Genauigkeit ǫ = 10 5. DT [In/Out] Zeitschritt AUX [-] Arbeitsfeld zur internen Verwendung, Dimension WK(6*N) EPS [In] gewuenschte Genauigkeit. DT wird angepasst, c sodass Fehler (5.Ordn.) < Eps EQS [In] Name der Subroutine fuer rechte Seiten des DGL-Systems, c EXTERNAL im Hauptprogramm c benoetigt wird die Routine RKG c c Achtung: Anders als bei RKG ist hier Dimension AUX(6*N)!!! c DIMENSION Y(*),AUX(*) EXTERNAL EQS N0=5*N DO 10 I=1,N AUX(N0+I)=Y(I) 10 ONTINUE! Startwert merken ALL RKG(Y,T,N,DT,AUX,EQS)! Ein Zeitschritt RK4 mit dt DO 20 I=1,N SWAP=AUX(N0+I)

96 KAPITEL 4. GEWÖHNLIHE DIFFERENTIALGLEIHUNGEN I AUX(N0+I)=Y(I) Y(I)=SWAP 20 ONTINUE! Ergebnis mit dt merken! Y zurueck auf Startwert ALL RKG(Y,T,N,DT/2.,AUX,EQS)! zwei Zeitschritte RK4 mit dt/2 ALL RKG(Y,T+DT/2.,N,DT/2.,AUX,EQS) D2=0.! euklidischer Abstand berechnen DO 30 I=1,N D2=D2+(Y(I)-AUX(N0+I))**2 30 ONTINUE D=SQRT(D2)! Zeitschritt anpassen IF(D.NE.0.) THEN IF(D.LT.EPS) THEN! Zeitschritt wird groesser DT=DT*(EPS/D)**0.2 ELSE DT=DT*(EPS/D)**0.25! wird kleiner ENDIF ELSE DT=DT*1.1! D=0, dt um 10% vergroessern ENDIF RETURN END Und hier im Ausschnitt das Programm zum Pendel mit variabler Frequenz:... DT=.05! Zeitschritt am Anfang WRITE(6,*) eps?! gewuenschte Genauigkeit (z.b. 10^-5) READ(5,*) EPS Y(1)=2.! Anfangswert Y(2)=0. T=0. L=0 10 ONTINUE! Zeitschleife c ALL RKADT(Y,T,2,DT,AUX,EPS,EQS) T=T+DT

4.6. ANWENDUNG: KEPLER-PROBLEM 97 OMEGA=OMEGA0*(1.+5.*SIN(T/TPER*PI/2.)**2)! Frequenz aendern... GOTO 10... 4.6 Anwendung: Kepler-Problem Unter dem Kepler-Problem der klassischen Mechanik versteht man die Berechnung der Planetenbahnen um die Sonne. Im einfachsten Fall (Sonne + ein Planet) lassen sich als analytische Lösungen die Keplerschen Ellipsen (bzw. Hyperbeln für ungebundene Körper) finden (1. Keplersches Gesetz). 4.6.1 Geschlossene Planetenbahnen Unter der Annahme einer (unbeweglichen) Sonne im Koordinatenursprung lauten die Bewegungsgleichungen für einen Planeten am Ort r r = GM r r 3 (4.23) mit der Gravitationskonstanten G und der Sonnenmasse M. Bedingt durch das Zentralpotential gilt Drehimpulserhaltung, die Bewegung lässt sich auf eine Ebene beschränken. Es genügt also, das 2D-Problem mit r = (x,y) zu untersuchen. Durch geeignete Skalierung r = r (GM) 1/3 erhält man die beiden parameterfreien DGLs 2. Ordnung ẍ = x r 3 ÿ = y (4.24) r 3 mit r = x 2 +y 2. Die Gesamtenergie in Einheiten von GM 2/3 ergibt sich zu E = 1 2 (ẋ2 +ẏ 2 ) 1 r. (4.25) Eine einfache Lösung von (4.24) ist eine Kreisbahn mit Radius R, x = R cos(ωt), y = R sin(ωt). Einsetzen in (4.24) ergibt ω 2 = 1 R 3, (4.26)

98 KAPITEL 4. GEWÖHNLIHE DIFFERENTIALGLEIHUNGEN I entsprechend dem 3. Keplerschen Gesetz. Die numerische Lösung von (4.24) kann mit Hilfe von RK4 erfolgen. Die Subroutine EQS hat dann die Form SUBROUTINE EQS(RHSIDE,Y,T) DIMENSION RHSIDE(4),Y(4) R3=(Y(1)**2+Y(3)**2)**(3/2.) RHSIDE(1)=Y(2) RHSIDE(2)=-Y(1)/R3 RHSIDE(3)=Y(4) RHSIDE(4)=-Y(3)/R3 RETURN END Wählt man als Anfangsbedingung Y(1) = R, Y(2) = 0, Y(3) = 0, Y(4) = F, so erhält man für F = F 0 = R 1/2 Kreise, sonst Ellipsen, bzw Hyperbeln. Für F < F 0 bildet der Anfangspunkt den Aphel, für F > F 0 den Perihel der Ellipse. Für E ergibt (4.25) d.h. für E = F2 2 1 R, F > 2 R existieren keine gebundenen Bahnen mehr, der Himmelskörper bewegt sich auf einer Hyperbel. Interessant ist die Frage der numerischen Dämpfung. Wie gut bleibt die Energie nach (4.25) erhalten? Aufschluss gibt Abb.4.6, die E nach 10.000 Umläufen über t für Kreisbahnen mit R = 1, F = 1, ω = 1 zeigt. Man sieht eine sehr gute Energieerhaltung bis zu Zeitschritten von 0.05. Man beachte, dass die Umlaufzeit 2π beträgt, man bei t = 0.05 also nur noch etwa 120 Zeitschritte je Umlauf auflösen kann. Trotzdem beträgt die Gesamtenergie nach t = 10000 2π etwa E = 0.50024, also eine Abweichung von unter 0.05 %.

4.6. ANWENDUNG: KEPLER-PROBLEM 99 Abbildung 4.6: Energie eines Planeten auf einer Kreisbahn (R = 1, F = 1) nach 10.000 Umläufen über dem Zeitschritt t. Der exakte Wert (4.25) wäre E = 1/2. Abbildung 4.7: Periheldrehung bei kleiner Abweichung vom 1/r-Potential. Trajektorien durch RK4 berechnet mit R = 1, F = 0.7, ǫ = 0.05. 4.6.2 Quasiperiodische Planetenbahnen, Periheldrehung Sämtliche Bahnen mit E < 0 sind geschlossen. Dies ist eine spezielle Eigenschaft des 1/r-Potentials, eine kleine Abänderung V(r) = 1 r 1+ǫ führt sofort zu nichtgeschlossenen, quasiperiodischen Bahnen, deren Perihel sich langsam um die Sonne dreht (Abb.4.7). Die einzige geschlossene Trajektorie für ǫ 0 bleibt der Kreis.

100 KAPITEL 4. GEWÖHNLIHE DIFFERENTIALGLEIHUNGEN I 4.6.3 Mehrere Planeten: Ist unser Sonnensystem stabil? Untersucht man ein System mit zwei oder mehr Planeten, werden die Dinge wesentlich komplizierter. Insbesondere lassen sich analytische Lösungen der Bewegungsgleichungen nur noch näherungsweise (Störungstheorie) angeben. Isaac Newton entwickelte zwar den mathematischen Apparat zur Berechnung der Planetenbahnen, wagte aber als religiöser Mensch nicht, deren gottgegebene Stabilität anzuzweifeln. Der schwedische König Oscar II war da 1887 natürlich weiter: Er stellte die Frage Ist unser Sonnensystem stabil? und setzte für die Antwort 2500 Kronen aus. Die Frage kann selbst heute nicht mit Sicherheit beantwortet werden. Allerdings gelang 1890 Henri Poincaré eine Art Gegenbeweis. Er konnte zeigen, dass bereits beim sogenannten Drei-Körper-Problem, also ein Planet um einen Doppelstern, keine regelmäßigen Bahnen mehr existieren. Der schwedisch-dänische Astronom Elis Strömgren beschäftigte um 1900 57 Mitarbeiter 40 Jahre lang zur Berechnung periodischer Bahnen des Drei- Körper-Problems. Der französische Astronom Jacques Laskar berechnete 1989 numerisch die Bahnen der inneren vier Planeten, 1994 die Bahnen aller Planeten für die nächsten 25 Milliarden Jahre. Er fand dabei, dass die Bahnen leicht chaotisch und Zusammenstöße in den nächsten 200 Mio Jahren eher unwahrscheinlich sind 1. Ein weiterer Beweis für die Instabilität gewisser Bahnradien ist die Asteroidenverteilung zwischen Mars und Jupiter, Abb.4.8. Signifikant sind hier die Kirkwoodschen Lücken (Abb.4.9) welche für Bahnradien auftreten, deren Umlaufzeiten T A im ganzrationalen Verhältnis zur Umlaufzeit T J des Jupiters stehen: T A = T J, n = 2, 7/3, 5/2, 3,... (4.27) n Dadurch kommt es zu Resonanzen, die Asteroiden der betreffenden Bahnen werden innerhalb kurzer Zeit vom Jupiter herausgezogen. Nimmt man an, dass sich Jupiter und Asteroiden näherungsweise auf Kreisbahnen bewegen, so gilt mit (4.27) und (4.26) R A = n 2/3 R J, was mit dem Jupiterbahnradius R J 5.2 AU ziemlich genau der Lage der Lücken aus Abb.4.9 entspricht. Die Wechselwirkung zweier Planeten lässt sich leicht numerisch untersuchen. Ausgehend von (4.23) betrachten wir das erweiterte System mit den Masseverhältnissen r 1 = r 1 r 3 1 r 2 = r 2 r 3 2 kα 2 r 1 r 2 r 1 r 2 3 kα 1 r 2 r 1 r 1 r 2 3 (4.28) α i = m i M 1 J. Laskar, Large-scale chaos in the solar system, Astron. Astrophys. 287, L9 (1994) J. Laskar, M. Gastineau, Existence of collisional trajectories of Mercury, Mars and Venus with the Earth, Nature 459, 7248 (2009)

4.6. ANWENDUNG: KEPLER-PROBLEM 101 Abbildung 4.8: Zwischen Mars und Jupiter befinden sich Asteroiden... Abbildung 4.9:... deren Verteilung deutliche Lücken aufweist. (Quelle: NASA, http://ssd.jpl.nasa.gov/images/ast histo.png) und k als Parameter, mit welchem die Kopplung der beiden Planeten ein- oder ausgeschaltet werden kann (k = 1/0). Die mit GM 5/3 skalierte Gesamtenergie lautet dann E = 1 α i ṙi 2 α i k α 1α 2 2 r i i i r 1 r 2. Eine Lösung zeigt Abb.4.10, wobei die Anfangsbedingungen r 1 (0) = (1,0), r 2 (0) = (2 2/3,0), r1 (0) = (0,1), r2 (0) = (0,2 1/3 )