Computational Physics

Werbung
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.
Zugehörige Unterlagen
Herunterladen