Computational Physics – Physik am Computer – Michael Bestehorn 15. Juli 2013 2 Inhaltsverzeichnis 1 Einführung, Beispiel und Literatur 1.1 Die typischen drei Schritte des “iterativen Approaches” 1.2 Ein erstes Beispiel – Logistische Abbildung . . . . . . . 1.2.1 Abbildung . . . . . . . . . . . . . . . . . . . . . 1.2.2 Programm . . . . . . . . . . . . . . . . . . . . . 1.2.3 Differentialgleichung . . . . . . . . . . . . . . . 1.2.4 Lyapunov-Exponent . . . . . . . . . . . . . . . 1.2.5 Aufgaben . . . . . . . . . . . . . . . . . . . . . 1.3 Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Abbildungen 2.1 Frenkel-Kotorova-Modell . . . . . . . . . . . 2.1.1 Klassische Formulierung . . . . . . . 2.1.2 Stationäre Lösungen . . . . . . . . . 2.1.3 Standardabbildung . . . . . . . . . . 2.1.4 Aufgaben . . . . . . . . . . . . . . . 2.2 Affine Abbildungen und Fraktale . . . . . . 2.2.1 Sierpinski-Dreieck . . . . . . . . . . . 2.2.2 Fraktale Dimension . . . . . . . . . 2.2.3 Von Farnen und anderen Gewächsen 2.2.4 Aufgaben . . . . . . . . . . . . . . . 2.3 Neuronale Netze . . . . . . . . . . . . . . . . 2.3.1 Perzeptron . . . . . . . . . . . . . . . 2.3.2 Selbstorganisierte Karten: das Modell 2.3.3 Aufgaben . . . . . . . . . . . . . . . 3 Lineare Gleichungssysteme und Matrizen 3.1 Reelle Matrizen . . . . . . . . . . . . . . . 3.1.1 Eigenwerte und Eigenvektoren . . . 3.1.2 Charakteristisches Polynom . . . . 3.1.3 Bezeichnungen . . . . . . . . . . . 3.1.4 Normale Matrizen . . . . . . . . . . 3.2 Komplexe Matrizen . . . . . . . . . . . . . 3.2.1 Bezeichungen . . . . . . . . . . . . 3.2.2 Die Jordansche Normalform . . . . 3.3 Inhomogene lineare Gleichungssysteme . . 3.3.1 LR-Zerlegung . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . von Kohonen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 9 9 10 11 13 16 17 . . . . . . . . . . . . . . 19 19 19 20 20 22 22 23 26 28 30 30 31 35 40 . . . . . . . . . . 45 45 45 45 46 46 47 47 48 49 51 4 INHALTSVERZEICHNIS . . . . . . . . . . 60 61 63 63 65 66 68 68 70 74 4 Gewöhnliche Differentialgleichungen I 4.1 Quasilineare Differentialgleichungen . . . . . . . . . . . . . . . . . . . . 4.2 Beispiel: mathematisches Pendel . . . . . . . . . . . . . . . . . . . . . . 4.3 Numerische Stabilität des Euler-Verfahrens . . . . . . . . . . . . . . . . 4.4 Implizite und explizite Verfahren . . . . . . . . . . . . . . . . . . . . . 4.5 Verfahren höherer Ordnung . . . . . . . . . . . . . . . . . . . . . . . . 4.5.1 Verfahren von Heun . . . . . . . . . . . . . . . . . . . . . . . . 4.5.2 Aufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.3 Runge-Kutta-Verfahren . . . . . . . . . . . . . . . . . . . . . . . 4.5.4 RK4 mit adaptiver Schrittweite . . . . . . . . . . . . . . . . . . 4.6 Anwendung: Kepler-Problem . . . . . . . . . . . . . . . . . . . . . . . . 4.6.1 Geschlossene Planetenbahnen . . . . . . . . . . . . . . . . . . . 4.6.2 Quasiperiodische Planetenbahnen, Periheldrehung . . . . . . . . 4.6.3 Mehrere Planeten: Ist unser Sonnensystem stabil? . . . . . . . . 4.6.4 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7 Chaos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7.1 Harmonisch angetriebenes Pendel . . . . . . . . . . . . . . . . . 4.7.2 Poincaré-Schnitt und Bifurkationsdiagramm . . . . . . . . . . . 4.7.3 Lyapunov-Exponenten . . . . . . . . . . . . . . . . . . . . . . . 4.7.4 Lyapunov-Exponenten höherer Ordnung . . . . . . . . . . . . . 4.7.5 Numerische Berechnung aller Lyapunov-Exponenten . . . . . . . 4.7.6 Beispiel angetriebenes Pendel . . . . . . . . . . . . . . . . . . . 4.7.7 Lyapunov-Zeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7.8 Fraktale Dimension . . . . . . . . . . . . . . . . . . . . . . . . . 4.7.9 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.8 DGLs mit periodischen Koeffizienten . . . . . . . . . . . . . . . . . . . 4.8.1 Floquet-Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . 4.8.2 Stabilität von Grenzzyklen . . . . . . . . . . . . . . . . . . . . . 4.8.3 Parametrische Instabilität: Pendel mit oszillierendem Aufhängepunkt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.8.4 Mathieu-Gleichung . . . . . . . . . . . . . . . . . . . . . . . . . 4.8.5 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 77 78 82 84 84 85 87 88 93 97 97 99 100 102 103 103 105 105 111 112 113 114 119 124 126 126 127 3.4 3.3.2 Thomas-Algorithmus . . . . . . . . . . . . 3.3.3 Beispiel: Methode der kleinsten Quadrate . Homogene lineare Gleichungssysteme . . . . . . . 3.4.1 Eigenwertprobleme . . . . . . . . . . . . . 3.4.2 Problemstellung . . . . . . . . . . . . . . . 3.4.3 LR-Faktorisierung . . . . . . . . . . . . . 3.4.4 QR-Faktorisierung . . . . . . . . . . . . . 3.4.5 Anwendung: lineare Federkette . . . . . . 3.4.6 Anwendung: Nullstellen eines Polynoms . . 3.4.7 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 130 133 5 Gewöhnliche Differentialgleichungen II 135 5.1 Vorbemerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 5.2 Beispiel schiefer Wurf . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 5 INHALTSVERZEICHNIS 5.3 5.4 5.5 5.6 Finite Differenzen . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 Diskretisierung . . . . . . . . . . . . . . . . . . . . 5.3.2 Beispiel Schrödinger-Gleichung . . . . . . . . . . . Methode der gewichteten Residuen . . . . . . . . . . . . . 5.4.1 Verschiedene Verfahren . . . . . . . . . . . . . . . . 5.4.2 Beispiel Stark-Effekt . . . . . . . . . . . . . . . . . Nichtlineare Randwertprobleme . . . . . . . . . . . . . . . 5.5.1 Nichtlineare Systeme . . . . . . . . . . . . . . . . . 5.5.2 Newton-Raphson . . . . . . . . . . . . . . . . . . . 5.5.3 Beispiel: nichtlineare Schrödinger-Gleichung . . . . Schießverfahren . . . . . . . . . . . . . . . . . . . . . . . . 5.6.1 Beispiel: senkrechter Fall mit quadratischer Reibung 5.6.2 Gleichungssysteme . . . . . . . . . . . . . . . . . . 5.6.3 Programm . . . . . . . . . . . . . . . . . . . . . . . 5.6.4 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . 6 Vortragsaufgaben 6.1 Drei Massepunkte . . . . . . . . . . . . 6.2 Dreikörperproblem . . . . . . . . . . . 6.3 Doppelpendel . . . . . . . . . . . . . . 6.4 Gedämpftes angetriebenes Pendel . . . 6.5 Rekonstruktion und fraktale Dimension 6.6 Stationäre Schrödinger-Gleichung I . . 6.7 Stationäre Schrödinger-Gleichung II . . 6.8 Delay-Gleichung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 137 140 146 146 148 150 150 150 152 157 159 163 164 169 . . . . . . . . 173 174 175 176 177 178 179 180 182 6 INHALTSVERZEICHNIS 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 Computerprogramme erlernt werden. Es wird empfohlen, Programme aus dem technisch-wissenschaftlichen Bereich in FORTRAN zu schreiben. Diese Sprache ist im Gegensatz zu dem ebenfalls weitverbreiteten C (oder C++) 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 C bewältigen, nur eben umständlicher und komplizierter, womit die Möglichkeit Fehler zu machen, größer wird. C mag seine Vorteile im maschinennahen Programmieren besitzen (Entwicklung von Compilern, Betriebssystemen, etc.) von denen wir jedoch hier sicher nicht profitieren würden. Wer also unbedingt C (oder C++) 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) Compilieren – (3) Programm starten – goto (1) In (1) wird ein ASCII-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) Compilieren 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 Compiler (Standard Fortran95) eventuell mit zusätzlichen Optionen auf, welche man unter $ man f95 1.2. EIN ERSTES BEISPIEL – LOGISTISCHE 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 1.2.1 Ein erstes Beispiel – Logistische Abbildung Abbildung Als einfaches Beispiel untersuchen wir die Abbildung (Rekursionsformel) [4] xn+1 = axn (1 − xn ), n = 0, 1, 2... 0 ≤ a ≤ 4, 0 ≤ x0 ≤ 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 xn die Bevölkerungsdichte einer Spezies zur Zeit (im Jahr) n misst. Der Term axn alleine führt zu exponentiellem Wachstum wenn a > 1, sonst zum Aussterben der Spezies. Für a > 1 beschränkt die Nichtlinearität −ax2n 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 xn → xs = , n→∞. (1.2) 1 − 1/a für a > 1 Die Lösungen (1.2) ergeben sich aus xs = f (xs ) (1.3) f (x) = ax(1 − x) . (1.4) mit der Abkürzung 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 xs x n = x s + ǫn (1.5) unter Iteration verhalten. Einsetzen von (1.5) in (1.1) ergibt xs + ǫn+1 = f (xs + ǫn ) = f (xs ) + f ′ (xs )ǫn + O(ǫ2n ) , (1.6) 10 KAPITEL 1. EINFÜHRUNG, BEISPIEL UND LITERATUR oder bei Berücksichtigung ausschließlich linearer Terme in ǫn ǫn+1 = f ′ (xs )ǫn . (1.7) Die kleine Abweichung ǫ0 wird durch Iteration genau dann anwachsen, wenn |f ′ (xs )| > 1 gilt, was mit (1.4) auf die beiden Fälle a < 1, a>3 führt. Was passiert für a > 3? Die unten vorgestellte Computerlösung Abb. 1.2 zeigt ein periodisches Verhalten, also xn = xn−2 = xp1 , xn+1 = xn−1 = xp2 xp1 = f (f (xp1 )), xp2 = f (f (xp2 )) . oder 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 xn 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 C Bereich fuer A AMIN=2. AMAX=4. c initialisiere Grafik CALL PGBEGIN(0,’/xwin’,1,1) ! auf den Schirm CALL PGPAP(10.,1.) ! Groesse des Schirms (Breite, Seitenverh.) CALL PGENV(AMIN,AMAX,0.,1.,0,1) ! xy-Skala CALL PGSCI(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 – LOGISTISCHE ABBILDUNG 11 DO 10 I=1,1000 A=FLOAT(I-1)*DA+AMIN AP=A C 20 X=TINY ! x0 DO 20 IT=1,ITMAX+IVOR X=A*X*(1.-X) ! log. Abbildung XP=X IF(IT.GT.IVOR) THEN CALL PGPT(1,AP,XP,-1) ! zeichnet ein Pixel am Ort AP,XP ENDIF CONTINUE 10 CONTINUE C c beende Grafik CALL PGEND END Zur Visualisierung wird die Grafik-Library PGPLOT [2] verwendet. Nach Compilieren 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 = (a − 1)x − ax2 , dt (1.8) die das zeitliche Verhalten von x(t) bei gegebenem x(0) = x0 definiert (Anfangswertproblem). Eine Lösung erhält man durch Separation der Variablen x(t) = a−1 a + c e(1−a)t (1.9) wobei die Integrationskonstante c c= a(1 − x0 ) − 1 x0 durch die Anfangsbedingung festgelegt ist. Für t → ∞ erhält man die asymptotischen Lösungen 0 für a < 1 xs = , (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 x(t + ∆t) − x(t) dx ≈ , dt ∆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 1 1 xn+1 = axn ∆t 1 − 1− − xn , (1.12) a ∆t wobei wir mit xn die x-Werte zu den Zeitpunkten n∆t bezeichnet haben, xn = 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 xs und die richtigen Werte der 1.2. EIN ERSTES BEISPIEL – LOGISTISCHE 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 xs = 1 − 1/a. Wenn man x(t) = xs + ǫ(t) ansetzt und bezüglich ǫ linearisiert, lässt sich zeigen, dass für ∆t = 1 xs numerisch instabil wird sobald a > 3. D.h. bei den Verzweigungen zu periodischen Lösungen bis hin zum Chaos 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 x0 , so ergibt sich für xn xn = f (f (f (.....f (x0 )....))) ≡ f (n) (x0 ) , (1.13) wobei f (n) die n-fach Iterierte bezeichnet. Eine zweite Iteration soll mit einem dicht benachbarten Anfangswert x0 + ǫ beginnen und liefert eine andere Folge y1 , y2 ...yn : yn = f (n) (x0 + ǫ) . (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 (n) f (x0 + ǫ) − f (n) (x0 ) d (n) dn = |xn − yn | = ǫ (1.15) f (x) . ǫ = lim ǫ→0 dx ǫ x0 Nimmt man jetzt an, dass der Abstand exponentiell mit den Iterationen anwächst (instabil), bzw. abnimmt (stabil), also dn = d0 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 d (n) λ = lim ln f (x) . n→∞ n dx x0 (1.16) 14 KAPITEL 1. EINFÜHRUNG, BEISPIEL UND LITERATUR Abbildung 1.3: Logistische Abbildung und Lyapunov-Exponent Wir wenden die Kettenregel an d (n) f (x) = dx f (x0 )dx f (x1 )....dx f (xn ) dx x0 und erhalten schließlich n 1 X d . λ = lim ln f (x) n→∞ n dx x=xk k=0 (1.17) Diese Formel lässt sich relativ einfach programmieren. Natürlich kann man sie nicht 15 1.2. EIN ERSTES BEISPIEL – LOGISTISCHE ABBILDUNG 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) C Bereich fuer A AMIN=2.7 AMAX=4. c initialisiere Grafik CALL PGBEGIN(0,’/xwin’,1,1) ! auf den Schirm CALL PGPAP(10.,1.) ! Groesse des Schirms (Breite, Seitenverh.) CALL PGVPORT(0.1,.9,0.05,0.5) ! Unterer Graph, Iterationen CALL PGSWIN(AMIN,AMAX,0.,1.) ! xy-Skala CALL PGBOX(’BCNT’,0.,0,’BCNT’,0.,0) c ITMAX=1000 IVOR=1000 TINY=1.E-6 ! Zahl der Iterationen je A-Wert ! Vorlauf ! Startwert x DA=(AMAX-AMIN)/1000. DO 10 I=1,1000 A=FLOAT(I-1)*DA+AMIN AP=A ! Schrittweite fuer A C X=TINY FLY=0. DO 20 IT=1,ITMAX+IVOR X=A*X*(1.-X) ! log. Abbildung XP=X IF(IT.GT.IVOR) THEN CALL PGPT(1,AP,XP,-1) IF(ABS(X-.5).GT.1.E-30) FLY=FLY+LOG(ABS(A*(1.-2.*X))) c 20 ENDIF CONTINUE FLP(I)=FLY/FLOAT(ITMAX) FLMAX=MAX(FLMAX,FLP(I)) FLMIN=MIN(FLMIN,FLP(I)) ! Lyapunov-Exponent ! Summe Lyapunov-Epxonen 16 KAPITEL 1. EINFÜHRUNG, BEISPIEL UND LITERATUR XLP(I)=A ! Werte x-Achse (A) C 10 CONTINUE WRITE(6,*) FLMAX,FLMIN CALL PGVPORT(0.1,.9,0.55,0.98) ! Oberer Graph, Lyapunov-Exponent CALL PGSWIN(AMIN,AMAX,FLMIN,FLMAX) ! xy-Skala CALL PGBOX(’BCTNA’,0.,0,’BCTN’,0.,0) C CALL PGLINE(1000,XLP,FLP) CALL 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 xp1 , xp2 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 1.3 17 Literatur 1. Skript zur Vorlesung (2. korrigierte Version in Arbeit), http://www.tu-cottbus.de/fakultaet1/de/statistische-physik/ --> Lehre, Skripte --> Computational Physics I 2. Anleitung zum Grafik-Paket PGPLOT, c. T.J.Pearson, Caltech, USA, http://www.astro.caltech.edu/~tjp/pgplot/old_manual.ps.gz 3. R. H. Landau, M. J. Paez, C. C. Bordeianu, Computational Physics, WILEYVCH (2007) 4. W. Kinzel, G. Reents, Physik per Computer, Spektrum (1996) 5. W. H. Press, B. P. Flannery, S. A. Teukolsky, W. T. Vetterling, Numerical Recipies Cambridge Univ. Press (2007) 6. C. A. J. Fletcher, Computational Techniques for Fluid Dynamics, Vol. I, SpringerVerlag (2005) 7. J. Argyris, G. Faust, M. Haase, R. Friedrich Die Erforschung des Chaos, SpringerVerlag (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 2.1.1 Frenkel-Kotorova-Modell 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 xn und haben den Impuls pn . Die Hamilton-Funktion lautet dann H(xn , pn ) = N 2 X p 1 + V (xn ) + (xn − xn−1 )2 2m 2 n n=1 . (2.2) Um das dynamische Problem zu formulieren, stellt man die Hamiltonschen Gleichungen ṗn = − ∂H , ∂xn ẋn = ∂H ∂pn auf und hat 2N gekoppelte, gewöhnliche DGLs zu lösen. 19 (2.3) 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, pn = 0 suchen. Aus (2.3) folgt ∂H =0 ∂xn (2.4) V ′ (xn ) + (xn − xn−1 ) − (xn+1 − xn ) = 0 . (2.5) yn ≡ xn − xn−1 (2.6) oder Wir defineren und erhalten aus (2.5) und (2.6) die zweidimensionale Abbildung yn+1 = yn + V ′ (xn ) xn+1 = xn + yn+1 = xn + yn + V ′ (xn ) . (2.7) D.h. aus einem beliebiegen Startwert (x0 , y0 ) folgt eindeutig (determiniert) die ganze Reihe (xn , yn ). 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 K V (x) = (1 − cos(2πx)) (2.8) (2π)2 mit K als Kontrollparameter und erhalten schließlich aus (2.7) K sin(2πxn ) 2π = xn + yn+1 . yn+1 = yn + xn+1 (2.9) Die Rekursionsvorschrift (2.9) wird als Standardabbildung, Chirikov-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 Abbildung 2.1: Standardabbildung für K = 1 REAL*8 X,Y,PI2,VOR CHARACTER*1 C INTEGER PGCURS PI2=2.*3.14159265 AMP=1. VOR=AMP/PI2 IMAX=10000 ! der Wert fuer K ! Anzahl der Iterationen je Startwert CALL PGBEGIN(0,’/xwin’,1,1) CALL PGPAP(10.,1.) 21 22 KAPITEL 2. ABBILDUNGEN NCOL=15 ! in 15 verschiedenen Farben C 10 CALL PGENV(0.,1.,0.,1.,1,1) K=PGCURS(X0,Y0,C) ! Mausabfrage X=X0 ! Startwert Y=Y0 C IC=IC+1 ! Farbe wechseln IF(IC.GT.NCOL) IC=1 CALL PGSCI(IC) DO 100 I=1,IMAX Y=Y+VOR*SIN(PI2*X) X=X+Y ! Standardabbildung XP=MOD(X,1.) ! Plottwerte modulo 1 YP=MOD(Y,1.) CALL PGPNTS(1,XP,YP,-1,1) 100 CONTINUE IF(ICHAR(C).NE.32) GOTO 10 CALL PGEND END 2.1.4 Aufgaben 1. Untersuchen Sie (2.9) für verschiedene Werte von K. Für K = 0 geht es ohne Computer. 2. Plotten Sie die Kettenlänge für festes x0 als Funktion von y0 . Versuchen Sie verschiedene Werte von x0 . 2.2 Affine Abbildungen und Fraktale Wir untersuchen lineare, eindeutige (bijektive) Abbildungen, die sich aus den drei Operationen Verschiebung: ~q ′ = ~q + ~a Drehung: ~q ′ = LD ~q Skalierung+Scherung: ~q ′ = LS ~q 23 2.2. AFFINE ABBILDUNGEN UND FRAKTALE zusammensetzen. Wir beschränken uns auf zwei Dimensionen, also ~q = (x, y) , LD ist dann die Drehmatrix LD = cos θ − sin θ sin θ cos θ und Ls die Skalierungs-Scher-Matrix LS = sx b 0 sy . Die zusammengestetzte Transformation lautet ~q ′ = LD LS ~q + ~a , (2.10) wobei die verschiedenen Abbildungen nicht kommutieren, d.h. es kommt auf die Reihenfolge an (Drehung und Skalierung vertauscht aber, wenn sx = sy , b = 0). Transformiert man ein Dreieck mit der Fläche A, so gilt wegen Det(LD ) = 1 A′ = Det(LS ) A = sx sy A . Wendet man die Abbildung (2.10) iterativ an, ~qn+1 = LD LS ~qn + ~a , (2.11) so entsteht eine selbstähnliche Struktur. 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 Compiler zu Compiler verschieden aussehen. Auf anderen Compilern 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 (a1 , b1 ), (a2 , b2 ), (a3 , b3 ). 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 (a1 , b1 ) Wenn i=2: Setze einen Punkt in die Mitte von (x, y) und (a2 , b2 ) Wenn i=3: Setze einen Punkt in die Mitte von (x, y) und (a3 , b3 ) 5. Gehe nach 3. und verwende den in 4. gesetzten Punkt als neuen Punkt (x, y) Als Abbildung formuliert, lautet die iterative Vorschrift ~qn+1 = wobei 1 ~qn + ~ai , 2 i = 1, 2, 3 (zufällig) ~ai = (ai , bi ) . Ein einfaches Programm PROGRAM SIERPINSKI CHARACTER*1 C INTEGER PGCURS DIMENSION A(3), B(3) C 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 C CALL PGBEGIN(0,’/xwin’,1,1) CALL PGPAP(10.,1.) CALL PGSWIN(0.,1.,0.,1.) K=PGCURS(X,Y,C) ! Startpunkt mit Maus setzen C DO 100 N=1,ITER C I=INT(3.*RAN()+1.) ! zufaellige Auswahl 1,2,3 (gleichvert.) X=(X+A(I))/2. ! affine Abbildung Y=(Y+B(I))/2. CALL PGPT(1,X,Y,-1) (2.12) 2.2. AFFINE ABBILDUNGEN UND FRAKTALE 100 25 CONTINUE CALL 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-Counting-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 df zuordnen. Wir verwenden die Box-Counting-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) C 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) 101 DO 101 I=1,ID ! Nullsetzen DO 101 J=1,ID IBOX(I,J)=0 CONTINUE C x=0.5 y=0.5 ! Startwert C DO 100 N=1,ITER C I=INT(3.*RAN()+1.) X=(X+A(I))/2. Y=(Y+B(I))/2. ! zufaellige Auswahl 1,2,3 ! affine Abbildung IX=X/DX+1 IY=Y/DX+1 IBOX(IX,IY)=1 ! Kaestchen I,J berechnen ! eins setzen 28 KAPITEL 2. ABBILDUNGEN 100 CONTINUE 110 N=0 ! Anzahl der getroffenen Kaestchen ermitteln DO 110 I=1,ID DO 110 J=1,ID N=N+IBOX(I,J) CONTINUE WRITE(6,*) N XP(L)=LOG(1./XL) ! LOG-LOG-Kurve YP(L)=LOG(FLOAT(N)) CONTINUE C 10 CALL CALL CALL CALL CALL PGBEGIN(0,’/xwin’,1,1) ! Kurve zeichnen PGPAP(10.,1.) PGENV(XP(1),XP(10),YP(1),YP(10),0,1) PGLINE(10,XP,YP) PGPT(10,XP,YP,26) FDIM=(YP(8)-YP(3))/(XP(8)-XP(3)) ! Steigung berechnen WRITE(6,*)’Und die fraktale Dimension ist:’,FDIM CALL PGEND END Danach wird der Zusammenhang (2.16) doppelt logarithmisch aufgetragen (Abb.2.4) und die Steigung bestimmt, die gerade df entspricht. df = − log M log L (2.17) Es ergibt sich df ≈ 1.585. Der Wert lässt sich durch ein anderes Verfahren auch analytisch bestimmen (siehe z.B. [4]), man erhält df = 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 29 2.2. AFFINE ABBILDUNGEN UND FRAKTALE 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 ~qn+1 = Li ~qn + ~ai , ~q0 = (0.5, 0) (2.18) und 0 0 0 0.27 0.17 −0.215 0.222 0.176 L1 = L3 = , , L2 = −0.139 0.263 0.246 0.224 L4 = 0.781 0.034 −0.032 0.739 , (2.19) sowie ~a1 = 0.5 , 0 ~a2 = 0.57 , −0.036 ~a3 = 0.408 , 0.0893 ~a4 = 0.1075 0.27 . 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 , L2 = , L3 = , L1 = 0 0.6 0 −0.5 0.39 0.38 L4 = 0.47 −0.15 0.17 0.42 , L5 = 0.43 0.28 −0.25 0.45 , L6 = 0.42 0.26 −0.35 0.31 ,(2.20) 30 KAPITEL 2. ABBILDUNGEN Abbildung 2.5: Ein Barnsley-Farn nach (2.19) . und 0 , ~a1 = 0 0 , ~a2 = 1 ~a3 = 0 , 0.6 ~a4 = 0 , 1.1 0 , ~a5 = 1 ~a6 = 0 0.7 verwendet. Die Wahrscheinlichkeiten sind jetzt P (i) = (0.1, 0.1, 0.2, 0.2, 0.2, 0.2) . 2.2.4 Aufgaben 1. Berechnen Sie (mit Bleistift) den Kommutator [LD , LS ]. 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, Chemie, 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 1014 Kontaktstellen (Synapsen) miteinander verbunden sind. Die Verbindungen 32 KAPITEL 2. ABBILDUNGEN Eingabeschicht S2 S1 S3 S5 S4 dynamische Verarbeitungsschicht w1 w5 So Ausgabeneuron Abbildung 2.7: Perzeptron mit N = 5 Eingabeneuronen. 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 Sj die nicht untereinander verbunden sind, eine Verarbeitungsschicht beschrieben durch die synaptischen Gewichte wj , sowie ein Ausgabeneuron (Abb.2.7). Jedes Neuron soll nur zwei Zustände besitzen, nämlich aktiv (Sj = 1) und ruhend (Sj = −1). Die Kopplung der Eingabeschicht an das Ausgabeneuron wird durch den einfachen Zusammenhang So = sign N X j w j Sj ! (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 wj beschrieben, welche hemmend wj < 0 oder erregend (wj > 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 (n) xj , y (n) , n = 1...M . (2.22) 33 2.3. NEURONALE NETZE Das Netz lernt nun durch dynamische Veränderung der synaptischen Stärken wi , d.h. Gl. (2.21) soll durch möglichst viele (im Idealfall alle) Paare (2.22) erfüllt werden: ! N X ! (n) w j xj y (n) = sign . (2.23) j 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 ∆wi die Änderung von wi bei einem Lernschritt, so lässt sich die Hebbsche Regel als ∆wj = 1 (n) (n) y xj N (2.24) formulieren. Soll nur ein Paar (M = 1) gelernt werden und setzt man am Anfang alle wj = 0, so gilt nach einem Lernschritt wj = N1 y xj und, eingesetzt in (2.23) N 1 X 2 y = sign y x N j 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)): ! N X 1 (n) (n) y (n) xj wenn y (n) w j xj ≤0 ∆wj = . (2.25) N j 0 sonst Dadurch stoppt der Algorithmus, wenn alle Muster richtig gelernt sind. 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: (n) j = 1..N . xj = Fj+n , Der Ausgabewert y (n) soll dann dem nächsten Element (Vorhersage) aus der Reihe ! N X (n) y (n) = FN +n+1 = sign w j xj 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 C DIMENSION IS(N),S(N) C DATA IS /N*1/ ITR=0. 1 ! alle mit IS=1 vorbelegen ! Anzahl der richtigen Vorhersagen (Treffer) CONTINUE 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 C Vorhersage X=0. DO 10 I=1,N X=X+S(I)*FLOAT(IS(I)) 10 CONTINUE IF(X.GT.0.) THEN IV=1 ! IV = Vorhersage fuer naechste Eingabe ELSE IV=0 ENDIF C 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 CONTINUE ELSE 35 2.3. NEURONALE NETZE ITR=ITR+1 ! Trefferanzahl +1 ENDIF WRITE(6,*) ’Vorhersage, Erfolgsquote:’,IV,FLOAT(ITR)/FLOAT(M) C DO 30 I=N-1,1,-1 IS(I+1)=IS(I) CONTINUE IS(1)=K GOTO 1 30 ! Fenster eins nach rechts schieben C 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 w~rℓ , ℓ = 1...L verknüpft sein (der obere Index ℓ 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ℓ , z.B. zufallsverteilt oder null. 2. Eingangsmuster. Das zu erlernende Signal v ℓ 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 X ℓ ℓ (v − w~rℓ L X (v ℓ − w~rℓ )2 ′) ≤ 2 für alle ~r (2.26) ℓ 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~rℓ = ǫ h(d) (v ℓ − w~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(−d2 /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. 37 2.3. NEURONALE NETZE 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, (1) w~r für Rot, wobei (2) w~r für Grün, (3) w~r für Blau, (ℓ) 0 ≤ w~r ≤ 1 gilt. 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. SIG0=5. ! maximale Iterationszahl ! Sigma am Anfang c grafik initialisieren CALL PGBEGIN(0,’/xwin’,1,1) CALL PGPAP(6.,1.) CALL 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() CALL PGSCR(I+1, RF, GF, BF) IEN(I1,J1)=I+1 R(I1,J1)=RF G(I1,J1)=GF B(I1,J1)=BF 30 CONTINUE T=0. 38 C 50 KAPITEL 2. ABBILDUNGEN CALL PGPIXL(IEN,IDIM,IDIM,1,IDIM,1,IDIM,0.,1.,0.,1.) C zu erlernendes Muster aus zufaelligen RGB-Werten 50 RF=RAN() GF=RAN() BF=RAN() C 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 CONTINUE ! BMU bei (IMIN,JMIN) C C 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 C 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 CONTINUE C C Farben aendern (zum plotten) DO 300 I=1,ID2 J1=INT(FLOAT(I-1)/FLOAT(IDIM))+1 I1=I-(J1-1)*IDIM CALL PGSCR(I+1,R(I1,J1),G(I1,J1),B(I1,J1)) 300 CONTINUE C T=T+1. IF(T.LT.TMAX) GOTO 50 CALL PGEND END 39 2.3. NEURONALE NETZE 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 KohonenAlgorithmus. Links oben: Anfangszustand, rechts oben nach t = 100 erlernten Zufallswerten, links unten nach t = 500 und rechts unten nach t = tmax = 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 = yi 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 40 KAPITEL 2. ABBILDUNGEN Orte (xi , yi ) 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 21 (K − 1)! geschlossene Wege, die diese Bedingung erfüllen. 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 σ = σ0 · (0.02)t/tmax , σ0 = 2, tmax = 4000 vewendet. 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 N X 1 x= RAN() − 2 i 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 SE = 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 SE = 4.081. 2.3. NEURONALE NETZE 43 Abbildung 2.12: Wieder eine andere Lösung für R = 0.15, diesmal mit SE = 4.221. 44 KAPITEL 2. ABBILDUNGEN Kapitel 3 Lineare Gleichungssysteme und Matrizen In diesem Kapitel wollen wir Methoden zur Lösung linearer homogoner A · ~x = 0 (3.1) und inhomogener A · ~x = ~b (3.2) Gleichungssysteme angeben, wobei ~x, ~b N -komponentige Vektoren im Raum RN 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, Aij ǫ R. 3.1.1 Eigenwerte und Eigenvektoren Jeder Vektor ~v aus RN , für den gilt A · ~v = λ ~v mit vi , λ ǫ C (3.3) heißt Eigenvektor von A zum Eigenwert λ. 3.1.2 Charakteristisches Polynom Das Polynom N -ten Grades P (λ) = det |A − λ 1| = (λ1 − λ)(λ2 − λ)...(λN − λ) 45 (3.4) 46 KAPITEL 3. LINEARE GLEICHUNGSSYSTEME 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 ki -fache Nullstelle von P , also P (λ) = (λ1 − λ)k1 (λ2 − λ)k2 ...(λs − λ)ks , so besitzt der Eigenwert λi die algebraische Vielfachheit ki . 3.1.3 Bezeichnungen Die transponierte Matrix AT erhält man durch Vertauschen von Zeilen und Spalten von A: ATij = Aji . (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 X Aij A−1 (3.7) jk = δik . j Für symmetrische Matrizen gilt A = AT . Für orthogonale Matrizen gilt A−1 = AT . Dann sind wegen (3.7) alle Spalten sowie alle Zeilen jeweils paarweise orthogonal. Für normale Matrizen gilt A·AT = AT ·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, Bij = bi δij . A und B heißen ähnlich und haben das selbe charakteristische Polynom und demnach auch dasselbe Spektrum λi = bi . Die Eigenvektoren von A sind paarweise orthogonal und bilden die Spalten der Transformationsmatrix T . 47 3.2. KOMPLEXE MATRIZEN 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 RN , d.h. sie spannen den gesamten RN auf. Orthogonale Matrizen Das Spektrum einer orthogonalen Matrix liegt auf dem Einheitskreis in der komplexen Ebene: |λj | = 1, λj ǫ C oder λj = exp(iϕj ), ϕj ǫ R . Beispiel: Die Drehmatrix in 2 Dimensionen cos θ − sin θ D= sin θ cos θ besitzt das charakteristische Polynom (cosθ − λ)2 + sin2 θ = 0 und die Eigenwerte λ12 = exp(±iθ) . 3.2 Komplexe Matrizen Sei A eine komplexe N × N Matrix, Aij ǫ C. 3.2.1 Bezeichungen Die adjungierte Matrix A+ erhält man durch Vertauschen und Komplex-Konjugieren von Spalten und Zeilen ATij = A∗ji . (3.9) 48 KAPITEL 3. LINEARE GLEICHUNGSSYSTEME 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 C (lineare Transformation) auf Jordansche Normalform gebracht werden: J 1 (λ1 ) 0 0 0 ... 0 0 J 2 (λ2 ) 0 ... −1 0 (λ ) 0 0 J ... (3.10) C ·A·C =J = 3 3 .... ... J m (λM ) 0 mit den Matrizen (Jordankästchen) J i (λi ) = λi , λi 1 0 λi , der Länge 1 λi 1 0 0 λi 1 , 0 0 λi 2 3 etc. (3.11) 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 GLEICHUNGSSYSTEME Die Matrix 49 λ1 1 0 0 0 λ1 0 0 J = 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 algebraische Vielfachheit geometrische Vielfachheit λ1 3 2 λ2 1 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 det A 6= 0: (3.13) ~x = A−1 · ~b . Numerisch muss dann eine Matrix invertiert werden, was durch Standard-Routinen (LAPACK) 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 LAPACK 50 KAPITEL 3. LINEARE GLEICHUNGSSYSTEME UND MATRIZEN ------------------------------------------------------------------------ *LAPACK, Version 3.1.0* The *naming scheme* of each *LAPACK* 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 PRECISION C COMPLEX Z COMPLEX*16 or DOUBLE COMPLEX WARNING: for the new routines from LAPACK 3.1.0 using iterative refinement method: DSGESV, ZCDESV the two first letters represent the precision used: DS: Data type in double but solving problem using single precision ZC: 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 GLEICHUNGSSYSTEME SP ST SY TB TG TP TR TZ UN UP 51 symmetric, packed storage (real) symmetric tridiagonal symmetric triangular band triangular matrices, generalized problem (i.e., a pair of triangular matrices) triangular, packed storage triangular (or in some cases quasi-triangular) trapezoidal (complex) unitary (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 LAPACK 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 0 . A′22 . . A1N . . . A′33 . . . A′N N . Jetzt lässt sich (3.14) leicht lösen, man erhält (wenn A′ii 6= q für alle i) P ′ b′i − N k=i+1 Aik xk , xi = A′ii (3.15) wobei i = N, N − 1, ...1 rückwärts durchlaufen wird. 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 GLEICHUNGSSYSTEME UND MATRIZEN Tabelle 3.1: Verschiedene LAPACK-Routinen zur Berechnung von (3.12). Quelle: http://www.netlib.org/lapack/lug/node26.html L11 0 0 0 R11 R12 R13 L21 L22 0 0 0 R22 R23 L31 L32 L33 0 · 0 0 R33 L41 L42 L43 L44 0 0 0 R14 A11 R24 A21 = R34 A31 R44 A41 A12 A22 A32 A42 A13 A23 A33 A43 A14 A24 A34 A44 (3.17) Dann lässt sich (3.12) als 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 GLEICHUNGSSYSTEME was wegen der unteren Dreiecksform von L sehr einfach geht: # " i−1 X 1 bi − Lij yj , yi = Lii j=1 53 (3.21) 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 yj zugegriffen wird. Als zweiter Schritt wird R · ~x = ~y (3.22) gelöst, was dir Form (3.14) besitzt. 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 X Lik Rkj = Aij , 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) 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äuft. Dies sind aber N 2 Gleichungen für 2 × Lii = 1 , i = 1..N . (3.24) Eine direkte Lösung von (3.23) wird durch den Crout-Algorithmus [5] erreicht: 1. Setze j = 1. 2. Berechne die j Koeffizienten Rij = Aij − i−1 X Lik Rkj , i = 1..j (3.25) k=1 3. Berechne die N − j Koeffizienten # " j−1 X 1 Lij = Lik Rkj , Aij − Rjj 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 GLEICHUNGSSYSTEME UND MATRIZEN Pivoting In (3.26) findet eine Division statt. Problematisch wird es, wenn Rjj = 0. Man kann sogar zeigen, dass der Crout Algorithmus (andere Eliminationsmethoden übrigens ebenfalls) instabil ist, wenn Rjj 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 |Aij | j und skaliert dann A′ij = si Aij , b′i = si bi . Das Programm LRZERL, frei nach Numerical Recipies [5], verwendet den CroutAlgorithmus mit impliziter Skalierung und partieller Pivotierung. Dabei wird nicht wirklich skaliert, der Skalierungsfaktor wird lediglich abgespeichert und bei der Pivotierung berücksichtigt. Die Inputmatrix A wird durch die R11 L21 L31 L41 LR-Zerlegung in der Form R12 R13 R14 R22 R23 R24 L32 R33 R34 L42 L43 R44 (3.27) 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 c c c c c c uebernommen aus NUMERICAL RECIPIES A(NP,NP) [In/Out] Eingangsmatrix, wird durch die Routine durch die L,R- Matrix gemaess (3.27) ersetzt. A wird durch Pivotierung zeilenweise permutiert, siehe INDX. N [In] Dimension der Matrix 3.3. INHOMOGENE LINEARE GLEICHUNGSSYSTEME 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----------------------------------------------------------------------- C PARAMETER (NMAX=500,TINY=1.0e-20) Groesstes angenommenes N und kleine Zahl C DIMENSION INDX(N),A(NP,NP),VV(NMAX) VV speichert implizite Skalierung D=1. 11 C 12 DO 12 I=1,N ! impliziteSkalierung, Maximumsuche DO 11 J=1,N IF (ABS(A(I,J)).GT.AAMAX) AAMAX=ABS(A(I,J)) CONTINUE if (AAMAX.EQ.0.) stop ’singulaere Matrix in LRZERL’ Alle Elememente einer Zeile null VV(I)=1./AAMAX ! Skalierung CONTINUE DO 19 J=1,N 13 14 15 ! Aeusserster Loop ueber Spalten, Schleife 2-4 im ! Crouts-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) CONTINUE A(I,J)=SUM CONTINUE 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) CONTINUE 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 GLEICHUNGSSYSTEME UND MATRIZEN ENDIF CONTINUE 16 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 CONTINUE 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 Trick, um trotzdem weiter zu machen, auch mit sing. Matrix. Man koennte hier auch stoppen, oder RETURN mit Fehler. 17 c c 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 CONTINUE ENDIF CONTINUE ! naechste Spalte 18 19 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 NUMERICAL RECIPIES c c c c c c c c Loesst den Satz linearer Gleichungen A X = B. A(NP,NP) [In] Eingangsmatrix, LR-zerlegt durch LRZERL durch Pivotierung zeilenweise permutiert, siehe INDX. N [In] Dimension der Matrix NP [In] phys. Dimensionierung von A 3.3. INHOMOGENE LINEARE GLEICHUNGSSYSTEME c c c c 57 INDX(NP) [In] Zeiger auf die Zeilen von A nach Permutierung B [In/Out] Beim Aufruf enthaelt B die Inhomog. b. Die Routine ersetzt b durch Loesungsvektor x c----------------------------------------------------------------------- DIMENSION INDX(N),A(NP,NP),B(N) c C c 11 12 13 14 Vorwaerts-Substitution nach Gl. (3.21) 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) CONTINUE B(I)=SUM CONTINUE 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) CONTINUE B(I)=SUM/A(I,I) ! I-Komponente des Loesungsvektors X CONTINUE 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) C A(1,1)=1. A(1,2)=2. A(1,3)=3. ! Setzen der Matrix 58 KAPITEL 3. LINEARE GLEICHUNGSSYSTEME 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) CALL LRZERL(A,3,3,INDX,D) CALL LRSOLV(A,3,3,INDX,B) !LR-Zerlegung, danach in A ! 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) C 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 GLEICHUNGSSYSTEME 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 CALL INVERS(B,3,3,AIN) c 10 C WRITE(6,*)’die inverse Matrix lautet:’ DO 10 I=1,3 WRITE(6,*) (AIN(I,J), J=1,3) CONTINUE zur Kotrolle bilden wir das Produkt A*AIN B=MATMUL(A,AIN) 20 WRITE(6,*)’die Matrix A*AIN lautet:’ DO 20 I=1,3 WRITE(6,*) (B(I,J), J=1,3) CONTINUE END SUBROUTINE INVERS(A,N,NP,AIN) C c c c c c c c c c berechnet die Inverse zu A A(NP,NP) AIN(N,N) N NP in AIN [In/Out] Input Matrix A. Achtung: wird durch LR-Matrix ueberschrieben [Out] das Inverse zu A, A^(-1) [In] Rang von A [In] Dimensionierung von A, NP >=N PARAMETER (NMAX=500) ! max. N DIMENSION A(NP,NP),AIN(N,N),INDX(NMAX) C 1 AIN=0. DO 1 I=1,N ! Konstruktion der Eins-Matrix AIN(I,I)=1. CONTINUE C CALL LRZERL(A,N,NP,INDX,D) C ! LR-Zerlegung von A 60 KAPITEL 3. LINEARE GLEICHUNGSSYSTEME UND MATRIZEN 10 DO 10 I=1,N ! Loesen der N Ruecksubstitutionen CALL LRSOLV(A,N,NP,INDX,AIN(1,I)) CONTINUE C 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 b1 c 1 0 a2 b 2 c 2 . . . A= ai b i c i . . . 0 aN b N . (3.28) Zuerst wird (3.28) auf Dreiecksform gebracht 1 c′1 0 ′ 1 c 2 . . A′ = 1 c′i . . 0 1 was mit Hilfe der Substitutionen c1 y1 c′1 = , y1′ = b1 b1 sowie ′ yi − ai yi−1 ci ′ ′ ci = , yi = , bi − ai c′i−1 bi − ai c′i−1 gelingt. Das Gleichungssystem A′ ~x = ~y ′ . (3.29) (3.30) i = 2...N (3.31) i = N − 1, ...1 . (3.32) lässt sich jetzt nach (3.15) leicht lösen: ′ xN = yN sowie xi = yi′ − xi+1 c′i , Die Vorschrift (3.30-3.32) wird als “Thomas-Algorithmus” bezeichnet. Sie lassen sich relativ einfach auf Matrizen mit 5 oder 7 Nebendiagonalen erweitern. 61 3.3. INHOMOGENE LINEARE GLEICHUNGSSYSTEME 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ℓ , yℓ ), ℓ = 1...m gegeben. Gesucht ist eine Funktion y = f (x, ak ), die den quadratischen Abstand s2 = m X ℓ (yℓ − f (xℓ , ak ))2 minimiert bezüglich der Parameter ak , k = 1..K. Daraus folgt das System von K (im Allgemeinen nichtlinearen) Gleichungen m ∂ X (yℓ − f (xℓ , ak ))2 = 0, ∂ak′ ℓ k ′ = 1...K (3.33) zur Bestimmung der ak . Wir beschränken uns auf Polynome vom Grad n: f (x, ak ) = n X ak x k (3.34) k=0 und erhalten aus (3.33) das lineare Gleichungssystem n X Akk′ ak′ = bk (3.35) k′ =0 mit A kk′ = m X ′ xk+k , ℓ bk = ℓ m X yℓ xkℓ . ℓ Offensichtlich ist A eine symmetrische reelle Matrix, sodass wir die LAPACKRoutine DSYSV verwenden können. Als Beispiel nehmen wir m = 100 Punkte, die entlang der Kurve y(x) = sin(x) + x + 1 + ξ, 5 0 ≤ x ≤ 4π liegen, wobei ξ eine fluktuierende Größe in [0,1] ist (Random-Aufruf). Das Programm sieht so aus: 62 KAPITEL 3. LINEARE GLEICHUNGSSYSTEME UND MATRIZEN PROGRAM AUSGLEICH IMPLICIT REAL*8 (A-H,O-Z) ! Doppelt genau wird empfohlen PARAMETER (M=100, KMAX=51, PI=3.14159265) ! M Datenpunkte C * DIMENSION A(KMAX,KMAX),X(M),Y(M),B(KMAX),IPIV(KMAX),WORK(1000), YP(M) REAL*4 XS(M),YS(M),YPS(M) C CALL PGBEGIN(0,’/xwin’,1,1) CALL PGBEGIN(0,’/CPS’,1,1) CALL PGPAP(6.,1.) CALL PGENV(0.,13.,0.,5.,0,1) ! xy-Skala ICOL=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 CONTINUE C CALL PGPT(M,XS,YS,17) C 11 WRITE(6,*) ’Welchen Grad (<=50)?’ READ(5,*,END=900) K IF(K.LT.0.OR.K.GT.49) GOTO 11 K1=K+1 C 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 CONTINUE 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 CONTINUE 50 CONTINUE C LAPACK-Aufruf CALL DSYSV(’U’,K1,1,A,KMAX,IPIV,B,KMAX,WORK,1000,INFO) 3.4. HOMOGENE LINEARE GLEICHUNGSSYSTEME C c 63 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 CONTINUE S=S+ABS(YP(L)-Y(L)) YPS(L)=YP(L) 100 CONTINUE S=S/FLOAT(M) WRITE(6,*) ’mittlerer Abstand:’,S ICOL=ICOL+1 CALL PGSCI(ICOL) CALL PGSLW(5) CALL PLINE(M,XS,YPS) GOTO 11 ! dicke Linien C 900 CALL PGEND END Die Abb.3.1 zeigt das Ergebnis für verschiedene Polynome zusammen mit den Datenpunkten. Der mittlere Abstand m 1 X s̄ = |yℓ − f (xℓ , ak )| m ℓ konvergiert schnell für größer werdendes n. 3.4 3.4.1 Homogene lineare Gleichungssysteme 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 GLEICHUNGSSYSTEME 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 ~vi sodass B · ~vi = λi ~vi , i = 1...N (3.37) wobei die Eigenvektoren nicht notwendig alle verschieden sein müssen (siehe Abschn.3.2.2). 3.4. HOMOGENE LINEARE GLEICHUNGSSYSTEME 3.4.2 65 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: C −1 · B · C = 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 = Jii . Die Eigenwerte sind also bekannt, wenn man die Transformationsmatrix C 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 C sodass C −1 · B · C = D mit der Diagonalmatrix Dij = λi δij . Die gesuchten Eigenvektoren von B sind dann mit den Spalten der Matrix C identisch (Für nicht-diagonalisierbare Matrizen gibt es spezielle Verfahren, auf die wir hier nicht weiter eingehen wollen). Wie lässt sich die Transformationsmatrix C 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 −1 −1 B ′ = P −1 k ...P 2 P 1 B P 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 = FL · FR (3.38) 66 KAPITEL 3. LINEARE GLEICHUNGSSYSTEME 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 F R = F −1 L ·B , was, in (3.39) eingesetzt, B ′ = F −1 L · B · FL (3.40) ergibt. Also sind B und B ′ ähnlich und haben dieselben Eigenwerte. Man konstruiert nun die Folge (n) (3.41) B (n+1) = F −1 · F nL = F nR · F nL nL · B 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 LRZerlegung, B =L·R nach (3.17). Die Iterationsvorschrift (3.41) lautet demnach (n) · Ln = R n · Ln . B (n+1) = L−1 n ·B (3.42) Ein Iterationsschritt sieht wie folgt aus: 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 L R = R L und B = B ′ . Die folgenden Programmzeilen bilden einen Iterationsschritt zur Dreieckstransformation von B: 3.4. HOMOGENE LINEARE GLEICHUNGSSYSTEME 67 DIMENSION B(N,N), BS(N,N) .... 1. CALL LRZERL(B,N,N,indx,d) ! LR-Zerlegung, siehe oben 2. CALL 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 X i−1 X i=2 j=1 |Bij | 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) C 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 CONTINUE IF(J.GE.I) AS(I,J)=AS(I,J)+A(I,J) ! aufpassen beim Diagonalelement L_ii 10 CONTINUE C RETURN END und setzt die Formel A′ij = N X Rik Lkj k=1 um. (Beachte hierbei, wie L und R in A gespeichert sind, (3.27)). 68 KAPITEL 3. LINEARE GLEICHUNGSSYSTEME UND MATRIZEN 3.4.4 QR-Faktorisierung Nicht jede Matrix lässt sich LR-zerlegen. Dagegen gilt für beliebige Matrizen die QRZerlegung B =Q·R mit R als oberer Dreiecksmatrix und der orthogonalen Matrix Q. Anstatt (3.42) ergibt sich jetzt (3.43) B (n+1) = Q−1 · B (n) · Qn = Rn · Qn . n 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 y y N−1 2 1 y 0 a a y y N+1 N y 3 Abbildung 3.2: Federkette der Länge L = pa(N + 1). Die Länge der Feder zwischen den zwei Massepunkten i und i + 1 beträgt (yi − yi+1 )2 + a2 . 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 N V (y1 ...yN ) = DX (yn − yn+1 )2 + V0 , 2 n=0 (3.44) wobei wir für die Federn die Ruhelänge null annehmen und die Kette die Randbedingungen y0 = yN +1 = 0 erfüllen soll. Mit der Lagrange-Funktion N mX 2 ẏ − V (y1 ...yN ) L= 2 n=1 n 3.4. HOMOGENE LINEARE GLEICHUNGSSYSTEME 69 folgen aus den Euler-Lagrange-Gleichungen die Bewegungsgleichungen ÿn = −ω02 (2yn − yn+1 − yn−1 ) (3.45) mit ω02 = D/m. Der Ansatz yn (t) = vn exp(iωt) führt (3.45) in ein lineares homogenes System 2vn − vn+1 − vn−1 = ω2 vn ω02 (3.46) über, welches die Form (3.36) besitzt mit 2 −1 0 −1 2 −1 2 ω . . . . λ= 2 B= −1 2 −1 ω0 . . . 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 jπ jπa ex 2 2 λj = 4 sin = 4 sin . (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 (n) = Bii , i = 1...N . (3.48) 70 KAPITEL 3. LINEARE GLEICHUNGSSYSTEME 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) N 1 X ex (n) (n) d = λi − λ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 N2 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 ∼ n3 (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 LAPACK 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 X ak x k (3.49) k=0 dessen N komplexe Nullstellen P (xi ) = 0, xi ǫ C, 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 bk = ak /aN , k = 0...N − 1 und erhält das Polynom ′ N P (x) = x + N −1 X k=0 bk xk 3.4. HOMOGENE LINEARE GLEICHUNGSSYSTEME 71 Tabelle 3.2: Verschiedene LAPACK-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 GLEICHUNGSSYSTEME UND MATRIZEN Tabelle 3.3: Verschiedene LAPACK-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 −b0 1 0 −b1 1 0 −b 2 . . F = (3.50) . . . . . 1 −bN −1 und kann zeigen, dass det(F − x 1) = (−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 LAPACK-Routine DHSEQR: 3.4. HOMOGENE LINEARE GLEICHUNGSSYSTEME SUBROUTINE ZEROS(A,N,Z,AUX) C C C C C C C C C C C C C 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 IMPLICIT REAL*8 (A-H,O-Z) DIMENSION A(0:N),Z(2*N),AUX(N,N),WORK(1000) C Normierung AN=A(N) A=A/AN C 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 CONTINUE C CALL 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’ C Nullstellen in komplexe Notation konvertieren DO 100 I=1,N AUX(I,1)=Z(I) AUX(I,2)=Z(N+I) 100 CONTINUE DO 110 I=1,N K=2*I-1 Z(K)=AUX(I,1) Z(K+1)=AUX(I,2) 110 CONTINUE C C Normierung rueckgaengig machen A=A*AN 73 74 KAPITEL 3. LINEARE GLEICHUNGSSYSTEME 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 Crout-Algorithmus, indem Sie für die Matrix 1 2 3 A= 1 4 1 0 2 5 von Hand eine LR-Zerlegung durchführen. Lösen Sie dann das Gleichungssystem b1 A · ~x = b2 b3 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 ~vj ? 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 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 3 qQ X 1 D V (~ri ) = + (~r1 − ~r2 )2 + (~r2 − ~r3 )2 + (~r3 − ~r1 )2 4πǫ0 i ri 2 (3.51) 75 3.4. HOMOGENE LINEARE GLEICHUNGSSYSTEME y q r1 r0 x Q q q r3 r2 Abbildung 3.4: System aus drei beweglichen Massepunkten mit 6 Freiheitsgraden (a) Führen Sie zunächst dimensionslose Variable ein: ~r = ℓ ~r̄, t = τ t̄, V = V0 V̄ . (3.52) Zeigen Sie, dass V̄ (~r̄i ) = α 3 X 1 1 + (~r̄1 − ~r̄2 )2 + (~r̄2 − ~r̄3 )2 + (~r̄3 − ~r̄1 )2 r̄i 2 i (3.53) gilt. Was ergibt sich für α und V0 ?, was für τ , wenn die dimensionslosen Bewegungsgleichungen ∂ V̄ ~r̄¨i = − ∂~r̄i lauten sollen? Im Folgenden werden wir nur die dimensionslosen Variablen (3.52) verwenden, lassen aber alle Querstriche der Einfachheit wegen weg. (b) Berechnen Sie die Ruhelagen ~ri (0) . Nutzen Sie dazu Symmetrieüberlegungen. (c) Stellen Sie die Bewegungsgleichungen für kleine Auslenkungen ~ui = ~ri − ~ri (0) auf. Hinweis: Die Bewegungsgleichungen (dimensionslos) lauten ∂V . ~r¨i = − ∂~ri 76 KAPITEL 3. LINEARE GLEICHUNGSSYSTEME UND MATRIZEN Mit ~ri = ~ri (0) + ~ui ergibt sich nach Taylor-Entwicklung (kleine Auslenkungen) 3 X ∂ 2 V ¨ ~ui = − (0) ~uj . ∂~ r ∂~ r i j ri j Dies lässt sich als ~v¨ = A · ~v schreiben, wobei ~v den 6-komponentigen Vektor ~v = (ux1 , uy1 , ux2 , uy2 , ux3 , uy3 ) bezeichnet. Wie lautet A? (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 3 q2 X 1 Vww = 4πǫ0 i di mit den Abständen di = |~ri − ~ri+1 | , wobei ~r4 = ~r1 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 X k=0 (−1)k x2k+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, F t. v = at = m 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 F (x(t), 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 dv F (x(t), t) = v(t), = dt dt m oder F (x(t), t) d2 x = . 2 dt 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ÖHNLICHE DIFFERENTIALGLEICHUNGEN I mit dk y dxk schreiben. Gleichung (4.1) ist äquivalent mit einem System von n DGLs erster Ordnung, die man aus der Substitution y = y(x), y1 = y, y (k) = yk+1 = y (k) , k = 1...n − 1 erhält: y1′ = y2 y2′ = y3 .... yn′ = f (x, y1 , y2 , ...yn ) , (4.2) oder, in Vektorschreibweise d~y = f~(x, ~y ) . dx Es genügt also, Systeme 1. Ordnung der Form (4.2) zu untersuchen. (4.3) Definiert man die Ableitung über den Differenzenquotienten ~y (x + ∆x) − ~y (x) d~y = lim , dx ∆x→0 ∆x so lässt sich (4.3) für endliches, aber kleines ∆x näherungsweise schreiben als (TaylorEntwicklung) ~y (x + ∆x) = ~y (x) + f~(x, ~y (x))∆x + O(∆x2 ) , (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 (x0 ) = ~y0 (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ärtsMethode. 4.2 Beispiel: mathematisches Pendel Wir untersuchen die Bewegungsleichung des mathematischen (gedämpften) Fadenpendels in einer Dimension ϕ̈ + α ϕ̇ + Ω20 sin ϕ = 0, Ω20 = g/ℓ (4.6) 79 4.2. BEISPIEL: MATHEMATISCHES PENDEL mit der Fadenlänge ℓ, Dämpfungskonstante α > 0 und dem Auslenkungswinkel ϕ aus der Vertikalen. Das äquivalente System 1. Ordnung lautet ϕ̇ = ω ω̇ = −α ω − Ω20 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) (0) ϕ1 = π (0) wobei ϕ0 als stabiler Fokus, ϕ1 als ein instabiler Sattelpunkt bezeichnet werden. Energiesatz Multiplikation von (4.6) mit ϕ̇ und Integration über t ergibt 1 2 ϕ̇ − Ω20 cos ϕ = E0 − R(t) 2 (4.8) mit E0 als Integrationskonstante und monoton wachsendem Z 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/ℓ2 m, R entspricht der durch Reibung verbrauchten und in Wärme umgesetzten Energie: E(t) = E0 − R(t) . Da E(t) ≥ −Ω20 und Ṙ ≥ 0 gelten, wird der Ruhezustand ϕ = 0, ω = 0 asymptotisch für t → ∞ erreicht. Dabei wird die mechanische Energie R(t → ∞) = E0 + Ω20 in Wärme umgesetzt und das Pendel kommt unabhängig von seiner Anfangsbedingung zur Ruhe. Solange E > Ec mit Ec = Ω20 schwingt das Pendel durch die obere Ruhelage (Rotation), für E < Ec erhält man Schwingungen um die untere Ruhelage (Oszillation). Im reibungsfreien Fall (α = 0) gilt Energieerhatlung E = E0 und das Pendel kommt nie zur Ruhe. Entsprechend E0 liegt entweder Oszillation oder Rotation vor. Für E0 = Ec 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ÖHNLICHE DIFFERENTIALGLEICHUNGEN I Euler-Vorwärts Wir wollen jetzt das System (4.7) mit dem Euler-Verfahren numerisch lösen: PROGRAM PENDEL CHARACTER*1 C INTEGER PGCURS DIMENSION FIPG(2),OMPG(2) PI=3.14159265 OMEGA=1. ! Eigenfrequenz ALPHA=0.1 ! Daempfung TPER=2.*PI/OMEGA C WRITE(6,*)’DT?’ READ(5,*) DT CALL PGBEGIN(0,’/xwin’,1,1) CALL PGPAP(6.,1.) CALL PGENV(-PI,PI,-PI,PI,0,1) C 1 10 FI=0. OM=0. K=PGCURS(FI,OM,C) ! Startpunkt mit Cursor waehlen IF(C.EQ.’L’) THEN ! Bildschirm loeschen durch L CALL PGERAS CALL PGBOX(’ABCNT’,0.,0,’ABCNT’,0.,0) GOTO 1 ENDIF IF(C.EQ.’ ’) GOTO 999 ! Programm beenden durch <blank> T=0. N=0 CONTINUE T=T+DT FIP=OM OMP=-ALPHA*OM-OMEGA**2*SIN(FI) C FI=FI+FIP*DT OM=OM+OMP*DT C FIPG(1)=FIPG(2) OMPG(1)=OMPG(2) ! Euler Vorwaerts 4.2. BEISPIEL: MATHEMATISCHES PENDEL 81 FIPG(2)=FI OMPG(2)=OM IF(FI.GT.PI) THEN FI=FI-2.*PI FIPG=FI ELSE IF(N.NE.0) CALL PGLINE(2,FIPG,OMPG) ENDIF IF(FI.LT.-PI) THEN FI=FI+2.*PI FIPG=FI ELSE IF(N.NE.0) CALL PGLINE(2,FIPG,OMPG) ENDIF N=N+1 IF(N.EQ.50) THEN E=.5*FIP**2-OMEGA**2*COS(FI) ! Gesamtenergie N=1 WRITE(6,*) T,FI,E ENDIF IF(T.LT.50.*TPER) GOTO 10 GOTO 1 C 999 CALL 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ÖHNLICHE DIFFERENTIALGLEICHUNGEN 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: ~u(x + ∆x) = ~u(x) + L · ~u(x) ∆x mit der Jacobi-Matrix ∂fi . Lij = ∂yj ~y(0) (4.9) (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) = QEx · ~u(x) (4.11) mit QEx = 1 + ∆x L und ~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 QEx kleiner eins bleibt: ρ(QEx ) < 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= −Ω20 −α Man erhält für den Spektralradius von Q q ρ = 1 − α ∆t + ∆t2 Ω20 solange α < 2Ω0 gilt, d.h. wir schließen den überdämpften Fall aus. Das Stabilitätskriterium ergibt dann α ∆t < 2 . Ω0 4.3. NUMERISCHE STABILITÄT DES EULER-VERFAHRENS 83 Abbildung 4.1: Trajektorien im Phasenraum (links) und Gesamtenergie über t für das gedämpfte mathematische Pendel (Ω0 = 1) berechnet durch das Euler-Verfahren. Oben: α = 0, ∆t = 0.05, Mitte: α = 0.1, ∆t = 0.05, unten: α = 0.1, ∆t = 0.15. Das Verhalten 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ÖHNLICHE DIFFERENTIALGLEICHUNGEN 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(∆x2 ) , (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 f~(~y ) = A · ~y möglich und man erhält (1 − ∆x A) · ~y (x + ∆x) = ~y (x) oder mit ~y (x + ∆x) = QIm · ~y (x) (4.14) = 1 − ∆x A . Q−1 Im Die Stabilität ist jetzt also durch den Spektralradius von (1 − ∆x A)−1 bestimmt und dadurch teilweise erheblich verbessert. So ergibt sich beim mathematischen Pendel nach Linearisierung um die untere Ruhelage ρ(QIm ) = p 1 1 + α∆t + Ω20 ∆t2 , was für alle ∆t, sogar für α = 0, kleiner eins ist. D.h. das implizite numerische Verfahren 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 ∆t2 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 = f (x, y) dx (4.15) die sich später leicht auf n Dimensionen verallgemeinern lassen. Integriert man (4.15) über x Z x+∆x Z x+∆x ′ dy dx dx′ f (x′ , y(x′ )) (4.16) = y(x + ∆x) − y(x) = ′ dx x x so erhält man die exakte Iterationsvorschrift Z x+∆x dx′ f (x′ , y(x′ )) . y(x + ∆x) = y(x) + (4.17) x Daraus folgt sofort die Euler-Methode, indem man das Integral durch die Rechteckregel nähert: Z x+∆x x dx′ f (x′ , y) ≈ f (x, y(x)) ∆x . Verwendet man dagegen die genauere Trapezregel Z x+∆x ∆x dx′ f (x′ , y) ≈ f (x, y(x)) + f (x + ∆x, y(x + ∆x)) , 2 x so ergibt sich in (4.17) ∆x . y(x + ∆x) = y(x) + f (x, y(x)) + f (x + ∆x, y(x + ∆x)) 2 (4.18) 86 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN 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: y(x + ∆x) = y(x) + f (x, y(x)) ∆x und erhält schließlich y(x + ∆x) = y(x) + f (x, y(x)) + f (x + ∆x, y(x) + f (x, y(x)) ∆x) das Verfahren von Heun. ∆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 3 dy 1 d2 y 1 1 df 2 1d y L.S. = ∆x+ f ∆x2 + ∆x + ∆x3 +... = f ∆x+ 2 3 dx 2 dx 6 dx 2 dy 6 d2 f f2 2 + f dy df dy 2 ! ∆x3 +.... , die rechte nach f ∆x: ∆x R.S. = 2 1 d2 f 2 2 df f ∆x 2f + f ∆x + dy 2 dy 2 + ... , wobei ... Terme der Ordnung ∆x4 bedeuten. Beide Seiten stimmen bis zur Ordnung ∆x2 überein, d.h. der Fehler hat die Ordnung ∆x3 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 1 Q = 1 + ∆x L + ∆x2 L2 2 und L als Jacobi-Matrix (4.10). Die numerische Stabilität folgt wieder aus der Bedingung ρ(Q) < 1, was schließlich auf 1 ρ = max |1 + ∆xλi + ∆x2 λ2i | < 1 i 2 4.5. VERFAHREN HÖHERER ORDNUNG 87 mit den Eigenwerten λi von L führt. Am Beispiel des harmonischen Oszillators erhalten wir mit q α 1 λ12 = − ± i 4Ω20 − α2 2 2 die Bedingung für die Stabilitätsgrenze (maximaler Zeitschritt): 1 1 1 −α + α2 ∆t − αΩ20 ∆t2 + Ω40 ∆t3 = 0 . 2 2 4 Dies liefert einen oberen Zeitschritt, der für α > 0 größer als beim Eulerverfahren ist (Abb.4.3, ∆tc ≈ 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: RungeKutta (RK4). 4.5.2 Aufgabe Crank-Nicolson-Verfahren Beim Crank-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 ỹ(x0 ) = y(x0 ) liefert das Crank-Nicolson-Schema i ỹ(x0 + ∆x) − ỹ(x0 ) 1h = f (ỹ(x0 )) + f (ỹ(x0 + ∆x)) . ∆x 2 Zeigen Sie, dass der numerische Fehler nach einem Schritt |ỹ(x0 + ∆x) − y(x0 + ∆x)| = O(∆x3 ) beträgt. 88 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN 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 y ′ = f (x, y(x)) . Man entwickelt y um x + ∆x/2 ∆x ′ 1 y(x) = y(x + ∆x/2) − y (x + ∆x/2) + 2 2 ∆x ′ 1 y(x + ∆x) = y(x + ∆x/2) + y (x + ∆x/2) + 2 2 ∆x 2 ∆x 2 2 2 y ′′ (x + ∆x/2) + O(∆x3 ) y ′′ (x + ∆x/2) + O(∆x3 ) und erhält nach Subtraktion der beiden Gleichungen y(x + ∆x) = y(x) + ∆x y ′ (x + ∆x/2) + O(∆x3 ) , also eine Iterationsvorschrift der Ordnung ∆x2 . 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/2 f (x, y(x)))+O(∆x2 ) . Ein Iterationschritt sieht dann folgendermaßen aus: k1 = ∆x f (x, y(x)) k2 = ∆x f (x + ∆x/2, y(x) + k1 /2) y(x + ∆x) = y(x) + k2 . (4.20) Man hat ein Verfahren der Ordnung ∆x2 und muss dazu f bei jedem Iterationsschritt zwei mal auswerten. Genauso lässt sich RK4 konstruieren, wir geben den Algorithmus hier ohne Beweis an: k1 k2 k3 k4 = = = = ∆x f (x, y(x)) ∆x f (x + ∆x/2, y(x) + k1 /2) ∆x f (x + ∆x/2, y(x) + k2 /2) ∆x f (x + ∆x, y(x) + k3 ) 1 y(x + ∆x) = y(x) + (k1 + k2 + k3 + k4 ) . 6 (4.21) 4.5. VERFAHREN HÖHERER ORDNUNG 89 Der Fehler ist von der Ordnung ∆x5 und die Stabilitätseigenschaften folgen diesmal aus der Forderung 1 1 1 ρ = max |1 + ∆xλi + ∆x2 λ2i + ∆x3 λ3i + ∆x4 λ4i | < 1 . i 2 6 24 (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) C C C C C C C C C C C 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 Y T N DT AUX EQ [In/Out] Abh"angige Variablen, Dimension Y(N) [In] Unabh. Variable [In] Anzahl der Gleichungen und der Variablen [In] Zeitschritt [-] Arbeitsfeld zur internen Verwendung, Dimension WK(5*N) [In] Name der Subroutine fuer rechte Seiten des DGL-Systems, EXTERNAL DIMENSION Y(*),AUX(*) C 5 6 7 8 CALL 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) CONTINUE CALL 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) CONTINUE CALL 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) CONTINUE CALL EQ(AUX,AUX(4*N+1),T+DT) DO 8 I=1,N AUX(3*N+I)=AUX(3*N+I)+AUX(I) CONTINUE 90 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I C 10 C DO 10 I=1,N Y(I)=Y(I)+AUX(3*N+I)*DT/6. CONTINUE RETURN END C SUBROUTINE EQS(RHSIDE,Y,T) C DIMENSION RHSIDE(*),Y(*) C RHSIDE(1)=... RHSIDE(2)=... . . . RHSIDE(N)=.... ! hier steht das DGL-System. ! Notwendige Parameter koennen durch einen ! COMMON Block uebergeben werden. 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 c C C C C C Fortran-Subroutinen library source file SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE ZEROS(A,N,Z,AUX) LRZERL(A,N,NP,INDX,D) LRSOLV(A,N,NP,INDX,B) INVERS(A,N,NP,AIN) RKG(Y,T,N,DT,AUX,EQ) ! ! ! ! ! Die Nullstellen (Kap.3 LR-Zerlegung (Kap.3) dito Matrix-Inversion (Kap.3) Runge-Kutta 4. Ordnung (Kap.4) 4.5. VERFAHREN HÖHERER ORDNUNG 91 C c------------------------------------------------------------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 Compiler 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 Als Beispiel untersuchen wir wieder das mathematische Pendel mit 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 COMMON /PARAM/ ALPHA,OMEGA PI=3.14159265 OMEGA=1. WRITE(6,*)’Alpha?’ READ(5,*) ALPHA TPER=2.*PI/OMEGA C WRITE(6,*)’DT?’ READ(5,*) DT ! Parameter fuer EQD ! Eigenfrequenz ! Daempfung 92 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN 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π). CALL PGBEGIN(0,’/xwin’,1,1) CALL PGPAP(6.,1.) CALL PGSWIN(-PI,PI,-PI,PI) CALL PGBOX(’ABCNT’,0.,0,’ABCNT’,0.,0) C 10 Y(1)=2. ! Anfangswert Y(2)=0. T=0. N=0 CONTINUE CALL RKG(Y,T,2,DT,AUX,EQS) T=T+DT C ! Ein Zeitschritt RK4 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) CALL PGLINE(2,FIPG,OMPG) N=N+1 IF(N.EQ.50) THEN ! Energie ausrechnen E=.5*Y(2)**2-OMEGA**2*COS(Y(1)) N=1 WRITE(6,*) T,E ENDIF IF(T.LT.50.*TPER) GOTO 10 C CALL PGEND END C SUBROUTINE EQS(RHSIDE,Y,T) C DIMENSION RHSIDE(2),Y(2) C COMMON /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(∆x5 ). Wir starten bei ~y (x) und betrachten zwei numerisch berechnete ~y1 (x + ∆x), ~y2 (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ÖHNLICHE DIFFERENTIALGLEICHUNGEN I Abstand d(∆x) = |~y1 − ~y2 | , so gilt d(∆x) = |c|∆x5 wobei c von der 5. Ableitung von ~y abhängt. Berechnet man d für zwei verschiedene Schrittweiten, lässt sich c eliminieren: 5 d(∆x1 ) ∆x1 = . d(∆x2 ) ∆x2 Dieser Zusammenhang lässt sich nach ∆x2 auflösen: ∆x2 = ∆x1 d(∆x2 ) d(∆x1 ) 1/5 . Wenn man jetzt eine Iteration mit gegebenem ∆x1 berechnet und d(∆x2 ) = ǫ als erwünschte Genauigkeit vorgibt, so erhält man die notwendige neue Schrittweite: ∆x2 = ∆x1 ǫ d(∆x1 ) 1/5 . In der Praxis erweist sich das Verfahren stabiler, wenn man den Exponenten variabel macht: p ǫ ∆x2 = ∆x1 d(∆x1 ) 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 + sin2 (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 C C c C C C 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, variabler Zeitschritt Y T N [In/Out] Abh"angige Variablen, Dimension Y(N) [In] Unabh. Variable [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 . C C C c C c C c c c c DT [In/Out] Zeitschritt AUX [-] Arbeitsfeld zur internen Verwendung, Dimension WK(6*N) EPS [In] gewuenschte Genauigkeit. DT wird angepasst, sodass Fehler (5.Ordn.) < Eps EQS [In] Name der Subroutine fuer rechte Seiten des DGL-Systems, EXTERNAL im Hauptprogramm benoetigt wird die Routine RKG Achtung: Anders als bei RKG ist hier Dimension AUX(6*N) !!! DIMENSION Y(*),AUX(*) C EXTERNAL EQS N0=5*N 10 DO 10 I=1,N AUX(N0+I)=Y(I) CONTINUE ! Startwert merken CALL RKG(Y,T,N,DT,AUX,EQS) DO 20 I=1,N SWAP=AUX(N0+I) ! Ein Zeitschritt RK4 mit dt 96 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I 20 AUX(N0+I)=Y(I) Y(I)=SWAP CONTINUE ! Ergebnis mit dt merken ! Y zurueck auf Startwert CALL RKG(Y,T,N,DT/2.,AUX,EQS) ! zwei Zeitschritte RK4 mit dt/2 CALL RKG(Y,T+DT/2.,N,DT/2.,AUX,EQS) 30 C D2=0. ! euklidischer Abstand berechnen DO 30 I=1,N D2=D2+(Y(I)-AUX(N0+I))**2 CONTINUE 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 C RETURN END Und hier im Ausschnitt das Programm zum Pendel mit variabler Frequenz: ....... DT=.05 WRITE(6,*)’eps?’ READ(5,*) EPS 10 ! Zeitschritt am Anfang ! gewuenschte Genauigkeit (z.B. 10^-5) Y(1)=2. ! Anfangswert Y(2)=0. T=0. L=0 CONTINUE ! Zeitschleife c CALL RKADT(Y,T,2,DT,AUX,EPS,EQS) T=T+DT 97 4.6. ANWENDUNG: KEPLER-PROBLEM 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 ~r¨ = −G M 3 r (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 r3 y ÿ = − 3 r ẍ = − mit r = p (4.24) x2 + y 2 . Die Gesamtenergie in Einheiten von GM 2/3 ergibt sich zu 1 1 E = (ẋ2 + ẏ 2 ) − . 2 r (4.25) Eine einfache Lösung von (4.24) ist eine Kreisbahn mit Radius R, x = R cos(ωt), Einsetzen in (4.24) ergibt ω2 = y = R sin(ωt) . 1 , R3 (4.26) 98 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN 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) C DIMENSION RHSIDE(4),Y(4) C 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 = F0 = R−1/2 Kreise, sonst Ellipsen, bzw Hyperbeln. Für F < F0 bildet der Anfangspunkt den Aphel, für F > F0 den Perihel der Ellipse. Für E ergibt (4.25) F2 1 E= − , 2 R d.h. für F > r 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 %. 99 4.6. ANWENDUNG: KEPLER-PROBLEM 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 r1+ǫ führt sofort zu nichtgeschlossenen, quasiperiodischen Bahnen, deren Perihel sich langsam um die Sonne dreht (Abb.4.7). Die einzige geschlossene Trajektorie für ǫ 6= 0 bleibt der Kreis. 100 4.6.3 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I 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 DreiKö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 TA im ganzrationalen Verhältnis zur Umlaufzeit TJ des Jupiters stehen: TJ , 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”. TA = Nimmt man an, dass sich Jupiter und Asteroiden näherungsweise auf Kreisbahnen bewegen, so gilt mit (4.27) und (4.26) RA = n−2/3 RJ , was mit dem Jupiterbahnradius RJ ≈ 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 ~r1 ~r1 − ~r2 ~r¨1 = − 3 − k α2 r1 |~r1 − ~r2 |3 ~r2 ~r2 − ~r1 ~r¨2 = − 3 − k α1 r2 |~r1 − ~r2 |3 αi = (4.28) mi 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) 101 4.6. ANWENDUNG: KEPLER-PROBLEM 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 X αi α1 α2 1X . −k αi ṙi2 − E= 2 i r |~ r − ~ r | i 1 2 i Eine Lösung zeigt Abb.4.10, wobei die Anfangsbedingungen ~r1 (0) = (1, 0), ~r2 (0) = (2−2/3 , 0), ~r˙1 (0) = (0, 1), ~r˙2 (0) = (0, 21/3 ) 102 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I verwendet wurden, die für k = 0 in zwei resonanten Kreisbahnen mit dem Umlaufzeitverhältnis T1 /T2 = 2 resultieren würden. Für Abb.4.10 wurden die Wechselwirkungsparameter α1 = 0.03, α2 = 0.01 verwendet. Die Einschränkung auf Bewegungen in einer Ebene erhöht die Möglichkeit von Kollisionen stark. Realistischer wäre hier eine 3D-Rechnung, die allerdings auf 12 gekoppelte DGLs 1. Ordnung führen würde. Abbildung 4.10: Zwei Planeten mit Wechselwirkung. Die resonanten Kreisbahnen sind instabil, α1 = 0.03, α2 = 0.01. 4.6.4 Aufgaben Untersuchen Sie das 2-Planeten-System (4.28) in drei Raumdimensionen. ~ 1. Wie lauten die Ausdrücke für Gesamtenergie E und Drehimpuls L? 2. Programmieren Sie das DGL-System mit RK4. Wählen Sie die Anfangsbedingungen so, dass die beiden Umlaufbahnen nicht genau in einer Ebene liegen. Untersuchen Sie numerisch die Stabilität der Bahnen für verschiedene Werte von ~ erhalten bleiben. α und n (in (4.27)). Kontrollieren Sie, ob E und L 103 4.7. CHAOS 4.7 Chaos Wir untersuchen weiter Systeme der Form dyi = fi (y1 , y2 , ..yN ), dt yi (0) = ai , i = 1...N (4.29) welche auch als autonom (fi hängt nicht explizit von der Zeit ab) bezeichnet werden. Wegen der Eindeutigkeit der Lösung von (4.29) folgt aus ~y (t) genau ein ~y (t1 ), t1 > t. Das heißt aber, dass sich Trajektorien im Phasenraum nicht schneiden dürfen (außer in einem Fixpunkt). Bleibt ~y in einem endlichen Gebiet, was wir annehmen werden, so können für N = 1 Trajektorien nur in einem stabilen Fixpunkt enden (t → ∞), für N = 2 kommen noch geschlossene Bahnen dazu (Pendel, Planet um Sonne). Chaotische Dynamik im Sinne von sensitiver Abhängigkeit von Anfangsbedingungen und Parametern kann damit ausgeschlossen werden. Ist jedoch N ≥ 3, können chaotische Trajektorien auftreten (Zwei-Planeten-Problem). 4.7.1 Harmonisch angetriebenes Pendel Wir wollen hier das angetriebene mathematische Pendel ϕ̈ + αϕ̇ + Ω20 sin ϕ = A cos ω0 t (4.30) untersuchen, bei dem es sich zunächst um ein nicht-autonomes Problem handelt, welches aber durch Einführen der zusätzlichen Variablen y3 = ω0 t in ein dreidimensionales autonomes System transformiert wird: ẏ1 = y2 ẏ2 = −α y2 − Ω20 sin y1 + A cos y3 ẏ3 = ω0 wobei ϕ = y1 . Die RK4-Subroutine EQS sieht dann so aus: SUBROUTINE EQS(RHSIDE,Y,T) C DIMENSION RHSIDE(3),Y(3) C COMMON /PARAM/ ALPHA,OMEGA,A,OM RHSIDE(1)=Y(2) RHSIDE(2)=-ALPHA*Y(2)-OMEGA**2*SIN(Y(1))+A*COS(Y(3)) RHSIDE(3)=OM RETURN END (4.31) 104 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I Natürlich lässt sich die letzte Gleichung (4.31) auch sofort integrieren und man kann genausogut (und sogar mit weniger Aufwand) das nicht-autonome System numerisch lösen: SUBROUTINE EQS(RHSIDE,Y,T) C DIMENSION RHSIDE(2),Y(2) C COMMON /PARAM/ ALPHA,OMEGA,A,OM RHSIDE(1)=Y(2) RHSIDE(2)=-ALPHA*Y(2)-OMEGA**2*SIN(Y(1))+A*COS(OM*T) RETURN END Allerdings gelten die folgenden Überlegungen nur für autonome Systeme, weshalb wir (4.31) verwenden. Abbildung 4.11: Chaos beim angetriebenen Pendel. Phasenraum, y2 über y1 , A = 1, ω0 = 0.8, Ω0 = 1, α = 0.1. Abb.4.11 zeigt eine Trajektorie, deren Verlauf chaotisch ist. Die Existenz einer Separatrix im nicht angetriebenen System ist für das Zustandekommen von Chaos wichtig: 105 4.7. CHAOS Befindet sich die Trajektorie in der Nähe der Separatrix, so kann durch einen entsprechenden Antrieb (“richtige Phase und Amplitude”) die Separatrix überschritten werden, die Bewegung geht z.B. von der Oszillation zur Rotation über, ändert sich also qualitativ (Abb.4.12). Rotation ix tr ara p Se 11 00 00 11 00 11 Oszillation Oszillation Rotation Abbildung 4.12: In der Nähe der Separatrix können kleine Änderungen durch den Antrieb zu qualitativ anderen Trajektorien führen. Blau: ohne Antrieb, Rot: mögliche Bahnen mit Antrieb. 4.7.2 Poincaré-Schnitt und Bifurkationsdiagramm Um dreidimensionale Trajektorien zu visualisieren, benötigt man Projektionen. So zeigt Abb.4.11 die Projektion auf die y1 -y2 -Ebene. Eine andere Möglichkeit ist die stroboskopartige Aufnahme zu bestimmten Zeiten, welche beim Pendel durch die Antriebsfrequenz ω0 nahegelegt werden. In Abb.4.13 sind y1 -y2 -Werte immer dann eingetragen, wenn der Antrieb einen Nulldurchgang mit positiver Steigung besitzt, also für ω0 t = 3π/2 + 2nπ. Diese Darstellung, der Durchstoßpunkt der Trajektorie durch die Ebenen y3 = 3π/2+2nπ, wird als Poincaré-Schnitt bezeichnet. Handelt es sich dabei für t → ∞ um endlich viele Punkte, so verläuft die Trajektorie periodisch, eine durchgezogene Linie würde auf quasi-periodisches Verhalten deuten (Schnitt durch einen Torus), ausgefüllte Bereiche mit (fraktalen) Lücken entsprechen chaotischen Trajektorien. Ein Bifurkationsdiagramm ensteht, wenn man einen Kontrollparameter durchfährt und darüber den Wert einer Variablen zu bestimmten, definierten Zeitpunkten aufträgt. Abb.4.14 (unten) zeigt ein solches Diagramm, bei dem der Wert von y1 über dem Antrieb aufgezeichnet wurde, und zwar wieder zu den festen Zeiten ω0 t = 3π/2 + 2nπ. 4.7.3 Lyapunov-Exponenten Sei ~y (0) (t) eine bekannte Lösung von (4.29). Wir fragen nach der Stabilität mittels linearer Stabilitätsanalyse: ~y (t) = ~y (0) (t) + ~u(t) . 106 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I Abbildung 4.13: Poincaré-Schnitt zu Abb.4.11, Durchstoßpunkte durch die Ebenen y3 = 3π/2 + 2nπ. Im Gegensatz zur Linearisierung um einen Fixpunkt hängt bei der Linearisierung um eine Trajektorie die Jacobi-Matrix von der Zeit ab: d~u(t) = L(t) ~u(t) dt mit (4.32) ∂fi . Lij (t) = ∂yj ~y(0) (t) Eine Lösung von (4.32) kann in aller Regel nur numerisch erfolgen, selbst die Referenztrajektorie ~y (0) ist als Lösung von (4.29) ja normalerweise nur numerisch zu ermitteln. Wenn man animmt, dass bedingt durch die Linearität von (4.32) für große Zeiten exponentielles Verhalten |~u(t)| ∼ eσt , t→∞ gilt, so gibt die Größe 1 ln |~u(t)| (4.33) t→∞ t Auskunft über die Stabilität von ~y (0) . Ist σ > 0, so wachsen beliebig kleine Abweichungen im Lauf der Zeit exponentiell an. Die Trajektorie ist instabil und chaotisches Verhalten liegt vor. Das in (4.33) definierte σ wird als Lyapunov-Exponent bezeichnet. σ = lim Wie lässt sich σ berechnen? Eine Möglichkeit wäre, (4.32) numerisch zu integrieren und für großes t (4.33) auszuwerten. Durch das exponentielle Wachstum von |~u| für positives σ verbietet sich das jedoch, es würde schnell zu einem numerischen Überlauf der entsprechenden Variablen kommen, selbst in doppelter Genauigkeit. 107 4.7. CHAOS Abbildung 4.14: Oben: die drei Lyapunov-Exponenten beim angetriebenen Pendel mit Reibung, Parameter wie in Abb.4.11. Unten: Bifurkationsdiagramm zum angetriebenen Pendel, Ordinate: |y1 | zu ω0 t = 3π/2 + 2nπ, Abszisse: A. Berechnung des größten Lyapunov-Exponenten Um ein praktikables Verfahren zu konstruieren, führen wir zunächst den linearen Zeitentwicklungsoperator Q ein. Damit lässt sich ~u(t) formal als ~u(t) = Q(t, 0) ~u(0) (4.34) ausdrücken. Wie man sieht, hängt ~u(t) und damit σ von ~u(0) ab. Es wird soviel verschiedene Lyapunov-Exponenten geben wie linear unabhängige Anfangsbedingungen, nähmlich N , entsprechend der Dimension des Phasenraums. Oft genügt es allerdings, das größte σ zu finden, da dieses zwischen chaotischer und regelmäßiger Dynamik unterscheidet. Wegen Q(t, t0 ) = Q(t, t1 ) Q(t1 , t0 ), t > t1 > t0 108 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I lässt sich (4.34) als Produkt ~u(t) = Q(t, t − ∆T ) Q(t − ∆T, t − 2∆T ) ....Q(∆T, 0) ~u(0) schreiben. Mit den Abkürzungen Qk ≡ Q(k∆T, (k − 1)∆T ), ~uk ≡ ~u(k∆T ), k = 0, 1, 2.... erhalten wir ~uk = Qk Qk−1 ....Q1 ~u0 (4.35) mit k = t/∆T . Wählt man ∆T klein genug, so wird sich bei jedem einzelnen Schritt ~uk = Qk ~uk−1 kein Überlauf einstellen. Man kann dann jeweils normieren ûk = ~uk , dk dk = |~uk | und erhält ~uk = d0 Qk Qk−1 .... Q2 Q1 û0 = d0 d1 Qk Qk−1 .... Q2 û1 = d0 d1 ...dk ûk . | {z } | {z } =û1 d1 =û2 d2 Daraus liest man sofort |~uk | = ab und findet eingesetzt in (4.33) k Y 1 σ = lim ln dℓ k→∞ k∆T ℓ=0 k Y dℓ ℓ=0 ! k 1 X = lim ln dℓ k→∞ k∆T ℓ=0 (4.36) den Lyapunov-Exponenten zur Anfangsbedinung û0 . Man muss also folgenden Algorithmus umsetzen (Abb.4.15): 1. Berechne Referenztrajektorie aus Startwert ~a nach (4.29) über einen gewissen Vorlauf Tv . 2. Wähle irgendein û0 , d0 = 1 zum Zeitpunkt t = Tv , setze ℓ = 1 3. Integriere (4.29) und dazu parallel (4.32) über Intervall ∆T . 4. Bestimme dℓ = |~u(t + ℓ∆T )|. Normiere ~u zu ûℓ . 5. ℓ := ℓ + 1 6. Gehe nach 3. 109 4.7. CHAOS d1 d0 u^ 0 d4 d2 u^1 u^2 t = ∆Τ u^ 3 d3 t = 2∆Τ t=0 ^u 4 (0) y (t) t = 3∆Τ Abbildung 4.15: Numerische Berechnung des größten Lyapunov-Exponenten. Nach konstanten Zeitintervallen wird der Betrag der Störung dk ermittelt und die Störung auf Eins normiert, ohne dabei ihre Richtung zu verändern. Die Schleife wiederholt man so lange, bis t groß gegenüber charakteristischen Zeiten (Umläufe von Trajektorien, Periodendauer beim Pendel, etc.) ist. Dann berechnet man σ aus (4.36). Bezeichnet man ln dk als lokalen Lyapunov-Exponenten, so entspricht (4.36) dem Mittelwert dieser lokalen Exponenten. In der Praxis ersetzt man den Limes n → ∞ durch “großes” n. Was heißt nun groß? Wir führen den Lyapunov-Exponenten n-ter Näherung ein: n 1 X σn = ln dk n∆T k=0 (4.37) und erhalten aus (4.36) die nächste Näherung σn+1 1 = (n + 1)∆T mit n X k=0 ln dk + ln dn+1 ! = n σn + ∆σ n+1 1 ln dn+1 . (n + 1)∆T Offensichtlich konvergiert ∆σ ∼ 1/n. Man bricht die Summe in (4.36) also dann ab, wenn der Fehler |∆σ| eine bestimmte, vorgegebene untere Schranke erreicht. Wahlweise kann man auch den relativen Fehler ∆σ σn < ǫrel ∆σ = als Abbruchkriterium verwenden. Ein N -dimensionales System besitzt N Lyapunov-Exponenten (Spektrum). Das eben beschriebene Verfahren liefert davon den größten. Dies sieht man leicht ein, wenn man die Störung ~u(t) in die Basis v̂k von L zerlegt: ~u(t) = c1 v̂1 (t)eσ1 t + ...cN v̂N (t)eσN t 110 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I wobei σk jetzt das sortierte Lyapunov-Spektrum mit σ1 ≥ σ2 .... ≥ σN bezeichnet und die Konstanten ck durch den Anfangswert ~u(0) festgelegt sind. Für t → ∞ wird sich ~u parallel zu ~v1 einstellen, unabhängig von der Anfangsbedingung. Wenn allerdings c1 exakt verschwindet, würde man σ2 erhalten, etc. So könnte man also im Prinzip das gesamte Spektrum berechnen, was in der Praxis jedoch nicht funktionieren kann. Numerisch wird man immer einen winzigen Anteil in Richtung ~v1 erhalten, der sich schnell (exponentiell) vergrößert und die Störung dominiert. Wir werden weiter unten angeben, wie sich dennoch das gesamte Spektrum berechnen lässt. Theorem: Ein Lyapunov-Exponent verschwindet für alle Trajektorien, die nicht auf einem Fixpunkt enden. Wir setzen beschränkte Systeme |~y (t)| ≤ D1 , |f~(y(t))| ≤ D2 , Di > 0 voraus und zeigen das wichtige Theorem. Differenzieren von (4.29) ergibt ∂ f~ ˙ ~y = L ~y˙ , ~y¨ = ∂~y d.h. aber, dass mit ~u = ~y˙ die Zeitableitung jeder Lösung von (4.29) auch das lineare System (4.32) löst. Speziell gilt dies für die Referenztrajektorie ~y (0) (t), d.h. die Störung liegt immer in Richtung der Bahn (Abb.4.16). Für diesen speziellen (marginalen) Lyapunov-Exponenten gilt dann mit (4.33) σm = lim t→∞ 1 1 ln |~y˙ (0) (t)| ≤ lim ln |D2 | = 0 , t→∞ t t (4.38) also σm ≤ 0 . Wegen |~y˙ (0) (t)| ∼ eσm t , t→∞ wäre aber für σm < 0 |~y˙ (0) (t)| = 0, t→∞ und die Trajektorie würde auf einem Fixpunkt enden, was aber laut Voraussetzung ausgeschlossen sein soll. Damit bleibt nur σm = 0 . 111 4.7. CHAOS ^u 1 ^u 0 ^u 2 ^u 3 ^u 4 (0) y (t) Abbildung 4.16: Eine Störung in Richtung der Referenztrajektorie bleibt dort und besitzt einen verschwindenden Lyapunov-Exponenten, solange die Trajektorie nicht auf einem Fixpunkt endet. 4.7.4 Lyapunov-Exponenten höherer Ordnung Wie lässt sich das gesamte Spektrum der Lyapunov-Exponenten berechnen? Dazu führen wir das Konzept der Lyapunov-Exponenten der Ordnung p ein; die in (4.33) definierte Größe ist dann der Lyapunov-Exponent 1. Ordnung und gibt die mittlere Kontraktionsrate eines Vektors (eindimensional) an. Entsprechend gibt der Exponent p-ter Ordnung die mittlere Kontraktionsrate eines p-dimensionalen Parallelepipeds an: 1 ln |Vp (t)| . t→∞ t σ (p) = lim (4.39) Betrachtet man ein mitschwimmendes Parallelepiped das durch die Basis ~vk aufgespannt wird, so kann man zeigen, dass σ (p) = σ1 + σ2 + ... σp gilt. Kennt man also alle N Lyapunov-Exponentenordnungen, so lassen sich die einzelnen Exponeten gemäß σ1 = σ (1) σ2 = σ (2) − σ (1) σN = σ (N ) − σ (N −1) (4.40) ausrechnen. Die Kenntnis aller Lyapunov-Exponenten erlaubt eine Klassifikation der Referenztrajektorie ~y (0) (t) (Tabelle 4.1). Speziell kennzeichnet ein positiver LyapunovExponent die exponentielle Divergenz der Trajektorien. Andererseits muss die Bewegung auf ein endliches Gebiet beschränkt bleiben und es treten Kontraktionen auf, die mindestens einen negativen Lyapunov-Exponenten zur Folge haben. Bei dissipativen Systemen (solche mit Reibung) wird ein mitschwimmendes N dimensionales Volumenelement VN (t) kontrahiert. Man erhält (Satz von Liouville) Z dVN (t) = div f~(~y (t)) dt. dt Nehmen wir zunächst div f~ = c als konstant an. Integration ergibt dann VN (t) = VN (0) ect 112 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I σ1 σ2 σ3 – 0 0 + – – 0 0 – – – – Trajektorie endet auf stabilem Fixpunkt stabiler Grenzzyklus (periodische Bewegung) stabiler Torus (quasi-periodische Bewegung) seltsamer Attraktor (chaotische Bewegung) Tabelle 4.1: Klassifizierung von Trajektorien eines dissipativen Systems in drei Dimensionen durch die Vorzeichen ihrer Lyapunov-Exponenten. und mit (4.39) σ (N ) = N X σk = div f~ = Sp L. (4.41) k=1 Die Summe aller Lyapunov-Exponenten entspricht also der Divergenz von f (oder der Spur der Jacobi-Matrix L) und ist für dissipative Systeme negativ. Daraus ergibt sich notwendig, dass mindestens ein Lyapunov-Exponent kleiner Null sein muss. In drei Dimensionen sind somit alle Kombinationen in Tabelle 4.1 aufgelistet. Im Allgemeinen ist div f~ jedoch nicht konstant. Dann lässt sich der Mittelwert bilden und es gilt σ (N ) N X 1 = σk = lim t→∞ t k=1 Z t dt div f~ (4.42) 0 was für dissipative Systeme negativ ist. Für Hamiltonsche Systeme haben die Bewegungsgleichungen kanonische Form q̇k = ∂H , ∂pk und es gilt sofort div f~ = ṗk = − ∂H , ∂qk H = H(qk , pk ) X ∂ ∂H X ∂ ∂H − =0. ∂qk ∂pk ∂pk ∂qk D.h. aber, dass die Summe aller Lyapunov-Exponenten Null sein muss. Am Beispiel des gedämpften Pendels ergibt sich σ (3) = 3 X k=1 4.7.5 σk = −α . Numerische Berechnung aller Lyapunov-Exponenten Wir geben ein Verfahren an wie man numerisch das gesamte Spektrum finden kann und folgen dabei hauptsächlich [7]. Startet man mit einem p-dimensionalen Parallelepiped, so werden durch die exponentiell veschiedenen Zeitskalen der Richtungen nach wenigen Zeitschritten die aufspannenden Vektoren mehr oder weniger in eine Richtung, eben 113 4.7. CHAOS die des größten Lyapunov-Exponenten, zeigen. Dies kann man umgehen, indem man nach einer bestimmten Zeitspanne die aufspannenden Vektoren durch ein Schmidtsches Verfahren immer wieder orthogonalisiert. Wir erklären das Prinzip an einem dreidimensionalen Phasenraum: 1. Wähle drei orthogonale Einheitsvektoren û1 , û2 , û3 . t = 0, k = 0. 2. Integriere (4.32) bis t + ∆T : w ~ i = Q(t + ∆T, t) ûi (p) 3. Berechne die Volumina Vk , welche von w ~ 1 ... w ~ p aufgespannt werden: (p) Vk = |det (w ~ 1 , ...w ~ p )| 4. Bestimme durch ein Schmidt-Verfahren die neuen ûi so, dass jeweils die ersten p Vektoren ûi den Unterraum der w ~ 1 bis w ~ p aufspannen und dabei paarweise senkrecht aufeinander stehen: û1 = w ~1 , |w ~ 1| ~u2 = w ~ 2 − c12 û1 , û2 = ~u3 = w ~ 3 − c13 û1 − c23 û2 , ~u2 , |~u2 | û3 = c12 = û1 · w ~ 2, ~u3 , |~u3 | c13 = û1 · w ~ 3, c23 = û2 · w ~3 5. t := t + ∆T , k := k + 1 6. gehe nach 2. Nach genügend vielen Schritten (großes k) lässt sich der Lyapunov-Exponent der Ordnung p berechnen: k 1 X (p) (p) ln Vi σ = k∆T i=1 und daraus schließlich nach (4.40) das gesamte Spektrum σk . 4.7.6 Beispiel angetriebenes Pendel Wir demonstrieren das Verfahren am angetriebenen Pendel (4.31). Die Jacobi-Matrix in (4.32) lautet 0 1 0 L(t) = −Ω20 cos y1(0) (t) −α −A sin y3(0) (t) . (4.43) 0 0 0 114 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I Wegen der letzten Gleichung (4.31) existieren keine Fixpunkte. Mindestens ein LyapunovExponent muss daher immer Null sein. Wegen der einfachen Struktur von (4.43) lassen sich einige analytische Aussagen machen. So folgt aus der dritten Zeile sofort u̇3 = 0, u3 = const. (0) (0) Für kleines A kann man selbstkonsistent |y1 |, |y2 | ∼ A annehmen und (0) cos y1 ≈ 1 (4.44) linearisieren. Speziell für u3 = 0 sind die beiden Gleichungen für u1 , u2 äquivalent zum gedämpften Pendel mit den Lösungen α |(u1 , u3 )| ∼ hi (t) exp − , i = 1, 2 2 mit hi (t) als oszillierende, beschränkte Funktionen. Mit (4.33) ergeben sich daraus die beiden Lyapunov-Exponenten σ2 = σ3 = −α/2. Setzt man u3 = 1, so entsprechen die Gleichungen für u1 , u2 denen des angetriebenen harmonischen Oszillators. hier gilt das Langzeitverhalten y1 ∼ sin(ω0 t + β) was σ1 = 0 liefert. Die Lösung ~y (0) (t) ist also für kleines A ein stabiler Grenzzyklus (Tabelle 4.1). Für größeres A wird die Linearisierung (4.44) unzulässig, der Grenzzyklus wird instabil und endlich entstehen chaotische Bahnen. Abb. 4.17 zeigt numerische Ergebnisse für kleineres A, Abb.4.14 für größere Werte. 4.7.7 Lyapunov-Zeit In dynamischen Systemen die aus physikalischen Problemstellungen hervorgehen sind die Anfangsbedingungen normalerweise nur mit endlicher Genauigkeit ∆ǫ(0) bekannt. Kleine Fehler wachsen aber exponentiell an, wobei der größte Lyapunov-Exponent ein Maß für die Wachstumsrate (Dimension 1/Zeit) ist. Kennt man den größten LyapunovExponenten σ1 , so lässt sich eine Zeit t∗ abschätzen, nach der der Anfangsfehler auf eine gewisse Größe L (die typische Ausdehnung des Attraktors im Phasenraum) angewachsen ist. Dann wird die Anfangsbedingung keine Rolle mehr spielen, sodass die deterministische Theorie (die Differentialgleichungen (4.29), keine Vorhersage mehr erlauben. Wegen ∗ L = ∆ǫ(t∗ ) = ∆ǫ(0) eσ1 t ergibt sich 1 t = ln σ1 als sogenannte Lyapunov-Zeit, Abb.4.18. ∗ L ∆ǫ(0) Beispielprogramm zur Berechnung der drei Lyapunov-Exponenten beim Pendel 115 4.7. CHAOS Abbildung 4.17: Lyapunov-Exponenten und Bifurkationsdiagramm beim angetriebenen Pendel mit Reibung, Parameter wie in Abb.4.11. PROGRAM PENDEL_LYAP PARAMETER (IMAXX=500) ! max. Aufloesung (A) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION Y(2),AUX(10),YL(3,3),FPL1(IMAXX),FPL2(IMAXX),FPL3(IMAXX) EXTERNAL EQS,EQL ! Subroutinen fuer die Gleichungen COMMON /PARAM/ ALPHA,OMEGA,AM,OM,Y0,Y3 PI=3.14159265 OMEGA=1. ! Omega0, eigenfrequenz ! Parameter fuer EQS,EQD 116 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I t* [h] σ = 0.1/h σ = 0.2/h σ = 1/ h L / ∆ε(0) Abbildung 4.18: Verschiedene Vorhersagezeiten bei verschiedenen LyapunovExponenten σ. Die Vorhersagezeit hängt von der relativen Genauigkeit des Anfangszustandes ab, aber mehr noch vom größten Lyapunov-Exponenten. OM=0.8 ! omega0, antrieb-frequenz ALPHA=0.1 ! daempfung DT=0.01 TPERD=2.*PI/OM WRITE(6,*)’A von bis?’ READ(5,*) AM0,AM1 WRITE(6,*)’Aufloesung (MAX 500)?’ READ(5,*) IMAX TPER=2.*PI/OMEGA TVOR=1000.*TPER TPLOT=3000.*TPER+TVOR ! vorlauf ! Zeitspanne fuer Lyap-Exp. C NMAX=10 ! Delta T = NMAX*DT DA=(AM1-AM0)/FLOAT(IMAX) c c DO 100 IA=1,IMAX AM=AM0+DA*FLOAT(IA-1) 2 1 ! Schleife A ! A-Wert Y(1)=0. ! Anfangswert f. Referenztrayektorie y^0 Y(2)=0. DO 1 I=1,3 ! Anfangswert fuer Stoerungen u(0) DO 2 J=1,3 YL(I,J)=0. CONTINUE YL(I,I)=1. CONTINUE 117 4.7. CHAOS 10 T=0. F1=0. F2=0. F3=0. CONTINUE CALL RKG(Y,T,2,DT,AUX,EQS) T=T+DT ! Ein Zeitschritt RK4, Referenztrajektorie C IF(Y(1).GT.PI) THEN Y(1)=Y(1)-2.*PI ENDIF IF(Y(1).LT.-PI) THEN Y(1)=Y(1)+2.*PI ENDIF C IF(T.LT.TVOR) GOTO 10 ! nur Vorlauf C Lyapunov-Exp Y0=Y(1) DO 50 I=1,3 Y3=YL(3,I) CALL RKG(YL(1,I),T,2,DT,AUX,EQL) ! Ein Zeitschritt RK4, linearisiert 50 CONTINUE NL=NL+1 IF(NL.EQ.NMAX) THEN ! Delta T ist um NL=0 NL1=NL1+1 C Berechnung der Voumina V_k^n FL1=SQRT(YL(1,1)**2+YL(2,1)**2+YL(3,1)**2) P1=YL(2,1)*YL(3,2)-YL(3,1)*YL(2,2) P2=YL(3,1)*YL(1,2)-YL(1,1)*YL(3,2) P3=YL(1,1)*YL(2,2)-YL(2,1)*YL(1,2) FL2=SQRT(P1**2+P2**2+P3**2) FL3=ABS(P1*YL(1,3)+P2*YL(2,3)+P3*YL(3,3)) F1=F1+LOG(FL1) F2=F2+LOG(FL2) F3=F3+LOG(FL3) ! V^1 ! V^2 ! V^3 C Schmidt orthogonalisierung und renormierung YL(1,1)=YL(1,1)/FL1 YL(2,1)=YL(2,1)/FL1 YL(3,1)=YL(3,1)/FL1 ! renormierung erstes u ! zweites u S1=YL(1,2)*YL(1,1)+YL(2,2)*YL(2,1)+YL(3,2)*YL(3,1) 118 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I YL(1,2)=YL(1,2)-S1*YL(1,1) YL(2,2)=YL(2,2)-S1*YL(2,1) YL(3,2)=YL(3,2)-S1*YL(3,1) SN=SQRT(YL(1,2)**2+YL(2,2)**2+YL(3,2)**2) YL(1,2)=YL(1,2)/SN YL(2,2)=YL(2,2)/SN YL(3,2)=YL(3,2)/SN ! drittes u S1=YL(1,3)*YL(1,1)+YL(2,3)*YL(2,1)+YL(3,3)*YL(3,1) S2=YL(1,3)*YL(1,2)+YL(2,3)*YL(2,2)+YL(3,3)*YL(3,2) YL(1,3)=YL(1,3)-S1*YL(1,1)-S2*YL(1,2) YL(2,3)=YL(2,3)-S1*YL(2,1)-S2*YL(2,2) YL(3,3)=YL(3,3)-S1*YL(3,1)-S2*YL(3,2) SN=SQRT(YL(1,3)**2+YL(2,3)**2+YL(3,3)**2) YL(1,3)=YL(1,3)/SN YL(2,3)=YL(2,3)/SN YL(3,3)=YL(3,3)/SN ENDIF IF(T.LT.TPLOT) GOTO 10 C F1=F1/FLOAT(NL1)/FLOAT(NMAX)/DT F2=F2/FLOAT(NL1)/FLOAT(NMAX)/DT F3=F3/FLOAT(NL1)/FLOAT(NMAX)/DT WRITE(6,*) AM,F1,F2-F1,F3-F2 FPL1(IA)=F1 FPL2(IA)=F2-F1 FPL3(IA)=F3-F2 100 ! L.E. 1. Ordnung ! L.E. 2. Ordnung ! L.E. 3. Ordnung ! daraus die L.E. 1-3 CONTINUE ! naechstes A ............ ! Ausgabe, plotten, etc. END c c C DGL volles System f. Referenztrajektorie SUBROUTINE EQS(RHSIDE,Y,T) C IMPLICIT REAL*8 (A-H,O-Z) DIMENSION RHSIDE(2),Y(2) C 119 4.7. CHAOS COMMON /PARAM/ ALPHA,OMEGA,AM,OM RHSIDE(1)=Y(2) RHSIDE(2)=-ALPHA*Y(2)-OMEGA**2*SIN(Y(1))+AM*COS(OM*T) RETURN END c c c DGL linearisiertes System fuer Stoerungen SUBROUTINE EQL(RHSIDE,Y,T) C IMPLICIT REAL*8 (A-H,O-Z) DIMENSION RHSIDE(2),Y(2) C COMMON /PARAM/ ALPHA,OMEGA,AM,OM,Y0,Y3 RHSIDE(1)=Y(2) RHSIDE(2)=-ALPHA*Y(2)-OMEGA**2*COS(Y0)*Y(1)-AM*SIN(OM*T)*Y3 RETURN END 4.7.8 Fraktale Dimension Ausgehend vom Euklidischen Dimensionsbegriff können wir einem Fixpunkt im Phasenraum die Dimension Null, einem Grenzzyklus die Dimension Eins und einem Torus die Dimension Zwei zuordnen. Wegen der Kreuzungsfreiheit der Trajektorien kann ein chaotischer Attraktor nicht vollständig in eine Fläche passen und muss daher eine Dimension größer als zwei besitzen. Allerdings muss er auch nicht den gesamten Phasenraum ausfüllen, was bei N = 3 auf eine fraktale Dimension 2<d<3 führen würde. Wie lässt sich d ermitteln? Kapazitätsdimension Abb.4.13 legt nahe, die Dimension mit Hilfe der in Abschn.2.2.2 vorgestellten BoxCounting-Methode zu betimmen. Man muss beachten, dass es sich beim PoincaréSchnitt um eine Projektion handelt, die tatsächliche Dimension des Attraktors ist um 120 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I Eins größer (Ein Grenzzyklus würde im Poincaré-Schnitt einer endlichen Anzahl von Punkten entsprechen, hätte also die Dimension Null). Man kann d natürlich auch im N -dimensionalen Phasenraum berechnen, in dem man diesen mit Hyperwürfeln der Dimension N und der Kantenlänge L abdeckt. Genau wie in Abschn.2.2.2 lässt sich d dann ermitteln, indem man die Zahl M der vom Attraktor aufgesuchten Würfel als Funktion von L bestimmt: log M dK = − . log L Die so definierte Größe wird als Kapazitätsdimension bezeichnet. Abbildung 4.19: Fraktale Dimension (Steigung) nach der Box-Counting-Methode, Kapazitätsdimension. Angetriebenes Pendel, Ω0 = 1, α = 0.1, ω0 = 0.8. Links: periodische Bahn bei A = 0.4, dK ≈ 1.04, rechts: chaotischer Attraktor bei A = 1.0, dK ≈ 2.01. Zur Demonstration berchnen wir dK zunächst für zwei Werte für A, einmal im periodischen, zum anderen im chaotischen Bereich. Der dreidimensionale Phasenraum wird dabei im Bereich −π ≤ y1 ≤ π, −3.5 ≤ y2 ≤ 3.5, 0 ≤ y3 ≤ 2π nacheinander mit n3 Würfeln bedeckt, wobei n = 2, 4, 8, 16...512. Jedesmal wird M ermittelt, M als Funktion von der Kantenlänge L der Würfel ist in Abb.4.19 gezeigt. Man sieht, dass sich im chaotischen Bereich eine Dimension nur knapp über zwei ergibt, man kann also nur schwer aus der Dimension alleine zwischen chaotischem Attraktor und quasi-periodischer Bewegung unterscheiden. Abb.4.20 gibt schließlich dK über einen weiten Bereich von A wieder, wobei kaum Werte über zwei erreicht werden. 121 4.7. CHAOS Abbildung 4.20: Fraktale Dimension im Bereich 0.4 ≤ A ≤ 1.4, Werte sonst wie in Abb.4.11. Korrelationsdimension Gegeben sei eine Anzahl von P Punkten im N -dimensionalen Phasenraum i ~y i = (y1i , y2i , ... yN ), i = 1...P. Diese können das Ergebnis einer numerischen Lösung einer DGL sein, es kann sich aber auch um eine Messreihe (z.B. Temperatur über der Zeit an N verschiedenen Orten, o. ä.) handeln. Man berechnet die Korrelationsdimension, indem man zunächst für jeden Punkt die Anzahl der Nachbarpunkte ermittelt, die sich im Abstand R befinden: C(R) = Anzahl der Paare mit |~y i − ~y j | ≤ R für alle i 6= j . Dies lässt sich mit Hilfe der Heaviside-Funktion Θ formulieren: C(R) = P P X X i=1 j=i+1 mit Θ(x) = Θ(R − |~y i − ~y j |) 0 für x ≤ 0 1 für x > 0 . Ist die Anzahl der Punkte P groß genug, sollte C(R) ∼ Rd sein, wobei d die Dimension des Objektes beschreibt, auf welchem sich die Punkte P befinden. Man kann sich dies für N = 3 veranschaulichen; füllen die Punkte den Raum gleichmäßig aus, wird die Anzahl der Punkte mit dem Volumen der Kugel mit Radius 122 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I R gehen, also d = 3. Liegen die Punkte auf einer Ebene, wird C(R) ∼ R2 sein und d = 2, bei einer Linie gilt d = 1. Dies ist die Definition der Korrelationsfunktion, wenn man R klein genug macht (gegen Null gehen lässt): ln C(R) . (4.45) dC = lim R→0 ln R Man erhält dC wieder durch doppelt-logarithmisches Auftragen von C über R als Steigung (Abb.4.21). Es entsteht auch hier wieder die Frage, wo man die Steigung auswertet. für zu kleine R wird die Kurve flacher, weil zu wenig Punkte in die Kugeln fallen, um eine statistische Auswertung betreiben zu können. Für zu großes R wird die Steigung ebenfalls abnehmen, weil der Attraktor eine endliche Ausdehnung besitzt (Beim Pendel von der Größenordnung 2π). Abbildung 4.21: Korrelationsdimension (Steigung) beim angetriebenen Pendel, Ω0 = 1, α = 0.1, ω0 = 0.8. Chaotischer Attraktor bei A = 1, dC ≈ 2.12. Rekonstruktion von Attraktoren Oft liegen nur eindimensionale Messreihen (Zeitserien) einer Größe Y (t) vor: Y0 , Y1 , Y2 , .....YP −1 , Yn = Y (n∆t) . Auch daraus lässt sich eine fraktale Dimension bestimmen, obwohl die Dimension N des Phasenraums in der Regel unbekannt ist. Diese kann bei komplexen Systemen sehr groß sein. Sind die Messwerte vollständig unkorreliert (z.B. die Ergebnisse eines Münzwurfs), so lässt sich die Messreihe überhaupt nicht in einen Phasenraum einbetten und N → ∞. 123 4.7. CHAOS Man entfaltet zunächst die Messreihe in einem Raum mit vorgegebener Dimension N , der Einbettungsdimension. Dazu wählt man ein festes Zeitintervall ∆T , die DelayRate, die in der Regel eine Ordnung größer als ∆t ist. Sei ′ K = ∆T /∆t eine ganze Zahl. Man konstruiert eine Reihe von N ′ -dimensionalen Vektoren nach y1 (tk ) y2 (tk ) y3 (tk ) .... yN ′ (tk ) = Yk = Yk+K = Yk+2K = Yk+(N ′ −1)K erhält also für tk = k∆t, k = 0...kmax , kmax = P − 1 − (N ′ − 1)K insgesamt P − (N ′ − 1)K N ′ -dimensionale Vektoren, aus denen sich dann z.B. die Korrelationsdimension wie oben bestimmen lässt. Wie groß muss man N ′ wählen? Kreuzungsfreiheit der Trajektorien ist sicher ein Kriterium. Der niederländische Mathematiker Floris Takens konnte den folgenden Satz 1981 beweisen: Erzeugt ein deterministisches System den N -dimensionalen Fluss ~y : d~y = f~(~y ) dt so stellt x1 = y(t), x2 = y(t + ∆T ), .... x2N +1 = y(t + 2N ∆T ) eine stetig differenzierbare Einbettung dar, wobei y eine beliebige Komponente von ~y sein kann. Damit bleibt die Dimension eines Attraktors erhalten, wenn N ′ ≥ 2N + 1 gilt. In der Praxis wird man N ′ so lange vergrößern, bis die fraktale Dimension konvergiert. Beispiel: Klimaattraktor Die Kenntnis der Einbettungsdimension erlaubt das Abschätzen der Freiheitsgrade und kann als Maß für die Komplexität des Systems gelten, aus dem die Messreihe stammt. 1984 bestimmten Nicolis und Nicolis (Nature 311, 529-532, 1984) den sogenannten Klimaattraktor aus Messwerten des Eisvolumens der letzen 106 Jahre (Abb.4.22). 124 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I Abbildung 4.22: Eisvolumen der letzten 106 Jahre, gemessen von Shackleton et al., nach Nicolis und Prigogine (links), sowie seine dreidimensionale Einbettung (rechts). Aus der dreidimensionalen Einbettung geht hervor, dass N ′ > 3 sein sollte. Nicolis bestimmte die Dimension dC für verschiedene N ′ von zwei bis sechs (Abb.4.23). Offensichtlich konvergieren die Daten gegen dC ≈ 3.1 . Allerdings veröffentlichte P. Grassberger 1986 ebenfalls in Nature eine Arbeit, die sich kritisch mit den Ergebnissen von Nicolis auseinandersetzte. Grassberger fand keine Konvergenz, was wohl auf die wenigen Messpunkte der Rohdaten (184) zurückzuführen ist. Diese wurden durch Interpolation und Filterung auf 500 aufbereitet. Grassberger konnte zeigen, dass die Interpolation der Grund für die von Nicolis gefundene niedrige Attraktordimension ist. Trotzdem zeigt dieses Beispiel, wie sich aus Messungen die Dimension des Phasenraums einschränken lässt. Wäre das Ergebnis von Nicolis korrekt, so müsste sich das Klima aus einem Modell mit nur vier gekoppelten DGLs beschreiben lassen. Im Gegensatz dazu würden zufällig erzeugte Daten (Fluktuationen) zu keiner Konvergenz in dC führen (Kreuze in Abb.4.23 rechts). 4.7.9 Aufgaben 1. Räuber-Beute-System. Die beiden gekoppelten Ratengleichungen ṅ1 = α1 n1 − α2 n1 n2 ṅ2 = −β1 n2 + β2 n1 n2 , (4.46) αi , βi > 0 wurden von Lotka (1920) und Volterra (1931) vorgeschlagen, um die Wechselwirkung zwischen einer Beute- (n1 (t)) und einer Räuberpopulation (n2 (t)) zu beschreiben. Die Gleichungen (4.46) werden heute als “Lotka-Volterra-Modell” bezeichnet und gelten als einfachstes Räuber-Beute-System. 125 4.7. CHAOS Abbildung 4.23: Links: log C(R) für verschiedene Einbettungsdimensionen N ′ = 2...6. Rechts: Konvergenz gegen dC ≈ 3.1 würde auf einen relativ niedrig dimensionalen Phasenraum hindeuten. Kreuze entsprechen Kontrolldaten, die durch unkorreliertes Rauschen erzeugt wurden. (a) Interpretieren Sie die einzelnen Terme in (4.46). Zeigen Sie durch Skalieren von Zeit, n1 und n2 dass sich (4.46) schreiben lässt als ñ˙ 1 = añ1 − ñ1 ñ2 ñ˙ 2 = −ñ2 + ñ1 ñ2 , (4.47) a>0 (b) Geben Sie die Fixpunkte von (4.47) an und untersuchen Sie deren Stabilität. (c) Zeigen Sie, dass W (ñ1 , ñ2 ) = ñ1 + ñ2 − ln ñ1 − a ln ñ2 (4.48) unter der Dynamik von (4.47) erhalten bleibt. (d) Lösen Sie jetzt (4.47) numerisch durch RK4 und prüfen Sie die Erhaltung von (4.48). Plotten Sie Trajektorien im Phasenraum für verschiedene a und verschiedene Anfangsbedingungen. 2. Das Lorenz-System. In den 60ger Jahren leitete Edward Lorenz ein System von drei gekoppelten DGLs zur Wettervorhersage ab. Sie lauten: dy1 = −α (y1 − y2 ) dt dy2 = r y1 − y2 − y1 y3 dt dy3 = −β y3 + y1 y2 dt (4.49) Dabei sind α, β > 0 Systemparameter und r > 0 ein Kontrollparameter (Bifurkationsparameter). 126 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I (a) Berechnen Sie die Fixpunkte von (4.49) und deren Stabilität. Hinweis: Es gibt zwei Fixpunkte, den trivialen (yi = 0) und einen anderen. (b) Untersuchen Sie (4.49) numerisch mittels RK4. Wählen Sie speziell α = 10, β = 8/3 Untersuchen Sie für r den Bereich 0..170. Fertigen Sie ein Bifurkationsdiagramm an. Berechnen Sie die fraktale Dimension und die drei LyapunovExponenten. 4.8 4.8.1 Differentialgleichungen mit periodischen Koeffizienten Floquet-Theorem Das Floquet-Theorem ist äquivalent zum Blochschen Theorem aus der Festkörperphysik und macht eine wichtige Aussage zu linearen DGL’s der Form (4.32), allerdings für den Fall dass L(t) periodisch von der Zeit abhängt: L(t) = L(t + T ) . Wie in (4.34) lässt sich ein Zeitentwicklungsoperator C einführen, der jetzt allerdings ~u um eine Periode T weiter entwickelt: ~u(T ) = C(T ) ~u(0) . (4.50) C wird auch als Monodromie-Matrix bezeichnet. Sind mit Cw ~ k = σk (T ) w ~k (4.51) die Eigenwerte und Eigenvektoren von C bekannt, so gilt wegen CCw ~ k = σk (T ) σk (T ) w ~ k = σk (2T ) w ~k auch (σk (T ))n = σk (nT ) und daher σk = exp(λk T ) . (4.52) Die σk werden als Floquet-Multiplikatoren, die λk als Floquet-Exponenten bezeichnet. Wir nehmen an, dass die w ~ k eine vollständige Basis im Phasenraum aufspannen. Dann lässt sich X ~u(t) = ak (t) w ~ k eλ k t (4.53) k 127 4.8. DGLS MIT PERIODISCHEN KOEFFIZIENTEN entwickeln. Anwenden von C ergibt C ~u(t) = X ak (t) C w ~ k eλ k t = k X ak (t) σk w ~ k eλ k t = k X ak (t) w ~ k eλk (t+T ) = ~u(t + T ) . k Wegen ~u(t + T ) = X ak (t + T ) w ~ k eλk (t+T ) k folgt dann ak (t) = ak (t + T ) d.h., die Entwicklungskoeffizienten in (4.53) sind periodisch in t mit der Periodenlänge T. Damit haben wir das Floquet-Theorem bewiesen, das zusammengefasst lautet: Die Lösung von ~u˙ (t) = L(t) ~u(t) hat die Form ~u(t) = mit L(t) = L(t + T ) X (4.54) ~qk (t) exp(λk t) k wobei die ~qk in der Zeit periodische Funktionen ~qk (t) = ~qk (t + T ) sind. Die Floquet-Exponenten λk folgen aus den Eigenwerten σk der MonodromieMatrix C(T ) als λk = 4.8.2 1 1 1 iαk ln σk = ln |σk |eiαk = ln |σk | + T T T T (4.55) Stabilität von Grenzzyklen Wir untersuchen die Stabilität einer periodischen Lösung ~y (0) (t) = ~y (0) (t + T ) (4.56) von (4.29). Linearisierung führt auf ein Problem (4.54) für die Störungen ~u(t). Wenn ein Floquet-Exponent einen positiven Realteil besitzt, so wird der Betrag der Störung exponentiell anwachsen, der Grenzzyklus (4.56) ist instabil. Die Stabilitätsbedingung lautet demnach |σk | ≤ 1 für alle k . 128 4.8.3 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I Parametrische Instabilität: Pendel mit oszillierendem Aufhängepunkt Als Beispiel untersuchen wir das in Abb.4.24 skizzierte Pendel. Der Aufhängepunkt soll mit A sin ω0 t ω02 vertikal oszillieren. ~ sin ω0t φ Abbildung 4.24: Durch einen vertikal oszillierenden Aufhängepunkt angetriebenes Pendel. Dies führt im mitbeschleunigten Koordinatensystem zu einer Scheinkraft in vertikaler Richtung, welche durch die Substitution g → g(1 + a sin ω0 t), a= A g in (4.30) berücksichtigt wird. Aus (4.31) wird für den ungedämpften Fall (α = 0) ẏ1 = y2 ẏ2 = −Ω20 (1 + a sin y3 ) sin y1 ẏ3 = ω0 (4.57) d.h. die Zeitabhängigkeit ist im Gegensatz zu (4.31) jetzt multiplikativ. Die untere (stabile) Ruhelage lautet (0) (0) y1 = y2 = 0, (0) y3 = ω0 t. Linearisierung um die untere Ruhelage führt auf u̇1 = u2 u̇2 = −Ω20 (1 + a sin ω0 t) u1 u̇3 = 0 . (4.58) (4.59) 129 4.8. DGLS MIT PERIODISCHEN KOEFFIZIENTEN Da u3 nicht an u1 , u2 koppelt, genügt es, das 2D-Problem ~u˙ = L ~u (4.60) mit ~u = (u1 , u2 ) und L(t) = 0 1 2 −Ω0 (1 + a sin ω0 t) 0 (4.61) weiter zu untersuchen, welches die Form (4.54) mit T = 2π ω0 besitzt. Um die Floquet-Exponenten zu berechnen, benötigen wir zuerst die MonodromieMatrix. Dazu wählt man zwei orthogonale Anfangsbedingungen ~u1 (0) = (1, 0), ~u2 (0) = (0, 1) und integriert (4.54) mit (4.61) für jedes ~ui numerisch bis t = T . Damit kennt man ~ui (T ). Wegen (4.50) gilt aber auch (~u1 (T ), ~u2 (T )) = C · (~u1 (0), ~u2 (0)) = C . {z } | (4.62) =1 Die Vektoren ~ui (T ) bilden somit die Spalten von C. Damit lassen sich die Eigenwerte σ12 berechnen: 1p 1 (Sp C)2 − 4Det C (4.63) σ12 = Sp C ± 2 2 und mit (4.55) die Floquet-Exponenten. Wie man leicht einsieht, gilt für die Summe aller Floquet-Exponenten ebenfalls die Beziehung (4.42), bzw. (4.41). Wegen Sp L = 0 heißt das aber λ1 + λ2 = 0 . (4.64) Es gibt zwei Möglichkeiten für die Lösungen von (4.63): 1. Beide σk sind reell und größer null, dann sind die λk ebenfalls reell und ein λk wegen (4.64) größer Null. Der Fixpunkt ~y (0) ist instabil. 2. Die σk sowie die λk bilden ein komplex-konjugiertes Paar. Dann muss wegen (4.63) λ1 = −λ2 = −λ∗1 und damit λ12 = ±iα, αǫR gelten. Der Fixpunkt ~y (0) ist stabil. Die Linien im Parameterraum (a, ω0 ), auf denen zwei reelle Lösungen von (4.63) in ein konjugiert-komplexes Paar übergehen, also wo (Sp C)2 − 4Det C = 0 gilt, trennen die stabilen von den instabilen Bereichen. (4.65) 130 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I 4.8.4 Mathieu-Gleichung Die beiden DGLs (4.60) sind äquivalent zu einer DGL 2. Ordnung ü + Ω20 (1 + a sin ω0 t)u = 0 (4.66) mit u = u1 . In der Literatur findet man oft die Normalform ü + (p + 2b sin 2t̃)u = 0 welche durch die Skalierung t̃ = sowie p= 4Ω20 , ω02 (4.67) ω0 t 2 b= 2Ω20 a ω02 aus (4.66) hervorgeht. Wie oben beschrieben, erhalten wir die Stabilitätsgrenzen des unteren Fixpunktes durch Berechnen der Monodromie-Matrix für bestimmte Parameter p, b: C = C(p, b) Dann werden die Nullklinen der Funktion f (p, b) = (Sp C(p, b))2 − 4Det C(p, b) in der Parameterebene gezeichnet. Abb.4.25 zeigt das Ergebnis. Bei den Resonanzen p = n2 , n = 1, 2, ... genügen beliebig kleine Amplituden b, um das Pendel zu destabilisieren, die Schwingung schaukelt sich auf. Setzt man p ein, so ergibt sich für die Resonanzen ein Verhältnis n Ω0 = ω0 2 zwischen Eigenfrequenz des Pendels und Antriebsfrequenz. Das Programm dazu sieht so aus: PROGRAM MATHIEU IMPLICIT REAL*8 (A-H,O-Z) ! doppelt haelt besser.... PARAMETER (IDIM=1000, JDIM=200, PI=3.14159265) ! Aufloesung im Par-Raum DIMENSION Y(2),AUX(10),F(IDIM,JDIM) C 4.8. DGLS MIT PERIODISCHEN KOEFFIZIENTEN 131 Abbildung 4.25: Stabilitätsdiagramm der Mathieu-Gleichung (4.67). Schwarz: λ1 = λ2 = 0, Stabilitätsgrenzen, rot: λk reell, instabil, blau: λk = ±iα, stabil. Die Resonanzspitzen reichen bis zur p-Achse. real*4 F,TR(6),PMIN,PMAX,BMIN,BMAX EXTERNAL EQS COMMON /PARAM/ P,B DATA TR /0.,1.,0.,0.,0.,1./ TPER=PI ! Periodenlaenge DT=TPER/500. ! Zeitschritt PMIN=-5. PMAX=20. ! Bereich f. P 132 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I BMIN=0. ! Bereich f. B BMAX=10. DP=(PMAX-PMIN)/FLOAT(IDIM-1) DB=(BMAX-BMIN)/FLOAT(JDIM-1) c Doppeschleife im Par-Raum DO 100 J=1,JDIM B=FLOAT(J-1)*DB+BMIN DO 100 I=1,IDIM P=FLOAT(I-1)*DP+PMIN T=0. X1=1. Y1=0. X2=0. Y2=1. 10 CONTINUE T=T+DT C Y(1)=X1 ! 1. Anfangsbed. Y(2)=Y1 CALL RKG(Y,T,2,DT,AUX,EQS) X1=Y(1) Y1=Y(2) Y(1)=X2 ! 2. Anfangsbed. Y(2)=Y2 CALL RKG(Y,T,2,DT,AUX,EQS) X2=Y(1) Y2=Y(2) IF(T.LT.TPER) GOTO 10 ! bis TPER integrieren C 100 C DET=X1*Y2-X2*Y1 SP=X1+Y2 F(I,J)=SP**2-4.*DET CONTINUE ! Determinante und Spur von C CALL PGBEGIN(0,’/xwin’,1,1) CALL PGPAP(6.,1.) Ergebnis plotten CALL PGENV(PMIN,PMAX,BMIN,BMAX,0,1,1) CALL PGSWIN(1.,FLOAT(IDIM),1.,FLOAT(JDIM)) CALL PGSLW(3) c Contur-Linien (0, 2., -2.) CALL PGCONT(F,IDIM,JDIM,1,IDIM,1,JDIM,0.,-1,TR) CALL PGSCI(2) CALL PGCONT(F,IDIM,JDIM,1,IDIM,1,JDIM,2.,-1,TR) 4.8. DGLS MIT PERIODISCHEN KOEFFIZIENTEN 133 CALL PGSCI(4) CALL PGCONT(F,IDIM,JDIM,1,IDIM,1,JDIM,-2.,-1,TR) CALL PGEND END ..... SUBROUTINE EQS(RHSIDE,Y,T) C IMPLICIT REAL*8 (A-H,O-Z) DIMENSION RHSIDE(2),Y(2) C COMMON /PARAM/ P,B RHSIDE(1)=Y(2) RHSIDE(2)=-(P+2.*B*SIN(2.*T))*Y(1) RETURN END Interessanterweise erhält man auch für negatives (!) p einen kleinen Bereich, indem die Floquet-Exponenten imaginär sind, Abb.4.26. Negatives p entspricht aber der Linearisierung um den instabilen Fixpunkt des Pendels, y1 = π. Wählt man b entsprechend, so lässt sich das Pendel sogar oben stabil halten. 4.8.5 Aufgaben 1. Linearisieren Sie (4.57) um die obere, instabile Ruhelage (0) y1 = π, (0) y2 = 0, (0) y3 = ω0 t. Leiten Sie für die Abweichungen y1 = π + u(t) eine Gleichung der Form (4.67) her. Was ändert sich imVergleich zu (4.66)? Zeigen Sie mit dem Ansatz u(t) = u0 exp(iβt) cos(t + δ) dass das Pendel in der oberen Ruhelage stabilisiert werden kann. Vernachlässigen Sie dabei höhere Harmonische, d.h. machen Sie die Näherung 1 1 cos 2t cos(t + δ) = (cos(3t + δ) + cos(t − δ)) ≈ cos(t − δ) . 2 2 Der Stabilitätsbereich lässt sich abschätzen aus der Bedingung Im(β)=0 (wieso?). 134 KAPITEL 4. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN I Abbildung 4.26: Für negaties p ist die obere Ruhelage in dem schmalen Keil zwischen den schwarzen Linien stabil. 2. Untersuchen Sie die gedämpfte Mathieu-Gleichung ü + αu̇ + Ω20 (1 + a sin ω0 t)u = 0 numerisch. Plotten Sie die Stabilitätsbereiche in der q-b-Ebene für festes α > 0. Was ändert sich qualitativ an Abb.4.25? Begründung! Kapitel 5 Gewöhnliche Differentialgleichungen II, Randwertprobleme 5.1 Vorbemerkungen Wir betrachten wieder Systeme aus N gewöhnlichen DGLs 1. Ordnung d~y (x) = f~(~y (x), x) . dx (5.1) Im Gegensatz zum Anfangswertproblem sind beim Randwertproblem Bedingungen an zwei verschiedenen gegebenen Punkten x = a, b vorgegeben: A ~y (a) + B ~y (b) = ~c . (5.2) Normalerweise handelt es sich bei a und b um die “Ränder” von x, man ist also an der Lösung ~y (x) im Bereich a≤x≤b interessiert. Die Randbedingungen (5.2) sind linear in ~y . Es können aber auch nichtlineare Randbedingungen der allgemeinen Form gi (~y (a), ~y (b)) = 0, i = 1..N vorliegen, wobei die gi Funktionen von 2N Variablen sind. In der Praxis sind die Randbedingungen meistens separiert: A1 ~y (a) = ~c1 , B 1 ~y (b) = ~c2 . (5.3) Damit das Problem weder über- noch unterbestimmt ist, dürfen in (5.3) aber nur N linear unabhängige Bedingungen vorkommen. Das Anfangswertproblem (4.5) aus Kapitel 4 ist mit A1 = 1, B 1 = 0, 135 ~c1 = ~y0 136 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II in der Formulierung (5.3) enthalten. Wir wollen uns hier auf lineare, separierte Randbedingungen wie (5.3) beschränken. Anfangswertprobleme haben normalerweise eine eindeutige Lösung. Dagegen können Randwertprobleme auch gar keine oder mehrere Lösungen besitzen. Dies wird sofort am Beispiel der DGL 2.Ordnung y ′′ + y = 0 klar. Für die Randbedingungen y(0) = 0, y(π/2) = 1 gibt es genau eine Lösung y(x) = sin x , für y(0) = 0, y(π) = 0 existieren unendlich viele Lösungen y(x) = A sin x mit beliebigem A und für y(0) = 0, y(π) = 1 findet man gar keine Lösung. 5.2 Beispiel schiefer Wurf Ein Massepunkt werde bei (x, y) = 0 mit einer bestimmten gegebenen Geschwindigeit ~v = (vx , vy ) im Gravitationsfeld nach oben geschossen und lande nach einer bestimmten Zeit t = T bei x(T ) = L, y(T ) = 0. Die Bewegungsgleichungen lauten ẍ = −α ẋ + β y ÿ = −α ẏ − g , (5.4) wobei geschwindigkeitsabhängige Reibung α und eine linear mit der Höhe zunehmende Windkraft (Scherströmung, β) berücksichtigt werden. Für α = β = 0 ist die Flugbahn eine Parabel y(t) = vy t − g t2 , x(t) = vx t oder y(x) = mit T = vy , g g vy x − 2 x2 vx vx L= vx vy . g (5.5) Aus den Anfangswerten x(0) = 0, y(0) = 0, ẋ(0) = vx , ẏ(0) = vy folgt also eindeutig die Lösung x(t), y(t) sowie die Flugzeit T und der Aufschlagpunkt L. Dies ist ein 137 5.3. FINITE DIFFERENZEN klassisches Anfangswertproblem. Wie lässt es sich als Randwertproblem formulieren? Wir suchen nach einer Lösung von (5.4), die die Randbedingungen x(0) = y(0) = 0, x(T ) = L, y(T ) = 0 für festes T (Parameter) erfüllt. Der Massepunkt soll also zu gegebener Zeit T am gegebenen Ort x = L auftreffen. Aus (5.5) ergibt sich vy = g T und vx = L/T oder y(t) = g t (T − t) , x(t) = L t. T (5.6) Was aber, wenn man (5.4) nur numerisch lösen kann? Man könnte dann iterativ verschiedene Werte von vx , vy so durchfahren, dass die Bahn nach t = T in (L, 0) endet. Das führt auf das sogenannte Schießverfahren, auf das wir weiter unten zurück kommen werden. 5.3 Finite Differenzen Wie bei Anfangswertproblemen lassen sich auch bei Randwertproblemen die Ableitungen durch die Differentialquotienten ausdrücken und man erhält ein algebraisches Gleichungssystem, die diskretisierten Gleichungen. 5.3.1 Diskretisierung Wir zeigen die Vorgehensweise am Beispiel (5.4). Zunächst wird das Gebiet 0 ≤ t ≤ T mit (äquidistanten) Stützstellen unterteilt ti = i∆t, i = 0...n, ∆t = T /n . Dann werden die Ableitungen durch ẋi = xi+1 − xi−1 , 2∆t ẍi = xi+1 − 2xi + xi−1 , ∆t2 (5.7) und entsprechend für y ersetzt. xi , yi bezeichnet x(ti ), y(ti ) als n − 1-komponentige Vektoren (x1 , ...xn−1 ), (y1 , ...yn−1 ) . Aus (5.4) werden die beiden linearen Gleichungssysteme n−1 X i=1 n−1 X Aij yj = ai (5.8) Aij xj = β yi + bi . (5.9) i=1 Hierbei bezeichnet Aij eine Tridiagonalmatrix: Aii = − 2 , ∆t2 Ai,i+1 = 1 α , + 2 ∆t 2∆t Ai,i−1 = 1 α − 2 ∆t 2∆t (5.10) 138 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II Abbildung 5.1: Schiefer Wurf, numerische Lösungen von (5.4) für 10 Stützstellen (Kreise) im Vergleich zur exakten Lösung (rot). und ai = −g . Die Randbedinungungen lauten x0 = y0 = 0, xn = L, yn = 0 und müssen in das System (5.8,5.9) eingearbeitet werden. Die linken Punkte sind in den ersten Gleichungen (i = 1) bereits berücksichtigt weil A1,0 = 0. Rechts (i = n − 1) erhält man für die letzte Gleichung aus (5.9) An−1,n−1 xn−1 + An−1,n L = β yn−1 + bn−1 . 139 5.3. FINITE DIFFERENZEN Weil aber An−1,n nicht existiert (bei A handelt es sich um eine (n−1)×(n−1)-Matrix), muss die zusätzliche Inhomogenität in bn−1 berücksichtigt werden: 1 α L, bi = 0 für i = 1...n − 2 . bn−1 = − + ∆t2 2∆t Numerisch lassen sich die Gleichungen (5.8,5.9) nacheinander durch eine LAPACKRoutine, z.B. SGTSV lösen, siehe Kapitel 3: PROGRAM WURF PARAMETER (IDIM=10) ! Anzahl der St\"utzstellen, IDIM = n-1 DIMENSION X(IDIM),Y(IDIM),DL(IDIM),DU(IDIM),D(IDIM) G=10. TEND=1. XL=1. ! T, Intervallgrenze rechts ! Laenge L WRITE(6,*) ’alpha, beta?’ READ(5,*) ALPHA,BETA DT=TEND/FLOAT(IDIM+1) ! Zeitschritt Delta t DT2=DT**2 C Matrix A (tridiagonal), Vektor a fuer y-Gleichungen DO 100 I=1,IDIM DL(I)=1./DT2-ALPHA/2./DT DU(I)=1./DT2+ALPHA/2./DT D(I)=-2./DT2 Y(I)=-G 100 CONTINUE c LAPACK-Aufruf f\"ur y-Gleichungen CALL SGTSV(IDIM,1,DL,D,DU,Y(1),IDIM,INFO) C Matrix A (tridiagonal), Vektor b fuer x-Gleichungen DO 110 I=1,IDIM DL(I)=1./DT2-ALPHA/2./DT DU(I)=1./DT2+ALPHA/2./DT D(I)=-2./DT2 X(I)=BETA*Y(I) YMAX=MAX(Y(I),YMAX) 110 CONTINUE X(IDIM)=X(IDIM)-XL*(1./DT2+ALPHA/2./DT) ! Randbedingung x=L c LAPACK-Aufruf f\"ur x-Gleichungen 140 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II CALL SGTSV(IDIM,1,DL,D,DU,X(1),IDIM,INFO) ... Ausgabe, plotten, etc... END Das Ergebnis für nur 10 Stützstellen (in der Praxis wird man wesentlich mehr verwenden) zeigt Abb.5.1 für verschiedene Werte von α und β. Es lässt sich auch für α, β 6= 0 eine analytische Lösung finden (die Gleichungen sind linear), die allerdings komplizierter als (5.6) aussieht (Aufgaben) und die ebenfalls in der Abbildung zu sehen ist. Das Differenzenverfahren scheint selbst für eine sehr kleine Stützstellenzahl ziemlich genaue Resultate zu liefern. Durch die Näherungen (5.7) ist der Diskretisierungsfehler ∼ ∆t oder ∼ 1/n. 5.3.2 Beispiel Schrödinger-Gleichung In der Quantenmechanik ist man an Lösungen der Schrödinger-Gleichung ~2 ∂ − ∆ + U (~r, t) Ψ(~r, t) = i~ Ψ( r, t) 2m ∂t für verschiedene vorgegebene Potentiale U (~r, t) interessiert. Dies ist eine partielle DGL, geht aber für den Spezialfall einer räumlichen Dimension (x) und eines zeitunabhängigen Potentials V = V (x) durch die Separation Ẽ Ψ(x, t) = Φ(x) exp(−i t) ~ mit den Abkürzungen V (x) = 2m U (x), ~2 E= 2m Ẽ ~2 in die zeitunabhängige (eindimensionale) Schrödinger-Gleichung −Φ′′ (x) + V (x) Φ(x) = E Φ(x) (5.11) über. Hinzu kommen problemspezifische Randbedingungen an Φ. Bei (5.11) handelt es sich im Gegensatz zu (5.4) um ein homogenes Randwertproblem, allerdings mit variablen Koeffizienten. Gl. (5.11) kann auch als lineares Eigenwertproblem Ĥϕn = En ϕn aufgefasst werden, wobei En die Eigenwerte und ϕn (x) die Eigenfunktionen des Differentialoperators (Hamilton-Operator) Ĥ = − d2 + V (x) dx2 141 5.3. FINITE DIFFERENZEN bezeichnen. Diskretisierung von (5.11) führt auf ein homogenes Eigenwertproblem: X Hij Φj = E Φi (5.12) j mit der Tridiagonalmatrix Hii = 2 + V (xi ), ∆x2 Hi,i−1 = Hi,i+1 = − 1 ∆x2 (5.13) und Φi = Φ(xi ). Stark-Effekt Als Anwendung untersuchen wir ein Teilchen in einem eindimensionalen Potentialtopf der Länge L. Sind die Wände unendlich hoch, so muss die Aufenthaltswahrscheinlichkeit außerhalb des Topfes null sein, d.h. es ergeben sich die Randbedingungen Φ(0) = Φ(L) = 0 . (5.14) Legt man zusätzlich ein elektrisches Feld der Stärke V0 an, so lautet das Potential in (5.11) V (x) = V0 · (x − L/2) . (5.15) Für V0 = 0 kennt man die exakten Lösungen r 2 kπ k2π2 Φk (x) = sin x, Ek = 2 , L L L k = 1, 2, ... . D.h. Ĥ besitzt abzählbar unendlich viele Eigenfunktionen mit verschiedenen Eigenwerten. Aus der Störungstheorie berechnet man in 1. Ordnung Z kπ 2 L (1) dx V (x) sin2 x, Ek = L 0 L was aus Symmetriegründen für alle k verschwindet. Die Änderung des Spektrums ist demnach mindestens ∼ V02 (quadratischer Stark-Effekt). Die direkte numerische Lösung besteht im Auffinden der Eigenwerte und Eigenvektoren des Problems (5.12-5.14) mit L . n+1 Hierbei entspricht i = 0 dem rechten, i = n + 1 dem linken Rand, bei H handelt es sich um eine n × n-Matrix. Abb.5.2 zeigt die Wahrscheinlichkeitsdichten Φ2 (x) der ersten drei Zustände für verschiedene Werte von V0 . Man sieht, dass für zunehmendes V0 die Wahrscheinlichkeitsdichten immer weiter nach links rücken, da dort das Potential ein Minimum besitzt. V (xi ) = V0 · (i∆x − L/2), i = 1...n, ∆x = Zur Berechnung des Eigenwertproblems wird die LAPACK-Routine SSTEQR (reelle, symmetrische Tridiagonalmatrix) verwendet: 142 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II Abbildung 5.2: Numerische Lösungen der stationären Schrödinger-Gl. mit (5.15). Gezeichnet sind die ersten drei Zustände (Wahrscheinlichkitsdichten Φ2 ) (schwarz, rot, grün) für V0 = 0, 300, 1000, 5000, L = 1 (von links nach rechts) PROGRAM POTENTIALTOPF PARAMETER (IDIM=1000, PI=3.14159265) ! Diskretisierung mit ! IDIM Stuetzstellen DIMENSION PSI(0:IDIM+1),DL(IDIM),D(IDIM),Z(IDIM,IDIM), * WORK(2*IDIM) WRITE(6,*) ’V0?’ READ(5,*) V0 ! Abfrage V_0 XL=1. ! Laenge L des Topfs DX=XL/FLOAT(IDIM+1) DX2=DX**2 C DO 100 I=1,IDIM X=FLOAT(I)*DX DL(I)=-1./DX2 ! Matrix-Elemente D(I)=2./DX2 + V0*(X-.5*XL) 100 c c c c .. .. CONTINUE CALL SSTEQR(’I’,IDIM,D,DL,Z,IDIM,WORK,INFO) Eigenwerte in D, Eigenvektoren in Z D(K) gehoert zu Z(..,K) .. plotten, Ausgabe, etc END Die ersten drei Energiewerte als Funktion von V0 zeigt Abb.5.3. Alle Energiewerte werden für sehr großes V0 wieder kleiner. Dann sind auch die höheren Zustände im 143 5.3. FINITE DIFFERENZEN Bereich negativer Energie (links) lokalisiert. Abbildung 5.3: Die ersten drei Eigenwerte über V0 für L = 1. Harmonischer Oszillator Die stationäre Schrödinger-Gleichung des harmonischen Oszillators mit Eigenfrequenz ω0 lautet ~2 d 2 1 2 2 − + mω0 x Φ(x) = Ẽ Φ(x) 2m dx2 2 oder, in der Skalierung von (5.11), −Φ′′ (x) + Ω20 x2 Φ(x) = E Φ(x) (5.16) mit Ω0 = ω0 m/~ . Das Problem gehört zu den wenigen der Quantenmechanik, die sich exakt lösen lassen. Man erhält die äquidistanten Eigenwerte (Energie-Niveaus) Ekex = Ω0 (1 + 2k), k = 0, 1, ... sowie die hermitschen Polynome als Eigenfunktionen. Wir wollen aber auch hier eine numerische Lösungen suchen und nachher das quadratische Potential verallgemeinern. Ein Problem bei der Lösung von (5.16) besteht darin, dass jetzt asymptotische Randbedingungen der Form lim Φ(x) = 0 x→±∞ vorliegen, man also im Prinzip einen unendlich großen x-Bereich L hätte. In der Praxis kann man L so groß wählen, dass die Wellenfunktionen beinahe null bei x = ±L/2 sind und dann die Randbedingungen Φ(L/2) = Φ(−L/2) = 0 (5.17) 144 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II verwenden, was wieder einem unendlichen hohen Potentialtopf mit einem quadratischen Potential im Innern entspricht. Wir können dasselbe Programm wie für den StarkEffekt verwenden und müssen nur das Potential entsprechend verändern. Es empfiehlt sich allerdings, x = 0 in die Mitte des Kastens zu legen. Den Wert für L bestimmt man am besten durch Ausprobieren. Abb. 5.4 zeigt die ersten drei Wahrscheinlichkeitsdichten sowie die 50.. Es gilt zu beachten, dass die räumliche Ausdehnung der Wellenfunktionen mit k zunimmt. Um also die höheren Zustände und Energien zu berechnen, muss man L entsprechend groß wählen. Tabelle 5.1 zeigt die Energiewerte der ersten 10 sowie des 50. Niveaus im Vergleich zu den exakten Werten. Die relativen Abweichungen bleiben deutlich unter einem Prozent. Das Programm verwendet n = 1000 Stützstellen im gesamten Intervall. Abbildung 5.4: Die ersten drei Eigenfunktionen Φ2 sowie die 50. beim harmonischen Oszillator, L = 30, Ω0 = 1, 1000 Stützstellen. 145 5.3. FINITE DIFFERENZEN Zustand k 0 1 2 3 4 5 6 7 8 9 ... 49 Ek (numerisch) Ekex = 1 + 2k 0.999717832 2.99929714 4.99920225 6.99843979 8.99729633 10.9976883 12.9952221 14.9935150 16.9906712 18.9886627 ... 96.7354813 1 3 5 7 9 11 13 15 17 19 ... 97 Fehler |Ek − Ekex |/Ek -2.82168388E-04 -2.34285995E-04 -1.59549716E-04 -2.22887305E-04 -3.00407410E-04 -2.10155136E-04 -3.67531407E-04 -4.32332366E-04 -5.48755401E-04 -5.96698956E-04 ... -2.72699725E-03 Tabelle 5.1: Energieniveaus harmonischer Oszillator, Differenzenverfahren verglichen mit den exakten Werten. Abbildung 5.5: Die ersten 100 Energiewerte für verschiedene Potentiale (5.18), schwarz: p = 3/2, rot: p = 2, grün: p = 3, blau: p = 4. Anharmonischer Oszillator Wir können jetzt andere Potentiale untersuchen. Abb.5.5 zeigt die ersten 100 Niveaus für Potentiale der Form V (x) = Ω20 |x|p (5.18) für Ω0 = 1 und p = 3/2, 2, 3, 4. Je größer p, desto schneller steigen die Energien an, klassisch wird die Feder “härter” bei größeren Amplituden. Deutlich ist auch eine Abweichung für p = 3/2 ab k ≈ 70 zu erkennen. Hier sind die Wellenfunktionen bereits zu breit für das Gebiet L = 30, sodass die genäherten Randbedingungen (5.17) das 146 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II Ergebnis verzerren. 5.4 5.4.1 Methode der gewichteten Residuen Verschiedene Verfahren Der Grundgedanke hinter der Methode der gewichteten Residuen (Weighted Residual Method, WRM) besteht darin, Differentialgleichungen der Form L̂(dx )y(x) = b(x) (5.19) näherungsweise im Bereich X durch einen Ansatz (Testfunktion) ỹ = ỹ(a1 , a2 , ...aN , x) (5.20) zu lösen und die N freien Parameter ak so zu bestimmen, dass das Residuum (Rest) R(x) = L̂ ỹ − b auf verschiedene Gewichtsfunktionen wk (x) projeziert verschwindet: Z Rk = dx R(x) wk (x) = 0, k = 1..M . (5.21) X Wenn die Anzahl der Gewichtsfunktionen M gleich der Anzahl der Paramater N ist, lassen sich die ak aus den N Gleichungen (5.21) bestimmen. Speziell untersuchen wir in diesem Abschnitt lineare Differentialoperatoren L̂, sowie für (5.20) lineare Ansätze der Form ỹ(x) = N X ai ϕi (x) (5.22) i=1 mit linear unabhängigen Basisfunktionen ϕi (x). Dann wird aus (5.21) das lineare Gleichungssystem N X Lij aj = bi (5.23) j=1 mit den Matrixelementen Lij = Z und bi = dx wi (x)L̂(dx )ϕj (x) X Z dx wi (x) b(x) . X Handelt es sich bei L̂ um einen nichtlinearen Operator, so erhält man anstatt (5.23) ein nichtlineares algebraisches System für die Parameter ak , welches sich in der Regel nur noch iterativ lösen lässt. 5.4. METHODE DER GEWICHTETEN RESIDUEN 147 Das Verfahren lässt sich leicht auf partielle DGLs verallgemeinern; man kann die Basisfunktionen von mehreren Variablen x, y, z abhängen lassen, für zeitabhängige Probleme werden die Parameter ak Funktionen von t. Je nach Gewichtsfunktionen unterscheidet man zwischen verschiedenen WRMs. Wir nennen die wichtigsten: 1. Subdomain-Methode. Man wählt die wk (x) so, dass sie in N bestimmten Bereichen Di von X (die sich überlappen können) gleich Eins sind, sonst verschwinden: 1 wenn x ǫ Dk wk (x) = 0 sonst Somit lassen sich Lösungen finden, die in bestimmten Bereichen hohe Genauigkeit besitzen, in anderen dafür nicht (Strömungsprobleme). 2. Die Collocation-Methode kann als Spezialfall von 1. betrachtet werden, wenn man die Dk punktförmig wählt wk (x) = δ(x − xk ) mit der Dirac’schen Delta-Funktion δ(x). Wegen (5.21) bedeutet das R(xk ) = 0 und Lij = L̂(dx )ϕj (x) x=xi , bi = b(xi ) . 3. Least-Squares-Methode. Anstatt (5.21) direkt zu fordern, kann man auch das mittlere quadratische Residuum Z S= dx R2 (x) (5.24) X minimieren und aus ∂S =0 ∂ai die ai bestimmen. Mit (5.24) ergibt sich Z ∂S ∂R =2 dx R(x) =0. ∂ai ∂ai X Ein Vergleich mit (5.21) ergibt ∂R , (5.25) ∂ai (die Zwei spielt keine Rolle). Wenn man also die Gewichtsfunktionen wie (5.25) wählt, wird S minimiert und gleichzeitig (5.21) erfüllt. wi = 4. Galerkin-Methode. Hier sind die Gewichts- und Basisfunktionen identisch: wk (x) = ϕk (x) , k = 1..N . Wegen (5.21) steht das Residuum senkecht auf dem durch die Basisfunktionen aufgespannten Unterraum. Wählt man N immer größer, so wird dieser Unterraum immer “vollständiger” und das Residuum R(x) muss für N → ∞ verschwinden. 148 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II 5.4.2 Beispiel Stark-Effekt Wir berechnen den Grundzustand und den ersten angeregten Zustand von −Φ′′ (x) + V0 · (x − 1/2) Φ(x) = E Φ(x), Φ(0) = Φ(1) = 0 , (5.26) entsprechend dem Stark Effekt im unendlich hohen Potentialtopf mit L = 1. Als Testfunktion verwenden wird ein Polynom 3. Ordnung Φ̃(x) = a0 + a1 x + a2 x2 + a3 x3 . Soll Φ̃ die Randbedingungen erfüllen, ergibt sich a0 = 0, a3 = −a1 − a2 , also Φ̃ = a1 ϕ1 + a2 ϕ2 mit den Basisfunktionen ϕ1 = x − x3 , ϕ 2 = x2 − x3 . Da es sich bei (5.26) im Gegensatz zu (5.19) um ein homogenes Problem handelt, werden wir anstatt (5.23) ein lineares Eigenwertproblem der Form 2 X j=1 (Lij − Eδij ) aj = 0 (5.27) erhalten. Die Matrixelemente Lij hängen dabei vom Verfahren ab. Wir bestimmen im Folgenden die beiden Eigenwerte E aus der quadratischen Gleichung Det (Lij − Eδij ) = 0 . (5.28) 1. Subdomain-Methode. Für die beiden Bereiche D1 : 0 ≤ x ≤ 1/2, ergibt sich E0,1 1 = 30 ∓ 10 D2 : q 1/2 < x ≤ 1 32400 + 5V02 . 2. Die Collocation-Methode mit x1 = 1/4, x2 = 3/4 liefert q 1 64 ∓ E0,1 = 16384 + 9V02 . 3 12 3. Bei der Least-Squares-Methode hängen die Gewichtsfunktionen wk von E ab: w1 = 6x+(V0 ·(x−1/2)−E)·(x−x3 ), w2 = 6x−2+(V0 ·(x−1/2)−E)·(x2 −x3 ) und aus (5.28) resultiert ein Polynom 4. Grades für E. Um die Eigenwerte zu bestimmen erscheint diese Methode schlecht geeignet, weshalb wir sie hier nicht weiter verfolgen wollen. 5.4. METHODE DER GEWICHTETEN RESIDUEN 149 4. Galerkin-Methode. Mit der Wahl w k = ϕk ergibt sich E0,1 = 26 ∓ r 256 + V02 . 28 Natürlich hängen die Ergebnisse vom Verfahren ab. Man muss auch beachten, dass wir nur zwei Basisfunktionen verwendet haben, was von vorne herein genauere Resultate ausschließt. Abb.5.6 vergleicht die drei Verfahren mit den Ergebnissen des Differenzenverfahrens aus dem vorigen Abschnitt. In Tabelle 5.2 sind die jeweiligen Werte des ungestörten Problems V0 = 0 aufgeführt. Alle Verfahren liefern eine quadratische Abhängigkeit von V0 sowie das richtige Vorzeichen für die Krümmung. Der erste angeregte Zustand ist nicht genau, was aber durch die Testfunktion mit nur zwei freien Parametern nicht verwundern kann. Die Grundzustandsenergie stimmt dagegen erstaunlich gut, zumindest beim Galerkin-Verfahren. Bei den beiden anderen Verfahren herrscht noch weitere Freiheit in der Wahl der Unterbereiche, bzw. der Collocation-Punkte. Abbildung 5.6: Stark-Effekt, die Verfahren im Vergleich, Energie des Grunzustands und des 1. angeregten Zustands über V0 , schwarz: Finite Differenzen, rot: Subdomain, grün: Collocation, blau: Galerkin. 150 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II E0 E1 exakt Subdomain Collocation Galerkin π 2 ≈ 9.87 4π 2 ≈ 39.5 12.0 48.0 10.7 32.0 10.0 46.0 Tabelle 5.2: Die ersten beiden Energieniveaus bei V0 = 0 für die verschiedenen Verfahren. 5.5 Nichtlineare Randwertprobleme Bisher haben wir lineare Probleme der Form (5.19) untersucht. Dies wollen wir jetzt auf bestimmte nichtlineare Probleme L̂(dnx )y(x) + g(y, dxn−1 y, ..) = b(x) (5.29) erweitern wobei L̂ einen linearen Differentialoperator bezeichnet und die höchste vorkommende Ableitung beinhalten soll. Die nichtlineare Funktion g soll mindestens bilinear in y und seinen Ableitungen sein. Unabhängig vom verwendeten Verfahren wird man nach Diskretisierung ein nichtlineares, algebraisches Gleichungssystem erhalten. 5.5.1 Nichtlineare Systeme Es gibt keine allgemeine Vorgehensweise zur Lösung nichtlinearer algebraischer Systeme. Dies macht man sich leicht an einem Beispiel aus nur zwei Gleichungen klar. Sei eine Lösung von f (x, y) = 0 g(x, y) = 0 (5.30) gesucht mit beliebigen nichtlinearen Funktionen f, g in den beiden Variablen x, y. Graphisch lassen sich die Nullstellen als Schnittpunkte der Nullklinen bestimmen, Abb. 5.7. Allerdings sind die Funktionen f und g vollständig unabhängig voneinander. Die Nullklinen jeder Funktion können eine beliebige Anzahl von nicht zusammenhängenden, geschlossenen Linien bilden. Es kann also schon bei zwei Gleichungen keine, eine, mehrere oder sogar unendlich viele Lösungen geben. Man erkennt, dass ohne zusätzliche Information eine Lösung von (5.30) praktisch unmöglich wird. Diese zusätzliche Information kann in der ungefähren Lage der gesuchten Nullstelle bestehen. Man benötigt also einen Startwert x0 , y0 und versucht dann iterativ die Lösung von (5.30) zu erreichen. 5.5.2 Newton-Raphson Die Newton- oder Newton-Raphson-Methode ist bekannt zur iterativen Bestimmung der Nullstellen einer Funktion f (x) = 0 . (5.31) 151 5.5. NICHTLINEARE RANDWERTPROBLEME y "beinahe Nullstelle" doppelte Nullstelle x Abbildung 5.7: Nullklinen zweier Funktionen f (x, y) = 0 (durchgezogen) und g(x, y)=0 (gestrichelt). Die Schnittpunkte entsprechen den simultanen Lösungen von (5.32). Wie man sieht, kann es sehr viele Lösungen geben, dabei auch “beinahe-Lösungen” und doppelte Nullstellen. Die iterativ gefundene Lösung wird stark vom Startwert x(0) , y (0) abhängen. Sei x(0) ein (Start-) Wert in der Nähe der Nullstelle xk , so gilt in seiner Umgebung f (x(0) + δx) = f (x(0) ) + dx f (x(0) ) δx + .... (5.32) Man kennt f (x(0) ) und dx f an der Stelle x(0) . Nun lässt sich aus der Forderung f (x(0) + δx) = 0 δx bestimmen: f (x(0) ) δx = − dx f (x(0) ) (5.33) xk = x(0) + δx . (5.34) und damit die Nullstelle Wegen Vernachlässigung der höheren Ordnungen in (5.32) wird man die Nullstelle natürlich nicht exakt erreichen, es ergibt sich ein Näherungswert x̃k . Allerdings wird x̃k näher an der tatsächlichen Nullstelle liegen als der Startwert x(0) . Geht man mit x̃k wieder in die Formel (5.33), so wird man einen noch besseren Wert bekommen usw. Es ergibt sich die Iterationsvorschrift x(i+1) = x(i) − f (x(i) ) dx f (x(i) ) (5.35) 152 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II wobei die Folge x(i) gegen die Nullstelle xk konvergiert. Als Abbruchkriterium gilt |δx(i) | = |x(i+1) − x(i) | < ǫ mit vorgegebener Genauigkeit ǫ. Besitzt (5.31) mehrere Lösungen, so wird die gefundene Nullstelle vom Anfangswert x(0) abhängen. Das Newton-Raphson-Verfahren lässt sich auf Gleichungssysteme mit N Gleichungen und Variablen verallgemeinern: fi (x1 , x2 , ...xN ) = 0 i = 1..N . (5.36) Anstatt (5.32) ergibt sich dann fi (~x (0) + δ~x) = fi (~x (0) ) + und daraus N X j=1 mit der Matrix N X ∂fi δxj + .... ∂x j j=1 αij δxj = −fi ∂fi . ∂xj αij = (5.37) (5.38) (5.39) Zur Betimmung der δxi muss man also bei jedem Iterationsschritt ein inhomogenes Gleichunggsystem lösen, was mit den in Kapitel 3 vorgestellten Methoden erreicht wird. Aus δxi ergibt sich dann wie (5.35) ~x (i+1) = ~x (i) + δ~x (i) . 5.5.3 Beispiel: nichtlineare Schrödinger-Gleichung Als Beispiel untersuchen wir die nichtlineare Schrödinger-Gleichung −Φ′′ + γ |Φ|2 Φ = EΦ , (5.40) die als Modell für ein geladenes Teilchen in einer selbsterzeugten Ladungswolke mit dem Potential V = γ |Φ2 | verwendet werden kann. Man kann Φ reell wählen und erhält −Φ′′ + γ Φ3 = EΦ . (5.41) Anwendung des Differenzenverfahrens aus Abschn.5.3.2 ergibt das algebraische System fi (Φ1 , Φ2 ...ΦN ) = N X j Lij Φj − γ Φ3i = 0 (5.42) 153 5.5. NICHTLINEARE RANDWERTPROBLEME mit der Tridiagonal-Matrix Lii = − 2 +E , ∆x2 Li,i+1 = Li,i−1 = 1 . ∆x2 (5.43) Für die Matrix α erhält man mit (5.42) αij = ∂fi = Lij − 3 δij γ Φ2i ∂Φj mit dem Kronecker-Symbol δij . Das je Iteration zu lösende lineare System lautet demnach N X αij δΦj = −fi . i Daraus ergibt sich die Iterationsvorschrift (k+1) Φi (k) = Φi + δΦi . Analytische Lösungen Wir haben gesehen, dass man gewisse Vorstellungen der Lösungen als Startwert der Iteration benötigt. Für die nichtlineare Schrödinger-Gleichung kennt man zwei analytische Lösungen. Multiplikation von (5.41) mit Φ′ ergibt nach Integration γ (Φ′ )2 = C − EΦ2 + Φ4 2 mit der Integrationskonstanten C, was sich durch Separation der Variablen lösen lässt. Speziell unterscheidet man für C = 0 die beiden Fälle 1. E > 0, γ > 0, abstoßendes Potential, freie Lösung, s ! r E E tanh (x − x0 ) . Φ(x) = γ 2 (5.44) 2. E < 0, γ < 0, anziehendes Potential, gebundene Lösung, “Selbstfokusierung”. s 1 2E . √ (5.45) Φ(x) = γ cosh −E (x − x0 ) Hierbei enstpricht (5.44) einer Front bei x = x0 , die die beiden asymptotischen Lösungen Ψ(x → ±∞) = ±1 miteinander verbindet, (5.45) einer um x = x0 lokalisierten Wellenfunktion, Abb.5.8. 154 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II Φ Φ x x Abbildung 5.8: Links: Front für E, γ > 0 und rechts: Puls für E, γ < 0 als exakte Lösungen der nichtlinearen Schrödinger-Gleichung. Numerische Umsetzung Wir untersuchen zuerst den Fall 1., E, γ > 0. Bei der Frontenlösung verschwinden die Ableitungen im Unendlichen. Wir verwenden wieder den Trick, die asymptotischen Randbedinungungen durch Bedingungen bei x = ±L/2 mit großem L zu nähern, d.h. wir fordern dx Φ|x=−L/2 = 0, → Φ0 = Φ1 , dx Φ|x=L/2 = 0, → ΦN +1 = ΦN . (5.46) Dies lässt sich in die Differenzenmatrix (5.43) einarbeiten, indem man das erste und das letzte Diagonalelement abändert: L11 = LN N = − 2 1 +E+ . 2 ∆x ∆x2 Das Programm: PROGRAM NLS PARAMETER (IDIM=100, PI=3.14159265) DIMENSION PHI(0:IDIM+1),F(IDIM),DL(IDIM),DU(IDIM),D(IDIM), * XP(0:IDIM+1) WRITE(6,*) ’GAMMA, E?’ READ(5,*) GAMMA,E XL=10. DX=XL/FLOAT(IDIM+1) DX2=DX**2 C Startwert fuer Phi ! Parameter gamma und E ! Laenge L 5.5. NICHTLINEARE RANDWERTPROBLEME 10 DO 10 I=1,IDIM X=FLOAT(I-IDIM/2)*DX PHI(I)=X/XL CONTINUE N=0 c Iterationsschleife 20 PHI(0)=PHI(1) ! Randbedingungen Steigung =0 PHI(IDIM+1)=PHI(IDIM) DO 100 I=1,IDIM DL(I)=1./DX2 DU(I)=1./DX2 D(I)=-2./DX2+E-3.*GAMMA*PHI(I)**2 F(I)=-(PHI(I-1)+PHI(I+1)-2.*PHI(I))/DX2 * -E*PHI(I)+GAMMA*PHI(I)**3 100 CONTINUE D(IDIM)=D(IDIM)+1./DX2 D(1)=D(1)+1./DX2 ! Randbedingungen CALL SGTSV(IDIM,1,DL,D,DU,F,IDIM,INFO) 110 c S=0. DO 110 I=1,IDIM S=S+ABS(F(I)) PHI(I)=PHI(I)+F(I) CONTINUE S=S/FLOAT(IDIM) N=N+1 WRITE(6,*) N,S IF(S.GT.1.E-5) GOTO 20 ! Abbruchkriterium graphische Ausgabe DO 200 I=0,IDIM+1 XP(I)=FLOAT(I)*DX PHIM=MAX(PHIM,PHI(I)) 200 CONTINUE C CALL CALL CALL CALL CALL CALL END PGBEGIN(0,’/xwin’,1,1) PGPAP(10.,1.) PGSWIN(0.,XL,-PHIM*1.1,PHIM*1.1) PGBOX(’ABCNT’,0.,0,’ABCNT’,0.,0) PGLINE(IDIM+2,XP,PHI) PGEND 155 156 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II Je nach Parameter erhält man verschiedene Lösungen. Die analytische ist auch dabei (Abb.5.9). Φ Φ x x Abbildung 5.9: Zwei Lösungen der nichtlinearen Schrödinger-Gleichung. Links: Front für E = 1/2, γ = 1 und rechts für E = 1, γ = 1. Die linke Kurve entspricht der analytischen Lösung (5.44). Der 2. Fall, E, γ < 0: Bei den lokalisierten Lösungen verschwinden die Wellenfunktionen im Unendlichen. Wir setzen deshalb Φ|x=−L/2 = 0, → Φ0 = 0, Φ|x=L/2 = 0, → ΦN +1 = 0 . Diese Randbedingungen sind in der Tridiagonalmatrix automatisch enthalten. Das Programm sieht jetzt so aus: PROGRAM NLS ....... C Startwert fuer Phi DO 10 I=1,IDIM X=FLOAT(I-IDIM/2)*DX PHI(I)=COS(PI*X/XL) 10 CONTINUE N=0 c Iterationsschleife 20 PHI(0)=0 PHI(IDIM+1)=0 ! Randbedingungen Phi =0 (5.47) 157 5.6. SCHIESSVERFAHREN DO 100 I=1,IDIM DL(I)=1./DX2 DU(I)=1./DX2 D(I)=-2./DX2+E-3.*GAMMA*PHI(I)**2 F(I)=-(PHI(I-1)+PHI(I+1)-2.*PHI(I))/DX2 * -E*PHI(I)+GAMMA*PHI(I)**3 100 CONTINUE CALL SGTSV(IDIM,1,DL,D,DU,F,IDIM,INFO) .... .... .... END Man beachte die andere Anfangsbedingung, die jetzt “in der Nähe” der zu erwartenden, lokalisierten Lösung liegt. Auch hier hängen die gefundenen Lösungen wieder stark von den Parametern ab. So erhält man für γ = −1, E = −1 die analytische Pulslösung, dagegen für γ = −1, E = −2 numerischen Schrott, der allerdings auch die Abbruchbedingung erfüllt (Abb.5.10). Φ Φ x x Abbildung 5.10: Zwei Lösungen im Bereich gebundener Zustände. Links: Puls für E = −1, γ = −1, rechts numerischer Schrott für E = −2, γ = −1. Die Rechnung erfolgte mit 100 Stützstellen. 5.6 Schießverfahren Beim Schießverfahren (engl.: Shooting Method) sucht man die Lösung eines Randwertproblems durch iteratives Lösen von Anfangswertproblemen. Die Anfangsbedingungen 158 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II werden dabei solange variiert, bis die Randbedingungen erfüllt sind. Wir machen ein Beispiel: y s1 s2 a f(s 2 ) s3 b 1 0 x Abbildung 5.11: Schießverfahren, verschiedene Lösungen, die nur die linke Randbedingung als Anfangswert erfüllen. Gesucht sei die Lösung y(x) einer DGL 2. Ordnung in 0 ≤ x ≤ 1: y ′′ = f (y, y ′ , x) mit den Randbedingungen y(0) = a, y(1) = b . Das Problem ist äquivalent zu y1′ = y2 y2′ = f (y1 , y2 , x) . (5.48) Man integriert (5.48) z.B. mit RK4 numerisch bis x = 1 mit den Anfangsbedingungen y1 (0) = a, y2 (0) = s für verschiedene Werte von s (Abb.5.11) und erhält am rechten Rand yR (s) = y1 (x = 1, s) . Es gilt jetzt, dasjenige s zu finden, welches yR = b erfüllt. M. a. W. sucht man eine Nullstelle der Funktion f (s) = yR (s) − b , 159 5.6. SCHIESSVERFAHREN wozu man die Newton-Raphson Methode verwendet: s(i+1) = s(i) − f (s) f ′ (s) Allerdings lässt sich f ′ im Allg. nicht angeben, sodass man hier den Differenzenquotienten f (s + ∆s) − f (s) f ′ (s) ≈ ∆s verwendet, man benötigt also je Integrationsschritt zwei verschiedene numerische Lösungen für s und s + ∆s von (5.48). 5.6.1 Beispiel: senkrechter Fall mit quadratischer Reibung Ein Fallschirmspringer springt aus 1000 m Höhe aus einem still stehenden Hubschrauber zum Zeitpunkt t = 1 Minute vor fünf. Auf welcher Höhe yf muss er den Fallschirm auslösen, um nach einer Minute pünktlich zum Fünf-Uhr-Tee, auf der Höhe y = 0 zu landen? Der Flug soll ohne Fallschirm ohne Reibung, mit geöffnetem Fallschirm mit einer Reibung quadratisch in der Geschwindigkeit statt finden. Das Problem lässt sich als Randwertproblem ÿ = −f (y, ẏ, yf ) ẏ − g (5.49) (α = 0.1/m, g = 10 m/s2 ) mit den Randbedingungen y(t = 0) = 1000 m, ẏ(t = 0) = 0, y(t = 60s) = 0 formulieren. Die Funktion f berücksichtigt die Reibung: 0 wenn y > yf f= . α |ẏ| wenn y ≤ yf Das Problem scheint zunächst überbestimmt, da die Lösung einer DGL 2. Ordnung drei Randbedingungen erfüllen soll. Allerdings besteht noch ein weiterer Freiheitsgrad in der Wahl von yf . Einführen dimensionsloser Variablen y = ℓ ỹ, ergibt mit der Wahl ℓ = 1/α, die Gleichung t = τ t̃ √ τ = 1/ gα ỹ¨ = −f˜ỹ˙ − 1 , mit f˜ = 0, ỹ > ỹf |ẏ|, ỹ ≤ ỹf , 160 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II oder analog zu (5.48) y1′ = y2 y2′ = −f˜y2 − 1 (5.50) und y1 (0) = 100, y2 (0) = 0, y1 (t̃ = 60) = 0 . Die Gleichungen (5.50) werden mit den Anfangsbedinungen y1 = 100, y2 = 0 mittels RK4 für 100 verschiedene yk von 0 bis 100 numerisch bis t = 60 integriert: PROGRAM FALLSCHIRM DIMENSION Y(2),AUX(10),YFP(0:100),YR(0:100) EXTERNAL EQS ! Subroutine f\"ur die Gleichungen COMMON /PARAM/ YF C T1=60. ! Landezeitpunkt DT=T1/1000. C DO 10 I=0,100 YF=FLOAT(I) ! Hoehe fuer Fallschirm Y(1)=100. ! Anfangsbedingungen (skaliert) Y(2)=0. DO 100 K=1,1000 CALL RKG(Y,T,2,DT,AUX,EQS) ! RK4 von 0 bis T1 100 CONTINUE YR(I)=Y(1) ! Endpunkt merken YFP(I)=YF YMIN=MIN(YMIN,Y(1)) YMAX=MAX(YMAX,Y(1)) 10 CONTINUE C und plotten.... C CALL PGBEGIN(0,’/xwin’,1,1) CALL PGBEGIN(0,’/cps’,1,1) CALL PGPAP(6.,1.) CALL PGSWIN(0.,100.,YMIN,YMAX) CALL PGBOX(’ABCNT’,0.,0,’ABCNT’,0.,0) CALL PGLINE(101,YFP,YR) CALL PGEND END 5.6. SCHIESSVERFAHREN 161 SUBROUTINE EQS(RHSIDE,Y,T) C DIMENSION RHSIDE(2),Y(2) COMMON /PARAM/ S C RHSIDE(1)=Y(2) IF(Y(1).GT.S) THEN ! freier Fall oder Fallschirm RHSIDE(2)=-1. ELSE RHSIDE(2)=-ABS(Y(2))*Y(2)-1. ENDIF RETURN END Die nach t = 60 erreichte Höhe zeigt Abb.5.12. Abbildung 5.12: y(t1 ) über yf , dimensionslose Einheiten. Der richtige Wert liegt bei 50, welcher jetzt durch ein Newton-Raphson-Verfahren genau berechnet wird: 162 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II PROGRAM FALLSCHIRM DIMENSION Y(2),AUX(10),YR(2),YP(1000),TP(1000) EXTERNAL EQS ! Subroutine f\"ur die Gleichungen COMMON /PARAM/ YFL C T1=60. ! Landezeitpunkt DT=T1/5000. C YF=90. DYF=1. ! Startwert Newton 1 YFL=YF DO 10 I=1,2 Y(1)=100. ! Anfangsbedingungen (skaliert) Y(2)=0. DO 100 K=1,5000 CALL RKG(Y,T,2,DT,AUX,EQS) ! RK4 von 0 bis T1 100 CONTINUE YR(I)=Y(1) ! Endpunkt merken YFL=YFL+DYF 10 CONTINUE C Newton DEL=YR(1)/(YR(2)-YR(1))*DYF YF=YF-DEL WRITE(6,*) YR,YF IF(ABS(DEL).GT.0.1) GOTO 1 C und plotten.... Y(1)=100. Y(2)=0. YFL=YF DT=T1/1000. DO 200 K=1,1000 CALL RKG(Y,T,2,DT,AUX,EQS) ! TP(K)=FLOAT(K-1)*DT YP(K)=Y(1) 200 CONTINUE C CALL PGBEGIN(0,’/xwin’,1,1) CALL PGBEGIN(0,’/cps’,1,1) CALL PGPAP(6.,1.) CALL PGSWIN(0.,T1,0.,110.) RK4 von 0 bis T1 163 5.6. SCHIESSVERFAHREN CALL PGBOX(’ABCNT’,0.,0,’ABCNT’,0.,0) CALL PGLINE(1000,TP,YP) CALL PGEND END Bei einer Genauigkeit von 0.1 benötigt das Newton-Verfahren 4 Schritte zur Konvergenz. Es ergibt sich ein Wert von yf = 51.8 nach Rückskalierung also eine Höhe von 518 m bei der der Fallschirm geöffnet werden sollte. Die Flugbahn für diesen Wert zeigt Abb.5.13. Abbildung 5.13: Flugbahn für den richtigen Wert yf = 51.8. 5.6.2 Gleichungssysteme Bisher haben wir eine Gleichung zweiter Ordnung, bzw. zwei Gleichungen erster Ordnung untersucht. Der allgemeine Fall besteht aus N Gleichungen 1. Ordnung dyi = fi (y1 , y2 ...yN , x), dx i = 1...N . (5.51) 164 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II Gesucht sei eine Lösung im Intervall a ≤ x ≤ b. Wir nehmen lineare, separierbare Randbedingungen an, wobei am linken Rand A ~y (a) = ~a (5.52) B ~y (b) = ~b (5.53) n1 Bedingungen, am rechten Rand n2 = N − n1 Bedingungen erfüllt sein sollen. Bei A und B handelt es sich um nichtquadratische Matrizen mit N × n1 , bzw. N × n2 Elementen. Aus (5.52) lassen sich n1 der yi als Anfangswert eindeutig als Funktion der anderen n2 yi festlegen. Die freien yi lassen sich in einen n2 -komponentigen Vektor V~ zusammenfassen. Durch numerische Integration von (5.51) erhält man am rechten Rand yiR (V~ ) = yi (x = b, V~ ) . Diese ~y R sollen die n2 rechten Randbedingungen erfüllen: B ~y R (V~ ) = ~b , was der Nullstellensuche der Funktionen f~(V~ ) = B ~y R (V~ ) − ~b (5.54) entspricht. Bei (5.54) handelt es sich um n2 Gleichungen für die n2 Komponenten von V~ . Die Newton-Raphson-Methode liefert ein Iterationsverfahren gemäß α δ V~ (i) = −f~(V~ (i) ) und V~ (i+1) = V~ (i) + δ V~ (i) mit der n2 × n2 -Matrix αkℓ = ∂fk . ∂Vℓ Da f nur numerisch bekannt ist, lassen sich die Ableitungen nach Vℓ nicht analytisch durchführen. Man nähert durch den Differenzenquotienten fk (V1 , ...Vℓ + ∆Vℓ , ...Vn2 ) − fk (V1 , ...Vℓ ...Vn2 ) ∂fk ≈ , ∂Vℓ ∆Vℓ muss also für jeden Iterationsschritt das System (5.51) insgesamt n2 +1 mal integrieren. 5.6.3 Programm Ein Programm dazu: 165 5.6. SCHIESSVERFAHREN C SUBROUTINE SHOOT(Y,N,N2,V,DV,X1,X2,NX,F,AUX,AUX1,EQ) C C C C C C C C C C C C C C Berechnet einen Schuss von X1 nach X2 fuer N gekoppelte Gleichungen Y(N) N N2 V(N2) DV(N2) X1,X2 NX F(N2) AUX(5*N) AUX1(N2*N2) EQ abhaengige Variable Anzahl der abh. Variablen Bedingungen auf der echten Seite X=X2 Die N2 Startwerte links, X=X1 Die N2 Aenderung von V, Newton Raphson Bereich f. X Anzahl der X-Schritte in X1,X2 Zielfunktion, Korrekturen Hilfsfeld Hilfsfeld Runge-Kutta-Subroutinen (EXTERNAL) (Input) (Input) (input/output) (input) (input) (input) (output) (input) DIMENSION Y(N),V(N2),DV(N2),F(N2),AUX(5*N),AUX1(N2,N2) EXTERNAL EQ C DX=(X2-X1)/FLOAT(NX-1) CALL BCLEFT(Y,V,X1) ! hier werden die Startwerte gesetzt CALL RUNGE(Y,N,X1,DX,NX,AUX,EQ) ! Integriert von X1 bis X2 in NX Schritten CALL BCRIGT(Y,F,X2) ! In F stehen dann die Abweichungen C C Newton-Raphson DO 10 I=1,N2 VI=V(I) V(I)=V(I)+DV(I) ! neuer Startwert fuer Diff-Quoz. CALL BCLEFT(Y,V,X1) CALL RUNGE(Y,N,X1,DX,NX,AUX,EQ) CALL BCRIGT(Y,AUX,X2) DO 20 J=1,N2 AUX1(J,I)=(AUX(J)-F(J))/DV(I) ! Matrix alpha 20 CONTINUE V(I)=VI ! alter Wert zuruecksetzen 10 CONTINUE DO 30 I=1,N2 F(I)=-F(I) 30 CONTINUE C IF(N2.EQ.1) THEN ! nur eine Gleichung F(1)=F(1)/AUX1(1,1) 166 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II ELSE ! ansonsten lineares Gleichungss. CALL SGESV(N2,1,AUX1,N2,AUX,F,N2,INFO) ENDIF C 40 DO 40 I=1,N2 V(I)=V(I)+F(I) CONTINUE ! Korrektur von V C RETURN END SUBROUTINE RUNGE(Y,N,X1,DX,NX,AUX,EQ) c Integriert von X1 bis X2 in NX Schritten DIMENSION Y(*),AUX(*) EXTERNAL EQ C 10 X=X1 DO 10 I=1,NX CALL RKG(Y,X,N,DX,AUX,EQ) X=X+DX CONTINUE RETURN END Zusätzlich müssen noch die Werte links (Startwerte), sowie die Abweichungen rechts in Form von Unterprogrammen vorgegeben werden. Hierbei stehen die zu variierenden Werte im Feld V(N2), F(N2) entspricht den Funktionen (5.54): SUBROUTINE BCLEFT(Y,V,X1) C DIMENSION Y(*),V(*) C Y(1)= ... Y(2)= .... .... RETURN END SUBROUTINE BCRIGT(Y,F,X2) C DIMENSION Y(*),F(*) C 167 5.6. SCHIESSVERFAHREN F(1)= ... F(2)= ... .... RETURN END Beispiel Schiefer Wurf Als Anwendung kommen wir auf den Schiefen Wurf zurück. Hier werden links 2 Variable variiert, die beiden Geschwindigkeiten. Das Intervall geht von null bis eins. Rechts muss der Abstand von x = L, y = 0 minimiert werden, d.h. f1 = x(1) − L, f2 = y(1) Das Programm sieht so aus: PROGRAM WURF DIMENSION Y(4),V(2),DV(2),F(2),AUX(20),AUX1(4) EXTERNAL EQS ! Subroutine f\"ur die Gleichungen COMMON /PARAM/ ALPHA,BETA,G C G=10. WRITE(6,*)’ALPHA, BETA?’ READ(5,*) ALPHA,BETA c X1=0. X2=1. V(1)=0. V(2)=1. DV(1)=0.01 DV(2)=0.01 10 CALL SHOOT(Y,4,2,V,DV,X1,X2,100,F,AUX,AUX1,EQS) C DIFF=F(1)**2+F(2)**2 WRITE(6,*) DIFF,V IF(DIFF.GT.0.01) GOTO 10 C Genauigkeit erreicht, Ergebnis plotten CALL PGBEGIN(0,’/xwin’,1,1) CALL PGPAP(6.,1.) 168 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II CALL PGSWIN(0.,1.5,0.,1.5) CALL PGBOX(’ABCNT’,0.,0,’ABCNT’,0.,0) CALL BCLEFT(Y,V,X1) 100 DX=(X2-X1)/FLOAT(99) X=X1 CALL PGMOVE(Y(1),Y(3)) DO 100 I=1,100 CALL RKG(Y,X,4,DX,AUX,EQS) X=X+DX CALL PGDRAW(Y(1),Y(3)) CONTINUE C CALL PGEND END Die Subroutinen, die fuer SHOOT bereit gestellt werden müssen: SUBROUTINE BCLEFT(Y,V,X1) C DIMENSION Y(*),V(*) C Y(1)=0. Y(3)=0. Y(2)=V(1) Y(4)=V(2) ! feste Groessen ! zu variierende Groessen RETURN END SUBROUTINE BCRIGT(Y,F,X2) C DIMENSION Y(*),F(*) C F(1)=Y(1)-1. F(2)=Y(3) RETURN END ! Abweichung x von L=1 ! Abweichung y von 0 5.6. SCHIESSVERFAHREN 5.6.4 169 Aufgaben 1. Geben Sie eine analytische Lösung von (5.4) an. 2. Verifizieren Sie die Lösungen (5.44) und (5.45). Was passiert für C 6= 0? 3. Lösen Sie das Problem aus Abschn.5.2 (Schiefer Wurf) mit Hilfe des Schießverfahrens. Untersuchen Sie auch den Einfluss nichtlinearer Reibungskräfte der Form ẋ 2 2 1/2 ~ . FR = −α ẋ + ẏ ẏ 170 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II Ausblick: Computational Physics Teil 2, WS 2013/14 1. Partielle Differentialgleichungen, Grundlagen – Einteilung und Verfahren – stationäre Probleme, Randbedingungen – zeitl. Entwicklungen, Anfangsbedingungen 2. Partielle Differentialgleichungen und Finite Differenzen, Anwendungen – – – – Quantenmechanik, zeitabh.Schrödinger-Gl. Strömungsprobleme, Navier-Stokes-Gl Reaktions-Diffusions-Systeme Strukturbildung und Instabilitäten 3. Weighted Residual Methods – Galerkin-Verfahren – Beispiele 4. Monte-Carlo-Methoden – Integrale – Ising-Modell 171 172 KAPITEL 5. GEWÖHNLICHE DIFFERENTIALGLEICHUNGEN II Kapitel 6 Vortragsaufgaben 173 174 6.1 KAPITEL 6. VORTRAGSAUFGABEN Drei Massepunkte Untersuchen Sie das Problem der drei durch Federn gekoppelten, geladenen Massepunkte aus Aufgabe 3.4.7 mit abstoßendem Potential (Teil d): y q r1 r0 x Q q r2 q r3 Abbildung 6.1: System aus drei beweglichen Massepunkten mit 6 Freiheitsgraden • Bestimmen Sie die Eigenmoden und Eigenfrequenzen. • Bestimmen Sie die Stabilität der abgebildeten symmetrischen Ruhelage in Abhängigkeit von q/Q. • Stellen Sie die vollständigen nichtlinearen Bewegungsgleichungen in Form von 12 gewöhnlichen DGLs 1. Ordnung auf und lösen Sie diese für verschiedene q/Q durch RK4. • Gibt es chaotische Lösungen? Berechnen Sie den größten Lyapunov-Exponenten. • Stellen Sie die Lösungen graphisch dar (PGPLOT), eventuell als Film. 175 6.2. DREIKÖRPERPROBLEM 6.2 Dreikörperproblem Beim Dreikörperproblem der Mechanik handelt es sich um drei Massepunkte ~r1 (t), ~r2 (t), ~r3 (t) die sich in einer Ebene bewegen ~ri (t) = xi (t) yi (t) und durch Gravitationskräfte miteinander wechselwirken. Alle drei Massen seien gleich groß. Poincaré konnte schon 1890 zeigen, dass chaotische Bahnen die Regel sind. • Stellen Sie die Bewegungsgleichungen für die ~ri auf. Führen Sie dann ein Koordinatensystem ein, dass sich mit dem Schwerpunkt bewegt: ~ ~ui (t) = ri (t) − R(t) mit 1 (~r1 + ~r2 + ~r3 ) . 3 Die Schwerpunktbewegung lässt sich abkoppeln. Für die ~ui erhalten Sie nach entsprechender Skalierung Gleichungen der Form R= ~u1 − ~u2 ~u1 − ~u3 ~u¨1 = − − 3 |~u1 − ~u2 | |~u1 − ~u3 |3 ~u2 − ~u1 ~u2 − ~u3 ~u¨2 = − − 3 |~u2 − ~u1 | |~u2 − ~u3 |3 ~u3 = −~u1 − ~u2 (6.1) • Bringen Sie (6.1) in die Form von 8 DGLs 1. Ordnung und lösen Sie diese mit RK4 für verschiedene Anfangsbedingungen ~ui (0), ~u˙ i (0) . • Kontrollieren Sie die Erhaltungsgrößen. Welche gibt es? • Suchen Sie chaotische Bahnen und berechnen Sie die Lyapunov-Exponenten. 176 6.3 KAPITEL 6. VORTRAGSAUFGABEN Doppelpendel Untersuchen Sie das Doppelpendel im konstanten Schwerefeld. φ1 a m a φ2 g m Abbildung 6.2: Doppelpendel mit masselosen Stangen der Länge a und zwei gleichen Massen m. Die Bewegung sei ungedämpft und soll in einer Ebene ablaufen. Das System wird dann eindeutig durch die beiden Winkel Φ1 (t), Φ2 (t) beschrieben. • Stellen Sie die vier Bewegungsgleichungen für Φ1 , Φ2 , Φ̇1 , Φ̇2 auf (das geht am einfachsten mit Hilfe der Lagrange-Funktion). • Lösen Sie diese mit RK4 für verschiedene Anfangsbedingungen. • Berechnen Sie die Lyapunov-Exponenten als Funktion der Gesamtenergie. • Kontrollieren Sie die Energieerhaltung. 6.4. GEDÄMPFTES ANGETRIEBENES PENDEL 6.4 177 Gedämpftes angetriebenes Pendel Untersuchen Sie das durch einen oszillierenden Aufhängepunkt angetriebene Pendel mit Dämpfung aus Absch.4.8.3: ~ sin ω0t φ Abbildung 6.3: Durch einen vertikal oszillierenden Aufhängepunkt angetriebenes Pendel. Das Gleichungssystem 1. Ordnung lautet: ẏ1 = y2 ẏ2 = −α y2 − Ω20 (1 + a sin y3 ) sin y1 ẏ3 = ω0 . (6.2) • Linearisieren Sie um die untere Ruhelage und leiten Sie für die Abweichungen die gedämpfte Mathieu-Gleichung ü + α̃ u̇ + (p + 2b sin 2t̃)u = 0 her. Geben Sie p, b, α̃ an. • Berechnen Sie durch Floquet-Analyse ein Stabilitätsdiagramm wie Abb.4.25 für verschiedene Werte von α > 0. Was ändert sich qualitativ? Begründung! • Lösen Sie das volle nichtlineare Problem (6.2) mittels RK4. • Stellen Sie die Bewegungen graphisch im Phasenraum dar. Untersuchen Sie die chaotischen Trajektorien und berechnen Sie die Lyapunov-Exponenten. 178 6.5 KAPITEL 6. VORTRAGSAUFGABEN Rekonstruktion und fraktale Dimension Erzeugen Sie zunächst eine chaotische Zeitserie, indem Sie die Lorenz-Gleichungen (4.49) im chaotischen Bereich (z.B. β = 8/3, α = 10, r = 28) numerisch mittels RK4 integrieren. Aus y1 (t) soll jetzt der Attraktor nach Abschn. 4.7.8 rekonstruiert und danach seine fraktale Dimension bestimmt werden. • wählen Sie hierzu verschiedene K und einbettende Dimensionen N ′ . Plotten Sie Projektionen des Attraktors im Einbettungsraum. • Bestimmen Sie dann die Korrelationsdimension (4.45) für verschiedene N ′ . Die Werte sollten zwischen 2.0 und 2.1 konvergieren. • Zur Kontrolle testen Sie das Verfahren zunächst an einer periodischen Zeitserie y1 (t) = sin(ωt). Welche Dimension erwarten Sie? Für welches N ′ sollten die Werte konvergieren? • Was passiert, wenn Sie zu der Zeitserie weißes Rauschen y1 (t) + Aξ(t) addieren? Was erwarten Sie? 179 6.6. STATIONÄRE SCHRÖDINGER-GLEICHUNG I 6.6 Stationäre Schrödinger-Gleichung I Untersuchen Sie die eindimensionale stationäre Schrödinger-Gleichung −Φ′′ (x) + V (x) Φ(x) = E Φ(x) (6.3) für das Doppelmuldenpotential V (x) = −x2 + x4 . Nähern Sie die asymptotischen Randbedingungen lim Φ(x) = 0 x→±∞ durch Φ(L/2) = Φ(−L/2) = 0 und wählen Sie L entsprechend. • Bestimmen Sie numerisch die Eigenwerte und Eigenfunktionen. Verwenden Sie dazu 1. Ein Differenzenverfahren mit 500 Stützstellen. 2. Ein Galerkin verfahren mit trigonometrischen Funktionen. Wählen Sie Φ(x) = N X π ak cos (2k − 1) x L k=1 für die geraden, N X π Φ(x) = bk sin 2k x L k=1 für die ungeraden Eigenfunktionen. Stellen Sie die homogenen Gleichungssysteme für ak , bk auf. Vergleichen Sie die Ergebnisse mit dem Differenzenverfahren. • Plotten Sie die ersten 10 Eigenfunktionen für −L/2 ≤ x ≤ L/2. • Wie ändert sich das Spektrum mit L? Plotten Sie die ersten 10 Eigenwerte über L und interpretieren Sie das Ergebnis. 180 KAPITEL 6. VORTRAGSAUFGABEN 6.7 Stationäre Schrödinger-Gleichung II Untersuchen Sie die eindimensionale stationäre Schrödinger-Gleichung −Φ′′ (x) + V (x) Φ(x) = E Φ(x) 8 V 8 für den unendlich hohen Potentialtopf mit Senke/Wall: ∞, x ≤ −L/2 −L/2 < x ≤ 0 0 −V0 0 < x ≤ a V (x) = 0 a < x < L/2 ∞ x ≥ L/2 (6.4) x a −L/2 Wählen Sie z.B. L = 1, a = 1/8. L/2 −V0 Sie erhalten (6.4) aus der geeignet skalierten zeitabhängigen Schrödinger-Gleichung −Ψ′′ (x, t) + V (x) Ψ(x, t) = iΨ̇(x, t) mit Hilfe des Separationsansatzes Ψ(x, t) = Φ(x) exp(−iEt) . • Bestimmen Sie numerisch die Eigenwerte En und die Eigenfunktionen ϕn (x) −ϕ′′n (x) + V (x) ϕn (x) = En ϕn (x) Verwenden Sie dazu ein Differenzenverfahren mit ausreichend vielen Stützstellen. Normieren Sie die Eigenfunktionen so, dass Z L/2 dx |ϕn (x)|2 = 1 −L/2 für alle n gilt. • Plotten Sie die ersten 10 Eigenfunktionen für −L/2 ≤ x ≤ L/2. • Untersuchen Sie die zeitliche Entwicklung eines Wellenpaketes mit bestimmter Anfangsbreite b am Ort x0 links von der Senke, x0 < 0. Berechnen Sie den mittleren Ort aus Z L/2 < x(t) >= dx |Ψ(x, t)|2 x −L/2 und den mittleren Impuls aus < p(t) >= −i Z L/2 −L/2 dx Ψ∗ (x, t)∂x Ψ(x, t) 6.7. STATIONÄRE SCHRÖDINGER-GLEICHUNG II 181 und plotten Sie < x(t) > und < p(t) > uber t. Hinweise: Wählen Sie Ψ(x, 0) = fb (x − x0 ) exp(ikx) mit der Gaußfunktion fb (x) = N · exp(−x2 /2b2 ) und N so, dass Z L/2 dx |Ψ|2 = 1 . −L/2 Welche Bedeutung hat k? Die Zeitliche Entwicklung Ψ(x, t) ergibt sich dann zu Ψ(x, t) = X An ϕn (x) exp(−iEn t) n Die Entwicklungskoeffizienten berechnen sich aus An = Z L/2 dx Ψ(x, 0)ϕn (x) . −L/2 Wieso? Werten Sie alle Integrale, die nicht analytisch angegeben werden können, mit Hilfe der Rechteckregel Z L/2 −L/2 dx f (x) ≈ N X f (xn )∆x n aus, wobei N die Stützstellenzahl und ∆x = L/(N + 1) bezeichnen. • “Experimentieren” Sie mit verschiedenen Werten von a, V0 und k. Untersuchen Sie auch negative Werte für V0 (Potentialwall). • Plotten Sie jeweils |Ψ|2 über x zu verschiedenen Zeiten. 182 6.8 KAPITEL 6. VORTRAGSAUFGABEN Delay-Gleichung Differentialgleichungen wie dy = f (y(t), y(t − τ )) , dt bei denen auf der rechten Seite die abhängige Variable auch zu einem früheren Zeitpunkt t − τ vorkommt, heißen “Delay-Gleichungen” (Delay = Verzögerung). Gleichungen dieser Form findet man z.B. bei elektronischen Schaltkreisen, aber auch bei der Populationsdynamik. Ein einfaches Modell, welches die zeitliche Veränderung einer Spezies beschreibt, ist die Gleichung von Wright (1955): dn = n(t) − n(t) · n(t − τ ) . dt (6.5) • Geben Sie den beiden Termen rechts eine anschauliche Bedeutung (Gewinn Verlust). Woher kommt die Delay-Zeit τ ? (0) • Berechnen Sie die Fixpunkte ni von (6.5) und untersuchen Sie deren Stabilität. Hinweis: Führen Sie eine lineare Stabilitätsanalyse (0) n(t) = ni + A exp(λt) durch und vernachlässigen Sie alle nichtlinearen Terme in A. Für den nichttrivialen Fixpunkt kommen Sie auf eine transzendente Gleichung der Form λ = − exp(−λτ ), die Sie durch den Ansatz λ = σ + iω, σ, ω ǫ R in zwei reelle Gleichungen umformen. Setzen Sie dort σ = 0 (kritischer Punkt) und bestimmen Sie τc und ωc . • Lösen Sie (6.5) numerisch mit Hilfe eines Runge-Kutta-Verfahrens für Werte von τ oberhalb und unterhalb von τc . Plotten Sie n(t) über t.