Skript - Fakultät für Physik und Astronomie - Universität Würzburg
Skript - Fakultät für Physik und Astronomie - Universität Würzburg
Skript - Fakultät für Physik und Astronomie - Universität Würzburg
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Computational Physics<br />
Aktualisierte Version<br />
12. Dezember 2013<br />
Prof. Dr. Haye Hinrichsen<br />
Lehrstuhl <strong>für</strong> Theoretische <strong>Physik</strong> III<br />
<strong>Fakultät</strong> <strong>für</strong> <strong>Physik</strong> <strong>und</strong> <strong>Astronomie</strong><br />
<strong>Universität</strong> <strong>Würzburg</strong><br />
Wintersemester 12/13
Vorwort<br />
Dies ist die aktuelle Version des <strong>Skript</strong>s zur Vorlesung ’Computational Physics’ <strong>für</strong> den<br />
Bachelor-Studiengang. Da ich diese Vorlesung bereits mehrere Jahre halte, ist das <strong>Skript</strong><br />
umfangreicher als die Vorlesung. Andererseits werden in jedem Semester auch neue Themen<br />
behandelt, die noch nicht im <strong>Skript</strong> enthalten sind. Klausur- <strong>und</strong> prüfungsrelevant<br />
ist der jeweilige Vorlesungsinhalt.<br />
<strong>Skript</strong>e sind nie fehlerfrei. Bitte helfen Sie mit <strong>und</strong> benachrichtigen Sie mich bei Fehlern<br />
per Email:<br />
hinrichsen at physik uni-wuerzburg de, Betreff: CP-<strong>Skript</strong>.<br />
Vielen Dank <strong>für</strong> die vielen Hinweise, die geholfen haben, dieses <strong>Skript</strong> zu verbessern.<br />
H. Hinrichsen<br />
<strong>Würzburg</strong>, WS 13/14<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
Inhaltsverzeichnis<br />
1 Integration 1<br />
1.1 Einfache Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />
1.1.1 Rechteckverfahren <strong>und</strong> Trapezregel . . . . . . . . . . . . . . . . . . 1<br />
1.1.2 Simpsonregel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
1.1.3 Newton-Cotes-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
1.1.4 Numerische Stabilität . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
2 Differentialgleichungen 9<br />
2.1 Gewöhnliche Differentialgleichungen . . . . . . . . . . . . . . . . . . . . . 9<br />
2.1.1 Reduktion auf ein System erster Ordnung . . . . . . . . . . . . . . 9<br />
2.1.2 Diskretisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
2.1.3 Euler-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
2.1.4 Verfahren von Heun . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
2.1.5 Runge-Kutta-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
2.1.6 Fehlerabschätzung . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
2.1.7 Dynamische Schrittweitenkontrolle * . . . . . . . . . . . . . . . . . 14<br />
2.1.8 Anwendung auf physikalische Probleme . . . . . . . . . . . . . . . 15<br />
2.1.9 Die Rolle von Symmetrien <strong>und</strong> Erhaltungsgrößen . . . . . . . . . . 16<br />
2.1.10 Mehrschrittverfahren * . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
2.2 Partielle Differentialgleichungen . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
2.2.1 Konzept der Quantenmechanik kurz gefasst . . . . . . . . . . . . . 19<br />
2.2.2 Die Schrödingergleichung . . . . . . . . . . . . . . . . . . . . . . . 20<br />
2.2.3 Stationäre Schrödingergleichung . . . . . . . . . . . . . . . . . . . . 20<br />
2.2.4 Numerov-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
2.2.5 Zeitabhängige Schrödingergleichung – Modenzerlegung . . . . . . . 24<br />
2.2.6 Zeitabhängige Schrödingergleichung – Numerische Integration . . . 26<br />
2.3 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
3 Chaos 37<br />
3.1 Chaotische mechanische Systeme . . . . . . . . . . . . . . . . . . . . . . . 39<br />
3.1.1 Mimimale Phasenraumdimension . . . . . . . . . . . . . . . . . . . 39<br />
3.1.2 Lyapunov-Exponenten . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
3.1.3 Getriebenes gedämpftes Pendel . . . . . . . . . . . . . . . . . . . . 42<br />
3.1.4 Attraktoren <strong>und</strong> Poincaré-Schnitte . . . . . . . . . . . . . . . . . . 43<br />
3.2 Fraktale Eigenschaften seltsamer Attraktoren * . . . . . . . . . . . . . . . 45<br />
3.3 Chaotische iterative Abbildungen . . . . . . . . . . . . . . . . . . . . . . . 45<br />
3.3.1 Quadratische Abbildung . . . . . . . . . . . . . . . . . . . . . . . . 46<br />
3.3.2 Feigenbaumkonstante . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />
3.3.3 Mandelbrotmenge . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />
3.4 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
vi<br />
Inhaltsverzeichnis<br />
4 Zufallszahlen 57<br />
4.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />
4.1.1 Ganzzahlige Zufallszahlen . . . . . . . . . . . . . . . . . . . . . . . 57<br />
4.1.2 Fließkomma-Zufallszahlen . . . . . . . . . . . . . . . . . . . . . . . 59<br />
4.1.3 Korrelationsfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />
4.2 Pseudozufallszahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />
4.2.1 Algorithmische Implementierung . . . . . . . . . . . . . . . . . . . 61<br />
4.2.2 Ein (zu) einfacher Zufallszahlengenerator . . . . . . . . . . . . . . 62<br />
4.2.3 Verbesserte Zufallszahlengeneratoren . . . . . . . . . . . . . . . . . 63<br />
4.2.4 Zufallszahlengenerator von G. Marsaglia <strong>und</strong> A. Zaman . . . . . . 63<br />
4.2.5 Zufallszahlengenerator von R. M. Ziff . . . . . . . . . . . . . . . . . 64<br />
4.2.6 ’Echte’ Zufallszahlen . . . . . . . . . . . . . . . . . . . . . . . . . . 65<br />
4.3 Zufallszahlen mit nichtkonstanter Verteilung . . . . . . . . . . . . . . . . . 65<br />
4.3.1 Transformation der Wahrscheinlichkeitsdichte durch Abbildung . . 65<br />
4.3.2 Sampling <strong>und</strong> Histogramme . . . . . . . . . . . . . . . . . . . . . . 67<br />
4.3.3 Normalverteilte Zufallszahlen . . . . . . . . . . . . . . . . . . . . . 68<br />
4.3.4 Box-Muller Transformation . . . . . . . . . . . . . . . . . . . . . . 69<br />
4.3.5 Verbesserte Box-Muller Transformation . . . . . . . . . . . . . . . 71<br />
4.3.6 Umgang mit Wahrscheinlichkeitsverteilungen in Mathematica R○ . . 72<br />
4.4 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />
5 Zufallsbewegung 75<br />
5.1 Universalität der Gaußverteilung . . . . . . . . . . . . . . . . . . . . . . . 75<br />
5.1.1 Addition von Zufallsgrößen . . . . . . . . . . . . . . . . . . . . . . 75<br />
5.1.2 Faltungssatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />
5.1.3 Transformierte Wahrscheinlichkeitsdichte eines Standardgenerators 77<br />
5.1.4 Zentraler Grenzwertsatz . . . . . . . . . . . . . . . . . . . . . . . . 79<br />
5.2 Die eindimensionale Zufallsbewegung . . . . . . . . . . . . . . . . . . . . . 80<br />
5.2.1 Bewegungsgleichung <strong>und</strong> Mastergleichung . . . . . . . . . . . . . . 81<br />
5.2.2 Kontinuumlimes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />
5.2.3 Skalierungseigenschaften der Diffusionsgleichung . . . . . . . . . . 83<br />
5.3 Diffusion in höheren Dimensionen . . . . . . . . . . . . . . . . . . . . . . . 84<br />
5.3.1 Entkopplung orthogonaler Freiheitsgrade . . . . . . . . . . . . . . . 84<br />
5.3.2 Rückkehrwahrscheinlichkeit . . . . . . . . . . . . . . . . . . . . . . 85<br />
5.3.3 Diffusionsbegrenztes Wachstum (DLA) . . . . . . . . . . . . . . . . 86<br />
5.4 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />
6 Vielteilchensysteme <strong>und</strong> Reaktions-Diffusionsprozesse 93<br />
6.1 Molekularfeldnäherung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />
6.1.1 Massenwirkungsgesetz . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />
6.1.2 Chemische Oszillationen . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
6.1.3 Raumzeitliche Strukturbildung . . . . . . . . . . . . . . . . . . . . 95<br />
6.2 Gittermodelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />
6.2.1 Gittergeometrien . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />
6.2.2 Charakterisierung des Zustandsraums . . . . . . . . . . . . . . . . 98<br />
6.2.3 Dynamiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />
6.3 Zelluläre Automaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />
6.4 Systeme mit thermisch induzierten Übergängen . . . . . . . . . . . . . . . 102<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
Inhaltsverzeichnis<br />
vii<br />
6.5 Fluktuationseffekte im Koagulationsprozess . . . . . . . . . . . . . . . . . 103<br />
6.5.1 Experimenteller Hintergr<strong>und</strong> . . . . . . . . . . . . . . . . . . . . . 104<br />
6.5.2 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106<br />
6.5.3 Interpretation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />
6.5.4 Exakte Lösung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109<br />
6.5.5 Dimensionsabhängigkeit . . . . . . . . . . . . . . . . . . . . . . . . 109<br />
6.6 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109<br />
7 Phasenübergänge in Reaktions-Diffusionsprozessen 113<br />
7.1 Gerichtete Perkolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114<br />
7.1.1 Isotrope vs. gerichtete Perkolation . . . . . . . . . . . . . . . . . . 114<br />
7.1.2 Interpretation als Reaktions-Diffusionsprozess . . . . . . . . . . . . 115<br />
7.1.3 Algorithmische Implementierung . . . . . . . . . . . . . . . . . . . 116<br />
7.1.4 Epidemische Prozesse . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />
7.1.5 Potenzgesetze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121<br />
7.2 Phänomenologische Skalentheorie . . . . . . . . . . . . . . . . . . . . . . . 122<br />
7.2.1 Skaleninvarianz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123<br />
7.2.2 Universalität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124<br />
7.3 Andere stochastische Prozesse . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />
7.3.1 Wachstumsprozesse . . . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />
7.3.2 Voter Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129<br />
7.4 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129<br />
8 Fourier-Transformation 131<br />
8.1 Fourier-Transformation – kurz gefasst . . . . . . . . . . . . . . . . . . . . 131<br />
8.1.1 Kontinuierliche Fouriertransformationen . . . . . . . . . . . . . . . 132<br />
8.1.2 Fourier-Reihen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133<br />
8.1.3 Diskrete Fourier-Transformationen . . . . . . . . . . . . . . . . . . 135<br />
8.1.4 Invarianz des Skalarprodukts . . . . . . . . . . . . . . . . . . . . . 136<br />
8.1.5 Gleitende diskrete Fourier-Transformationen . . . . . . . . . . . . . 137<br />
8.1.6 Allgemeine Eigenschaften von Fourier-Transformationen . . . . . . 137<br />
8.1.7 Faltungssatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140<br />
8.2 Klänge mit Mathematica R○ . . . . . . . . . . . . . . . . . . . . . . . . . . 141<br />
8.2.1 Erzeugung eines Klanges mit Funktionen . . . . . . . . . . . . . . . 141<br />
8.2.2 Hochladen von Klangdateien . . . . . . . . . . . . . . . . . . . . . 141<br />
8.2.3 Manipulation von Klängen . . . . . . . . . . . . . . . . . . . . . . . 142<br />
8.2.4 Künstlicher Nachhall . . . . . . . . . . . . . . . . . . . . . . . . . . 142<br />
8.3 Bildbearbeitung mit Mathematica R○ . . . . . . . . . . . . . . . . . . . . . 143<br />
8.3.1 Faltungsprodukte in der Bildbearbeitung . . . . . . . . . . . . . . . 144<br />
8.3.2 Scharfzeichnen <strong>und</strong> Weichzeichnen . . . . . . . . . . . . . . . . . . 144<br />
8.4 Fast-Fourier-Transform (FFT) . . . . . . . . . . . . . . . . . . . . . . . . . 145<br />
8.5 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
1 Integration<br />
Während das Differenzieren von Funktionen durch Anwendung<br />
von bestimmten Regeln auf systematische Weise durchgeführt<br />
werden kann, ist die exakte Integration einer Funktion weitaus<br />
schwieriger. Die bekannten Lösungen hat man deshalb in umfangreichen<br />
Tafelwerken wie z.B. dem “Gradshteyn-Ryzhik“ zusammengetragen.<br />
Heute übernehmen symbolische mathematisch<br />
orientierte Programmiersprachen wie z.B. Mathematica R○<br />
mehr <strong>und</strong> mehr die Funktion dieses kollektiven Wissen. Wenn<br />
aber eine Integration in geschlossener Form nicht möglich ist,<br />
ist man auf numerische Näherungsverfahren angewiesen. Um<br />
solche Näherungsverfahren wird es in diesem Kapitel gehen.<br />
Der “Gradshteyn-Ryzhik“<br />
Die numerische Integration von Funktionen ist ein eigenständiges Teilgebiet der numerischen<br />
Mathematik. Im Rahmen dieser Vorlesung wollen wir dieses Gebiet nur streifen<br />
<strong>und</strong> die gängigsten numerischen Integrationsverfahren exemplarisch behandeln. Dabei<br />
werden wir insbesondere die Genauigkeit, die benötigte Rechenzeit <strong>und</strong> den programmiertechnischen<br />
Aufwand miteinander vergleichen. Als benchmark verwenden wir da<strong>für</strong><br />
das Integral<br />
∫ 2<br />
e x dx = 3.0591165396459534079.... (1.1)<br />
x<br />
1<br />
1.1 Einfache Verfahren<br />
1.1.1 Rechteckverfahren <strong>und</strong> Trapezregel<br />
Das einfachste Integrationsverfahren ist das sogenannte Rechteckverfahren. Dazu wird das<br />
Integrationsintervall [a, b] in N äquidistante Intervalle der Breite h = (b − a)/N geteilt,<br />
die wir mit n = 0 . . . N − 1 indizieren wollen. In den Mittelpunkten x n = a + (n + 1/2)h<br />
dieser Intervalle, den sogenannten Stützstellen, berechnet man die Funktionswerte f n =<br />
f(x n ). Das Integral I = ∫ b<br />
a<br />
f(x)dx ist dann näherungsweise durch die Summe dieser<br />
Funktionswerte multipliziert mit h gegeben:<br />
I R<br />
N−1<br />
∑ (<br />
)<br />
= h f a + (n + 1/2)h , h = b − a<br />
N . (1.2)<br />
n=0<br />
Man kann sich leicht überzeugen, dass lineare Funktionen (also Geraden) unabhängig von<br />
h fehlerfrei integriert werden, während bei gekrümmten Kurven Abweichungen entstehen.<br />
Bei einer Parabel kann man I <strong>und</strong> I R sogar geschlossen ausrechnen. Man erhält<br />
I = b3 − a 3<br />
3<br />
, I R = b3 − a 3<br />
−<br />
3<br />
(b − a)3<br />
(b − a)3<br />
12N 2 , ∆ = |I − I R | =<br />
12N 2 ∼ h 2 . (1.3)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2 Integration<br />
Abbildung 1.1: Integrationsverfahren: Rechteck-, Trapez- <strong>und</strong> Simpsonregel (Quelle: Wikipedia).<br />
Das ’beweist’ man z.B. mit Mathematica R○ :<br />
f[x_]:=x^2;<br />
h=(b-a)/NN; (* N ist belegt *)<br />
soll=Integrate[f[x],{x,a,b}];<br />
ist=h*Sum[f[a+(n+1/2)h],{n,0,NN-1}];<br />
soll-ist//FullSimplify<br />
Eine Verbesserung könnte man sich erhoffen, indem man die Stützstellen durch stückweise<br />
Geraden miteinander verbindet. Bei dieser sogenannten Trapezregel trägt das approximierte<br />
Integral zwischen zwei Stützstellen x, x + h mit der Fläche h 2<br />
(f(x) + f(x + h)) bei.<br />
Wenn man alle Beiträge aufaddiert, erhält man<br />
I T<br />
( f(a)<br />
= h + f(b)<br />
2<br />
Für eine Parabel erhält man hier den Fehler<br />
∆ = |I − I T | =<br />
N−1<br />
2 + ∑<br />
n=1<br />
)<br />
f(a + nh)<br />
(1.4)<br />
(b − a)3<br />
6N 2 ∼ h 2 . (1.5)<br />
Obwohl die Trapezregel ‘besser aussieht’ (vgl. Abb. 1.1) produziert sie einen doppelt so<br />
großen Fehler.<br />
In der numerischen Mathematik ist ein solcher Faktor 2 im Fehler durchaus relevant,<br />
da er einen um √ 2 höheren Rechenaufwand bedeutet. Viel wichtiger ist jedoch, wie der<br />
numerische Fehler skaliert, mit welcher Potenz in h er also abnimmt im Limes h → 0.<br />
Die Rechteck- <strong>und</strong> Trapezmethode haben beide die gleiche Fehlerordnung da die Fehler<br />
in beiden Fällen wie h 2 skalieren.<br />
Die Rechteck- <strong>und</strong> die Trapezregel lassen sich in C wie folgt programmieren:<br />
double Integrate_R (double (*f) (double), double a, double b, int N) {<br />
double h = (b-a) / N;<br />
double sum = 0;<br />
for (int n=0; n
1.1 Einfache Verfahren 3<br />
1.1.2 Simpsonregel<br />
Die Simpsonregel beruht auf der Idee, die Funktion f(x)<br />
durch Parabelsegmente anstatt durch Geraden zu approximieren.<br />
Auf jedem Intervall [x, x + 2h] betrachtet man dazu<br />
die drei Funktionswerte an den Stützstellen x, x + h, x + 2h<br />
<strong>und</strong> bestimmt eine Parabel P (x), die durch diese drei Punkte<br />
verläuft. Die so bestimmte Parabel wird dann auf diesem<br />
Intervall integriert. Dieses analytische Problem löst man mit<br />
Mathematica R○ folgendermaßen:<br />
Drei-Punkte-Fit einer Parabel<br />
P[x_]:=c*x^2+d*x+e; (* Parabel mit Koeffizienten c,d,e *)<br />
lsg=Solve[{P[x]==f[x], P[x+h]==f[x+h], P[x+2h]==f[x+2h]}, {c,d,e}]<br />
P1[x_]:=P[x]/.lsg[[1]]; (* Loesung einsetzen *)<br />
Integrate[P1[s],{s,x,x+2*h}]//Simplify<br />
Das Resultat lautet (h*(f[x] + 4*f[x + h] + f[x + 2*h]))/3. Dieser Ausdruck ist<br />
noch über alle Stützstellen zu summieren. Als Ergebnis erhält man die Simpson-Regel<br />
I S = h [<br />
]<br />
f(a) + 4f(x 1 ) + 2f(x 2 ) + 4f(x 3 ) + 2f(x 4 ) + · · · + 4f(x n−1 ) + f(b) (1.6)<br />
3<br />
So könnte man die Simpson-Regel in C realisieren:<br />
double Integrate_S (double (*f) (double), double a, double b, int N) {<br />
double h = (b-a) / N / 2;<br />
double sum = (*f)(a) + (*f)(b);<br />
for (int j=1; j
4 Integration<br />
Die n Stützstellen in einem Intervall [x 0 , x 0 + nh] seien x i = x 0 + ih. Wir suchen nun<br />
ein Polynom n-ter Ordnung P n (x), das durch die n + 1 Punkte (x i , f(x i )) verläuft. Dazu<br />
betrachten wir zunächst die Hilfsfunktionen<br />
L k,n (x) =<br />
n∏<br />
j=0,j≠k<br />
x − x j<br />
x k − x j<br />
. (1.7)<br />
Man kann sich leicht überzeugen, dass diese Funktionen ebenfalls Polynome n-ten Grades<br />
sind. Außerdem gilt<br />
{<br />
1 falls i = k<br />
L k,n (x i ) =<br />
(1.8)<br />
0 falls i ≠ k<br />
oder kurz L k,n (x i ) = δ ik , denn <strong>für</strong> i = k sind alle Faktoren gleich 1, während <strong>für</strong> i ≠ k<br />
mindestens einer der Faktoren verschwindet. Mit diesen Basispolynomen ist es nun leicht<br />
zu zeigen, dass<br />
n∑<br />
P n (x) = f(x k )L k,n (x) (1.9)<br />
k=0<br />
das (eindeutig gegebene) Polynom mit der gewünschten Eigenschaft P n (x i ) = f(x i ) ist.<br />
Dieses Polynom ist nun auf dem Teilintervall [x 0 , x n ] zu integrieren:<br />
∫ xn<br />
x 0<br />
f(x)dx ≈ (x n − x 0 )<br />
n∑<br />
w k f(x k ) , (1.10)<br />
wobei die Konstanten w k die sogenannten Gewichte sind, die das jeweilige Verfahren<br />
charakterisieren. Die Gewichte sind gegeben durch<br />
k=0<br />
w k =<br />
1<br />
x n − x 0<br />
∫ xn<br />
x 0<br />
L k,n (x)dx (1.11)<br />
Dabei ist der Vorfaktor<br />
1<br />
x n−x 0<br />
so gewählt, dass die Gewichte bei äquidistanten Stützstellen<br />
nicht von der Breite es Intervalls abhängen. Mit diesem Mathematica R○ -Code kann man<br />
diese Zahlen ausrechnen:<br />
n=5; (* Ordnung des Verfahrens *)<br />
X[k_]:=x0+k*h;<br />
pi[x_]:=Product[(x-X[j]),{j,0,n}]<br />
L[k_,x_]:=pi[x]/pi’[X[k]]/(x-X[k]);<br />
Table[1/h/n*Integrate[L[k,x],{x,X[0],X[n]}],{k,0,n}]<br />
Hier einige Beispiele:<br />
Verfahren n w 0 , . . . , w n Fehlerordnung<br />
Trapez 1<br />
1<br />
2 , 1 2<br />
h 2<br />
Simpson 2<br />
1<br />
6 , 2 3 , 1 6<br />
h 4<br />
Boole 4<br />
7<br />
90 , 32<br />
90 , 12<br />
90 , 32<br />
90 , 7<br />
90<br />
h 6<br />
Weddle 6<br />
41<br />
840 , 9<br />
35 , 9<br />
280 , 34<br />
105 , 9<br />
280 , 9<br />
35 , 41<br />
840<br />
h 8<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
1.1 Einfache Verfahren 5<br />
n Trapez Simpson Bool Weddle<br />
1 0.147288 0.00154692 2.77024e-05 8.81973e-07<br />
2 0.0379823 0.000122653 7.25379e-07 7.769e-09<br />
4 0.00958756 8.34587e-06 1.38071e-08 4.23125e-11<br />
8 0.00240315 5.34561e-07 2.29e-10 1.83758e-13<br />
16 0.000601188 3.36247e-08 3.63571e-12 8.14886e-16<br />
32 0.000150322 2.10495e-09 5.73231e-14 7.97973e-17<br />
64 3.75822e-05 1.31613e-10 1.18156e-15 7.65447e-17<br />
128 9.39564e-06 8.22669e-12 3.03143e-16 7.58942e-17<br />
256 2.34892e-06 5.14214e-13 2.89916e-16 7.71952e-17<br />
512 5.87229e-07 3.21715e-14 2.87314e-16 8.04478e-17<br />
1024 1.46807e-07 2.04589e-15 2.85796e-16 7.00395e-17<br />
Tabelle 1.1: Fehler verschiedener Integrationsverfahren bei der Berechnung von (1.1).<br />
Zu guter letzt sind die Integrale der Teilintervalle noch aufzusummieren. Man erhält<br />
damit die Approximation<br />
∫ b<br />
a<br />
N−1<br />
∑<br />
f(x)dx ≈ nh<br />
j=0 k=0<br />
n∑<br />
w k f ( a + (nj + k)h ) . (1.12)<br />
Auch die komplizierteren Regeln sind also sehr einfach zu programmieren. Hier ist beispielsweise<br />
ein Programmfragment <strong>für</strong> die Weddle-Regel n = 6, das sehr leicht an andere<br />
Regeln angepasst werden kann:<br />
double Integrate_W (double (*f) (double), double a, double b, int N) {<br />
const int n=6; double sum=0, h = (b-a)/(N*n);<br />
double w[n+1]={41.0/840,9.0/35,9.0/280,34.0/105,9.0/280,9.0/35,41.0/840};<br />
for (int j=0; j
6 Integration<br />
Fehler<br />
10 -1<br />
10 -2<br />
10 -3<br />
10 -4<br />
10 -5<br />
10 -6<br />
10 -7<br />
10 -8<br />
10 -9<br />
10 -10<br />
10 -11<br />
10 -12<br />
10 -13<br />
10 -14<br />
10 -15<br />
Weddle<br />
Boole<br />
Simpson<br />
Trapez<br />
Trapez<br />
Simpson<br />
Boole<br />
Weddle<br />
10 -16<br />
1 10 100 1000 10000 100000<br />
N<br />
Abbildung 1.2: Absolute Fehler <strong>für</strong> eine glatter Funktion (grün) <strong>und</strong> eine Stufenfunktion (blau).<br />
des Integrationsintervalls ist (Übung). Die Simpsonregel kann also nicht nur Parabeln,<br />
sondern auch kubische Polynome fehlerfrei integrieren, die niedrigste Fehlerordnung ist<br />
also h 4 . Für n = 3 erhält man ein symmetrisches Differenzpolynom vierter Ordnung, so<br />
dass die Fehlerordnung hier ebenfalls h 4 ist. Für n = 4 greift dann wieder das Symmetrieargument.<br />
Aus diesem Gr<strong>und</strong> sind nur die Verfahren <strong>für</strong> geradzahliges n mit Namen<br />
belegt, weil die Verfahren <strong>für</strong> ungerades n keinen Vorteil bringen.<br />
1.1.4 Numerische Stabilität<br />
Ist nun ein Verfahren hoher Ordnung gr<strong>und</strong>sätzlich besser? Diese Frage hängt sehr von<br />
der betrachteten Funktion ab. Für hinreichend glatte Funktionen, die lokal durch eine<br />
Taylor-Reihe approximiert werden können, funktionieren die Verfahren um so besser, je<br />
höher die Fehlerordnung ist. Bei unstetigen Funktionen sieht es jedoch anders aus. So ist<br />
z.B. <strong>für</strong> die Sprungfunktion<br />
{<br />
0 x < 3/2<br />
g(x) = θ(x − 3/2) =<br />
(1.13)<br />
1 x ≥ 3/2<br />
das Integral<br />
∫ 2<br />
1<br />
g(x)dx = 1 2<br />
(1.14)<br />
trivial zu berechnen. Die oben beschriebenen numerischen Integrationsverfahren haben<br />
allerdings damit große Probleme. Zwar werden alle Intervalle, auf denen g(x) konstant<br />
ist, korrekt integriert, jedoch wird das Intervall, in dem die Unstetigkeit liegt, je nach<br />
Ordnung des Verfahrens durch ein mehr oder weniger wild oszillierendes Polynom approximiert,<br />
das in diesem Intervall ein völlig falsches Ergebnis produziert. Man erwartet<br />
deshalb, das der Gesamtfehler in diesem Fall mit 1/h oder sogar schlechter skaliert –<br />
unabhängig von der Ordnung des Verfahrens.<br />
Wie man in Abb. 1.2 sehen kann, ist dies auch tatsächlich der Fall. In dieser Abbildung<br />
sind die absoluten Fehler doppellogarithmisch über der Anzahl der Schritte N ∼ 1/h<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
1.1 Einfache Verfahren 7<br />
dargestellt. Die Fehler <strong>für</strong> die gutartige Funktion f(x) aus Tabelle 1.1 sind grün dargestellt.<br />
Man erkennt sehr schön die unterschiedlichen Potenzgesetze der Fehlerordnungen,<br />
die hier als Geraden mit unterschiedlicher Steigung in Erscheinung treten, sowie die limitierende<br />
Maschinengenauigkeit am unteren Rand. Die entsprechenden Daten <strong>für</strong> die<br />
Sprungfunktion g(x) sind dagegen blau dargestellt. Wie man sehen kann, liefern hier alle<br />
Verfahren in etwa gleich schlechte Ergebnisse mit einer Fehlerordnung h −1 .<br />
Noch problematischer ist die Integration von Funktionen mit Singulatitäten wie z.B.<br />
h(x) =<br />
1<br />
x − π/2 . (1.15)<br />
Das Integral ∫ 2<br />
1<br />
h(x)dx kann berechnet werden, indem man ausnutzt, dass der Integrand<br />
antisymmetrisch in bezug auf die Polstelle ist, d.h. im Intervall [π−2, 2] liefert das Integral<br />
keinen Beitrag, während der verbleibende Teil ∫ π−2<br />
1<br />
h(x)dx mit Mathematica R○ bestimmt<br />
werden kann <strong>und</strong> den numerischen Wert H = −1.012305533877 ergibt. Integriert man<br />
aber diese Funktion numerisch auf dem gesamten Intervall [1, 2], so beobachtet man, dass<br />
keines der Verfahren konvergiert, vielmehr erhält man in etwa konstante Abweichungen<br />
von der Größenordnung 1, die in der Abbildung rot dargestellt sind.<br />
Die numerische Integration von Funktionen ist ein eigenes Teilgebiet der numerischen<br />
Mathematik, das wir hier nur sehr oberflächlich gestreift haben. Mitnehmen sollten Sie<br />
jedoch, dass sich die Genauigkeit in der Regel mit nur geringem Aufwand erheblich<br />
verbessern lässt. Sind dagegen die Integranden unstetig oder gar singulär, ist äußerste<br />
Vorsicht geboten, selbst wenn ein Verfahren endliche stabile Werte liefert.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2 Differentialgleichungen<br />
Eine wichtige <strong>und</strong> vielleicht auch die älteste Anwendung<br />
des Computers in der <strong>Physik</strong> ist das<br />
numerische Lösen von Differentialgleichungen.<br />
Der erste vollelektronische Großrechner mit der<br />
Bezeichnung ENIAC, der noch über ein Steckfeld<br />
programmiert wurde, diente zur Lösung<br />
partieller Differentialgleichungen <strong>für</strong> Kernfusion<br />
<strong>und</strong> ermöglichte so die Entwicklung der<br />
Wasserstoffbombe. Die Amerikaner gewannen<br />
den Wettlauf zum Mond nicht wegen besserer<br />
Raketentechnologie, sondern weil sie die ersten<br />
waren, die einen leichten transistorisierten<br />
Bordrechner zur numerischen Iteration der<br />
Flugbahn bauen konnten.<br />
Electronic Numerical Integrator And Computer<br />
(ENIAC) aus dem Jahr 1942 mit 17500 Röhren<br />
2.1 Gewöhnliche Differentialgleichungen<br />
2.1.1 Reduktion auf ein System erster Ordnung<br />
Wir wollen uns zunächst mit gewöhnlichen Differentialgleichungen befassen. Eine gewöhnliche<br />
Differentialgleichung n-ter Ordnung <strong>für</strong> eine Funktion y(x) lässt sich schreiben<br />
als<br />
y (n) = f(x, y, y ′ , y ′′ , . . . , y (n−1) ) , (2.1)<br />
wobei y (n) <strong>für</strong> die n-te Ableitung steht <strong>und</strong> f eine im Allgemeinen nichtlineare Funktion<br />
ist. Diese Differentialgleichung n-ter Ordnung lässt sich auf ein System von Differentialgleichungen<br />
erster Ordnung zurückführen, indem man eine n-komponentige Funktion<br />
⃗Y (x) = (Y 1 (x), Y 2 (x), . . . , Y n (x)) durch Y n (x) := y (n−1) (x) definiert, also einen Vektor,<br />
in dem die ursprüngliche Funktion <strong>und</strong> ihre Ableitungen als Komponenten aufgelistet<br />
sind. Man wird so auf ein System von n Differentialgleichungen geführt, nämlich<br />
Y 1(x) ′ = Y 2 (x)<br />
Y 2(x) ′ = Y 3 (x) (2.2)<br />
· · · · ·<br />
(<br />
·<br />
)<br />
Y n(x) ′ = f x, Y 1 (x), Y 2 (x), . . . , Y n (x) ,<br />
das sich auch kurz in der Form<br />
⃗Y ′ (x) = F ⃗ (<br />
x, Y ⃗ )<br />
(x)<br />
(2.3)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
10 Differentialgleichungen<br />
schreiben lässt. Die ersten n − 1 Gleichungen sind trivial in dem Sinne, dass sie nichts<br />
weiter tun als Ableitungen sukzessive hintereinander zu schalten, um auf diese Weise<br />
höhere Ableitungen zu erzeugen, die in der letzten Gleichung als Argumente der Funktion<br />
f benötigt werden. Durch das Zurückführen auf ein System von Gleichungen erster<br />
Ordnung wird das Problem jedoch standardisiert, – spezielle Algorithmen <strong>für</strong> Differentialgleichungen<br />
höherer Ordnung werden also nicht unbedingt benötigt.<br />
Beispiel: Für eine gedämpfte Schwingung lässt sich die DGL zweiter Ordnung ÿ(t) +<br />
aẏ(t) + by(t) = 0 durch<br />
Y 1(t) := y(t) , Y 2(t) := ẏ(t) (2.4)<br />
auf das System<br />
Ẏ 1(t) = Y 2(t)<br />
Ẏ 2(t) = −bY 1(t) − aY 2(t) (2.5)<br />
von zwei DGLen erster Ordnung zurückführen. In diesem speziellen Fall ist das System<br />
sogar linear, so dass wir ˙⃗ Y (t) = AY (t) schreiben können, wobei A eine 2 × 2-Matrix ist.<br />
Durch Bestimmung der Eigenwerte <strong>und</strong> Eigenvektoren dieser Matrix lassen sich dann beide<br />
Gleichungen entkoppeln.<br />
Auf analoge Weise geht man vor, wenn ein System von m Gleichungen n-ter Ordnung<br />
vorgegeben ist, man erhält dann ein System von m × n Gleichungen erster Ordnung.<br />
Im folgenden wollen wir der Einfachheit halber eine einkomponentige gewöhnliche DGL<br />
erster Ordnung y ′ (x) = f(x, y(x)) betrachten. Die zu beschreibenden Verfahren können<br />
direkt auf Systeme mehrerer DGLen erster Ordnung verallgemeinert werden.<br />
2.1.2 Diskretisierung<br />
Rechner sind endliche Maschinen <strong>und</strong> können deshalb nur diskretisierte Probleme bearbeiten.<br />
Zunächst muss also die unabhängige Variable x (bzw. t in zeitabhängigen DGLen)<br />
diskretisiert werden. Liegen keine näheren Informationen zur betrachteten DGL vor, wird<br />
man zunächst mit einer äquidistanten Diskretisierung<br />
x = x 0 + jh j ∈ N (2.6)<br />
arbeiten. Dabei ist h die sogenannte Schrittweite bei der Iteration. Der Iterationsindex j<br />
übernimmt nun die Rolle der unabhängigen Variable, weshalb wir die Notation<br />
verwenden werden.<br />
x j := x 0 + jh , y j := y(x j ) , y ′ j := y ′ (x j ) (2.7)<br />
Bei der numerischen Integration von Differentialgleichungen unterscheidet man zwischen<br />
Einschrittverfahren <strong>und</strong> Mehrschrittverfahren, wobei man sich auf die Anzahl der bereits<br />
berechneten Stützstellen bezieht, deren Kenntnis notwendig ist, um die jeweils nächste<br />
Stützstelle zu berechnen. Ein Einschrittverfahren berechnet y j+1 allein auf der Gr<strong>und</strong>lage<br />
der vorherigen Stützstelle y j . Beispiele da<strong>für</strong> sind die im folgenden besprochenen<br />
Euler- <strong>und</strong> Runge-Kutta-Verfahren. Ein Zweischrittverfahren benötigt dagegen <strong>für</strong> die<br />
Berechnung von y j+1 zwei zuvor berechnete Stützstellen y j <strong>und</strong> y j−1 . Solche mehrstufigen<br />
werden am Ende dieses Kapitels besprochen.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2.1 Gewöhnliche Differentialgleichungen 11<br />
2.1.3 Euler-Verfahren<br />
Die Gr<strong>und</strong>lage eines Iterationsverfahrens ist in der Regel die Taylorentwicklung<br />
y j+1 =<br />
∞∑<br />
k=0<br />
h k<br />
k! y(k) j<br />
= y j + hy ′ j + h2<br />
2 y′′ j + . . . . (2.8)<br />
Wären alle Ableitungen bekannt, könnte man die DGL ‘exakt’ iterieren, – aber leider<br />
kennt man nur die erste Ableitung, die durch y j<br />
′ = f(x j, y j ) berechnet werden kann.<br />
Als einfachstes Verfahren bietet es sich deshalb an, die Entwicklung nach der ersten<br />
Ordnung abzubrechen, was zu einem Iterationsfehler der Ordnung O(h 2 ) führt. 1 Dies ist<br />
das sogenannte Euler-Verfahren:<br />
y j+1 = y j + hf(x j , y j ) + O(h 2 ). (2.9)<br />
Das Euler-Verfahren ist wegen seiner Anschaulichkeit sehr beliebt, aber<br />
Euler-Verfahren sind ungenau.<br />
Mit einem geringen Aufwand lässt sich, wie Sie im folgenden sehen werden, eine erhebliche<br />
Verbesserung erreichen.<br />
2.1.4 Verfahren von Heun<br />
Eine intuitiv naheliegende Verbesserung erhält man, wenn man die Tangente im Euler-<br />
Verfahren durch ein Trapez ersetzt, d.h.<br />
y j+1 = y j + h 2<br />
(<br />
f(xj , y j ) + f(x j+1 , y j+1 ) ) + O(h 3 ). (2.10)<br />
Allerdings erscheint auf der rechten Seite die zu berechnende Stützstelle j + 1, die noch<br />
nicht bekannt ist. Das Verfahren von Heun umgeht dieses Problem, indem der Funktionswert<br />
y j+1 an der rechten Stützstelle zunächst mit dem Euler-Verfahren durch einen<br />
näherungsweisen Prädikator abgeschätzt wird:<br />
p j+1] := y j + hf(x j , y j ) . (2.11)<br />
Dieser Prädikator wird in die obige Trapezregel eingesetzt <strong>und</strong> mit dem Ergebnis anschließend<br />
eine verbesserte Abschätzung, der sogenannte Korrektor, berechnet:<br />
y j+1 := y j + h 2<br />
(<br />
f(xj , y j ) + f(x j+1 , p j+1 ) ) (2.12)<br />
p j+1 := f(x j+1 , y j+1 ) . (2.13)<br />
Diese beiden Schritte werden so lange wiederholt, bis die Zahlenwerte der beteiligten<br />
Größen stationär sind, sich also nicht weiter verändern.<br />
1 Diese Notation drückt aus, dass der Fehler <strong>für</strong> h → 0 asymptotisch wie h 2 skaliert. Dieser Fehler<br />
bezieht sich auf einen einzigen Integrationsschritt mit Schrittweite h. Der akkumulierte Fehler auf<br />
einem Integrationsintervall konstanter Breite skaliert mit einer um 1 geringeren Potenz.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
12 Differentialgleichungen<br />
Abbildung 2.1: Euler- <strong>und</strong> Runge-Kutta-Iteration zweiter Ordnung. Die schwarze Kurve stellt die<br />
gesuchte (wirkliche) Lösungsfunktion y(x) dar. Die Iteration startet bei einer Stützstelle<br />
(x j, y j) <strong>und</strong> berechnet (x j+1, y j+1). Beim Euler-Verfahren (links) wird im linken<br />
Punkt die Steigung der Tangente (rote gestrichelte Linie) bestimmt <strong>und</strong> ein linearer<br />
Vorwärtsschritt (roter Pfeil) entlang der Tangente vorgenommen. Wie man sehen<br />
kann, ergibt sich bei gekrümmten Lösungsfunktionen ein erheblicher Fehler (gelber<br />
Balken). Beim Runge-Kutta-Verfahren zweiter Ordnung (rechts) wird zunächst eine<br />
Euler-Iteration mit halber Schrittweite (roter Pfeil) vorgenommen <strong>und</strong> im Zielpunkt<br />
die Steigung ermittelt (blaue gestrichelte Linie). Danach wird diese Steigung <strong>für</strong> den<br />
Iterationsschritt mit voller Schrittweite verwendet (blauer Pfeil). Wie man sehen kann,<br />
ist die Genauigkeit dieses Verfahrens erheblich größer.<br />
2.1.5 Runge-Kutta-Verfahren<br />
Das Verfahren von Heun gehört zur Gruppe der sogennanten Runge-Kutta-Verfahren.<br />
Diese Gruppe umfasst nicht nur das Euler-Verfahren (RK1), sondern auch weitere Standardverfahren<br />
(RK2,RK4,...), die ohne eine Iterationsschleife auskommen <strong>und</strong> mit denen<br />
man mit nur sehr geringem Aufwand die Genauigkeit <strong>und</strong> Effizienz einer numerischen<br />
Iteration erheblich steigern kann. Je nach Skalierungsverhalten des Fehlers unterscheidet<br />
man Runge-Kutta-Verfahren unterschiedlicher Ordnungen. Der einfachste Fall ist das<br />
Runge-Kutta-Verfahren 2. Ordnung RK2, das bereits erheblich genauer als das Euler-<br />
Verfahren ist.<br />
Dem Runge-Kutta-Verfahren 2. Ordnung liegt anschaulich die Idee zugr<strong>und</strong>e, die Steigung<br />
der Sekante von Stützstelle zu Stützstelle nicht wie beim Euler-Verfahren durch die<br />
Tangente im linken Punkt zu nähern, sondern die Steigung in der Mitte der beiden Stützstellen<br />
zu benutzen. Dazu tastet man sich zunächst um einen halben Iterationsschritt h/2<br />
bis zur Mitte vorwärts, ermittelt dort mit Hilfe der Funktion f die Steigung der Tangente<br />
<strong>und</strong> benutzt diese als Näherung <strong>für</strong> die Steigung der Sekante. Dieses Vorgehen ist<br />
schematisch in Abb. 2.3 dargestellt.<br />
Das Runge-Kutta-Verfahren 2. Ordnung ist mit der Iterationsvorschrift<br />
y j+1<br />
(<br />
= y j + hf x j + h 2 , y j + h )<br />
2 f(x j, y j ) + O(h 3 ). (2.14)<br />
nur unwesentlich komplizierter als das Euler-Verfahren. Die Iteration kostet etwas mehr<br />
Zeit, da insbesondere die Funktion f zweimal ausgewertet werden muss, da<strong>für</strong> skaliert<br />
der Fehler jedoch mit der Ordnung O(h 3 ). Es kann also bei gleicher Genauigkeit mit<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2.1 Gewöhnliche Differentialgleichungen 13<br />
größeren Schrittweiten gearbeitet werden. Das Runge-Kutta-Verfahren – wie das Euler-<br />
Verfahren in nur einer Zeile zu schreiben – bringt also einen erheblichen Genauigkeits<strong>und</strong><br />
Geschwindigkeitsgewinn.<br />
Auf ähnliche Weise kann man Runge-Kutta-Verfahren höherer Ordnungen definieren.<br />
Ein Runge-Kutta-Verfahren k-ter Ordnung konvergiert bei abnehmender Schrittweite mit<br />
einem Fehler O(h k+1 ). Allerdings sind solche Verfahren höherer Ordnung nicht eindeutig<br />
definiert, es gibt also nicht das Runge-Kutta-Verfahren k-ter Ordnung, sondern eine<br />
Vielzahl solcher Näherungen.<br />
In der Praxis bringt die Erhöhung der Ordnung zunächst eine deutliche Verbesserung<br />
mit sich. Erhöht man die Ordnung aber zu stark, erhöht sich einerseits die Komplexität<br />
des Algorithmus, andererseits kann es zu numerischen Instabilitäten bei zu großer<br />
Schrittweite kommen. Ein guter Kompromiss, der sich in der Praxis bewährt hat, ist das<br />
Runge-Kutta-Verfahren 4. Ordnung, das auch als klassisches Runge-Kutta-Verfahren bekannt<br />
ist:<br />
)<br />
k 1 := h f<br />
(x j , y j<br />
(<br />
k 2 := h f x j + h 2 , y j + k )<br />
1<br />
2<br />
(<br />
k 3 := h f x j + h 2 , y j + k )<br />
2<br />
(2.15)<br />
2<br />
)<br />
k 4 := h f<br />
(x j + h, y j + k 3<br />
y j+1 := y j + k 1<br />
6 + k 2<br />
3 + k 3<br />
3 + k 4<br />
6<br />
Bei einem Differentialgleichunssystem sind y j , k i , f mit Vektorpfeilen zu versehen.<br />
2.1.6 Fehlerabschätzung<br />
Der Fehler eines numerischen Runge-Kutta-Integrators ist leicht zu bestimmen, wenn<br />
man bereits die exakte Lösung der Differentialgleichung kennt. Wie aber kann man den<br />
Fehler abschätzen, wenn die exakte Lösung nicht bekannt ist?<br />
Eine sehr einfache Methode ist das Halbschrittverfahren. Dazu wird ein ganzer Iterationsschritt<br />
y j+1 = RK h (y j ) mit zwei Halbschritten ỹ j+1 = RK h/2 (RK h/2 (y j )) verglichen.<br />
Bezeichnet man die entsprechenden Fehler mit<br />
∆ = |y j+1 − y exakt<br />
j+1 | , ˜∆ = |ỹj+1 − y exakt<br />
j+1 | , (2.16)<br />
so ist offenbar ˜∆ wegen der feineren Schrittweite vom Betrag kleiner als ∆. Man nutzt nun<br />
aus, dass die Fehler bei einem Runge-Kutta-Verfahren k-ter Ordnung wie h k+1 skalieren,<br />
d.h.<br />
∆ ≃ a h k+1 , ˜∆ ≃ 2a (h/2) k+1 , (2.17)<br />
wobei a eine unbekannte Proportionalitätskonstante ist. Mit den beiden Gleichungen<br />
lässt sich wegen<br />
y j − ỹ j = ∆ − ˜∆ = a(1 − 2 −k )h k+1 = (1 − 2 −k )∆ (2.18)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
14 Differentialgleichungen<br />
der Proportionalitätsfaktor a eliminieren <strong>und</strong> man erhält:<br />
∆ =<br />
y j − ỹ j<br />
. (2.19)<br />
1 − 2−k Eine einfache Möglichkeit der Fehlerkontrolle besteht also darin, in regelmäßigen Abständen,<br />
etwa bei jedem h<strong>und</strong>ertsten Iterationsschritt, den Fehler mit der beschriebenen<br />
Methode abzuschätzen <strong>und</strong> ggf. bei Überschreitung eines vorgegebenen Maximalfehlers<br />
die Schrittweite zu halbieren.<br />
2.1.7 Dynamische Schrittweitenkontrolle *<br />
Oft ist es so, dass in bestimmten Regionen des Phasenraums sehr genau iteriert werden<br />
muss, während in anderen Regionen eine großzügige Schrittweite ausreicht. Dies ist<br />
schon der Fall bei der Iteration einer stark exzentrischen Planetenumlaufbahn: In der<br />
Nähe des Zentralgestirns (Perihel) benötigt man eine sehr kleine Schrittweite, weil sich<br />
der Planet sehr schnell bewegt <strong>und</strong> stark beschleunigt wird, während im Aphel eine grobe<br />
Schrittweite ausreicht. Wünschenswert ist hier ein Algorithmus, der die Schrittweite dynamisch<br />
anpasst. Außerdem soll die Anpassung schnell erfolgen <strong>und</strong> nicht nur in großen<br />
Abständen, wie z.B. in dem oben beschrieben Fehlerabschätzungsverfahren. Andererseits<br />
möchte man aber auch nicht in jedem Update das Halbschrittverfahren anwenden, da es<br />
den Rechenaufwand verdreifachen würde.<br />
Ein Verfahren, das den Fehler unmittelbar aus den berechneten Hilfswerten k i berechnet<br />
<strong>und</strong> dynamisch die Schrittweite anpasst, ist das Runge-Kutta-Fehlberg-Verfahren 4.<br />
Ordnung (auch RKF45 genannt):<br />
)<br />
k 1 := h f<br />
(x j , y j<br />
(<br />
k 2 := h f x j + 1 4 h, y j + 1 )<br />
4 k 1<br />
(<br />
k 3 := h f x j + 3 8 h, y j + 3 32 k 1 + 9 )<br />
32 k 2<br />
(<br />
k 4 := h f x j + 12<br />
13 h, y j + 1932<br />
2197 k 1 − 7200<br />
2197 k 2 + 7296 )<br />
2197 k 3<br />
(2.20)<br />
(<br />
k 5 := h f x j + h, y j + 439<br />
216 k 1 − 8k 2 + 3680<br />
513 k 3 − 845 )<br />
4104 k 4<br />
(<br />
k 6 := h f x j + 1 2 h, y j − 8 27 k 1 + 2k 2 − 3544<br />
2565 k 3 + 1859<br />
4104 k 4 − 11 )<br />
40 k 5<br />
y j+1 := y j + 25<br />
216 k 1 + 1408<br />
2565 k 3 + 2197<br />
4104 k 4 − 1 5 k 5<br />
Da man mehr Zwischenwerte hat, als man zur Berechnung von y j+1 braucht, kann man<br />
eine bessere Abschätzung 5. Ordnung ausrechnen:<br />
z j+1 := y j + 16<br />
135 k 1 + 6656<br />
12825 k 3 + 28561<br />
56430 k 4 − 9 50 k 5 + 2 55 k 6 . (2.21)<br />
Ist ɛ die voreingestellte Sollfehlertoleranz, so führt man nach dem Update eine Anpassung<br />
der Schrittweite mit der Zuweisung<br />
(<br />
ɛh<br />
) 1/4<br />
h := h<br />
(2.22)<br />
2|z j+1 − y j+1 |<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2.1 Gewöhnliche Differentialgleichungen 15<br />
Abbildung 2.2: Euler-Iteration (rot) <strong>und</strong> Runge-Kutta-Iteration 2. Ordnung (grün) des Zweikörperproblems.<br />
Gezeigt ist in beiden Fällen eine Iteration von 10 6 Zeitschritten mit Schrittweite<br />
h = 0.1. Die dimensionslosen Parameter sind g = 100, ⃗r(0) = (400, 0) <strong>und</strong><br />
⃗v(0) = (0, 0.2). Wie man sehen kann, führt das Euler-Verfahren zu erheblichen Fehlern<br />
<strong>und</strong> insbesondere zu einer stetigen Zunahme der Energie, während die Fehler des<br />
Runge-Kutta-Verfahrens mit dem bloßen Auge nicht zu erkennen sind.<br />
durch, wobei mit entsprechenden Abfragen sicherzustellen ist, dass der Nenner ungleich<br />
Null ist <strong>und</strong> h einen bestimmten Maximalwert nicht überschreitet.<br />
2.1.8 Anwendung auf physikalische Probleme<br />
Eine einfache physikalische Anwendung ist die Iteration einer Planetenbewegung. Zwei<br />
Himmelskörper bewegen im R 3 im wechselseitigen Gravitationspotential<br />
V (r) = −G m 1m 2<br />
r<br />
, (2.23)<br />
wobei G = 6.67 × 10 −11 m 3 s −2 kg −1 die Newtonsche Gravitationskonstante ist. Die Bewegungsgleichung<br />
<strong>für</strong> den Relativvektor ⃗r = ⃗r 2 − ⃗r 1 lautet<br />
µ¨⃗r(t) = −G m 1m 2 ⃗r(t)<br />
r 3 , (2.24)<br />
wobei µ = m 1 m 2 /(m 1 + m 2 ) die reduzierte Masse ist. Indem man die Konstanten auf die<br />
rechte Seite bringt <strong>und</strong> zusammenfasst, hat man also die Bewegungsgleichung<br />
¨⃗r(t) = −g ⃗r(t)<br />
r 3 (2.25)<br />
zu lösen. Da man weiß, dass Bewegungen in Zentralpotentialen in einer Ebene stattfinden,<br />
reicht es aus, das Problem im R 2 zu behandeln.<br />
Zunächst überführen wir die obige Differentialgleichung zweiter Ordnung in ein System<br />
von zwei (jeweils zweikomponentigen) Differentialgleichungen erster Ordnung, indem<br />
wir {⃗r(t), ˙⃗r(t)} = {⃗r(t), ⃗v(t)} als einen vierkomponentigen Vektor auffassen. Ein<br />
Euler-Zeitschritt wird dann durch die Iterationsvorschrift<br />
⃗r(t + h) := ⃗r(t) + h⃗v(t) (2.26)<br />
⃗v(t + h) := ⃗v(t) − hg⃗r(t)/|⃗r(t)| 3<br />
beschrieben. Das Ergebnis ist <strong>für</strong> eine bestimmte Parameterwahl in Abb. 2.2 dargestellt.<br />
Wie man sehen kann, bewegt sich der Planet nicht auf der theoretisch vorhergesagten<br />
geschlossenen ellipsenförmigen Bahn, sondern entfernt sich zunehmend.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
16 Differentialgleichungen<br />
Ein sehr viel besseres Ergebnis mit nur geringem Mehraufwand erzielt man mit dem<br />
Runge-Kutta-Verfahren 2. Ordnung. Für das Planetenproblem lautet die Iterationsvorschrift<br />
⃗ k1 := h⃗v(t) (2.27)<br />
⃗ l1 := −hg ⃗r(t)<br />
|⃗r(t)| 3<br />
⃗ k2 := h<br />
(⃗v(t) + 1 2 ⃗ )<br />
l 1<br />
⃗ l2 := −hg ⃗r(t) + 1⃗ 2k 1<br />
∣<br />
∣⃗r(t) + 1⃗ ∣ ∣∣<br />
3<br />
2k 1<br />
(2.28)<br />
⃗r(t + h) := ⃗r(t) + ⃗ k 2 (2.29)<br />
⃗v(t + h) := ⃗v(t) + ⃗ l 2<br />
Wie man in Abb. 2.2 sehen kann, ist das Ergebnis im Vergleich zum Euler-Verfahren<br />
erheblich besser. Natürlich weist aber auch dieses Verfahren noch erhebliche Fehler auf.<br />
Eine Mondlandung sollte man damit lieber nicht vorausberechnen, sondern sich die Mühe<br />
machen, RKF45 zu implementieren.<br />
2.1.9 Die Rolle von Symmetrien <strong>und</strong> Erhaltungsgrößen<br />
Auch bei anderen Zentralpotentialen, welche im Gegensatz zu 1/r- <strong>und</strong> r 2 -Potentialen<br />
zu nicht geschlossenen Trajektorien führen, würde man die durch das Euler-Verfahren<br />
erzeugten Fehler sofort erkennen können. Der Planet entfernt sich nämlich vom Zentralgestirn,<br />
nimmt also Energie auf, was der Energieerhaltung widerspricht.<br />
Es ist eine empirische Tatsache, dass bei physikalischen Fragestellungen vor allem jene<br />
numerischen Fehler eines Iterationsverfahren zu Problemen führen, welche die Erhaltungsgrößen<br />
<strong>und</strong> Symmetrien des Systems verletzen. Das ist plausibel, denn physikalisch<br />
interessante Eigenschaften werden ja in der Regel gerade durch diese Symmetrien <strong>und</strong><br />
Erhaltungsgrößen bestimmt. Daraus ergibt sich folgende empirische Faustregel:<br />
Für die numerische Iteration physikalischer<br />
Probleme sind gr<strong>und</strong>sätzlich Iterationsalgorithmen<br />
zu bevorzugen, welche die Erhaltungsgrößen <strong>und</strong><br />
Symmetrien des Systems respektieren.<br />
Iterationsvorschriften, welche die Erhaltungsgrößen <strong>und</strong> Symmetrien eines Systems respektieren,<br />
werden oft als symplektische Algorithmen bezeichnet. Die Bezeichnung stammt<br />
aus der klassischen Mechanik, da die Hamiltonschen Bewegungsgleichung unter der Gruppe<br />
der symplektischen Transformationen invariant sind.<br />
Ein bekanntes Beispiel ist der sogenannte leapfrog-Algorithmus <strong>für</strong> die Iteration von<br />
Newtonschen Bewegungsgleichungen. Er unterscheidet sich von einer einfachen Euler-<br />
Iteration nur dadurch, dass die Geschwindigkeiten zu halben Zeitschritten, die Position<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2.1 Gewöhnliche Differentialgleichungen 17<br />
Abbildung 2.3: Einschritt- <strong>und</strong> Mehrschrittverfahren. Iterationsalgorithmen kann man sich als gleitende<br />
Automaten vorstellen, die auf einer Zahlenfolge {y j} den jeweils nächsten Wert<br />
(hier y 4) erzeugen. Bei einem Einschrittverfahren wie z.B. dem Runge-Kutta-Verfahren<br />
zweiter Ordnung (RK2) benötigt dieser Automat nur den jeweils vorangegangenen y-<br />
Wert, ruft aber da<strong>für</strong> die Funktion f mehrfach auf. Ein Mehrschrittverfahren wie die<br />
Adams-Bashforth-Methode (AB) benötigt mehrere y-Werte der Folge, ruft aber da<strong>für</strong><br />
die Funktion f nur einmal auf.<br />
dagegen zu ganzen Zeitschritten iteriert wird. Die Iterationsvorschrift lautet:<br />
⃗r(t + h) := ⃗r(t) + h⃗v(t + h/2) (2.30)<br />
⃗v(t + h/2) := ⃗v(t − h/2) − hg⃗r(t)/|⃗r(t)| 3<br />
Im Gegensatz zum Euler-Verfahren ist dies jedoch bereits ein Iterationsverfahren zweiter<br />
Ordnung (Übung). Man kann zeigen, dass der leapfrog-Algorithmus als exakte Symmetrie<br />
das differentielle Phasenraumvolumen erhält. Die Energie ist allerdings, wie man sich<br />
leicht überzeugen kann, nicht exakt erhalten, jedoch kann man zeigen, dass die Energie<br />
nach jeweils einem Umlauf des Planeten wieder an den ursprünglichen Wert zurückkehrt.<br />
Die Energie oszilliert also nur geringfügig um den konstanten Sollwert. In diesem Sinne<br />
ist der leapfrog-Algorithmus <strong>für</strong> geschlossene Bahnen auch energieerhaltend.<br />
Iteriert man die oben beschriebene Planetenbewegung numerisch, so erhält man in der Tat<br />
ellipsenförmige Bahnen, deren Halbachsen ihre Länge nicht ändern. Allerdings wandert<br />
die Ellipse langsam um das Zentralgestirn herum. Der Runge-Lenz-Vektor rotiert also.<br />
Das ist nicht allzu überraschend, denn dieser Vektor repräsentiert eine weitere wichtige<br />
Erhaltungsgröße der Bahnbewegung im 1/r-Potential, die aber offenbar von dem leapfrogupdate<br />
nicht respektiert wird.<br />
2.1.10 Mehrschrittverfahren *<br />
Die bisher behandelten numerischen Verfahren zur Lösung von Differentialgleichungen<br />
sind sogenannte Einschrittverfahren, d.h. zur Berechnung der nächsten Stützstelle y j+1<br />
muss man nur die jeweils zuletzt berechnete Stützstelle y j kennen. Bei Verfahren höherer<br />
Ordnung steigt der Rechenaufwand durch mehrfache Aufrufe der Funktion f(x, y),<br />
z.B. wird bei einem Runge-Kutta-Verfahren k-ter Ordnung diese Funktion <strong>für</strong> jeden Iterationsschritt<br />
genau k-mal aufgerufen. Einschrittverfahren sind also besonders effizient,<br />
wenn die Funktion f(x, y) nur wenig CPU-Zeit verbraucht.<br />
Oft verschlingt aber gerade die Funktion f(x, y) besonders viel Rechenzeit, insbesondere<br />
wenn trigonometrische Funktionen, Logarithmen, Rekursionen oder approximierte Reihen<br />
darin vorkommen. In diesem Fall bieten sich sogenannte Mehrschrittverfahren an.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
18 Differentialgleichungen<br />
Hier wird die Funktion f(x, y) pro Iterationsschritt nur einmal aufgerufen, während die<br />
Fehlerordnung dadurch verbessert wird, dass man nicht nur die jeweils letzte Stützstelle<br />
y j , sondern auch die vorangehenden y j−1 , y j−2 , . . . , y j−M+1 bzw. die Funktionswerte von<br />
f an diesen Stellen <strong>für</strong> den Update mit einbezieht, wobei M > 0 eine ganze Zahl ist.<br />
Diese Werte müssen nicht neu berechnet, sondern lediglich zwischengespeichert werden.<br />
Eine wichtige Rolle spielen lineare Mehrschrittverfahren, die sich in der generischen Form<br />
M−1<br />
∑<br />
k=0<br />
a k y j−k<br />
M−1<br />
∑<br />
= h b k f(x j−k , y j−k ) (2.31)<br />
k=0<br />
schreiben lassen, wobei die Koeffizienten a i , b i das Verfahren bestimmen. Diese müssen<br />
konsistent sein in dem Sinne, dass das Verfahren <strong>für</strong> h → 0 gegen die exakte Lösung<br />
konvergiert. Wenn man die obige Iterationsformel nach y j auflösen kann, spricht man<br />
von einem expliziten, andernfalls von einem impliziten Mehrschrittverfahren. Eines der<br />
bekanntesten expliziten Verfahren ist die Adams-Bashforth-Methode mit zwei oder drei<br />
Schritten:<br />
3<br />
y j+1 = y j + h(<br />
2 f(x j, y j ) − 1 )<br />
2 f(x j−1, y j−1 )<br />
(2.32)<br />
( 23<br />
y j+1 = y j + h<br />
12 f(x j, y j ) − 16<br />
12 f(x j−1, y j−1 ) + 5 )<br />
12 f(x j−2, y j−2 ) . (2.33)<br />
2.2 Partielle Differentialgleichungen<br />
Partielle Differentialgleichungen treten immer dann auf, wenn ein Problem durch mehrere<br />
unabhängige Variablen beschrieben wird. In der <strong>Physik</strong> ist das immer der Fall, wenn<br />
Funktionen wie z.B. Felder oder Dichten auf dem dreidimensionalen Raum oder auf der<br />
3+1-dimensionalen Raumzeit untersucht werden. Formal erkennt man partielle Differentialgleichungen<br />
an partiellen Ableitungen. Ein klassisches Beispiel ist die Wellengleichung<br />
∂ 2<br />
∂t 2 φ(⃗x, t) − c2 ∇ 2 φ(⃗x, t) = 0 (2.34)<br />
oder kurz (∂ 2 t + c 2 ∇ 2 )φ = 0, wobei ∇ = (∂ x , ∂ y , ∂ z ) der Gradient, ∇ 2 = ∂ 2 x + ∂ 2 y + ∂ 2 z<br />
der Laplacian, φ(⃗x, t) ein skalares Feld <strong>und</strong> c die Lichtgeschwindigkeit ist. Ein weiteres<br />
Beispiel ist die Wärmeleitungsgleichung<br />
∂<br />
∂t ϱ(⃗x, t) = D∇2 ϱ(⃗x, t) (2.35)<br />
mit der Diffusionskonstanten D, die erster Ordnung in der Zeit <strong>und</strong> damit irreversibel<br />
ist. Formal äquivalent bis auf ein komplexes i ist die Schrödingergleichung<br />
i ∂ 2<br />
ψ(⃗x, t) = −<br />
∂t 2m ∇2 ψ(⃗x, t) (2.36)<br />
die ebenfalls erster Ordnung in der Zeit ist, jedoch unter Komplexkonjugation reversibel<br />
ist.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2.2 Partielle Differentialgleichungen 19<br />
Im Gegensatz zu gewöhnlichen Differentialgleichungen, deren Lösung durch Anfangswerte<br />
vollständig determiniert ist, benötigen partielle Differentialgleichungen analoge Restriktionen<br />
in den räumlichen Freiheitsgraden, die als Randwerte bezeichnet werden. Man<br />
muss also in der Regel sowohl die Anfangs- als auch die Randbedingungen spezifizieren.<br />
Der Ton eine Trommel hängt eben nicht nur vom Schlag, sondern auch von ihrer Form<br />
ab. 2<br />
2.2.1 Konzept der Quantenmechanik kurz gefasst<br />
In der klassischen Mechanik ist ein System zu jeder Zeit in einem definitiven Zustand.<br />
Beispielsweise befindet sich ein Punktteilchen zu jeder Zeit t an einem ganz bestimmten<br />
Ort ⃗x(t) <strong>und</strong> besitzt einen bestimmten Impuls ⃗p(t). Der Systemzustand (also Ort <strong>und</strong><br />
Impuls) ist objektive Realität, also zu jeder Zeit eine unabhängig vom Beobachter existierende<br />
Wirklichkeit. Kern der Quantentheorie ist dagegen eine radikale Abkehr vom<br />
Konzept der objektiven Realität. Die beobachterunabhängige Wirklichkeit gibt es nicht<br />
mehr, vielmehr entsteht Wirklichkeit erst im Moment der Beobachtung, also der Messung<br />
einer Eigenschaft. Ein Teilchen ist also erst dann an einem bestimmten Ort, wenn ich die<br />
entsprechende Frage an das Teilchen stelle, also eine Ortsmessung durchführe.<br />
Aber was heißt es, nicht an einem bestimmten Ort zu sein?<br />
Könnte es nicht sein, dass das Teilchen in Wirklichkeit doch<br />
immer an einem bestimmten Ort ist, dass man vor der Messung<br />
nur nicht weiss, wo es ist? Nein, denn das wäre ledigleich<br />
eine unvollständige Kenntnis des Beobachters. Die<br />
quantenmechanische Unbestimmtheit ist dagegen eine Eigenschaft<br />
des Teilchens selbst, ein potentielles nicht-realsein.<br />
Keine Sorge: Wenn Sie damit Verständnisprobleme haben,<br />
sind Sie in bester Gesellschaft.<br />
Quelle: Uni Oldenburg<br />
In der klassischen Mechanik geht man davon aus, dass man Ort <strong>und</strong> Impuls eines Teilchen<br />
messen kann ohne dabei das Teilchen zu beeinflussen, dass man also den Systemzustand<br />
rückwirkungsfrei bestimmen kann. In der Quantenmechanik ist das im Allgemeinen nicht<br />
möglich. Wird nämlich das System durch Messung gezwungen, eine Frage zu beantworten,<br />
so muss es sich <strong>für</strong> eine Antwort entscheiden <strong>und</strong> wird durch diesen Entscheidungsprozess<br />
selbst verändert.<br />
Hat sich das System erstmal <strong>für</strong> eine Antwort entschieden, also eine Realität bezüglich<br />
einer Frage hergestellt, wird es bei dieser Entscheidung bleiben, wenn man unmittelbar<br />
darauf die gleiche Frage noch einmal stellt. Findet man beispielsweise das Teilchen<br />
durch Ortsmessung am Ort ⃗x, wird es bei einer unmittelbar darauf folgenden zweiten<br />
Ortsmessung immer noch am Ort ⃗x sein. Stellt man aber eine andere Frage, so wird<br />
die zuvor geschaffene Realität teilweise oder ganz zerstört. Durch eine Impulsmessung<br />
vergisst das Teilchen seinen Aufenthaltsort, durch eine Ortsmessung seinen Impuls. Man<br />
sagt in diesem Fall, dass die Messungen nicht kommutieren.<br />
2 “Can One Hear the Shape of a Drum?” , fragte der Mathematiker Mark Kac im Jahre 1966. Zweifellos<br />
bestimmt die Form der Trommel deren Klang, aber können wir am Klangspektrum die Form rekonstruieren?<br />
Erst 1992 gelang der Beweis: Falls die Form konvex <strong>und</strong> analytisch ist, ist die Antwort<br />
positiv, im allgemeinen trifft die Behauptung aber nicht zu.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
20 Differentialgleichungen<br />
Bemerkung: In der Praxis wird der Impuls nur mit einer endlichen Auflösung ∆p gemessen.<br />
In diesem Fall vergisst das Teilchen seinen Aufenthaltsort nur teilweise in einem<br />
Toleranzbereich ∆x, gegeben durch die Heisenbergsche Unschärferelation ∆x∆p = /2.<br />
2.2.2 Die Schrödingergleichung<br />
Zum Glück wird die Quantenmechanik trotz ihrer begrifflichen Schwierigkeiten durch<br />
einen recht einfachen mathematischen Formalismus beschrieben. Der quantenmechanische<br />
Zustand eines Punktteilchens wird durch eine komplexwertige Wellenfunktion<br />
ψ(⃗x) ∈ C charakterisiert. Bei einer Messung des Aufenthaltsortes ist die Wahrscheinlichkeit<br />
(genauer: Wahrscheinlichkeitsdichte) <strong>für</strong> das Messergebnis ⃗x durch<br />
ρ(⃗x) = ψ ∗ (⃗x)ψ(⃗x) (2.37)<br />
gegeben. Die Wellenfunktion stellt die maximale Kenntnis dar, die man über ein System<br />
besitzen kann, ist also eine vollständige Beschreibung des quantenmechanischen Zustands<br />
des Systems.<br />
Ähnlich wie sich ein klassisches Teilchen bewegt, sich also sein Zustand (⃗x, ⃗p) als Funktion<br />
der Zeit verändert, unterliegt auch der quantenmechanische Zustand ψ(⃗x, t) einer<br />
Zeitentwicklung. Diese Zeitentwicklung wird durch eine partielle Differentialgleichung beschrieben.<br />
Man erhält sie per Kochrezept, indem man in der Energie-Impuls-Beziehung<br />
die formale Ersetzung<br />
E → i∂ t , ⃗p → −i∇ (2.38)<br />
durchführt <strong>und</strong> dann beide Seiten auf die Wellenfunktion wirken lässt. Für die Energie-<br />
Impuls-Beziehung eines Teilchens in einem Potential<br />
erhält man so die (zeitabhängige) Schrödingergleichung<br />
i∂ t ψ(⃗x, t) =<br />
E = p2<br />
+ V (⃗x) (2.39)<br />
2m<br />
(− 2 ∇ 2<br />
2m + V (⃗x) )<br />
ψ(⃗x, t) . (2.40)<br />
Es handelt sich um eine lineare partielle Differentialgleichung von 1. Ordnung in der Zeit<br />
<strong>und</strong> 2. Ordnung in den räumlichen Koordinaten. Bis auf das i ist sie formal äquivalent<br />
zur Wärmeleitungsgleichung. Wenn Ihnen die physikalischen Gr<strong>und</strong>lagen noch nicht so<br />
vertraut sind, können Sie in den folgenden Abschnitten diese Gleichung auch als ein<br />
gegebenes mathemtisches Problem betrachten, das es zu lösen gilt.<br />
2.2.3 Stationäre Schrödingergleichung<br />
Zunächst werden wir den Fall betrachten, in dem die Wahrscheinlichkeitsdichte ρ(x, t) =<br />
ψ ∗ (x, t)ψ(x, t), ein Teilchen am Ort ⃗x zu finden, stationär, also zeitunabhängig ist. In<br />
diesem Fall muss die gesamte Zeitabhängigkeit der Wellenfunktion in einem konstant<br />
rotierenden Phasenfaktor zum Ausdruck kommen, d.h.<br />
ψ(⃗x, t) = e −iωt ψ(⃗x) . (2.41)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2.2 Partielle Differentialgleichungen 21<br />
Setzt man diesen Ansatz in die Schrödingergleichung ein, wird man auf die zeitunabhängige<br />
Schrödingergleichung<br />
(− 2<br />
)<br />
2m ∇2 + V (⃗x) ψ(⃗x) = Eψ(⃗x) (2.42)<br />
geführt, wobei E = ω ist.<br />
Vom mathematischen Standpunkt aus gesehen ist die stationäre Schrödingergleichung ein<br />
Eigenwertproblem, d.h. wir suchen die Eigenwerte E <strong>und</strong> die Eigenfunktionen ψ(⃗x) des<br />
linearen Operators − 2<br />
2m ∇2 + V (⃗x). Für bestimmte Spezialfälle wie z.B. <strong>für</strong> den harmonischen<br />
Oszillator V (⃗x) = 1 2 mω2 x 2 oder das Coulombpotential V (⃗x) ∝ 1/x kann dieses<br />
Eigenwertproblem exakt gelöst werden. Solche exakt lösbaren Systeme (auch integrable<br />
Systeme genannt) sind aber eher die Ausnahme als die Regel. Schon ein harmonischer<br />
Oszillator mit einer anharmonischen Störung<br />
V (⃗x) = 1 2 mω2 x 2 + λx 4 (2.43)<br />
kann nicht exakt gelöst werden. Hier schlägt die St<strong>und</strong>e der numerischen Integration<br />
per Computer, denn numerische Methoden sind unabhängig von der Integrabilität eines<br />
Systems.<br />
Der Einfachheit halber betrachten wir im Folgenden einen eindimensionalen Raum <strong>und</strong><br />
skalieren die Größen so um, dass die stationäre Schrödingergleichung dimensionslos wird:<br />
( )<br />
ψ ′′ (x) + 2 E − V (x) ψ(x) = 0 ,<br />
} {{ }<br />
V (x) = 1 2 x2 + λx 4 (2.44)<br />
K(x)<br />
Durch die Zeitunabhängigkeit <strong>und</strong> Beschränkung auf nur eine Raumdimension haben wir<br />
das Problem auf eine gewöhnliche Differentialgleichung reduziert. Man könnte also z.B.<br />
direkt eines der oben beschriebenen Runge-Kutta-Verfahren einsetzen. Doch wie wählt<br />
man dabei die Anfangsbedingungen?<br />
Hier hilft uns die Symmetrie des Problems. Da das Potential spiegelsymmetrisch ist (d.h.<br />
V (x) = V (−x)) müssen auch die Lösungen der Differentialgleichung bestimmte Symmetrieeigenschaften<br />
erfüllen. Naiv würde man erwarten, dass dann auch ψ(x) symmetrisch<br />
sein müsse. Es ist aber in der Quantentheorie so, dass auch antisymmetrische Wellenfunktionen<br />
möglich sind.<br />
Beweis: Die Spiegelsymmetrie des Potentials impliziert, dass <strong>für</strong> jede Lösung ψ(x) auch<br />
die reflektierte Wellenfunktion ψ(−x) eine Lösung der DGL sein muss. Da normierte Eigenfunktionen<br />
nur bis auf einen Phasenfaktor definiert sind, können sich die beiden Wellenfunktionen<br />
nur durch einen Phasenfaktor unterscheiden, d.h. ψ(x) = e iφ ψ(−x). Wenn<br />
man nun x = 0 setzt, ist folglich entweder φ = 0 oder ψ(0) = 0. Differenziert man die<br />
Gleichung dagegen erst nach x <strong>und</strong> setzt dann x = 0, so erhält man φ = π oder ψ ′ (0) = 0.<br />
Das ergibt vier Kombinationen:<br />
φ = 0 ∧ φ = π unmöglich<br />
φ = 0 ∧ ψ ′ (0) = 0 symmetrische Lösung<br />
φ = π ∧ ψ(0) = 0 antisymmetrische Lösung<br />
ψ(0) = 0 ∧ ψ ′ (0) = 0 ergäbe eine verschwindende Wellenfunktion ψ(x) ≡ 0<br />
Die Symmetrie des Potentials erzwingt also, dass die Lösungen entweder symmetrisch oder<br />
antisymmetrisch sind. In der Tat wechseln sich beim harmonischen Oszillator bei steigender<br />
Energiequantenzahl diese beiden Lösungstypen ab.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
22 Differentialgleichungen<br />
Für symmetrische Wellenfunktionen ist also die “Anfangsbedingung” ψ(0) > 0, ψ ′ (0) = 0<br />
zu wählen, während man bei einer antisymmetrischen Lösung mit ψ(0) = 0, ψ ′ (0) > 0<br />
beginnt. Am Schluss ist das Ergebnis korrekt zu normieren. Mit diesem Vorwissen könnte<br />
man nun eine Runge-Kutta-Integration durchführen. Effizienter ist jedoch das speziell<br />
<strong>für</strong> die Schrödingergleichung angepasste Numerov-Verfahren, das im nächsten Abschnitt<br />
besprochen wird.<br />
2.2.4 Numerov-Verfahren<br />
Das Numerov-Verfahren benutzt zwei unterschiedliche äquidistante Diskretisierungen,<br />
nämlich<br />
• x n := (n − 1 2<br />
)h bei symmetrischen Wellenfunktionen<br />
• x n := nh bei antisymmetrischen Wellenfunktionen<br />
Ziel ist die Lösung der Differentialgleichung<br />
ψ ′′ (x) + K(x)ψ(x) = 0 , (2.45)<br />
wobei in K(x) = E−V (x) der zu bestimmende Energieeigenwert E steckt, siehe Gl. (2.44).<br />
Für die Diskretisierung benutzen wir die Notation<br />
k n := K(x n ) , ψ n := ψ(x n ) , ψ ′ n := ψ ′ (x n ) , ψ ′′<br />
n := ψ ′′ (x n ) usw. (2.46)<br />
Ausgangspunkt des Numerov-Verfahrens ist die Taylor-Entwicklung<br />
Daraus folgt<br />
ψ n±1<br />
= ψ n ± hψ n ′ + h2<br />
2 ψ′′ n ± h3<br />
6 ψ′′′ n + h4<br />
24 ψ′′′′ n + O(h 5 ) (2.47)<br />
ψ n+1 + ψ n−1 = 2ψ n + h 2 ψ ′′<br />
n + h4<br />
12 ψ′′′′<br />
n + O(h 6 ) (2.48)<br />
In dieser Formel müssen die zweite <strong>und</strong> die vierte Ableitung geeignet durch ψ n , ψ n±1<br />
ausgedrückt werden. Für die zweite Ableitung kann man einfach die Schrödingergleichung<br />
ψ ′′<br />
n = −k n ψ n (2.49)<br />
benutzen. Um die vierte Ableitung auszudrücken, setzt man zunächst ebenfalls die Schrödingergleichung<br />
ein (also ψ n<br />
′′′′ = −(k n ψ n ) ′′ ) <strong>und</strong> nähert die verbleibende zweite Ableitung<br />
durch den entsprechenden Differenzenquotienten<br />
ψ ′′<br />
n<br />
Dies führt auf die Näherung<br />
= ψ n+1 − 2ψ n + ψ n−1<br />
h 2 + O(h 2 ) . (2.50)<br />
ψ ′′′′<br />
n = (−k n ψ n ) ′′ ≃ − k n+1ψ n+1 − 2k n ψ n + k n−1 ψ n−1<br />
h 2 . (2.51)<br />
Diese Näherung wird nun in die Gleichung (2.48) eingesetzt, wobei die Terme O(h 6 )<br />
vernachlässigt werden. Man erhält auf diese Weise<br />
ψ n+1 + ψ n−1<br />
= 2ψ n − h 2 k n ψ n − h2<br />
12 (k n+1ψ n+1 + k n−1 ψ n−1 ) + h2<br />
6 k nψ n + O(h 6 ) , (2.52)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2.2 Partielle Differentialgleichungen 23<br />
Abbildung 2.4: Suchen der Gr<strong>und</strong>zustandsenergie eines anharmonischen Oszillators mit Hilfe des<br />
Numerov-Verfahrens. Je genauer der Eigenwert eingegrenzt wird, desto später divergiert<br />
die Wellenfunktion. Durch den Vorzeichenwechsel kann der Eigenwert iterativ<br />
eingegrenzt werden, wobei die Maschinengenauigkeit Grenzen setzt.<br />
also eine Gleichung, die nach ψ n+1 – den in einer Iteration jeweils nächsten zu berechnenden<br />
Wert – aufgelöst werden kann:<br />
ψ n+1<br />
≃ 2ψ n (1 − 5h2<br />
12 k n) − ψ n−1 (1 + h2<br />
12 k n−1)<br />
1 + h2<br />
12 k n+1<br />
(2.53)<br />
Das Numerov-Verfahren ist also eine zweistufige lineare Iteration. Als Anfangsbedingungen<br />
wählt man<br />
ψ 0 = 1, ψ 1 = 1<br />
<strong>für</strong> symmetrische Lösungen<br />
ψ 0 = 0, ψ 1 = h <strong>für</strong> antisymmetrische Lösungen (2.54)<br />
Die erste Anfangsbedingung beschreibt eine symmetrische Lösung mit ψ(0) = 1 <strong>und</strong><br />
ψ ′ (0) = 0 während die zweite Anfangsbedingung eine Lösung mit ψ(0) = 0 <strong>und</strong> der<br />
Steigung ψ ′ (0) = 1 beschreibt. Mit diesen Anfangsbedingungen generiert der Algorithmus<br />
eine approximative Lösung der Schrödingergleichung, die anschließend noch normiert<br />
werden muss. Man beachte außerdem, dass die erzeugten ψ n reell sind. Das ist nicht<br />
überraschend, da die zeitunabhängige Schrödingergleichung kein i mehr enthält, also<br />
selbst reell ist <strong>und</strong> damit reelle Lösungsfunktionen zulassen muss.<br />
Woraus ergibt sich aber nun die Quantisierung der Energie E in Potentialen wie z.B. in<br />
Gl. (2.43)? Hier kommt die Randbedingung ins Spiel, derzufolge die Wellenfunktion <strong>für</strong><br />
große x verschwinden muss, weil dort die Wahrscheinlichkeit ein Teilchen zu finden gegen<br />
Null geht:<br />
lim ψ(x) = 0 . (2.55)<br />
x→±∞<br />
Da das Numerov-Verfahren als solches diese Randbedingung nicht kennt, kommt es zu<br />
einer Verletzung der Randbedingung, sobald die Energie E nicht genau auf einen Eigenwert<br />
eingestellt ist, <strong>und</strong> zwar divergiert in diesem Fall ψ n <strong>für</strong> große n exponentiell. In der<br />
Praxis ist es auf einem Computer sogar unmöglich, den Eigenwert genau zu treffen: Jede<br />
geringste Abweichung in den Nachkommastellen wird irgendwann so stark verstärkt, dass<br />
ψ n exponentiell divergiert.<br />
Allerdings ändert sich das Vorzeichen der Divergenz in Abhängigkeit von E. Für Energien<br />
unterhalb der Gr<strong>und</strong>zustandsenergie 0 < E < E 0 strebt ψ n → +∞, im Intervall<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
24 Differentialgleichungen<br />
E 0 < E < E 1 dann nach −∞, im nächsten Intervall wieder nach +∞ <strong>und</strong> so fort.<br />
Man kann dieses alternierende Vorzeichen benutzen, um so die Eigenwerte sukzessive zu<br />
approximieren (siehe Abb. 2.4).<br />
Bemerkung: Die approximative Bestimmung der Eigenwerte geschieht ähnlich wie die<br />
numerische Bestimmung von Nullstellen einer Funktion. Sei dazu sgn(E) das Vorzeichen der<br />
Divergenz in Abhängigkeit von E. Zunächst wählt man ein Energieintervall [E min, E max],<br />
in dem genau ein Vorzeichenwechsel stattfindet, d.h. sgn(E min) = −sgn(E max). Dieses<br />
Intervall wird halbiert bei E c<br />
:= (E min + E max)/2 <strong>und</strong> das Vorzeichen an dieser Stelle<br />
ermittelt. Ist sgn(E min) = sgn(E c), so liegt der Eigenwert nicht in der linken Hälfte <strong>und</strong><br />
wir setzen E min := E c, andernfalls setzen wir E max := E c. Dieser Prozess wird so lange<br />
wiederholt, bis die Größe des Intervalls die Maschinengenauigkeit erreicht.<br />
Der eindimensionale harmonische Oszillator eignet sich hervorragend, um die abgeschätzten<br />
Energieeigenwerte zu überprüfen. Für gerade Wellenfunktionen erwartet man die<br />
Eigenwerte 1 2 , 5 2 , 9 2 , . . . <strong>und</strong> entsprechend <strong>für</strong> die ungeraden Wellenfunktionen 3 2 , 7 2 , 11 2 . . . .<br />
2.2.5 Zeitabhängige Schrödingergleichung – Modenzerlegung<br />
Im vorherigen Abschnitt haben wir die stationären Lösungen der Schrödingergleichung<br />
bestimmt, bei denen die Wahrscheinlichkeitsdichte, also das Betragsquadrat der Wellenfunktion,<br />
zeitunabhängig ist. Noch interessanter ist es aber, die zeitabhänige Schrödingergleichung<br />
i ˙ψ(x, t) = ( − 2<br />
2m ∇2 + V (x) ) ψ(x, t) . (2.56)<br />
mit einem gegebenen Anfangszustand ψ(x, t)| t=0 := ψ(x, 0) zu untersuchen. Was passiert<br />
mit einem Teilchen, das als Wellenpaket mit einem bestimmten mittleren Impuls dem<br />
Potential ausgesetzt wird? Wird es näherungsweise schwingen wie ein klassisches Teilchen?<br />
Wie wird es an den Potentialwänden reflektiert? Eine numerische Methode, mit<br />
der diese Fragen beantwortet werden können, ist die sogenannte Modenzerlegung. Diese<br />
Methode setzt voraus, dass das zuvor behandelte stationäre Problem lösbar ist, dass also<br />
die Energieeigenwerte E i <strong>und</strong> die dazugehörigen stationären Wellenfunktionen ψ i (x) zur<br />
Verfügung stehen. Eine andere Methode, die von dieser Voraussetzung unabhängig ist,<br />
wird im folgenden Abschnitt besprochen.<br />
Methode der Modenzerlegung<br />
Die Methode der Modenzerlegung 3 (engl. mode decomposition) funktioniert folgendermaßen.<br />
Wiederum beschränken wir uns weiterhin auf ein Teilchen in einem eindimensionalen<br />
Potential <strong>und</strong> setzen voraus, dass das stationäre Eigenwertproblem Hψ = Eψ<br />
gelöst ist, dass also die Eigenfunktionen ψ n (x) <strong>und</strong> die dazugehörigen Energieeigenwerte<br />
E n bekannt sind. Die Idee besteht nun darin, dass man den Anfangszustand ψ(x, 0) als<br />
Linearkombination der Eigenfunktionen<br />
ψ(x, 0) = ∑ n<br />
a n ψ n (x) (2.57)<br />
3 Unter einer Mode versteht man in der <strong>Physik</strong> eine Eigenfunktionen, man spricht z.B. von den Schwingungsmoden<br />
eines mechanischen Systems. Eine Nullmode ist eine Eigenfunktion zum Eigenwert Null.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2.2 Partielle Differentialgleichungen 25<br />
mit zu bestimmenden Koeffizienten a n ∈ C darstellt. Weil die Zeitabhängigkeit jeder<br />
Eigenfunktion (vgl. Gl. (2.41)) durch ψ(⃗x, t) = e −iωt ψ(⃗x) gegeben ist, ist dann die volle<br />
zeitabhängige Lösung durch<br />
ψ(x, t) = ∑ n<br />
a n e −iωnt ψ n (x) (2.58)<br />
gegeben, wobei E n = ω n ist. Diese Lösung erfüllt automatisch die Randbedingungen,<br />
da bereits jede der stationären Wellenfunktionen die Randbedingungen respektiert. Hat<br />
man also die Koeffizienten a n bestimmt, so steht einem sofort die zeitabhängige Lösung<br />
in Form einer Summe bzw. Reihe über die Eigenmoden zur Verfügung.<br />
Bestimmung der Koeffizienten a n<br />
Gl. (2.57) kann als lineares Gleichungssystem <strong>für</strong> die Koeffizienten a n interpretiert werden.<br />
Die Lösung dieses linearen Gleichungssystems ist allerdings sehr einfach. Da H<br />
hermitesch ist, sind nicht nur die Eigenwerte reell, sondern auch die (normierten) Eigenvektoren<br />
paarweise orthogonal: 4<br />
Daraus folgt<br />
∫ +∞<br />
−∞<br />
dx ψ ∗ n(x)ψ m (x) = δ n,m . (2.59)<br />
∫ +∞<br />
−∞<br />
dx ψ ∗ (x, 0)ψ m (x) = ∑ n<br />
∫ +∞<br />
−∞<br />
dx a n ψ ∗ n(x)ψ m (x) = ∑ n<br />
a n δ n,m , (2.60)<br />
also<br />
a n =<br />
∫ +∞<br />
−∞<br />
dx ψ ∗ (x, 0)ψ n (x) . (2.61)<br />
Beispiel Potentialtopf<br />
Wir demonstrieren nun die Modenzerlegung am Beispiel des eindimensionalen unendlich<br />
hohen Potentialtopfs<br />
{<br />
0 falls |x| <<br />
1<br />
2<br />
V (x) =<br />
. (2.62)<br />
∞ falls |x| ≥ 1 2<br />
Die Eigenfunktionen lauten<br />
ψ n (x) =<br />
{ √<br />
2 cos(nπx) wenn n ungerade<br />
√<br />
2 sin(nπx) wenn n gerade<br />
(2.63)<br />
mit den dimensionslosen Eigenenergien<br />
E n = n 2 π 2 n = 1, 2, . . . . (2.64)<br />
4 Der Einfachheit halber nehmen wir hier an, dass keine Entartungen vorliegen. Bei Entartungen sind die<br />
Eigenvektoren in den entsprechenden Unterräumen zu orthogonalisieren, z.B. mit dem Schmidt’schen<br />
Verfahren.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
26 Differentialgleichungen<br />
Die Eigenfunktionen sind reell, so dass man nicht komplex konjugieren muss. Bestimmt<br />
man mit Hilfe von Gl. (2.61) die Koeffizienten a n , so ist die zeitabhängige Lösung durch<br />
ψ(x, t) =<br />
+<br />
∞∑<br />
a 2m exp ( −iπ 2 (2m) 2 t ) sin ( 2mπx )<br />
m=1<br />
∞∑<br />
a 2m−1 exp ( −iπ 2 (2m − 1) 2 t ) cos ( (2m − 1)πx )<br />
m=1<br />
gegeben, wobei gerade <strong>und</strong> ungerade Anteile getrennt wurden. In der Praxis bestimmt<br />
man allerdings nicht unendlich viele Koeffizienten a n , sondern bricht die Reihe nach<br />
einem bestimmten n max ab <strong>und</strong> approximiert auf diese Weise den Anfangszustand durch<br />
eine Superposition endlich vieler Fourier-Moden. Im folgenden Mathematica R○ -Fragment<br />
werden beispielsweise die ersten 25 Moden eines Wellenpakets berücksichtigt:<br />
psi[n_, x_] := Sqrt[2]*If[EvenQ[n], Sin[n Pi x], Cos[n Pi x]];<br />
Energie[n_] := n^2 Pi^2;<br />
sigma = 0.03; k = 10; nmax = 25;<br />
psi0[x_] := E^(I k x) E^(-(x^2/(2 sigma^2)));<br />
Do[a[n] = Integrate[psi0[x]*psi[n, x], {x, -(1/2), 1/2}], {n, 1, nmax}];<br />
Psi[x_, t_] := Sum[(a[n]*psi[n, x])*E^(I*Energie[n]*t), {n, 1, nmax}];<br />
Plot3D[Abs[Psi[x, t]]^2, {x, -(1/2), 1/2}, {t, 0, 0.022},<br />
PlotRange -> All, PlotPoints -> 30]<br />
In diesem Beispiel wurde die Anfangsbedingung<br />
ψ(x, 0) = e ikx e − 1<br />
2σ 2 x2 (2.65)<br />
benutzt. Der zweite Faktor beschreibt ein bei x = 0 zentriertes Wellenpaket in Form<br />
einer Gausßglocke mit der Breite σ. Durch Multiplikation mit einer ebenen Welle (erster<br />
Faktor) bekommt das Teilchen einen Impuls p = k, also eine Geschwindigkeit v = k/m.<br />
Mit Hilfe der Modenzerlegung lässt sich also untersuchen, wie ein solches Wellenpaket,<br />
das als quantenmechanisches Pendant eines lokalisierten klassischen Teilchens aufgefasst<br />
werden kann, an der Wand des Potentialtopfs reflektiert wird.<br />
Die Ausgabe des oben angegebenen Codes ist in Abb. 2.5 zu sehen. Es ist erstaunlich,<br />
dass ein so einfaches Problem derart komplexe Lösungen besitzt. Klar zu erkennen ist das<br />
anfängliche Wellenpaket bei t = 0. Weil verschiedene Fourier-Komponenten dieses Wellenpakets<br />
mit verschiedenen Geschwindigkeiten propagieren, zerfließt dieses Wellenpaket<br />
<strong>und</strong> wird schließlich durch ein Interferenzphänomen an den Wänden reflektiert.<br />
2.2.6 Zeitabhängige Schrödingergleichung – Numerische Integration<br />
Die zuvor beschriebene Methode der Eigenmodenzerlegung setzt zum einen voraus, dass<br />
man die Eigenfunktionen der stationären Schrödingergleichung kennt <strong>und</strong> zum zweiten,<br />
dass man die Anfangsbedingung in diesen Eigenfunktionen entwickeln kann, also das<br />
lineare Problem auf praktische Weise lösbar ist. Nur wenige Beispiele, unter ihnen der<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2.2 Partielle Differentialgleichungen 27<br />
Abbildung 2.5: Lösung der zeitabhängigen Schrödingergleichung mit Hilfe der Modenzerlegung <strong>für</strong> ein<br />
freies Teilchen in einem Potentialtopf, das anfangs als Wellenpaket mit einem Impuls<br />
in der Mitte des Topfes platziert wird.<br />
Potentialtopf <strong>und</strong> der harmonische Oszillator, lassen sich so behandeln. Um allgemeinere<br />
Probleme zu behandeln sind numerische Verfahren erforderlich, mit der die Zeitentwicklung<br />
in diskretisierter Form direkt konstruiert wird.<br />
Direkte Bestimmung mit Mathematica R○<br />
Die neueren Versionen von Mathematica R○<br />
Differentialgleichungen direkt zu lösen<br />
sind in der Lage, bestimmte lineare partielle<br />
Man erhält eine Interpolationsfunktion, also eine Menge diskreter Punkte, die untereinander<br />
durch geeignete interpolierende Kurvensegmente verb<strong>und</strong>en sind. Eine 3D-Ausgabe<br />
wie in Abb. 2.5 erhält man dann mit dem Befehl<br />
Plot3D[Abs[f[t, x] /. erg[[1]]]^2, {x, -(1/2), 1/2}, {t, 0, 0.022},<br />
PlotPoints -> 100, PlotRange -> {0, 1}]<br />
Der Vorteil einer solchen direkten Bestimmung ist die einfache Bedienung. Demgegenüber<br />
steht eine gewisse Undurchschaubarkeit der internen Abläufe <strong>und</strong> damit eine erschwerte<br />
Beurteilung der Ergebnisse.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
28 Differentialgleichungen<br />
Abbildung 2.6: Integration der zeitabhängigen Schrödingergleichung in einem eindimensionalen Potentialtopf.<br />
Links: Bei Vorgabe einer Anfangsbedingung (rot) <strong>und</strong> einer Randbedigung<br />
(blau) beschreibt die Schrödingergleichung die Zeitentwicklung der Wellenfunktion<br />
(gelber Farbverlauf). Rechts: Diskretisierung des Problems auf einem Rechner.<br />
Die diskretisierte Differentialgleichung setzt sechs benachbarte Stützstellen, die wie<br />
ein 3x2-Legostein angeordnet sind, in eine lineare Beziehung. Dieser ‘Legostein’ kann<br />
beliebig verschoben werden.<br />
Unitärer Integrationsalgorithmus<br />
Wie integriert man die dimensionslose Schrödingergleichung<br />
i∂ t ψ(x, t) = (−∂ 2 x + V (x))ψ(x, t) (2.66)<br />
numerisch? Zunächst diskretisiert man die Wellenfunktion<br />
ψ(x, t) −→ ψ j←Ortsindex<br />
n←Zeitindex := ψ(j dx, n dt) (2.67)<br />
wobei dx = 1/N <strong>und</strong> dt die (nicht-infinitesimalen) Diskretisierungsintervalle in Raum<br />
<strong>und</strong> Zeit sind. Dabei laufe der Ortsindex j von 0 bis N, man hat also N + 1 Stützstellen<br />
pro Reihe.<br />
Danach ist die DGL auf geeignete Weise zu diskretisieren. Der erste cheap guess wäre<br />
die Ersetzung der partiellen Ableitungen durch<br />
∂ t ψ(x, t) −→ ψj n+1 − ψj n<br />
+ O(dt 2 ) (2.68)<br />
dt<br />
∂xψ(x, 2 t) −→ ψj+1 n − 2ψn j + ψn<br />
j−1<br />
dx 2 + O(dx 3 ) (2.69)<br />
Die so diskretisierte DGL verknüpft die Stützstellen (n, j), (n + 1, j), (n, j ± 1) <strong>und</strong><br />
(n + 1, j ± 1), gleitet also wie ein 3x2 Legostein über das Gitter (siehe Abb. 2.6). Diese<br />
naive Herangehensweise führt aber zu erheblichen Problemen:<br />
(a) Im Gegensatz zu den am Anfang dieses Kapitels behandelten gewöhnlichen Differentialgleichungen<br />
liegt hier kein reines Anfangswert, sondern ein kombiniertes<br />
Anfangs- <strong>und</strong> Randwertproblem vor (siehe Abb. 2.6). Um eine neue horizontale<br />
Reihe zu berechnen, die aus N + 1 Stützstellen von 0..N numerierten Punkten besteht,<br />
kann dieser Legostein N − 2 Positionen einnehmen; da man also nur N − 1<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2.2 Partielle Differentialgleichungen 29<br />
Gleichungen pro Zeitschritt zur Verfügung hat, müssen zwei Werte vorgegeben werden,<br />
<strong>und</strong> dies geschieht durch die Dirchlet-Bedingung ψj 0 = ψN j = 0 am linken <strong>und</strong><br />
am rechten Rand. Das Problem besteht darin, dass die beiden Stützstellen weit<br />
voneinander entfernt sind, man kann deshalb nicht die neue Reihe durch einfaches<br />
Rastern von links nach rechts erzeugen.<br />
(b) Die Schrödingergleichung −iψ(x, t) = Hψ(x, t) hat die besondere Eigenschaft,<br />
dass die Wahrscheinlichkeitsdichte ρ(x, t) = ψ(x, t)ψ ∗ (x, t) mit ∫ ∞<br />
−∞<br />
dx ρ(x, t) = 1<br />
normiert bleibt. Diese Normierung hat den Rang einer Erhaltungsgröße <strong>und</strong> wird<br />
durch die Hermitezität des Hamiltonoperators H = H † gewährleistet. In der formalen<br />
Lösung <strong>für</strong> einen endlichen Zeitschritt<br />
ψ(x, t + dt) = U(dt)ψ(x, t) mit U(dt) = exp(−iHt) (2.70)<br />
entspricht dieser Eigenschaft die Unitarität des Zeitentwicklungsoperators U, d.h.<br />
UU † = U † U = 1. Beim Euler-Verfahren werden nun die höheren Terme der Exponentialfunktion<br />
vernachlässigt, also<br />
U(dt) = exp(−iHt) ≃ (1 − iHdt) + O(dt 2 ). (2.71)<br />
Wie man sich aber leicht überzeugen kann, ist diese Taylornäherung nicht unitär,<br />
denn (1−iHdt)(1−iHdt) † = 1−H 2 dt 2 ≠ 1. Folglich wird die Normierung während<br />
der Integration weglaufen <strong>und</strong> zu ernsthaften Schwierigkeiten führen. Ähnliches gilt<br />
auch <strong>für</strong> andere Runge-Kutta-Verfahren.<br />
Wir benötigen also einen speziellen Algorithmus, der diese beiden Probleme löst (siehe<br />
[1]). Das Problem der Wahrscheinlichkeitserhaltung bekommt man dadurch in den<br />
Griff, dass man die exakte Zeitentwicklung in zwei Halbschritte aufteilt <strong>und</strong> diese dann<br />
separat entwickelt:<br />
exp(−iHdt) = ( exp(iHdt/2) ) −1 exp(−iHdt/2) (2.72)<br />
≃ (1 + iHdt/2) −1 (1 − iHdt/2) + O(dt 3 ) , (2.73)<br />
also U(dt) ≃ A −1 A † mit A = 1 + iHdt/2. Wegen [A, A † ] = 0 gilt<br />
UU † = (A −1 A † ) † (A −1 A † ) = A(A −1 ) † A −1 A † = (A −1 ) † AA −1 A † = 1. (2.74)<br />
d.h. der so konstruierte diskrete Zeitschritt ist exakt unitär, also auf dem Rechner nur<br />
durch die Maschinengenauigkeit begrenzt. Schließlich kann man die inverse Matrix in der<br />
Gleichung U(dt) ≃ A −1 A † durch Multiplikation mit A von links loswerden <strong>und</strong> erhält<br />
AUψ = A † ψ, also ein lineares Gleichungssystem der Form<br />
(1 + iHdt/2)ψ j n+1 = (1 − iHdt/2)ψj n . (2.75)<br />
Das Problem der Randbedingungen löst man folgendermaßen. Man diskretisiert zunächst<br />
den Hamiltonoperator durch<br />
(Hψ) j n = − 1<br />
dx 2 (ψj+1 n − 2ψn j + ψn j−1 + V j ψn) j (2.76)<br />
<strong>und</strong> setzt das Ergebnis in die Formel (2.75) ein. Man erhält<br />
(<br />
ψ j+1<br />
n+1 + 2i dx2<br />
)<br />
dt − V j dx 2 − 2 ψ j n+1 + ψj−1 n+1 = (2.77)<br />
−ψn j+1 +<br />
(2i dx2<br />
)<br />
dt + V j dx 2 + 2 ψn j − ψn j−1 .<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
30 Differentialgleichungen<br />
Bezeichnet man die rechte Seite dieser Gleichung als Ω n j <strong>und</strong> interpretiert man den oberen,<br />
also den räumlichen Index als Komponente eines N + 1-dimensionalen Vektors, so lässt<br />
sich diese Gleichung kompakt in der Form<br />
T ⃗ ψ n+1 = ⃗ Ω n (2.78)<br />
schreiben, wobei T eine tridiagonale (N + 1) × (N + 1)-Matrix ist. Um das Problem zu<br />
lösen, muss T invertiert werden. Da<strong>für</strong> gibt es in der linearen Algebra Standardverfahren,<br />
die auf folgende Weise algorithmisch umgesetzt werden:<br />
Zunächst beginnt man mit einem linearen Ansatz<br />
ψ j+1<br />
n+1 = aj ψ j n+1 + bj n (2.79)<br />
<strong>für</strong> alle zulässigen n, j mit Koeffizienten a j <strong>und</strong> b j n, die man als einen zeitunabhängigen<br />
Vektor ⃗a <strong>und</strong> einen zeitabhängigen Vektor ⃗ b n interpretieren kann. Einsetzen dieses<br />
Ansatzes in Gl. (2.77) führt auf<br />
[<br />
] −1<br />
ψ j n+1 = 2 + V j dx 2 − 2i dx2 [<br />
]<br />
dt − aj ψ j−1<br />
n+1 + bj n − Ω j n . (2.80)<br />
Diese Gleichung ist linear in ψ j n+1<br />
wir den Index von j nach j − 1:<br />
<strong>und</strong> ψj−1 n+1 . Um sie mit Gl. (2.79) zu vergleichen, shiften<br />
ψ j n+1 = aj ψ j−1<br />
n+1 + bj−1 n (2.81)<br />
Durch einen Koeffizientenvergleich dieser beiden Gleichungen gelangt man zu<br />
a j = 2 + V j dx 2 − 2i dx2<br />
dt − 1<br />
a j−1 (2.82)<br />
b j = Ω j n + bj−1 n<br />
. (2.83)<br />
aj−1 Es handelt sich dabei um zwei Rekursionsformeln. Die erste ist autonom <strong>und</strong> ermöglicht<br />
die Bestimmung von a j . Die zweite Rekursionsformel setzt dieses Ergebnis voraus<br />
<strong>und</strong> ermöglicht damit die Bestimmung von b j n. Was noch fehlt ist die Verankerung der<br />
Rekursion, also Werte <strong>für</strong> a 1 <strong>und</strong> b 1 n.<br />
Um diese Werte zu erhalten, setzt man den Legostein an den linken Rand <strong>und</strong> nutzt aus,<br />
dass ψ 0 n = 0 ist. Die entsprechende Gleichung lautet<br />
ψn+1 2 +<br />
(2i dx2<br />
)<br />
dt − V 1 dx 2 − 2 ψn+1 1 = Ω 1 n. (2.84)<br />
Ein enerneuter Vergleich mit dem Ansatz liefert<br />
a 1 = 2 + V 1 dx 2 − 2i dx2<br />
dt , b1 n = Ω 1 n. (2.85)<br />
Mit diesen Startwerten können alle a j <strong>und</strong> b j n rekursiv berechnet werden. Die gesuchte<br />
Wellenfunktion ist dann durch<br />
ψ j n+1 = ψj+1 n+1 − bj n<br />
a j (2.86)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2.2 Partielle Differentialgleichungen 31<br />
gegeben. Es handelt sich hier ebenfalls um eine Rekursionsformel, die aber im Gegensatz<br />
zu den vorherigen Rerkursionsformeln von rechts nach links läuft <strong>und</strong> am rechten Rand<br />
mit ψn<br />
N = 0 verankert ist. Durch die gegenläufigen Rekursionen wird gewissermaßen eine<br />
Kommunikation der beiden Ränder ermöglicht.<br />
Ein C++-Programm könnte folgendermaßen aussehen. Zunächst benötigt man eine Funktion,<br />
die aus dem aktuellen ⃗ ψ den aktuellen Vektor ⃗ Ω berechnet:<br />
void BerechneOmega (void)<br />
{<br />
for (int j=2; j
32 Differentialgleichungen<br />
von der Wellenzahl ab. Da ein Wellenpaket eine Superposition von Anteilen mit verschiedener<br />
Wellenzahl ist, besteht es aus Komponenten mit verschiedenen Geschwindigkeiten,<br />
die folglich auseinanderlaufen. Je stärker das Teilchen am Anfang lokalisiert ist, desto<br />
größer ist die Unschärfe im Impuls, also in der Geschwindigkeitsvariation der sich überlagernden<br />
Bestandteile.<br />
Lichtblitze zerfließen nicht, da die Gruppengeschwindigkeit von Licht im Vakuum unabhängig<br />
von der Wellenzahl immer gleich c ist. Alle überlagerten Komponenten bewegen<br />
sich also gleich schnell.<br />
2.3 Aufgaben<br />
Aufgabe 2.1<br />
(Einfaches Beispiel einer Runge-Kutta-Integration)<br />
Betrachten Sie einen Spiegel, der ein von rechts entlang der x-Achse einfallendes paralleles<br />
Licht exakt in den Ursprung des Koordinatensystems reflektiert. Der Spiegel schneidet<br />
die y-Achse bei (x, y) = (0, 1).<br />
a) Bestimmen Sie die Differentialgleichung <strong>und</strong> lösen Sie das Problem analytisch. Wegen<br />
der Radialsymmetrie kann man sich dabei auf die xy-Ebene beschränken.<br />
b) Schreiben Sie ein C-Programm. das eine Euler-Iteration von x=0 bis x=1 durchführt.<br />
c) Führen Sie das Programm <strong>für</strong> Schrittweiten h=1, 0.1, 0.01 <strong>und</strong> 0.001 aus <strong>und</strong><br />
bestimmen Sie den absoluten Fehler im Vergleich zum analytischen Ergebnis.<br />
d) Wiederholen Sie b) <strong>und</strong> c) mit einem Runge-Kutta-Verfahren 2. Ordnung.<br />
Aufgabe 2.2 (Vergleich verschiedener Runge-Kutta-Verfahren)<br />
Gegeben sei die gewöhnliche Differentialgleichung 1. Ordnung<br />
ẏ(t) = −y(t) 3<br />
mit der Anfangsbedingung y(0) = 1.<br />
(a) Lösen Sie die Differentialgleichung analytisch. Wie groß ist y(4) ?<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2.3 Aufgaben 33<br />
(b) Iterieren Sie die DGL mit den Verfahren RK1 (=Euler), RK2 <strong>und</strong> RK4. Tragen<br />
Sie die gemessenen Abweichungen vom analytischen Resultat zur Zeit t = 4 als<br />
Funktion der Schrittweite h doppellogarithmisch auf (bitte Grafikdatei abgeben).<br />
Aufgabe 2.3<br />
(Runge-Kutta-Integration eines Pendels)<br />
Integrieren Sie mit Hilfe des Runge-Kutta-Verfahrens zweiter Ordnung die Bewegungsgleichung<br />
eines Pendels<br />
¨ϕ(t) + sin ϕ(t) = 0.<br />
• (a)] Bestimmen Sie mit einer hinreichend kleinen konstanten Schrittweite h die<br />
Schwingungsperiode T eines anfänglich horizontal ausgelenkten Pendels, d.h.<br />
˙ϕ(0) = 0,<br />
ϕ(0) = π/2.<br />
(b) Numerische Fehler des Runge-Kutta-Algorithmus führen zu einer Verletzung der<br />
Energieerhaltung. Vergleichen Sie die Energien (hier E = 1 2 ˙ϕ2 − cos ϕ) zum Startzeitpunkt<br />
(horizontal ausgelenkt) <strong>und</strong> nach einer Schwingungsperiode <strong>und</strong> tragen<br />
Sie die festgestellte Energiedifferenz grafisch als Funktion der Schrittweite h doppellogarithmisch<br />
auf.<br />
(c) Starten Sie nun das Pendel in der Nähe des oberen Totpunkts ϕ(0) = π − ɛ <strong>und</strong><br />
finden Sie numerisch heraus, wie die Schwingungsperiode T im Limes ɛ → 0 divergiert.<br />
Passen Sie dazu die Schrittweite während der Iteration dynamisch an <strong>und</strong><br />
begründen Sie Ihr Vorgehen.<br />
Aufgabe 2.4<br />
(Lorenz-Attraktor (Vorübung zu chaotischen Systemen))<br />
Gegeben sei das folgende nichtlineare Differentialgleichungssystem 1. Ordnung<br />
Ẋ(t) = a(Y (t) − X(t))<br />
Ẏ (t) = X(t)(b − Z(t)) − Y (t) (2.87)<br />
Ż(t) = X(t)Y (t) − cZ(t)<br />
mit den Konstanten a = 10, b = 28, c = 8/3.<br />
a) Schreiben Sie ein Programm lorenz.cc, das dieses System mit der Runge-Kutta-<br />
Methode zweiter Ordnung integriert <strong>und</strong> während der Integration die Werte von<br />
X(t) <strong>und</strong> Z(t) in eine Datei mit dem Namen kurve.dat schreibt.<br />
b) Lassen Sie dieses Programm mit der Anfangsbedingung X(0) = Y (0) = Z(0) =<br />
0.001 <strong>und</strong> der Schrittweite h = 0.01 bis zur Zeit t = 100 laufen.<br />
c) Stellen Sie die in kurve.dat gespeicherte Kurve mit Hilfe eines Grafikprogramms,<br />
z.B. mit xmgrace dar. Abgabe: Grafikdatei, z.B. kurve.jpg<br />
d) Wiederholen Sie nun Teil b) mit der ’infinitesimal’ geänderten Anfangsbedingung<br />
X(0) = Y (0) = Z(0) = 0.001000000001 <strong>und</strong> untersuchen Sie, wie sich das Ergebnis<br />
ändert. Zu welcher Zeit t ist die Abweichung dem Betrag nach zum ersten Mal<br />
größer als 1 ?<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
34 Differentialgleichungen<br />
Aufgabe 2.5<br />
(Leapfrog-Algorithmus)<br />
Zeigen Sie, dass das in Gl. (2.30) beschriebene leapfrog-Iterationsverfahren im Gegensatz<br />
zur formal sehr ähnlichen Euler-Iteration ein Verfahren zweiter Ordnung ist. Zeigen Sie<br />
außerdem, dass dieser Algorithmus symplektisch ist, also das differentielle Phasenraumvolumen<br />
bei einem Iterationsschritt exakt erhalten bleibt.<br />
Aufgabe 2.6<br />
(Fehlerbestimmung eines Mehrschrittverfahrens)<br />
Schreiben Sie ein Programm zur Integration der gewöhnlichen Differentialgleichung<br />
ẏ(t) = −y(t)<br />
mit der Anfangsbedingung y(0) = 1 mit Hilfe des Dreischrittverfahrens nach Adams <strong>und</strong><br />
Bashforth (siehe Gl. 2.32):<br />
y j+1<br />
( 23<br />
= y j + h<br />
12 f(x j, y j ) − 16<br />
12 f(x j−1, y j−1 ) + 5 )<br />
12 f(x j−2, y j−2 )<br />
Untersuchen Sie mit diesem Programm die Abweichungen von der analytischen Lösung<br />
in Abhängigkeit von der Schrittweite. Welche Fehlerordnung besitzt das Verfahren, d.h.<br />
mit welcher Potenz von h skaliert der Fehler?<br />
Aufgabe 2.7<br />
(Spektrum des Wasserstoffatoms)<br />
Die dreidimensionale zeitunabhängige Schrödingergleichung ( − 2<br />
2m ∇2 + V (r) ) ψ(⃗x) =<br />
Eψ(⃗x) geht mit dem Produktansatz ψ(⃗x) = u(r)<br />
r<br />
Y (θ, φ) in die Radialgleichung<br />
[<br />
∂r 2 l(l + 1)<br />
−<br />
r 2 + 2m ( )]<br />
2 E − V (r) u(r) = 0<br />
über. Dabei ist l = 0, 1, 2, . . . die Drehimpulsquantenzahl, {r, θ, φ} sind Kugelkoordinaten<br />
<strong>und</strong> Y (θ, φ) bezeichnet die sogenannten Kugelflächenfunktionen Y l,m . Ziel ist der Aufgabe<br />
ist es, die dimensionslose Radialgleichung im Coulomb-Potential V (r) = −1/r, d.h.<br />
mit Hilfe des Numerov-Verfahrens zu lösen.<br />
[<br />
∂r 2 l(l + 1)<br />
−<br />
r 2 + 2 ]<br />
r + 2E u(r) = 0<br />
(a) Betrachten Sie den Fall l = 0 (s-Orbitale). Wie verhält sich die Wellenfunktion u(r)<br />
<strong>für</strong> r → 0, wenn 2E gegenüber dem Potentialterm vernachlässigt werden kann?<br />
Lösen Sie dazu die DGL <strong>für</strong> E = 0 mit Mathematica R○ <strong>und</strong> führen Sie eine Taylor-<br />
Entwicklung erster Ordnung um r = 0 durch (z.B. mit dem Befehl Series[]).<br />
(b) Schreiben Sie ein Programm zur Integration der dimensionslosen Radialgleichung<br />
nach dem Numerov-Verfahren mit der Diskretisierung r n = hn, indem Sie die Stützstellen<br />
u 1 , u 2 gemäß der in (a) ermittelten Näherung initialisieren. Bestimmen Sie<br />
die ersten vier Energieeigenwerte.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
2.3 Aufgaben 35<br />
Betrachten Sie danach den Fall l = 1, 2, 3 (pdf-Orbitale). Wie Sie sehen werden, ist in<br />
diesem Fall der Schritt (a) in Aufgabe 6 nicht mehr durchführbar 5 . Um dieses Problem<br />
zu umgehen, startet man die Integration <strong>für</strong> große r <strong>und</strong> iteriert dann mit dem Numerov-<br />
Verfahren rückwärts von rechts nach links.<br />
(a) Berechnen Sie zunächst, wie die Wellenfunktion u(r) <strong>für</strong> große r → ∞ abfällt.<br />
(b) Initialisieren Sie nun die beiden letzten Stützstellen u N−1 <strong>und</strong> u N−2 gemäß dieser<br />
asymptotischen Lösung.<br />
(c) Iterieren Sie rückwärts von n = N − 3 bis n = 1 <strong>und</strong> bestimmen Sie das Vorzeichen<br />
von u 1 . Ähnlich wie beim Vorwärtsalgorithmus wechselt dieses Vorzeichen, sobald<br />
E einen Eigenwert passiert. Bestimmen Sie mit diesem Kriterium die ersten 4 − l<br />
Energieeigenwerte.<br />
5 Zwar geht die Wellenfunktion <strong>für</strong> r → 0 immer noch gegen Null, oszilliert dabei aber auf ungewöhnliche<br />
weise, wobei die Nullstellen wie log(r) angeordnet sind. In diesem Fall lässt sich eine Taylor-Näherung<br />
wie in Aufgabe 6a nicht mehr durchführen.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
3 Chaos<br />
Chaos (griechisch χαoζ) bezeichnet einen Zustand vollständiger Unordnung <strong>und</strong> steht<br />
damit im Gegensatz zu Kosmos, dem griechischen Begriff <strong>für</strong> Ordnung.<br />
In der klassischen <strong>Physik</strong> benutzt man diesen Begriff im Zusammenhang mit nichtlinearen<br />
dynamischen Systemen, welche die Eigenschaft haben, dass kleine Änderungen in<br />
den Anfangsbedingungen exponentiell verstärkt werden, so dass solche Änderungen schon<br />
nach kurzer Zeit einen makroskopischen <strong>und</strong> in der Regel nicht vorhersagbaren Effekt haben.<br />
Diese unvorhersehbare Reaktion auf kleine Änderungen in den Anfangsbedingungen<br />
wird in der populären Literatur oft als Schmetterlingseffekt bezeichnet: Bereits der Flügelschlag<br />
eines Schmetterlings reicht demnach aus, um das zukünftige Wettergeschehen<br />
global zu verändern.<br />
Bei der Untersuchung chaotischer Systeme unterscheidet man im wesentlichen zwei Forschungsgebiete:<br />
• Deterministisches Chaos:<br />
Hier untersucht man klassische chaotische Systeme, die einer deterministischen<br />
Zeitentwicklung gehorchen. Dazu gehören nichtlineare Bewegungsgleichungen <strong>und</strong><br />
iterative chaotische Abbildungen, aber auch Modellsysteme, deren Geometrie der<br />
Randbedingungen zu einem chaotischen Verhalten führen.<br />
• Quantenchaos:<br />
Diese Forschungsrichtung befasst sich mit Quantensystemen, die im klassischen<br />
Grenzfall chaotisch wären. Dabei stellt man die Frage, wie sich diese chaotischen<br />
Eigenschaften im Verhalten des Quantensystems niederschlagen, fragt also nach<br />
den Signaturen des Chaos im Rahmen der Quantenmechanik.<br />
Die unterschiedliche Herangehensweise lässt sich am besten am Beispiel eines sogenannten<br />
Billards illustrieren (siehe Abb. 3.1). Unter einem Billard (engl. billiard) versteht<br />
man in der Chaosforschung eine Wand mit einer vorgegebenen Form, an der Teilchen<br />
Abbildung 3.1: Deterministische Trajektorie eines Teilchens in einem Stadion-Billard.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
38 Chaos<br />
Abbildung 3.2: Quantenbillard: Hochangeregte Lösungen der stationären Schrödingergleichung in einem<br />
Stadionbillard mit Dirichlet-Randbedingungen.<br />
nach der üblichen Regel “Einfallswinkel=Ausfallswinkel” reflektiert werden. Schon bei<br />
einem Billard, das die Form eines Fußballstadions hat, ist die Trajektorie eines solchen<br />
Teilchens im allgemeinen hochgradig irregulär. Die Klassifikation solcher Bahnen wäre<br />
eine mögliche Fragestellung im Rahmen des deterministischen Chaos.<br />
Als quantenmechanisches Pendant betrachtet man einen unendlichen Potentialtopf, der<br />
die Form des Billards hat, löst also die stationäre Schrödingergleichung mit der Randbedingung<br />
ψ(x, t) = 0 auf dem Rand des Billards. Die Gr<strong>und</strong>zustandswellenfunktion <strong>und</strong><br />
die ersten angeregten Zustände mit niedriger Energie lassen zunächst nicht erkennen,<br />
ob das entsprechende klassische System chaotisch ist, sie sehen optisch wie “normale”<br />
Wellenfunktionen aus. Die hochangeregten Zustände (siehe Abb. 3.2) lassen jedoch leicht<br />
erkennen, ob das betreffende System chaotisch ist oder nicht. Dabei gilt folgende Faustregel:<br />
Nichtchaotische Systeme haben meist hochsymmetrische Wellenfunktionen, während<br />
chaotische Systeme wie Quantenbillards durch Wellenfunktionen mit einer irregulären<br />
Struktur gekennzeichnet sind.<br />
Quantenchaos lässt sich auch am Spektrum des Hamiltonoperators erkennen. Dabei untersucht<br />
man vor allem die statistische Verteilung der Differenzen ∆E i = E i+1 −E i aufeinanderfolgender<br />
Energieeigenwerte. Nichtchaotische Systeme verhalten sich so, als wären<br />
die Energieniveaus statistisch unabhängig voneinander, d.h. man erhält eine Poisson-<br />
Verteilung. In chaotischen Systemen scheinen sich dagegen die Energieniveaus gegenseitig<br />
abzustoßen, so dass man andere Statistiken erhält. Der Unterschied tritt besonders auffällig<br />
zutage, wenn das Spektrum von einem Parameter (z.B. dem Längenverhältnis der<br />
Billardseiten) abhängt. Bei Variation dieses Parameters beobachtet man in einem nichtchaotischen<br />
System Niveaukreuzungen (engl. level crossings), in chaotischen Systemen<br />
dagegen eine Niveauabstoßung (engl. level repulsion).<br />
Es stellt sich heraus, dass die Statistik der Energiedifferenzen nicht von den Details des<br />
jeweils untersuchten chaotischen Systems abhängt, sondern nur von dessen Symmetrien,<br />
insbesondere der Zeitumkehrinvarianz. Die gleichen Statistiken erhält man auch, wenn<br />
man völlig zufällige Matrizen mit diesen Symmetrieeigenschaften auswürfelt <strong>und</strong> deren<br />
Eigenwertdifferenzen untersucht. Auf diese Weise unterscheidet man verschiedene Uni-<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
3.1 Chaotische mechanische Systeme 39<br />
versalitätsklassen wie z.B. das Gaußsche orthogonale Ensemble (GOE) <strong>und</strong> das Gaußsche<br />
unitäre Ensemble (GUE). Die Theorie der Zufallsmatrizen ist ein eigenes Teilgebiet des<br />
Quantenchaos, auf das hier nicht näher eingegangen werden soll. Vielmehr wollen wir<br />
uns im folgenden auf einfache klassische Systeme aus der Mechanik beschränken.<br />
Wie wir sehen werden, gibt es auch Systeme mit gemischten Eigenschaften, die in bestimmten<br />
Bereichen ihres Phasenraums chaotisch, in anderen dagegen nichtchaotisch<br />
sind.<br />
3.1 Chaotische mechanische Systeme<br />
3.1.1 Mimimale Phasenraumdimension<br />
In diesem Abschnitt wollen wir uns mit mechanischen Systemen befassen, die eine chaotische<br />
Dynamik aufweisen. Solche Systeme können wie üblich im Rahmen der Lagrangeschen<br />
oder Hamiltonschen Mechanik beschrieben werden. Dabei haben die Hamiltonschen<br />
Bewegungsgleichungen<br />
˙q i = ∂H(p 1, . . . , p N , q 1 , . . . , q N )<br />
∂p i<br />
, ṗ i = − ∂H(p 1, . . . , p N , q 1 , . . . , q N )<br />
∂q i<br />
(3.1)<br />
als Differentialgleichungen erster Ordnung in der Zeit den Vorteil, dass man sich die<br />
Dynamik als eine Trajektorie im 2N-dimensionalen Phasenraum vorstellen kann, die<br />
dem durch die partiellen Ableitungen von H gegebenen Vektorfeld<br />
( ) ( )<br />
d ⃗q ∇p<br />
= H (3.2)<br />
dt ⃗p −∇ q<br />
folgt, d.h. jedem Punkt im Phasenraum ist eine eindeutige Richtung zugeordnet, entlang<br />
der sich die Trajektorie bei fortschreitender Zeit bewegen wird. Trajektorien können sich<br />
also nicht schneiden (mit Ausnahme von Endpunkten der Dynamik, wo das System zum<br />
Stillstand kommt). Chaotisches Verhalten, also das Ausfüllen des Phasenraums durch<br />
irreguläre Trajektorien, ist deshalb in einem zweidimensionalen Phasenraum unmöglich,<br />
weil sich dazu die Trajektorien schneiden müssten. Mechanische Systeme mit nur einem<br />
Freiheitsgrad können aus diesem Gr<strong>und</strong> kein Chaos aufweisen. Erst in einem dreidimensionalen<br />
Phasenraum hat die Dynamik genügend Freiheit, um ein irreguläres Knäuel von<br />
sich nicht schneidenden Trajektorien bilden zu können.<br />
3.1.2 Lyapunov-Exponenten<br />
Das vielleicht bekannteste <strong>und</strong> einfachste mechanische System mit chaotischen Eigenschaften<br />
ist das Doppelpendel. Bei genügend starker anfänglicher Auslenkung weist es<br />
ein unvorhersehbares irreguläres Verhalten auf. Wie man in Abbildung 3.3 sehen kann,<br />
werden selbst kleinste Variationen in der Anfangsbedingung nach kurzer Zeit exponentiell<br />
verstärkt. Für einen solchen exponentiellen Verstärkungsmechanismus ist es typisch,<br />
dass die Abweichungen <strong>für</strong> eine gewisse Zeitspanne praktisch nicht wahrnehmbar sind,<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
40 Chaos<br />
Abbildung 3.3: Chaotische Bewegung eines Doppelpendels. Die Abbildung zeigt den Winkel θ 1 als<br />
Funktion der Zeit <strong>für</strong> zwei fast identische Anfangsbedingungen, die sich um eine relative<br />
Abweichung von 10 −4 voneinander unterscheiden. Wie man sehen kann, sind<br />
die beiden Trajektorien (rot <strong>und</strong> blau) <strong>für</strong> eine gewisse Zeit nahezu identisch, bis sie<br />
plötzlich stark unterschiedlich werden. Zur besseren Sichtbarkeit ist die Differenz blau<br />
unterlegt.<br />
dann aber sehr plötzlich so stark werden, dass die Trajektoren auseinanderlaufen <strong>und</strong><br />
kurz darauf völlig unabhängig voneinander werden.<br />
Wie quantifiziert man die Chaotizität eines gegebenen Systems? Dies geschieht mit den<br />
sogenannten Lyapunov-Exponenten. Ein Lyapunov-Exponent λ hat die Dimension [s −1 ]<br />
<strong>und</strong> definiert die Zeitskala, auf der sich eine Variation in den Anfangsbedinungen exponentiell<br />
wie e λt als Funktion der Zeit entwickelt. Ein positiver Lyapunov-Exponent steht<br />
<strong>für</strong> exponentielle Verstärkung, also chaotisches Verhalten, während ein negativer Wert<br />
anzeigt, dass benachbarte Trajektorien konvergieren.<br />
Ein gegebenes System hat nicht nur einen einzigen, sondern im allgemeinen ein ganzes<br />
Spektrum von Lyapunov-Exponenten {λ 1 , λ 2 , . . .}. Dies lässt sich am besten am Beispiel<br />
eines 2N-dimensionalen Hamiltonschen System erklären, dessen Phasenraum zur besseren<br />
Anschaulichkeit in Abb. 3.4 zweidimensional dargestellt wird. Zu sehen ist links<br />
oben ein kleiner Kreis (d.h. eigentlich eine 2N-dimensionale Kugel), der eine Menge infinitesimal<br />
unterschiedlicher Anfangsbedingungen symbolisieren soll. Die Hamiltonschen<br />
Gleichungen transportieren nun während der Zeitentwicklung jeden Punkt dieser Kugel<br />
auf einer wohldefinierten Trajektorie. Wie wird sich die Form dieser Kugel ändern?<br />
Offenbar wird sie kontinuierlich deformiert werden <strong>und</strong> nach längerer ein kompliziertes<br />
Aussehen annehmen. Allerdings wird das entstehende Gebilde stets zusammenhängend<br />
bleiben. Darüber hinaus ist aufgr<strong>und</strong> des Satzes von Lioville das Volumen erhalten.<br />
Bemerkung: Satz von Liouville: In der Hamiltonschen Mechanik spielt die symplektische<br />
Gruppe der kanonischen Transformationen eine zentrale Rolle. Ähnlich wie das normale<br />
Skalarprodukt unter Drehungen im R 3 invariant ist, gibt es im Phasenraum das sogenannte<br />
symplektische Produkt, das unter kanonischen Transformationen invariant ist. Die von<br />
den Hamiltonschen Bewegungsgleichungen vorgegebene Zeitentwicklung ist ebenfalls eine<br />
kanonische Transformation. Da sich das Phasenraumvolumen als symplektisches Produkt<br />
schreiben lässt, ist es deshalb eine Erhaltungsgröße.<br />
Für kleine Zeiten ist die Deformation der Kugel Taylor-entwickelbar. In niedrigster Ordnung<br />
dieser Multipolentwicklung nimmt die Kugel deshalb zunächst die Form eines El-<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
3.1 Chaotische mechanische Systeme 41<br />
Abbildung 3.4: Vereinfachte Darstellung der Zeitentwicklung eines infinitesimalen anfangs kugelförmigen<br />
Phasenraumvolumens (siehe Text).<br />
lipsoiden an. Dieser Ellipsoid besitzt bestimmte senkrecht aufeinander stehenden Hauptachsen,<br />
die in der Abbildung als gestrichelte Linien angedeutet sind. Die Ausdehnung<br />
ξ i (t) des Ellipsoiden entlang der i-ten Hauptachse nimmt mit der Zeit exponentiell zu<br />
bzw. ab:<br />
ξ(t) = ξ(0)e λ it . (3.3)<br />
wobei die λ i die Lyapunov-Exponenten sind. Ein positiver Lyapunov-Exponentent zeigt<br />
divergente, also auseinanderlaufende Trajektorien an, während ein negativer Lyapunov-<br />
Exponent Konvergenz signalisiert. Da das Phasenraumvolumen V ∝ ∏ i ξ i erhalten ist,<br />
muss die Summe aller Lyapunov-Exponenten verschwinden.<br />
Wie bereits erwähnt gibt es also nicht nur einen, sondern ein ganzes Spektrum von<br />
Lyapunov-Exponenten. Wenn man im üblichen Jargon von dem Lyapunov-Exponenten<br />
spricht, so meint man in der Regel den größten <strong>und</strong> damit dominierenden Exponenten<br />
in diesem Spektrum. Ein positiver maximaler Lyapunov-Exponent gilt als Indikator <strong>für</strong><br />
chaotisches Verhalten.<br />
Die Definition des Lyapunov-Exponenten ist lokal, da sie sich auf eine infinitesimale Deformation<br />
des Phasenraumvolumens bezieht. Die Lyapunov-Exponenten können also an<br />
verschiedenen Orten im Phasenraum unterschiedliche Werte annehmen <strong>und</strong> dadurch <strong>für</strong><br />
eine gegebene Trajektorie implizit zeitabhängig werden. Da die Trajektorie in chaotischen<br />
Systemen nicht vorhersagbar ist <strong>und</strong> bei fortschreitender Zeit große Teile des Phasenraums<br />
gleichmäßig überstreicht, bietet es sich an, den mittleren Lyapunov-Exponenten<br />
als Zeitmittel über die chaotische Trajektorie zu definieren<br />
1<br />
λ i := lim<br />
t→∞ t ln dl i<br />
dr , (3.4)<br />
wobei dl i die Änderung entlang der i-ten Hauptachse bei Variation der Anfangsbedingung<br />
um dr ist. Für die mittelere Divergenz der Trajektorien ist der größte dieser Mittelwerte<br />
ausschlaggebend.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
42 Chaos<br />
Abbildung 3.5: Skizze eines getriebenen gedämpften Pendels.<br />
3.1.3 Getriebenes gedämpftes Pendel<br />
Das einfachste mechanische System mit chaotischen Eigenschaften ist ein getriebenes gedämpftes<br />
Pendel (siehe Abb. 3.5). Die Dynamik dieses Systems ist durch die gewöhnliche<br />
Differentialgleichung<br />
¨φ(t) + r ˙φ(t) + sin φ(t) = a cos ω D t (3.5)<br />
vorgegeben. Dabei ist φ(t) der Auslenkungswinkel, r der dimensionslose Reibungskoeffizient,<br />
a die Antriebsamplitude <strong>und</strong> ω D die Antriebsfrequenz. In diesem System konkurrieren<br />
drei unterschiedliche Zeitskalen, nämlich die Reibungszeit 1/r, die Schwingungsdauer<br />
des freien ungedämpften Pendels 2π/ω 0 <strong>und</strong> die Umdrehungsdauer des Antriebs 2π/ω D .<br />
Der Systemzustand wird nicht nur allein durch φ(t) <strong>und</strong> ˙φ(t) charakterisiert, sondern auch<br />
durch die Phasenlage bezogen auf den äußeren Antrieb. Der resultierende Phasenraum ist<br />
also nicht zwei- sondern dreidimensional, eine notwendige Voraussetzung <strong>für</strong> chaotisches<br />
Verhalten. Als dritte Dimension des Phasenraums kann man das Argument des Cosinus<br />
auf der rechten Seite der Differentialgleichung wählen, d.h.<br />
θ := ω D t . (3.6)<br />
Mit der Definition ω(t) := ˙φ(t) überführen wir nun die Differentialgleichung 2. Ordnung<br />
in ein System von Differentialgleichungen erster Ordnung:<br />
⎛ ⎞ ⎛<br />
⎞<br />
φ(t)<br />
ω(t)<br />
d<br />
⎝ ⎠ = ⎝<br />
⎠ (3.7)<br />
dt<br />
ω(t)<br />
θ(t)<br />
−rω(t) − sin φ(t) + a cos θ(t)<br />
ω D<br />
Wegen der Dämpfung “vergisst” das System nach einer gewissen Zeit seine eigene Geschichte<br />
<strong>und</strong> geht deshalb in ein von den Anfangsbedinungen unabhängiges Verhalten<br />
über, so dass man ohne Beschränkung der Allgemeinheit von einem anfangs ruhenden<br />
Pendel ausgehen kann. Iteriert man diese Differentialgleichung beispielsweise <strong>für</strong> r = 0.24<br />
<strong>und</strong> ω D = 2 3 ω 0, so zeigt das System <strong>für</strong> kleine Antriebsamplituden 0 < a < 0.5 nach einiger<br />
Zeit ein reguläres Verhalten, indem es der äußeren Anregung mit einer bestimmten<br />
Phasenverschiebung folgt. Die Lösung ist in diesem Fall einfach-periodisch <strong>und</strong> besitzt<br />
eine in der (φ, ω)-Ebene ellipsenförmige Trajektorie. Bei größeren Werten a ≈ 0.63 beobachtet<br />
man zunächst eine Symmetriebrechung mit einer plötzlich geänderten Phasenlage,<br />
d.h. das Pendel schwingt zwar noch im Takt mit der äußeren Angerung, aber die<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
3.1 Chaotische mechanische Systeme 43<br />
Abbildung 3.6: Zweidimensionale Projektion des Phasenraums eines getriebenen gedämpften Pendels<br />
mit ω D = 2 ω0. Für kleine Antriebsamplituden folgt das Pendel der äußeren Kraft<br />
3<br />
<strong>und</strong> beschreibt eine kreisförmige Trajektorie im Phasenraum (hier nicht gezeigt). Für<br />
größere Amplituden kommt es zu einer Periodenvervielfachung mit Überschwingern,<br />
hier auf der linken Seite am Beispiel einer Periodenverdreifachung <strong>für</strong> a = 0.73 gezeigt.<br />
Erhöht man die Amplitude nur geringfügig, wird die Dynamik chaotisch, wobei die<br />
Trajektorien (blaue Kurven) den Phasenraum kompakt ausfüllen (siehe rechte Abbildung).<br />
Die entsprechenden Poincaré-Schnitte sind als rote Punkte dargestellt.<br />
Spiegelsymmetrie bezüglich φ → −φ wird spontan gebrochen, d.h. die Ellipse wird deformiert.<br />
Erhöht man a weiter, beobachtet man bei a ≈ 0.66 eine Periodenverdopplung,<br />
d.h. das Pendel folgt der äußeren Anregung periodisch nach jeweils zwei Umdrehungen.<br />
Bei a ≈ 0.67 wird die Trajektorie schließlich chaotisch <strong>und</strong> füllt einen schmalen Streifen<br />
im Phasenraum aus. Bei a ≈ 0.68 kommt es zu Überschlägen des Pendels <strong>und</strong> der<br />
Phasenraum wird kompakt ausgefüllt.<br />
Man könnte meinen, dass dieses voll entwickelte Chaos bei einer weiteren Erhöhung<br />
der Amplitude a erhalten bleibt. Dies ist jedoch nicht so, vielmehr geht das System<br />
bei a ≈ 0.73 wieder in ein reguläres dreifach-periodisches Verhalten über. Bei weiterer<br />
Erhöhung von a finden weitere Periodenverdopplungen statt (6,12,...) bis man wieder<br />
ein chaotisches Fenster erreicht. Bei a = 0.85 befindet sich beispielsweise ein siebenfachperiodisches<br />
Fenster.<br />
Dieser Wechsel zwischen mehrfach-periodischen <strong>und</strong> chaotischen Parameterbereichen ist<br />
sehr typisch <strong>für</strong> nichtlineare Systeme mit wenigen Freiheitsgraden.<br />
3.1.4 Attraktoren <strong>und</strong> Poincaré-Schnitte<br />
Unter voll entwickeltem Chaos versteht man eine Dynamik im Phasenraum ohne Periodizität,<br />
sodass die Trajektorie immer neue Gebiete des Phasenraums überstreicht <strong>und</strong><br />
diesen mehr <strong>und</strong> mehr ausfüllt. Stellt man den Phasenraum in einer zweidimensionalen<br />
Projektion auf dem Bildschirm dar, erreicht die Trajektorie auf diese Weise nach <strong>und</strong> nach<br />
alle Pixel in einem bestimmten Bereich <strong>und</strong> füllt diesen flächig aus (siehe blaue Punkte<br />
auf der rechten Seite von Abb. 3.6). An dieser kompakt ausgefüllten Projektion lässt sich<br />
allerdings nicht erkennen, ob der ursprüngliche (höherdimensionale) Phasenraum kompakt<br />
ausgefüllt wird oder nicht, denn selbst ein sehr luftiges Knäuel von Trajektorien<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
44 Chaos<br />
Abbildung 3.7: Poincaré-Schnitt: Durch periodische stroboskopische Blitze wird der dreidimensionale<br />
Phasenraum in zweidimensionale Flächen “geschnitten”. Die als blaue Linie dargestellte<br />
Trajektorie des Systems durchdringt diese Flächen an bestimmten Punkten, die rot<br />
markiert sind. Die Menge aller im Limes t → ∞ erzeugten roten Punkte ist das Bild<br />
des Attraktors im Poincaré-Schnitt (siehe Text).<br />
kann einen kompakten Schatten werfen.<br />
Um diese Frage zu beantworten, eigenen sich sogenannte Poincaré-Schnitte. Die Idee<br />
dabei ist, nicht die komplette Trajektorie des Teilchens in der Projektionsebene zu zeichnen,<br />
sondern nur einzelne Projektionsbilder zu bestimmten periodischen Zeitpunkten,<br />
vergleichbar mit der stroboskopischen Beleuchtung durch eine Blitzlampe. Zu welchen<br />
Zeitpunkten der Blitz ausgelöst wird, ist frei wählbar <strong>und</strong> vom jeweiligen Problem abhängig.<br />
Im Fall des gedämpften Pendels eignet sich die Kreisfrequenz des äußeren Antriebs<br />
ω D mit frei wählbarer Phasenlage, während man bei anderen Problemen beispielsweise<br />
den Nulldurchgung einer Phasenraumkoordinate wählen könnte. Durch diese Wahl wird<br />
festgelegt, in welcher Weise der Phasenraum stroboskopisch “durchgeschnitten” wird.<br />
Löst man im Fall des gedämpften Pendels den Blitz jeweils beim Phasenwinkel Null des<br />
äußeren Antriebs aus <strong>und</strong> markiert die entsprechenden Punkte der Trajektorie als rote<br />
Pixel auf dem Bildschirm, erhält man bei voll entwickeltem Chaos ein eigenartiges Gebilde,<br />
das auf der rechten Seite von Abb. 3.6 zu sehen ist. Dieses Gebilde bezeichnet man<br />
als Poincaré-Schnitt. Ein Poincaré-Schnitt dient also zur effektiven Dimensionsreduktion<br />
der Projektion des Phasenraums durch stroboskopische Beleuchtung.<br />
Startet man das Programm erneut mit anderen Anfangsbedinungen, so stellt man fest,<br />
dass sich (abgesehen von vereinzelten roten Punkten) sehr schnell immer wieder das selbe<br />
Gebilde von roten Punkten entsteht. Der Poincaré-Schnitt zeigt also, dass<br />
• selbst bei voll entwickeltem Chaos der Phasenraum nicht kompakt ausgefüllt wird.<br />
• dass die von den Trajektorien ausgefüllte Teilmenge im Limes t → ∞ unabhängig<br />
von den Anfangsbedingungen ist.<br />
Das bedeutet, dass das System seine Anfangsbedingung nach einiger Zeit “vergisst” <strong>und</strong><br />
seine Trajektorie nach hinreichend langer Zeit von einer Teilmenge von Trajektorien “angezogen”<br />
wird. Diese Teilmenge wird wegen dieser anziehenden Eigenschaft als Attraktor<br />
bezeichnet. Der Poincaré-Schnitt dient dazu, die Struktur dieses Attraktors qualitativ zu<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
3.2 Fraktale Eigenschaften seltsamer Attraktoren * 45<br />
Abbildung 3.8: Chaotische Abbildung: Die Trajektorie eines mechanischen Systems (blaue Linie) lässt<br />
sich interpretieren als sequentielle Anwendung einer Abbildungen f von Poincaré-<br />
Schnitt zu Poincaré-Schnitt (rote Pfeile). Es zeigt sich, dass schon sehr einfache nichtlineare<br />
Abbildungen wie z.B. die quadratische Abbildung ausreichen, um chaotisches<br />
Verhalten zu erzeugen.<br />
visualisieren. Anhand des Erscheinungsbildes unterscheiden folgende Arten von Attraktoren:<br />
Bewegungstyp Attraktortyp Poincaré-Schnitt<br />
einfach periodisch einfach geschlossene Trajektorie einzelner Punkt<br />
n-fach periodisch mehrfach geschlossene Trajektorie n Punkte<br />
chaotisch chaotischer Attraktor eindimensionale Kurve<br />
chaotisch seltsamer Attraktor fraktales Gebilde<br />
Insbesondere die seltsamen Attraktoren (engl. strange attractors) faszinieren die Chaosforscher.<br />
Der Poincaré-Schnitt ist in diesem Fall ein fraktales Gebilde, also eine Menge,<br />
die mehr ist als eine eindimensionale Linie, jedoch weniger als eine zweidimensionale<br />
Fläche.<br />
3.2 Fraktale Eigenschaften seltsamer Attraktoren *<br />
Ein Fraktal ist eine in den R n eingebettete Menge von Punkten mit einer nichttrivialen<br />
Struktur, die selbstähnliche Eigenschaften besitzt. Vergrößert man einen kleinen<br />
Teilbereich einer solchen Menge, erhält man immer wieder ein qualitativ ähnliches Erscheinungsbild.<br />
Die Menge ist also vereinfacht ausgedrückt invariant gegenüber Zoom-<br />
Operationen. Dies bedeutet, dass sie abgesehen von der Gesamtabmessung <strong>und</strong> ggf. einem<br />
unteren Cutoff (z.B. der Pixelgröße) keine typische Skala besitzt.<br />
... wird fortgesetzt.<br />
3.3 Chaotische iterative Abbildungen<br />
Die Bestimmung des Attraktors eines mechanischen Systems ist numerisch durchaus anspruchsvoll,<br />
denn man benötigt Tausende oder gar Millionen von Poincaré-Schnitten, die<br />
jeweils durch Runge-Kutta-Integration der Trajektorie zwischen den einzelnen Schnitten<br />
erzeugt werden müssen. Es stellt sich deshalb die Frage, ob diese komplizierte Prozedur<br />
wirklich notwendig ist, um Chaos zu erzeugen, oder ob es vereinfachte Modellsysteme<br />
gibt, die zwar nicht mit den bereits diskutierten identisch sind, jedoch qualitativ<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
46 Chaos<br />
gleichwertige Eigenschaften besitzen. Besonders elegant wäre es, wenn man zwischen den<br />
Poincaré-Schnitten keine DGL iterieren muss, sondern durch eine einfache Abbildung<br />
direkt von Schnitt zu Schnitt gelangt, also den jeweils nächsten roten Punkt als Funktion<br />
des vorherigen erhält (siehe Abb. 3.8). Die Frage ist nicht, ob eine solche chaotische<br />
iterative Abbildung existiert, denn die Integration nach Runge-Kutta selbst ist ja bereits<br />
eine wenn auch komplizierte Abbildung. Das Ziel ist es vielmehr, eine möglichst<br />
einfache (<strong>und</strong> damit numerisch schnelle) Abbildung zu finden, welche die Eigenschaften<br />
eines chaotischen Systems qualitativ reproduziert. Es zeigt sich, dass bereits eine einfache<br />
quadratische Abbildung dazu ausreicht.<br />
3.3.1 Quadratische Abbildung<br />
Fixpunkte<br />
Als einfachestes Beispiel einer solchen iterativen Abbildungsvorschrift betrachten wir die<br />
quadratische Abbildung<br />
f : R ↦→ R : f(x) = a − x 2 , (3.8)<br />
wobei a > 0 ein frei wählbarer reeller Parameter ist. Mit dieser Abbildung untersuchen<br />
die durch<br />
x n+1 = f(x n ) (3.9)<br />
vorgegebene Sequenz x 0 , x 1 , x 1 , . . . mit dem Startwert x 0 . Im Gegensatz zum gedämpften<br />
Pendel, welches zweidimensionale Poincaré-Schnitte mit den Koordinaten (φ n , ˙φ n )<br />
besitzt, hat man hier eindimensionale “Poincaré-Schnitte” mit der Koordinate x n . Wir<br />
wollen zunächst die einfach periodischen Lösungen identifizieren, die Fixpunkten (engl.<br />
fixed point) im Poincaré-Schnitt entsprechen, d.h. wir suchen die Fixpunkte der Gleichung<br />
f(x) = x . (3.10)<br />
Dazu ist lediglich eine quadratische Gleichung zu lösen. Die beiden Lösungen x ∗ ±, die wir<br />
mit einem Stern kennzeichnen wollen, lauten<br />
x ∗ ± = 1 2 (−1 ± √ 1 + 4a) . (3.11)<br />
Stabilitätsanalyse<br />
Zu jeder Fixpunktbestimmung gehört eine Stabilitätsanalyse, denn der beste Fixpunkt<br />
ist wertlos, wenn er unter dem Einfluss kleiner Abweichungen instabil ist, ähnlich wie ein<br />
auf der Spitze balancierender Bleistift.<br />
Eine Stabilitätsanalyse untersucht, wie sich eine infinitesimale Abweichung zu niedrigster<br />
nichtverschwindender Ordnung im Rahmen einer Taylor-Näherung zeitlich entwickelt, ob<br />
sie also gegen Null geht (stabiles Verhalten) oder verstärkt wird (instabiles Verhalten).<br />
In der Regel reicht es aus, die erste Ordnung der Taylor-Reihe zu untersuchen, womit<br />
man lineare, also lösbare Gleichungssysteme erhält. Wenn die betrachtete Ordnung keine<br />
Antwort liefert, also Abweichungen weder verstärkt noch dämpft, muss zur jeweils<br />
nächsthöheren Ordnung übergegangen werden.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
3.3 Chaotische iterative Abbildungen 47<br />
2<br />
2<br />
1<br />
f(x)=x<br />
1<br />
f(f(x))=x<br />
x*<br />
0<br />
x*<br />
0<br />
-1<br />
-1<br />
-2<br />
0 0,5 1 1,5<br />
a<br />
-2<br />
0 0,5 1 1,5<br />
a<br />
Abbildung 3.9: Fixpunkte der Abbildung f(x) = a − x 2 . Das linke Tableau zeigt die Lage der einfachen<br />
Fixpunkte f(x ∗ ) = x ∗ als Funktion des Parameters a im Bereich a > − 1 4 , in<br />
dem die Lösungen reell sind. Stabile Lösungen sind als durchgezogene Linien, instabile<br />
Lösungen dagegen gestrichelt in roter Farbe dargestellt. Das rechte Tableau zeigt<br />
die entsprechenden Lösungen der zweifach iterierten Abbildung f(f(x ∗ )) = x ∗ (siehe<br />
Text).<br />
Im Fall der quadratischen Abbildungen betrachten wir also nun eine infinitesimale Abweichung<br />
ɛ vom Fixpunkt x ∗ + bzw. x ∗ −:<br />
f(x ∗ ± + ɛ) = f(x ∗<br />
} {{<br />
±) + f ′ (x ∗<br />
}<br />
±)ɛ +O(ɛ 2 ) . (3.12)<br />
} {{ }<br />
=x ∗ ± ɛ ′<br />
Nach einer Iteration ist also aus der Abweichung ɛ in 1. Ordnung die Abweichung ɛ ′<br />
geworden. Offenbar ist der Fixpunkt stabil wenn |ɛ ′ | < |ɛ| ist, wenn also<br />
|f ′ (x ∗ ±)| < 1 (3.13)<br />
ist (ein häufiger Anfängerfehler besteht darin, die Betragsstriche zu vergessen). Im Fall<br />
der quadratischen Abbildung erhalten wir <strong>für</strong> den Fixpunkt x ∗ − die Ableitung<br />
f ′ (x ∗ −) = 1 + √ 1 + 4a > 1 , (3.14)<br />
d.h. dieser Fixpunkt ist immer instabil. Für den anderen Fixpunt erhalten wir entsprechend<br />
f ′ (x ∗ +) = 1 − √ 1 + 4a < 0 . (3.15)<br />
Hier ist die Ableitung also stets negativ. Sie ist außerdem vom Betrage kleiner als 1,<br />
sofern a < 3 4<br />
ist. Diese Resultate sind grafisch auf der linken Seite von Abb. 3.9 zusammengefasst.<br />
Bemerkung: Bei Fixpunkten mehrdimensionaler Abbildungen ⃗ f(⃗x) = ⃗x wird die Stabilitätsanalyse<br />
analog durchgeführt: Ist ⃗ɛ eine infinitesimale Abweichung vom Fixpunkt, so<br />
gilt in erster Näherung ⃗ f(⃗x ∗ + ⃗ɛ) = x ∗ + J⃗ɛ + O(ɛ 2 ), wobei J die Jacobi-Matrix mit den<br />
Matrixelementen J ij = ∂f i<br />
∂x j<br />
ausgewertet an der Stelle ⃗x = ⃗x ∗ ist. Ob die Abbildung stabil<br />
oder instabil ist, hängt dabei von der Orientierung von ⃗ɛ ab. Stellt man ⃗ɛ als Linearkombination<br />
der Eigenvektoren von J dar, so sind die Anteile, deren Eigenwerte vom Betrage<br />
kleiner als 1 sind, stabil, während die anderen Anteile instabil oder marginal sind. Die<br />
Stabilitätsanalyse besteht also darin, dass man die Eigenwerte der Jacobimatrix bestimmt.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
48 Chaos<br />
Mehrfachiteration<br />
Für a > 3 4<br />
wird der einzige stabile Fixpunkt der quadratischen Abbildung instabil. Ein<br />
ähnliches Phänomen hatten wir bereits beim gedämpften getriebenen Pendel beobachtet,<br />
– auch dort wurde bei Erhöhung der Anregungsamplitude die einfach periodische Lösung<br />
instabil, wobei es zu einer Periodenverdopplung kam. Im Poincaré-Schnitt führt dies zu<br />
einem alternierenden Springen zwischen zwei Punkten, d.h. die Dynamik kehrt erst nach<br />
zwei Schnitten zu ihrem Ausgangspunkt zurück.<br />
Um herauszufinden, ob die quadratische Abbildung ähnliche phänomenologische Eigenschaften<br />
besitzt, suchen wir nun nach Fixpunkten der zweifach iterierten Abbildung, also<br />
nach Lösungen der Gleichung<br />
f(f(x)) = x , (3.16)<br />
die, wie man leicht zeigen kann, einem Polynom vierten Grades entspricht:<br />
Dieses Polynom hat vier Nullstellen, nämlich<br />
x ∗ 1,2 = 1 2<br />
x 4 − 2ax 2 + x + a 2 − a = 0 (3.17)<br />
(<br />
−1 ±<br />
√<br />
1 + 4a<br />
)<br />
, x<br />
∗<br />
3,4 = 1 2<br />
(<br />
+1 ±<br />
√<br />
−3 + 4a<br />
)<br />
. (3.18)<br />
Die ersten beiden Lösungen sind mit den Fixpunkten (3.11) identisch, da jede Lösung<br />
von f(x ∗ ) = x ∗ auch eine Lösung von f(f(x ∗ )) = x ∗ mit gleichen Stabilitätseigenschaften<br />
sein muss. Hinzu kommen zwei neue Lösungen x ∗ 3,4 , die auf der rechten Seite von<br />
Abb. 3.9 dargestellt sind. Genau dort, wo der obere Ast der ursprünglichen Parabel instabil<br />
wird, kommt es zu einer Verzweigung in zwei neue Parabeln, zwischen denen das<br />
dynamische System hin <strong>und</strong> her springt. Eine solche Verzweigung wird als Bifurkation<br />
bezeichnet. Wegen ihrer typischen Form wird sie auch als Heugabel-Bifurkation (engl.<br />
pitchfork bifurcation) bezeichnet.<br />
Bemerkung: Es gibt neben dieser sogenannten Heugabel-<br />
Bifurkation weitere Bifurkationstypen wie z.B. die Sattelpunktsbifurkation,<br />
die Hopf-Bifurkation, die transkritische Bifukation oder<br />
die Flip-Bifurkation, auf die hier aber nicht näher eingegangen wird.<br />
Auch bei den Fixpunkten der zweifach iterierten Abbildung ist nun eine Stabilitätsanalyse<br />
durchzuführen. Man verfährt dabei genau so wie oben beschrieben mit dem einzigen<br />
Unterschied, dass nun die Ableitung der zweifach iterierten Abbildung f(f(x)) zu untersuchen<br />
ist. Eine einfache Rechnung ergibt<br />
∣<br />
d ∣∣∣x<br />
dx f(f(x)) = ( 1 ± √ 1 + 4a ) ∣<br />
2 d ∣∣∣x<br />
,<br />
∗ dx f(f(x)) = 4(1 − a) . (3.19)<br />
∗<br />
1,2 3,4<br />
Die Ableitungen an der Stelle x ∗ 1,2 sind die Quadrate der entsprechenden einfachen Ableitung<br />
in Gl. (3.14) <strong>und</strong> (3.15) <strong>und</strong> somit hat die zweifach iterierte Abbildung <strong>für</strong> diese<br />
Fixpunkte wie erwartet die gleichen Stabilitätseigenschaften wie die einfach iterierte Abbildung.<br />
Die Ableitungen <strong>für</strong> x ∗ 3,4 zeigen, dass die neuen Lösungen nur <strong>für</strong> a < 1.25 stabil<br />
sind. In der Tat werden wir sehen, dass an der Stelle a = 1.25 eine weitere Bifurkation<br />
stattfindet, die mit einer Periodenvervierfachung einhergeht.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
3.3 Chaotische iterative Abbildungen 49<br />
Grafische Darstellung der Bifurkationen<br />
Man kann die Bifurkationsfolge sehr einfach auf dem Bildschirm darstellen, indem man<br />
die Abbildung iteriert, die Werte x n gegen den Parameter a aufträgt <strong>und</strong> dabei a sehr<br />
langsam im Vergleich zur Stabilisierungszeitskala, also adiabatisch erhöht. Dies leistet<br />
der folgende kurze einfache Code:<br />
#include "standard"<br />
#include "xwindows"<br />
int main (void)<br />
{<br />
double a1=0.7, a2=2.0, a=a1, x=0.5; // Parameterbereich, Startwert<br />
const int F = 500;<br />
// Fenstergroesse<br />
XWindow W; W.Open(F,F,"Logistische Abbildung");<br />
while (a
50 Chaos<br />
Abbildung 3.10: Abstand ∆a n = a ∞−a n der n-ten Bifurkationsposition a n zum abgeschätzten Grenzwert<br />
a ∞ als Funktion von n. Die Datenpunkte liegen auf einer Geraden womit das<br />
exponentielle Verhalten bestätigt wird. Die Steigung der Regressionsgeraden (rot) ist<br />
m = −1.54.<br />
Sofort fällt auf, dass die Differenzen zwischen aufeinanderfolgenden Werten sehr schnell<br />
abnehmen, <strong>und</strong> zwar in etwa um einen konstanten Faktor. Das legt nahe, dass die Folge<br />
a 1 , a 2 , a 3 , . . . exponentiell gegen einen bestimmten Grenzwert a ∞ strebt. Diesen Grenzwert<br />
kann man näherungsweise ermitteln, indem man ∆a n = a ∞ − a n gegen n aufträgt<br />
<strong>und</strong> dabei a ∞ so einstellt, dass man eine Gerade erhält (siehe Abb. 3.10). Auf diese<br />
Weise kann man den Grenzwert anhand der obigen Daten mit a ∞ = 1.401155189092(1)<br />
abschätzen. Für die Steigung der Regressionsgerade erhält man m = −1.54.<br />
Die Tatsache, dass die Datenpunkte mit hoher Genauigkeit im log-lin-Plot auf einer<br />
Geraden liegen, legt nahe, dass die Bifurkationspunkte a n <strong>für</strong> große n in der Tat einem<br />
Exponentialgesetz folgen:<br />
a n ≃ a ∞ − ce mn = a ∞ − cδ −n , (3.20)<br />
wobei δ = e −m ≈ 4.65 ist. Die Zahl δ wird in der Literatur als Feigenbaum-Konstante<br />
bezeichnet.<br />
Bestimmung durch Differenzenquotienten<br />
Die oben beschriebene Abschätzung liefert drei Konstanten, nämlich den Grenzwert a ∞ ,<br />
die Amplitude c <strong>und</strong> die Feigenbaumkonstante δ. Setzt man allerdings die exponentielle<br />
Gesetzmäßigkeit (3.20) voraus, so kann man die Feigenbaumkonstante auch allein<br />
abschätzen. Dazu betrachtet man zunächst Differenzen der Form<br />
lim (a n+1 − a n ) = cδ −n−1 (1 − δ) , (3.21)<br />
n→∞<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
3.3 Chaotische iterative Abbildungen 51<br />
in denen der Offset a ∞ herausfällt. Weiterhin kann man die Amplitude c eliminieren,<br />
indem man aus diesen Differenzen <strong>für</strong> aufeinanderfolgende n einen Quotienten bildet:<br />
a n − a n−1<br />
lim<br />
=<br />
n→∞ a n+1 − a n<br />
δ(1 − δ)<br />
1 − δ<br />
= δ . (3.22)<br />
Die Feigenbaumkonstante δ lässt sich also abschätzen, indem man diese Quotienten gegen<br />
n aufträgt <strong>und</strong> die Daten <strong>für</strong> n → ∞ extrapoliert. Die Feigenbaumkonstante ist<br />
also nichts anderes als das asymptotische Verhältnis der Längen aufeinanderfolgender<br />
Parameterintervalle unterschiedlicher Periode.<br />
Universalität der Feigenbaumkonstante<br />
Entdeckt wurde die Feigenbaumkonstante nicht etwa von Mitchell Feigenbaum, sondern<br />
1977 von dem Marburger Theoretiker Siegfried Großmann (den viele von Ihnen von seinem<br />
Mathematischen Einführungskurs <strong>für</strong> die <strong>Physik</strong> kennen) <strong>und</strong> Stefan Thomae von<br />
der Uni Duisburg-Essen. Die wirkliche Bedeutung dieser Zahl wurde allerdings erst von<br />
dem amerikanischen Chaosforscher Mitchell Feigenbaum erkannt. Man erhält diese Zahl<br />
nämlich nicht nur <strong>für</strong> die quadratische Abbildung, sondern <strong>für</strong> jede eindimensionale nichtlineare<br />
Abbildung mit genau einem quadratischen (d.h. durch eine Parabel approximierbaren)<br />
Maximum. Der Wert der Feigenbaumkonstante ist also weitgehend unabhängig<br />
von der Wahl der Abbildung. Dieses Phänomen wird in der <strong>Physik</strong> mit dem Begriff der<br />
Universalität umschrieben. Die Feigenbaumkonstante ist heute mit hoher Genauigkeit<br />
bekannt:<br />
δ = 4.66920160910299067185320382... (3.23)<br />
Es wird bisweilen sogar behauptet, dass δ <strong>für</strong> die Chaosforschung eine ähnlich wichtige<br />
Rolle spiele wie π in der Geometrie.<br />
Bemerkung: Die beiden anderen Konstanten a ∞ <strong>und</strong> c sind dagegen nichtuniversell, d.h.<br />
sie nehmen <strong>für</strong> jede Abbildung andere Werte an.<br />
Verwandte Abbildungen<br />
In diesem Kapitel haben wir bislang die quadratische Abbildung x n+1 = a − x 2 n untersucht.<br />
Durch Umskalierung mittels x n = a˜x n erhält man die Abbildung<br />
˜x n+1 = 1 − a˜x 2 n , (3.24)<br />
die ebenfalls in zahlreichen Lehrbüchern untersucht wird. Eine andere populäre quadratische<br />
Abbildung ist die sogenannte logistische Abbildung, die ursprünglich ein demografisches<br />
Modell eingeführt wurde <strong>und</strong> in ihrer dimensionslosen Form durch<br />
˜x n+1 = r˜x n (1 − ˜x n ) (3.25)<br />
gegeben ist, wobei r der Kontrollparameter ist. Durch eine einfache lineare Transformation<br />
˜x n = xn r<br />
+ 1 2 geht diese Gleichung in (3.24) über, wobei a = r 2 ( r 2<br />
− 1) ist.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
52 Chaos<br />
Abbildung 3.11: Mandelbrotmenge (Apfelmännchen) in der komplexen Ebene. Die farbliche Abstufung<br />
außerhalb des schwarzen Konvergenzbereichs visualisiert, wie schnell die iterierte<br />
quadratische Abbildung divergiert [Quelle: Wikimedia].<br />
Nichtquadratische Abbildungen<br />
Die vielleicht einfachste eindimensionale nichtquadratische Abbildung mit chaotischen<br />
Eigenschaften lautet<br />
x n+1 = a − |x| µ (3.26)<br />
mit einem frei wählbaren Exponenten µ. Diese Gleichung geht <strong>für</strong> µ = 2 in die zuvor<br />
betrachtete quadratische Gleichung über. Für µ ≠ 2 erhält man eine ähnliche chaotische<br />
Phänomenologie, jedoch mit einer anderen Feigenbaumkonstante, die jezt von µ abhängig<br />
ist, da das Maximum der Funktion nicht mehr durch eine Parabel approximierbar ist.<br />
3.3.3 Mandelbrotmenge<br />
Die Mandelbrotmenge ist die Menge der komplexen Zahlen<br />
c ∈ C, <strong>für</strong> welche die durch die Abbildung<br />
z n+1 = c + z 2 n (3.27)<br />
iterierte Folge von komplexen Zahlen konvergent ist. Man<br />
erhält das sogenannte Apfelmännchen, das einen fraktalen<br />
Rand besitzt. Die Abbildung ist mit der oben untersuchten<br />
quadratischen Abbildung bis auf Vorzeichenwechsel z n =<br />
−x n identisch. Die Mandelbrotmenge ist also gewissermaßen<br />
die Erweiterung des Feigenbaum-Problems auf die komplexe<br />
Ebene (siehe nebenstehende Abbildung).<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
3.4 Aufgaben 53<br />
3.4 Aufgaben<br />
Aufgabe 3.1<br />
(Integration einer chaotischen Differentialgleichung)<br />
(a) Schreiben Sie ein Programm zur Integration der in der Vorlesung behandelten Differentialgleichung<br />
des chaotischen Pendels<br />
¨φ + r ˙φ + sin φ = a cos(ω D t).<br />
mit einem Runge-Kutta-Verfahren zweiter Ordnung (oder höher).<br />
(b) Iterieren Sie die Differentialgleichung <strong>für</strong> r = 1/4 <strong>und</strong> ω D = 2/3 <strong>und</strong> plotten Sie<br />
den Poincaré-Schnitt, d.h. die Punkte (φ(t j ), ˙φ(t j )) <strong>für</strong> t j = 2πj/ω D <strong>und</strong> j ∈ N <strong>für</strong><br />
die Amplitude a = 0.7.<br />
(c) Starten Sie nun das Programm mit a = 0 <strong>und</strong> erhöhen Sie während der Iteration die<br />
Amplitude a adiabatisch (d.h. extrem langsam im Vergleich zur Pendeldynamik,<br />
indem Sie a bei jedem Iterationsschritt um einen sehr kleinen Wert erhöhen), bis Sie<br />
den Wert a = 2 erreichen. Tragen Sie währenddessen die Punkte (x, y) = (a, φ(t j ))<br />
grafisch auf. In dieser Darstellung sollte der Wechsel von chaotischem <strong>und</strong> nichtchaotischem<br />
Verhalten als Funktion von a erkennbar werden.<br />
Aufgabe 3.2<br />
(Doppelpendel)<br />
Gegeben sei ein reibungsfreies Doppelpendel mit gleichen Massen m 1 = m 2 = m <strong>und</strong><br />
gleichen Längen l 1 = l 2 = l. Der Einfachheit halber können Sie den dimensionslosen Fall<br />
m = 1, l = 1 betrachten.<br />
(a) Geben Sie die Lagrangefunktion L(φ 1 , ˙φ 1 , φ 2 , ˙φ 2 ) an, stellen Sie die entsprechenden<br />
Bewegungsgleichungen auf <strong>und</strong> lösen Sie diese Gleichungen nach ¨φ 1 <strong>und</strong> ¨φ 2 auf.<br />
(b) Überführen Sie dieses System von zwei gekoppelten Differentialgleichungen zweiter<br />
Ordnung in ein System von vier Differentialgleichungen erster Ordnung <strong>und</strong><br />
schreiben Sie ein Programm zur Integration mit Runge-Kutta 4. Ordnung.<br />
(c) Integrieren Sie diese Differentialgleichungen mit den Anfangsbedingungen<br />
φ 1 (0) = π , φ 2 (0) = π/2 , ˙φ1 (0) = ˙φ 2 (0) = 0<br />
mit der Schrittweite h = 0.01 <strong>und</strong> plotten Sie die Lösung von φ 1 (t) <strong>und</strong> φ 2 (t) als<br />
zwei Kurven in einer Abbildung im Bereich von t = 0 bis t = 50.<br />
(d) Chaotisches Verhalten äußert sich in einer exponentiellen Verstärkung von kleinen<br />
Abweichungen in den Anfangsbedingungen. Um dies zu überprüfen, verändern Sie<br />
nun die Anfangsbedingung φ 1 (0) = π + 0.001 <strong>und</strong> vergleichen das Ergebnis mit<br />
(c). Schätzen Sie grob die Zeit ab, zu der die Trajektorien beginnen, erheblich<br />
voneinander abzuweichen.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
54 Chaos<br />
(e) Erstellen Sie mit den Anfangsbedingungen aus (c) drei Poincaré-Schnitte, die durch<br />
die Nulldurchgänge von φ 1 getriggert werden, d.h. immer wenn das obere Pendel<br />
durch die Ruhelage geht, wird ein Punkt in der ( ˙φ 1 , φ 2 )-Ebene, in der ( ˙φ 1 , ˙φ 2 )-<br />
Ebene bzw. in der (φ 2 , ˙φ 2 )-Ebene geplottet (dazu ist eine längere Laufzeit erforderlich).<br />
Aufgabe 3.3 (Lorenz-Attraktor)<br />
Gegeben sei das Differentialgleichungssystem erster Ordnung<br />
ẋ = a(y − x)<br />
ẏ = x(b − z) − y<br />
ż = xy − cz<br />
wobei a, b, c Parameter sind. Simulieren Sie dieses DGL-System <strong>für</strong> die Parameter<br />
a = 10 , b = 28 , c = 8/3<br />
mit Hilfe eines Runge-Kutta-Verfahrens vierter Ordnung <strong>und</strong> stellen Sie die Trajektorie<br />
in der xz- oder yz-Ebene grafisch dar. Starten Sie mit zwei geringfügig verschiedenen<br />
Anfangsbedingungen <strong>und</strong> überzeugen Sie sich, dass die dazugehörigen Trajektorien<br />
auseinanderlaufen (Die Gesamtlaufzeit sollte dabei mindestens so gross sein, dass der<br />
chaotische Charakter des Lorenz-Systems sichtbar wird).<br />
Siehe auch: http://de.wikipedia.org/wiki/Lorenz-Attraktor.<br />
Edward N. Lorenz hat übrigens mit der Lorentz-Transformation nichts zu tun!<br />
Aufgabe 3.4<br />
(Abschätzung der Feigenbaum-Konstanten)<br />
Die Iteration der Abbildung x n+1 = a − x 2 n konvergiert <strong>für</strong> a < 3/4 gegen einen einzigen<br />
Fixpunkt, ab a 1 = 3/4 kommt es zur Periodenverdopplung, ab a 2 ≈ 1.25 zur Periodenvervierfachung<br />
usw., bis bei a ∞ ein nichtperiodisches (chaotisches) Verhalten einsetzt.<br />
Bestimmen Sie die ersten Bifurkationspunkte a 1 , a 2 , a 3 . . . so weit wie Sie können mit<br />
einem numerischen Suchverfahren <strong>und</strong> berechnen Sie die Quotienten<br />
δ n =<br />
a n+1 − a n<br />
a n+2 − a n+1<br />
.<br />
Diese Quotienten sollten <strong>für</strong> n → ∞ gegen die sogenannte Feigenbaum-Konstante δ konvergieren.<br />
Schätzen Sie δ <strong>und</strong> a ∞ ab.<br />
Aufgabe 3.5<br />
(Synchronisation zweier chaotischer Abbildungen)<br />
(a) Betrachten Sie wie in der Vorlesung besprochen zwei identische quadratische Abbildungen<br />
x n+1 = a − x 2 n<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
3.4 Aufgaben 55<br />
y n+1 = a − y 2 n<br />
mit 0 ≤ a < 2 bei infinitesimal unterschiedlichen Anfangsbedingungen y 0 = x 0 + ɛ.<br />
Überzeugen Sie sich, dass die beiden Abbildungen <strong>für</strong> a = 1.8 auseinanderlaufen<br />
<strong>und</strong> eine chaotische Dynamik entfalten. Wenn Sie die Möglichkeit einer grafischen<br />
Darstellung haben, wird es hilfreich sein, wenn Sie dazu y n gegen x n auftragen.<br />
(b) Koppeln Sie nun die beiden Abbildungen durch einen Kopplungsparameter c, indem<br />
Sie die modifizierten Abbildungen<br />
x n+1 = a − ((1 − c)x n + c y n ) 2<br />
y n+1 = a − ((1 − c)y n + c x n ) 2<br />
iterieren, wobei 0 ≤ c ≤ 1 ist. Iterieren Sie diese Abbildungen <strong>für</strong> a = 1.8 mit infinitesimal<br />
verschiedenen Anfangsbedingungen, indem Sie den Parameter c von Null<br />
aus langsam hochfahren. Dabei werden Sie sehen, dass das gekoppelte System zwischen<br />
chaotischen <strong>und</strong> periodischen Verhaltensweisen wechselt. Bei welchem Wert<br />
von c tritt vollständige Synchronisierung (x n = y n <strong>für</strong> n → ∞) ein?<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
4 Zufallszahlen<br />
Tübinger Studenten beim Billardspiel, frühes 19. Jhdt.<br />
Viele Vorgänge in der Vielteilchenphysik sind durch eine hohe Komplexität gekennzeichnet,<br />
die nicht mehr vollständig im Detail beschreibbar ist. Dies trifft vor allem auf chaotische<br />
Systeme zu, welche die Eigenschaft besitzen, dass sehr kleine Variationen der Anfangsbedingung<br />
zu sehr großen Änderungen des Zustands zu einem späteren Zeitpunkt<br />
führen können. Ein einfaches Beispiel ist ein Billardspiel. Nur drei bis vier aufeinander<br />
folgende Stöße der Kugeln sind durch den Spieler zu beeinflussen, doch schon nach wenigen<br />
weiteren Stößen wird das Verhalten unkontrollierbar. Die Dynamik verstärkt dabei<br />
kleine Variationen exponentiell, so dass selbst Quantenfluktuationen nach hinreichend<br />
vielen Stößen makroskopische Auswirkungen haben können. Dies äußert sich in einem<br />
(scheinbar) zufälligen Verhalten des Systems. Dennoch folgt auch eine solche komplexe<br />
Dynamik bestimmten Gesetzmäßigkeiten, – diese zu beschreiben ist das Ziel der Thermodynamik<br />
<strong>und</strong> der statistischen <strong>Physik</strong>.<br />
Die moderne statistische <strong>Physik</strong> hat einen enormen Schub durch die Entwicklung schneller<br />
Rechner erhalten, denn damit erhält man die Möglichkeit, komplexe Vielteilchensysteme<br />
direkt zu simulieren, sie also gewissermaßen auf dem Rechner zu rekonstruieren. Um<br />
solche stochastischen (d.h. zufällige) Prozesse simulieren zu können, benötigt man Zufallszahlen.<br />
Zufallszahlen kann man mit geeigneter Hardware, z.B. mit einer rauschenden<br />
Diode oder einem radioaktiven Präparat, erzeugen. Es ist jedoch gar nicht so einfach,<br />
einen qualitativ guten Hardware-Zufallszahlengenerator zu bauen (in einem unserer studentischen<br />
Projekte wurde ein solcher Generator konstruiert). Praktischer <strong>und</strong> schneller<br />
ist es, Zufallszahlen mit geeigneten Algorithmen zu erzeugen. Solche Pseudo-Zufallszahlen<br />
sind jedoch nicht wirklich zufällig, da ein Rechner eine deterministische Maschine ist. Es<br />
gibt daher – je nach Algorithmus – Zufallsgeneratoren unterschiedlicher Qualität.<br />
4.1 Definition<br />
4.1.1 Ganzzahlige Zufallszahlen<br />
Standardbeispiel <strong>für</strong> einen ganzzahligen Zufallszahlengenerator ist ein Würfel, dessen<br />
Wertebereich die Zahlen von 1 bis 6 ist. Etwas allgemeiner wollen wir annehmen, dass<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
58 Zufallszahlen<br />
unser Generator ganzzahlige Werte zwischen r min <strong>und</strong> r max liefert, dass also Zufallszahlen<br />
r ∈ {r min , r min + 1, . . . r max } (4.1)<br />
durch den Aufruf einer bereits existierenden Funktion rndint(r min , r max ) erzeugt werden.<br />
Wiederholter Aufruf dieser Funktion liefert eine Sequenz von Zufallszahlen:<br />
r 1 := rndint(r min , r max )<br />
r 2 := rndint(r min , r max )<br />
. . .<br />
Ein idealer Zufallszahlengenerator sollte folgende Eigenschaften bestitzen:<br />
(a) Gleichverteilung:<br />
Erzeugt man eine große Anzahl von Zufallszahlen, so kann man durch Ermittlung<br />
der relativen Häufigkeit die Wahrscheinlichkeit P (r) <strong>für</strong> ein bestimmtes Ergebnis r<br />
abschätzen. Von einem Standard-Zufallszahlengenerator wird erwartet, dass die<br />
Ergebnisse gleichverteilt sind, dass also P (r) auf der Menge der erzeugten Zufallszahlen<br />
konstant ist:<br />
{<br />
1<br />
P (r) =<br />
r max−r min +1<br />
falls r ∈ {r min , r min + 1, . . . , r max }<br />
(4.2)<br />
0 sonst<br />
Diese Verteilung ist – wie jede Wahrscheinlichkeitsverteilung – dadurch normiert,<br />
dass die Summe über alle Wahrscheinlichkeiten gleich 1 ist:<br />
r∑<br />
max<br />
r=r min<br />
P (r) = 1 (4.3)<br />
(b) Korrelationsfreiheit:<br />
Eine zweite wichtige Forderung, die ein Zufallszahlengenerator zu erfüllen hat, ist<br />
die Korrelationsfreiheit. Unter Korrelationen versteht man statistische Abhängigkeiten<br />
zwischen verschiedenen, in der Regel aufeinanderfolgenden Zufallszahlen. Bei<br />
der Simulation eines Würfels ist es beispielsweise unerwünscht, dass nach einer 6<br />
mit erhöhter Wahrscheinlichkeit eine weitere 6 folgt.<br />
Korrelationen zwischen zwei aufeinanderfolgenden Zufallszahlen können mit Hilfe<br />
der kombinierten Verteilungsfunktion P (r i , r i+1 ) ermittelt werden, welche die<br />
Wahrschenlichkeit angibt, bei zwei aufeinanderfolgenden Funktionsaufrufen die Werte<br />
r i <strong>und</strong> r i+1 zu erhalten. Bei einem Würfel wäre diese Verteilung also durch 36<br />
verschiedene Wahrscheinlichkeiten gegeben, deren Summe gleich 1 ist. Aufeinanderfolgende<br />
Zufallszahlen sind genau dann unkorreliert, wenn diese Wahrscheinlichkeitsverteilung<br />
faktorisiert, d.h. P (r i , r i+1 ) = P (r i )P (r i+1 ) ist. Analog sind n<br />
aufeinanderfolgende Zufallszahlen r i , r i+1 , . . .,r i+n−1 genau dann unkorreliert, wenn<br />
die entsprechende Wahrscheinlichkeitsverteilung faktorisiert:<br />
P (r i , r i+1 , . . . , r i+n−1 ) =<br />
n−1<br />
∏<br />
k=0<br />
P (r i+k ) . (4.4)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
4.1 Definition 59<br />
4.1.2 Fließkomma-Zufallszahlen<br />
In vielen Anwendungen möchte man reelle Zufallszahlen in einem bestimmten Intervall<br />
r ∈ [r min , r max ] ⊂ R erzeugen. In einem Rechner werden reelle Zahlen durch sogenannte<br />
Fließkommazahlen (floating point types) approximiert. 1<br />
Da es in einem Intervall unendlich viele reelle Zahlen gibt, ist die Wahrscheinlichkeit, eine<br />
bestimmte Zufallszahl r zu erzeugen, gleich Null. Für kontinuierliche Zufallsgrößen definiert<br />
man deshalb eine Wahrscheinlichkeitsdichte P (r) dadurch, dass P (r)dr die Wahrscheinlichkeit<br />
angibt, die erzeugte Zufallszahl in einem infinitesimalen Intervall [r, r + dr]<br />
zu finden.<br />
Von der Wahrscheinlichkeitsdichte eines standardisierten Zufallszahlengenerators wird in<br />
der Regel gefordert, dass sie auf dem erzeugten Wertebereich konstant ist:<br />
P (r) =<br />
{<br />
1<br />
r max−r min<br />
falls r min ≤ r ≤ r max<br />
0 sonst<br />
. (4.5)<br />
Die Wahrscheinlichkeitsdichte ist ausserdem normiert durch<br />
∫ rmax<br />
r min<br />
P (r) dr = 1 . (4.6)<br />
Ein Kriterium <strong>für</strong> Korrelationsfreiheit von n aufeinanderfolgenden Zufallszahlen ist wie<br />
im diskreten Fall die Faktorisierung der Wahrscheinlichkeitsdichte<br />
P (r i , r i+1 , . . . , r i+n−1 ) =<br />
n−1<br />
∏<br />
k=0<br />
P (r i+k ) . (4.7)<br />
4.1.3 Korrelationsfunktionen<br />
Zur Untersuchung eines Zufallszahlengenerators auf mögliche Korrelationen eignen sich<br />
sogenannte Korrelationsfunktionen. Korrelationsfunktionen sind statistische Mittelwerte<br />
von Produkten der zu untersuchenden Größen, so ist beispielsweise eine Zweipunktkorrelationsfunktion<br />
zweier Zufallszahlen r i <strong>und</strong> r j durch<br />
〈r i r j 〉 = ∑ r i<br />
∑<br />
r j<br />
r i r j P (r i , r j ) (4.8)<br />
gegeben. Dabei bezeichnen die spitzen Klammern 〈. . .〉 das Ensemblemittel, d.h. das<br />
arithmetische Mittel des Arguments über viele statistisch unabhängige Realisierungen. 2<br />
Das Ensemblemittel kann man also bilden, indem man ein Programm sehr oft mit unabhängigen<br />
Sequenzen von Zufallszahlen laufen lässt <strong>und</strong> anschließend die Ergebnisse<br />
mittelt.<br />
1 In den meisten Fällen approximieren Fließkommazahlen die Eigenschaften reeller Zahlen sehr gut. Man<br />
sollte sich trotzdem stets vergegenwärtigen, dass der Rechner solche Zahlen ’gequantelt’ darstellt, weil<br />
nur endlich viele Nachkommastellen berücksichtigt werden. In seltenen Fällen, z.B. beim Gebrauch<br />
stark nichtlinearer Funktionen, kann es dazu kommen, dass diese Quantelung sichtbar wird <strong>und</strong><br />
erhebliche Fehler verursacht. Wir werden weiter unten auf dieses Problem zurückkommen.<br />
2 In der Literatur wird auch häufig ein hochgestellter Balken, z.B. r i, als Notation <strong>für</strong> die Mittelwertbildung<br />
benutzt.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
60 Zufallszahlen<br />
Faktorisiert nun die Wahrscheinlichkeitsverteilung, d.h. P (r i , r j ) = P (r i )P (r j ), so folgt<br />
daraus, dass auch die Mittelwerte faktorisieren, also 〈r i r j 〉 gleich dem Produkt 〈r i 〉〈r j 〉 ist.<br />
Verallgemeinert <strong>für</strong> n-Punkt-Korrelationsfunktionen bedeutet dies, dass eine notwendige<br />
Bedingung <strong>für</strong> Korrelationsfreiheit darin besteht, dass Produktbildung <strong>und</strong> Mittelwertbildung<br />
in Korrelationsfunktionen miteinander vertauschen:<br />
〈<br />
n∏<br />
r ik 〉 =<br />
k=1<br />
n∏<br />
〈r ik 〉 . (4.9)<br />
Oftmals subtrahiert man das Produkt der Mittelwerte <strong>und</strong> erhält so den sogenannten<br />
zusammenhängenden Anteil (connected part) der Korrelationsfunktion, z.B. <strong>für</strong> zwei Zufallszahlen<br />
ist<br />
〈r i r j 〉 conn := 〈r i r j 〉 − 〈r i 〉〈r j 〉 (4.10)<br />
Der zusammenhängende Anteil ist positiv <strong>für</strong> gleichsinnige Korrelationen, negativ <strong>für</strong><br />
Antikorrelationen <strong>und</strong> Null wenn die Zufallsgrößen unkorreliert sind.<br />
k=1<br />
4.2 Pseudozufallszahlen<br />
Pseudozufallszahlen sind von deterministischen Algorithmen erzeugte Zahlensequenzen,<br />
die scheinbar zufällig aussehen. Pseudozufallszahlengeneratoren iterieren in der Regel<br />
eine chaotische Abbildung <strong>und</strong> haben folgende Eigenschaften:<br />
• Bei identischen Anfangsbedingungen des Generators ist die erzeugte Sequenz von<br />
Zufallszahlen stets gleich. 3<br />
• Die Sequenz wiederholt sich nach endlich vielen Aufrufen, d.h. jeder Zufallszahlengenerator<br />
ist durch eine Periode (oder sogar mehrere Perioden) gekennzeichnet.<br />
Diese Periode sollte länger als die Laufzeit der Anwendung sein.<br />
• Da ein deterministischer Algorithmus zugr<strong>und</strong>e liegt, sind die erzeugten Zufallszahlen<br />
zumindest schwach korreliert. Das Ziel bei der Konstruktion eines Pseudozufallszahlengenerators<br />
ist es, diese unerwünschten Korrelationen so gut wie möglich<br />
zu unterdrücken. Es gibt also ‘gute’ <strong>und</strong> ‘weniger gute’ Generatoren.<br />
Ein standardisierter Zufallszahlengenerator sollte auf dem Wertebereich gleichverteilt <strong>und</strong><br />
möglichst korrelationsarm sein. Außerdem sollte er extrem schnell sein, also auf einem<br />
einfachen Algorithmus beruhen, denn z.B. bei Monte Carlo Simulationen stellt sich heraus,<br />
dass die meiste Rechenzeit <strong>für</strong> die Erzeugung von Zufallszahlen verbraucht wird.<br />
Für die Konstruktion eines Zufallszahlengenerators gibt es allerdings kein Patentrezept.<br />
Während man die Gleichverteilung <strong>für</strong> einen gegebenen Algorithmus in der Regel beweisen<br />
kann, ist die konkrete Berechnung der Korrelationen häufig unmöglich, so dass man<br />
auf empirische Vergleiche angewiesen ist. Viele Forscher bevorzugen einen bestimmten<br />
Generator, doch ist es in der Praxis ratsam, ein neues Programm mit unterschiedlichen<br />
3 Die Reprodzierbarkeit wird häufig dadurch unterdrückt, dass man die Anfangsbedingung von Mausbewegungen<br />
<strong>und</strong> Systemzeit abhängig macht. Sie kann aber auch bei der Fehlersuche nützlich sein,<br />
wenn beispielsweise Ihre Simulation nach mehreren St<strong>und</strong>en einwandfreier Funktion abstürzt <strong>und</strong> Sie<br />
den Fehler eingrenzen wollen.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
4.2 Pseudozufallszahlen 61<br />
Abbildung 4.1: Vorzeichenbehaftete ganze Zahlen (integers) auf einem 32-bit-Rechner<br />
Generatoren zu testen <strong>und</strong> zu überprüfen, ob man zu statistisch unterschiedlichen Ergebnissen<br />
gelangt, ob sich also möglicherweise versteckte Korrelationen auf das Ergebnis<br />
auswirken.<br />
4.2.1 Algorithmische Implementierung<br />
Unabhängig davon, ob ein Zufallszahlengenerator ganze Zahlen oder Fließkommazahlen<br />
zurückgeben soll, werden die Zufallszahlen intern stets als ganze Zahlen in dem vom<br />
Prozessor zur Verfügung gestellten Wertebereich erzeugt. Dazu muss man wissen, dass<br />
ein Computer jegliche Art von Daten intern als Dualzahlen mit einer festen Anzahl von<br />
Stellen (bits) darstellt. Ältere Prozessoren haben eine Breite von N = 32 bit, neuere die<br />
doppelte Breite von N = 64 bit. Es ist üblich, die bits von 0 bis N − 1 durchzunummerieren,<br />
wobei das niedrigste bit mit der Nummer 0 ganz rechts <strong>und</strong> das höchste ganz<br />
links dargestellt wird.<br />
Man unterscheidet vorzeichenbehaftete <strong>und</strong> positive ganze Zahlen, die beispielsweise in<br />
C++ ihre Entsprechung in den Datentypen int <strong>und</strong> unsigned int finden. Positive ganze<br />
Zahlen nutzen alle N bits <strong>für</strong> die Darstellung als Dualzahl, während vorzeichenbehaftete<br />
ganze Zahlen das höchste Bit als Vorzeichenbit benutzen (siehe Abb. 4.1). Die entsprechenden<br />
Wertebereiche sind also:<br />
{−2 N−1 , . . . , 2 N−1 − 1} <strong>für</strong> vorzeichenbehaftete ganze Zahlen<br />
{0, . . . , 2 N − 1} <strong>für</strong> positive ganze Zahlen<br />
(4.11)<br />
Generatoren <strong>für</strong> Pseudozufallszahlen basieren in der Regel auf einer iterativen Abbildung,<br />
die aus den bereits erzeugten Zufallszahlen eine neue Zufallszahl erzeugt. Im einfachsten<br />
Fall ist diese Iteration einstufig, d.h. das Funktionsergebnis hängt nur von der jeweils<br />
zuletzt erzeugten Zufallszahl ab:<br />
Eine solche einstufige Iteration hat folgende Eigenschaften:<br />
r i = f(r i−1 ) . (4.12)<br />
• Die Periode des Generators ist 2 N oder kürzer, wobei N die Anzahl der bits des<br />
integer-Wertebereichs ist.<br />
• Möglicherweise wird nur eine Teilmenge des Wertebereichs durch die Iteration erreicht.<br />
• Die erreichten Werte sind wegen der Einstufigkeit per Definition gleichverteilt, da<br />
jeder Wert innerhalb einer Periode genau einmal erreicht wird.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
62 Zufallszahlen<br />
4.2.2 Ein (zu) einfacher Zufallszahlengenerator<br />
Einen einfachen (jedoch <strong>für</strong> die Praxis untauglichen) Zufallszahlengenerator erhält man<br />
bereits mit einer linearen Iteration:<br />
r i = (a r i−1 + c) mod m , (4.13)<br />
wobei ’x mod y’ den Rest von x bei der Division durch y bezeichnet. Dabei sind a, c, m<br />
ganzzahlige Konstanten. Wie <strong>für</strong> jeden Zufallszahlengenerator spielt die Wahl der Konstanten<br />
eine entscheidende Rolle. Hier<strong>für</strong> gibt es in der Regel kein systematisches Verfahren,<br />
vielmehr setzten sich bestimmte empirisch ermittelte Werte in der Literatur durch,<br />
die der Definition eines Generators durchaus eine Aura von Magie verleiht. Für obige<br />
Abbildung ist<br />
a = 106 , c = 1283 , m = 6075 (4.14)<br />
eine mögliche Wahl. In C++ entspräche das folgendem Quellcode:<br />
//=======================================================<br />
// Ein (zu) einfacher Zufallszahlengenerator<br />
//=======================================================<br />
int r=1234; // Globale Variable mit Startwert<br />
//------------ erzeuge Pseudozufallszahl ----------------<br />
int rndint (void)<br />
{<br />
const int a=106, c=1283, m=6075;<br />
r = (a*r+c) % m;<br />
return r;<br />
}<br />
Wiederholter Aufruf dieser Funktion erzeugt die Sequenz<br />
1234,4512,5705,4588,1611,1949,1327,2220,5753,3601,264,4967,5335...,<br />
die auf den ersten Blick durchaus zufällig aussieht. Diese Sequenz lässt sich auch leicht<br />
mit Mathematica R○ erzeugen:<br />
f[r_] := Mod[a*r+c, m];<br />
a=106; c=1283; m=6075;<br />
r0=1234;<br />
sequence = NestList[f,r0,m+1];<br />
Wegen der Restbildung in der Funktion f kann dieser Zufallszahlengenerator nur Zahlen<br />
zwischen 0 <strong>und</strong> 6074 erzeugen. Man kann mit einem geeigneten Hilfsprogramm leicht<br />
überprüfen, dass der Generator nach einer Periode von 6075 Aufrufen die gleiche Sequenz<br />
reproduziert. Ausserdem ist der Mittelwert 〈r〉 = 3037. Demzufolge wird also jeder Wert<br />
zwischen 0 <strong>und</strong> 6074 erreicht <strong>und</strong> tritt mit gleicher Wahrscheinlichkeit auf.<br />
Der Generator weist jedoch erhebliche Korrelationen auf, wie im Buch von Kinzel/Reents<br />
demonstriert wird.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
4.2 Pseudozufallszahlen 63<br />
Abbildung 4.2: Schematische Darstellung eines verbesserten Zufallszahlengenerators mit zweistufiger<br />
Iteration.<br />
4.2.3 Verbesserte Zufallszahlengeneratoren<br />
Der obige Zufallszahlengenerator kann auf zweierlei Weise verbessert werden:<br />
• Man kann zu einer mehrstufigen Iteration übergehen, d.h. die Funktion f hängt<br />
von mehreren bereits erzeugten Zufallszahlen ab.<br />
• Die Iterationstiefe kann erhöht werden, d.h. nicht die unmittelbar zuvor erzeugten<br />
sondern weiter zurückliegende Zufallszahlen werden als Argumente von f benutzt.<br />
Als Beispiel wollen wir eine zweistufige Iteration der Form<br />
r i := f(r i−t , r i−s ) (4.15)<br />
betrachten, wobei s, t ∈ N die sogenanten delays der Abbildung sind. Eine solche Iteration<br />
ist in Abb. 4.2 schematisch dargestellt. Offensichtlich bestimmen dabei die mit<br />
der geschweiften Klammer gekennzeichnenten Zahlen vollständig die zukünftige Sequenz<br />
<strong>und</strong> werden deshalb als Zustand des Generators bezeichnet. Die Anzahl der möglichen<br />
Zustände in diesem Bereich liefert eine obere Schranke <strong>für</strong> die Periode des Generators,<br />
bei einem 32-bit Rechner ist die Periode also ≤ 2 32t . Bereits <strong>für</strong> t = 2 ist diese Zahl aber<br />
so groß, dass bei einer Frequenz von 10 6 Aufrufen pro Sek<strong>und</strong>e die obere Schranke <strong>für</strong><br />
die Periode bei 600.000 Jahren liegt. Deshalb ist es nicht immer sinnvoll, besonders große<br />
delays zu verwenden.<br />
4.2.4 Zufallszahlengenerator von G. Marsaglia <strong>und</strong> A. Zaman<br />
Ein brauchbarer Zufallszahlengenerator, der nach diesem Prinzip arbeitet, ist der substractwith-borrow-Generator<br />
von Marsaglia <strong>und</strong> Zaman [4]. Er ist definiert durch die Iteration<br />
r i := (r i−s − r i−t − c i−1 ) mod m , (4.16)<br />
wobei c i je nach dem Vorzeichen der Klammer zwischen 0 <strong>und</strong> 1 hin <strong>und</strong> her schaltet:<br />
{ 1 falls ri−s − r<br />
c i :=<br />
i−t − c i−1 > 0<br />
0 andernfalls.<br />
(4.17)<br />
Dabei sind c t sowie r 1 , r 2 , . . . , r t frei initialisierbar <strong>und</strong> legen den Anfangszustand des<br />
Generators fest.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
64 Zufallszahlen<br />
Die Vorteile dieses Generators sind seine Geschwindigkeit <strong>und</strong> die Beweisbarkeit seiner<br />
Periode. Marsaglia <strong>und</strong> Zaman konnten zeigen, dass man <strong>für</strong> die Iteration<br />
r i := (r i−2 − r i−3 − c i−1 ) mod (2 32 − 18) (4.18)<br />
eine Periode von ungefähr 2 92 erhält. Der so definierte Generator hat allerdings noch den<br />
Schönheitsfehler, dass er nicht den kompletten Wertebereich einer 32-bit Zahl abdeckt,<br />
da bei der Restbildung die letzten 18 Zahlenwerte nicht erreicht werden. Dies kann man<br />
umgehen, indem man obige Abbildung mit einer zweiten Abbildung<br />
r i = (69069 r i−1 + 1013904243) mod 2 32 (4.19)<br />
kombiniert, wobei die Modulo-Operation auf 32-bit Rechnern automatisch stattfindet.<br />
Auf diese Weise wird der komplette Wertebereich abgedeckt <strong>und</strong> die Periode ist bei 10 6<br />
Aufrufen pro Sek<strong>und</strong>e in der Größenordnung von 10 24 Jahren, also deutlich länger als<br />
die Lebensdauer des Universums.<br />
4.2.5 Zufallszahlengenerator von R. M. Ziff<br />
Ein sehr erfolgreicher Zufallszahlengenerator wurde von Robert M. Ziff [5] entwickelt. Er<br />
arbeitet mit vier gekoppelten Schieberegistern, ist sehr schnell <strong>und</strong> bietet den Vorteil,<br />
dass sowohl die Periode als auch Drei- <strong>und</strong> Vierpunktkorrelationsfunktionen abgeschätzt<br />
werden können. Ein <strong>für</strong> C++ optimierter Quellcode lautet:<br />
const int Random_A = 471, Random_B = 1586, Random_C = 6988;<br />
const int Random_D = 9689, Random_M = 16383;<br />
const unsigned int Random_Max = 2147483648U;<br />
int Random_nd, Random_ra[Random_M+1];<br />
void InitRandom (unsigned int seed=0)<br />
{<br />
srandom(seed);<br />
Random_nd=random();<br />
for (int i=0; i
4.3 Zufallszahlen mit nichtkonstanter Verteilung 65<br />
4.2.6 ’Echte’ Zufallszahlen<br />
In der Praxis bewährt es sich, mehrere Zufallszahlengeneratoren zur Verfügung zu haben<br />
<strong>und</strong> zu testen, ob diese zu unterschiedlichen Ergebnissen führen. Dies ist in der Regel nicht<br />
der Fall, da viele Simulationen einen selbstmittelnden Effekt haben, der kurzreichweitige<br />
Korrelationen zwischen den Zufallszahlen kompensiert.<br />
Wer dennoch be<strong>für</strong>chtet, dass die erzeugten Zufallszahlen nicht gut genug sind, kann sich<br />
‘echte’ Zufallszahlen von<br />
http://www.random.org/<br />
herunterladen. Wie Sie nachlesen können, waren die dort erzeugten Zufallszahlen sogar<br />
am 11. September 2001 absolut unkorreliert.<br />
4.3 Zufallszahlen mit nichtkonstanter Verteilung<br />
Generatoren <strong>für</strong> reelle Zufallszahlen wie z.B. der Ziff’sche Generator rnd() <strong>und</strong> die<br />
Mathematica R○ -Funktion Random[] sind in der Regel so konstruiert, dass sie gleichverteilte<br />
Zufallszahlen auf dem Intervall [0, 1] liefern. In der Praxis stellt sich aber oft das<br />
Problem, dass Zufallszahlen mit einer nicht-konstanten Verteilung benötigt werden. Als<br />
Beispiel seien Gauß-verteilte Zufallszahlen genannt.<br />
4.3.1 Transformation der Wahrscheinlichkeitsdichte durch Abbildung<br />
Eine Möglichkeit, Zufallszahlen mit einer nicht-konstanten Verteilung zu erzeugen, besteht<br />
darin, die vom Generator gelieferten gleichverteilten Zufallszahlen r i mit Hilfe einer<br />
deterministischen Funktion f auf eine andere Sequenz z i := f(r i ) abzubilden. Von dieser<br />
Funktion wollen wir der Einfachheit halber annehmen, dass sie monoton steigend <strong>und</strong><br />
differenzierbar ist. Die Funktion f bildet dann den Wertebereich r i ∈ [0, 1] auf den neuen<br />
Wertebereich z i ∈ [f(0), f(1)] ab. Ist die Funktion f ausserdem nichtlinear, so wird die<br />
neue Sequenz {z i } auf diesem Intervall nicht mehr gleichverteilt sein.<br />
Die Wirkungsweise einer nichtlinearen Funktion ist in Abb. 4.3) dargestellt. Um die<br />
Transformation von Dichten zu verstehen, ist die r-Achse im Intervall [0, 1] in äquidistanten<br />
Abständen markiert. Diese Werte werden mit der Abbildung f(r) = exp(r 2 ) auf<br />
die vertikale Achse im Intervall [1, e] abgebildet. Hier erhält man offenbar eine variierende<br />
Dichte von Werten, die um so größer ist, je geringer die Steigung der Funktion ist.<br />
Dieser Sachverhalt lässt sich einfach herleiten, wenn man die infinitesimalen Wahrscheinlichkeiten<br />
in den Intervallen [r, r + dr] <strong>und</strong> [s, s + ds] einander gleichsetzt:<br />
P (r) dr = ˜P (s) ds (4.20)<br />
Die Schlange auf der rechten Seite soll andeuten, dass sich ˜P auf die Zufallsvariable s<br />
bezieht <strong>und</strong> wird in der Literatur häufig weggelassen. Nach ’Division’ durch ds erhält<br />
man<br />
P (r) dr<br />
˜P (s) = = P (r)<br />
ds ds/dr = P (r)<br />
f ′ (r) , (4.21)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
66 Zufallszahlen<br />
Abbildung 4.3: Veranschaulichung der Transformation der Wahrscheinlichkeitsdichte unter der Funktion<br />
s = f(r) = exp(r 2 ) (siehe Text).<br />
d.h. die Wahrscheinlichkeitsdichte bezüglich s nimmt tatsächlich mit abnehmender Steigung<br />
der Kurve zu.<br />
Beispiel: Gegeben sei die Funktion s = f(r) = exp(r 2 ). Für einen Standard-Generator ist<br />
P (r) = 1 auf dem Definitionsbereich r ∈ [0, 1]. Damit erhält man die Wahrscheinlichkeitsdichte<br />
1<br />
˜P (s) =<br />
2r exp(r 2 ) = 1<br />
2s √ ln(s)<br />
auf dem Definitionsbereich (1, e] (siehe Abbildung 4.3).<br />
In der Praxis ist nun häufig die umgekehrte Fragestellung gegeben, d.h. es wird eine<br />
normierte Verteilung ˜P (s) auf einem Intervall [s 1 , s 2 ] vorgegeben <strong>und</strong> man sucht eine<br />
geeignete Funktion f(r), mit der man aus der Standardverteilung eines Zufallszahlengenerators<br />
diese Verteilung erzeugen kann. Dazu integrieren wir Gl. (4.20):<br />
∫ s<br />
s 1<br />
˜P (s ′ ) ds ′ =<br />
∫ r<br />
0<br />
P (r ′ ) dr ′ = r(s) . (4.22)<br />
Sofern die Integration ausführbar ist, erhält man r(s), also die Umkehrfunktion der gesuchten<br />
Funktion s(r). Eine analytische Lösung erhält man also nur, wenn es einem<br />
gelingt, sowohl die Wahrscheinlichkeitsdichte zu integrieren als auch von dem Resultat<br />
die Umkehrfunktion zu bilden.<br />
Beispiel: Um Zufallszahlen mit der Wahrscheinlichkeitsdichte ˜P (s) = 1/s auf dem Intervall<br />
[1, e] zu erzeugen, führt man die Integration<br />
r(s) =<br />
∫ s<br />
aus <strong>und</strong> bildet die Umkehrfunktion s(r) = exp(r).<br />
1<br />
1<br />
s ′ ds′ = ln(s)<br />
Bei Wahrscheinlichkeitsdichten mit mehreren Argumenten kann auf ähnliche Weise verfahren<br />
werden. Ausgangspunkt ist hier die Gleichung<br />
P (r 1 , r 2 , . . . , r n )dr 1 dr 2 · · · dr n = P (s 1 , s 2 , . . . , s n )ds 1 ds 2 · · · ds n (4.23)<br />
Die zu Gl. (4.21) analoge Gleichung lautet<br />
˜P (s) = P (r)<br />
J , (4.24)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
4.3 Zufallszahlen mit nichtkonstanter Verteilung 67<br />
wobei J = |∂s i /∂r j | die Jacobi-Determinante ist.<br />
4.3.2 Sampling <strong>und</strong> Histogramme<br />
Eine diskrete Wahrscheinlichkeitsverteilung<br />
bzw. eine kontinuierliche Wahrscheinlichkeitsdichte<br />
kann man auf einem Rechner<br />
durch sogenanntes Sampling approximieren.<br />
Dazu wird die entsprechende Zufallsgröße<br />
durch wiederholtes Ziehen einer<br />
Zufallszahl (<strong>und</strong> ggf. Abbildung durch eine<br />
Funktion) in großer Anzahl erzeugt <strong>und</strong><br />
“gesampelt”, was bedeutet, dass die relativen<br />
Häufigkeiten der zu erwartenden Ergebnisse<br />
bestimmt werden.<br />
Sampling diskreter Zufallsgrößen:<br />
As Beispiel betrachten wir zunächst eine diskrete Zufallsgröße r, die Werte aus einer<br />
diskreten Menge r ∈ Ω mit bestimmten Wahrscheinlichkeiten P (r) erzeugt. Wenn man<br />
mit Hilfe dieser Zufallsgröße N unabhängige zufällige Werte erzugt <strong>und</strong> die Anzahl der<br />
jeweiligen Ergebnisse zählt, dann wird das Resultat r in diesem Datensatz n r mal auftreten,<br />
wobei ∑ r∈Ω n r = N ist. Das Resultat r i tritt in diesem Datensatz also mit der<br />
relativen Häfuigkeit H(r) = n r /N auf. Eine grafische Darstellung von H(r) gegen r als<br />
Balkendiagramm bezeichnet man als Histogramm.<br />
Die relative Häufigkeit H(r) approximiert die Wahrscheinlichkeit P (r), mit der dieses Ereignis<br />
stattfindet, <strong>und</strong> obwohl Wahrscheinlichkeitstheoretiker darüber viele Seiten schreiben<br />
können, ist es intuitiv klar, dass <strong>für</strong> große N diese Abschätzung immer besser wird<br />
<strong>und</strong> schließlich im Limes N → ∞ gegen die tatsächliche Wahrscheinlichkeit konvergiert.<br />
In der realen Welt <strong>und</strong> insbesondere mit einem realen Computer lässt sich dieser Limes<br />
allerdings nicht erreichen, <strong>und</strong> so stellt sich die Frage, wie aussagekräftig ein Histogramm<br />
ist.<br />
Beispiel: Histogramm eines Würfels: Um zu testen, ob ein Würfel gleichverteilt ist, würfeln<br />
wir 6.000.000 mal. Nehmen wir an, dass wir dabei die Ereigniszahlen (event counts) r 1 =<br />
1.003.405, r 2 = 1.001.785, r 3 = 998.443, r 4 = 998.572, r 5 = 997.815, r 6 = 999.980 erhalten.<br />
Obwohl diese Ergebnisse eine Gleichverteilung zu bestätigen scheinen, ist es nicht klar, ob<br />
der Würfel tatsächlich exakt gleichverteilt ist.<br />
Um diese Frage zu beantworten, kann man sich vorstellen, den Sampling-Vorgang mehrfach<br />
durchzuführen. Die jeweils erzeugten Histogramme wird dabei geringfügig verschieden<br />
sein, d.h. die Höhe (bzw. Fläche) der Histogrammbalken fluktuiert. Diese Streuung<br />
reflektiert die zu erwartende Ungenauigkeit des Histogramms, die man als Fehlerbalken<br />
darstellen kann <strong>und</strong> die von Balken zu Balken verschieden ist.<br />
Man kann aber auch direkt die Streuung vorhersagen, wenn man sich vergegenwärtigt,<br />
dass der Zufallsprozess des Samplings einer Binomialverteilung folgt, d.h. die Wahrscheinlichkeit<br />
B dass ein gegebenes Ereignis r mit gegebener Wahrscheinlichkeit P (r) in einem<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
68 Zufallszahlen<br />
Sampling-Vorgang mit N Versuchen genau n r mal auftritt, ist gegeben durch:<br />
( ) N<br />
B[n r |P (r)] = P (r) nr [1 − P (r)] 1−nr . (4.25)<br />
n r<br />
Diese Binomialverteilung hat den Mittelwert ¯n r = NP (r) <strong>und</strong> die Varianz<br />
σ 2 = (∆n r ) 2 = NP (r)[1 − P (r)] . (4.26)<br />
Wenn P (r) hinreichend klein ist, ist also der zu erwartende relative Fehler der Histogrammbalken<br />
durch<br />
∆n r<br />
≈ √ 1<br />
(4.27)<br />
n r nr<br />
gegeben. Das bedeutet, dass die tatsächliche Wert P (r) mit 68.3% Wahrscheinlichkeit innerhalb<br />
dieses Fehlerbalkens liegt – denn dies ist gerade die Fläche der Binomialverteilung<br />
innerhalb ihrer eigenen Standardabweichung.<br />
In Forschung <strong>und</strong> Technik ist es heute üblich, sogenannte Konfindenzniveaus (engl: confidence<br />
levels) zu benutzen, die in Vielfachen der Standardabweichung gemessen <strong>und</strong><br />
deshalb mit 1σ, 2σ, 3σ usw. bezeichnet werden. Die entsprechenden Vertrauenswahrscheinlichkeiten<br />
sind<br />
1σ 2σ 3σ<br />
68.3% 95.4% 99.7%<br />
Misst man z.B. in einem Sampling die relative Häufigkeit H(r) = n r /N <strong>für</strong> das Ergebnis<br />
r, dann liegt die tatsächliche Wahrscheinlichkeit P (r) mit 99.7% Wahrscheinlichkeit<br />
(3σ-confidence) im Intervall [P (r) − 3/ √ nr, P (r) + 3/ √ nr].<br />
Auch Experimente können eine Fehleranalyse dieser Art erfordern. Dies gilt vor allem<br />
<strong>für</strong> Experimente in der Hochenergiephysik, in denen Teilchendetektoren diskrete Events<br />
liefern.<br />
Merke: Die Ungenauigkeit eines Histogrammbalkens ist von der Größenordnung 1/ √ n,<br />
wobei n die Anzahl der Sampling-Events ist, die auf diesen Histogrammbalken entfallen.<br />
4.3.3 Normalverteilte Zufallszahlen<br />
Zufallszahlen s ∈ R mit der Wahrscheinlichkeitsdichte<br />
P (s) = 1 ( )<br />
σ √ 2π exp (s − µ)2<br />
−<br />
2σ 2<br />
(4.28)<br />
heißen normalverteilt. Diese nach ihrem Entdecker benannte Gaußverteilung in Form<br />
einer Glockenkurve spielt eine zentrale Rolle in der statistischen <strong>Physik</strong>.<br />
Die Gaußverteilung ist normiert (d.h. ∫ +∞<br />
−∞<br />
P (s)ds = 1), hat den Mittelwert<br />
〈s〉 =<br />
∫ +∞<br />
−∞<br />
sP (s) ds = µ (4.29)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
4.3 Zufallszahlen mit nichtkonstanter Verteilung 69<br />
<strong>und</strong> die Varianz<br />
〈(s − 〈s〉) 2 〉 =<br />
∫ +∞<br />
−∞<br />
(s − µ) 2 P (s) ds = σ 2 . (4.30)<br />
Die beiden Parameter µ <strong>und</strong> σ legen also den Mittelwert <strong>und</strong> die Standardabweichung<br />
der Verteilung fest.<br />
Wir wollen nun versuchen, die Standard-Gaußverteilung mit µ = 0 <strong>und</strong> σ = 1 zu erzeugen<br />
indem wir eine gleichverteilte Zufallszahl r auf geeignete Weise abbilden. Integriert man<br />
die Gaußverteilung auf die oben beschriebene Weise, so erhält man<br />
∫ s<br />
1<br />
r(s) = √ e −s′2 /2 ds ′ = 1 (<br />
1 + erf(s/ √ )<br />
2) , (4.31)<br />
2π 2<br />
−∞<br />
wobei erf(x) die sogenannte Fehlerfunktion (error function) ist. Allerdings gibt es keinen<br />
geschlossenen Ausdruck <strong>für</strong> diese Funktion <strong>und</strong> sie ist deshalb auch nicht in geschlossener<br />
Form invertierbar. Mit anderen Worten: Obwohl die gesucht Abbildung s(r) im<br />
mathematischen Sinne existiert, ist sie nicht mit Hilfe einer Formel ausdrückbar. Das<br />
oben beschriebene Verfahren ist also in diesem Fall nicht anwendbar.<br />
4.3.4 Box-Muller Transformation<br />
Einen Ausweg bietet die sogenannte Box-Muller-Transformation, mit der man zwei Zufallszahlen<br />
auf einmal erzeugt. Beide sind normalverteilt sind, d.h.<br />
P (x) dx =<br />
1<br />
√<br />
2π<br />
e −x2 /2 dx (4.32)<br />
P (y) dy =<br />
1<br />
√<br />
2π<br />
e −y2 /2 dy .<br />
Ausserdem sollen die Zufallszahlen unkorreliert sein, die gemeinsame Wahrscheinlichkeitsdichte<br />
soll also faktorisieren:<br />
P (x, y) dxdy = 1 (<br />
2π exp − x2 + y 2 )<br />
dxdy . (4.33)<br />
2<br />
Ansatzpunkt der Box-Muller-Transformation ist ein Wechsel zu Polarkoordinaten<br />
ρ = x 2 + y 2 , Θ = arctan(y/x) . (4.34)<br />
Dabei beachte man, das ρ nicht wie sonst üblich der Radius, sondern das Quadrat des<br />
Radius ist. Gemäß Gl. (4.24) ist die Wahrscheinlichkeitsdichte in den neuen Koordinaten<br />
durch<br />
˜P (ρ, Θ) = 1 P (x, y) (4.35)<br />
J<br />
gegeben, wobei<br />
J =<br />
∣ ∂(ρ, Θ)<br />
∣∣∣∣ ∂ρ<br />
∣ ∂(x, y) ∣ = ∂x<br />
∂Θ<br />
∂x<br />
∂ρ<br />
∂y<br />
∂Θ<br />
∂y<br />
∣ ∣ ∣∣∣ ∣ = 2x 2y ∣∣∣<br />
−<br />
y x = 2 , (4.36)<br />
x 2 +y 2 x 2 +y 2<br />
die Jacobi-Matrix der Abbildung ist. Die transformierte Wahrscheinlichkeitsdichte lautet<br />
also<br />
˜P (ρ, Θ) = 1 2 P (x, y) = 1 1<br />
2 2π e−ρ/2 . (4.37)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
70 Zufallszahlen<br />
Man beachte, dass dieses Ergebnis nur von ρ aber nicht von Θ abhängt. Die beiden<br />
Zufallszahlen sind also bezüglich Θ auf dem Intervall [0, 2π] mit einer konstanten Wahrscheinlichkeitsdichte<br />
1<br />
2π<br />
gleichverteilt. Bezüglich ρ besteht keine Gleichverteilung, deshalb<br />
benötigt man hier eine Abbildungsfunktion r → ρ, die nach dem zuvor beschriebenen<br />
Verfahren ermittelt wird. Dazu wird das Ergebnis in Gl. (4.37) über Θ <strong>und</strong> ρ integriert<br />
<strong>und</strong> die Umkehrfunktion gebildet:<br />
r(ρ) = 1 2<br />
∫ ρ<br />
0<br />
e −ρ′ /2 dρ ′ = 1 − e −ρ/2 =⇒ ρ(r) = −2 ln(1 − r) (4.38)<br />
Da r eine gleichverteilte Zufallszahl zwischen 0 <strong>und</strong> 1 ist, haben r <strong>und</strong> 1 − r statistisch<br />
identische Eigenschaften, so dass man auch ρ(r) = −2 ln r setzen kann. Mit dieser Abbildung<br />
lassen sich Standard-Zufallszahlen r ∈ [0, 1] leicht in den quadrierten Radius ρ<br />
umrechnen. 4 Anschließend müssen ρ <strong>und</strong> Θ nur noch in die entsprechenden kartesischen<br />
Koordinaten x, y umgerechnet werden. Die beiden normalverteilten Zufallszahlen lassen<br />
sich also beispielsweise mit folgendem Codefragment erzeugen:<br />
...<br />
// ***************** Box-Muller-Transformation ********************<br />
double q,r,theta,rho,x,y;<br />
q=rnd();<br />
// Erzeuge zwei Zufallszahlen<br />
r=rnd(); // q <strong>und</strong> r gleichverteilt in [0,1]<br />
theta = 2*M_PI*q;<br />
// Berechne gleichverteilten Winkel<br />
rho = - 2*log(r); // Benutze Abbildungsfunktion<br />
x = sqrt(rho)*cos(theta); // erste Gauß-verteilte Zufallszahl<br />
y = sqrt(rho)*sin(theta); // zweite Gauß-verteilte Zufallszahl<br />
...<br />
4 Der Logarithmus von 0 ist nicht definiert <strong>und</strong> würde zu einer Fehlermeldung führen. Obwohl die<br />
Wahrscheinlichkeit <strong>für</strong> den Wert r = 0 <strong>für</strong> einen idealen Zufallszahlengenerator gleich Null ist, ist es<br />
nicht ausgeschlossen, dass ein Pseudozufallszahlengenerator wegen der Diskretisierung mit einer sehr<br />
kleinen Wahrscheinlichkeit diesen Wert liefert. Ein verbesserter Code sollte dieses Problem durch eine<br />
zusätzliche Abfrage umgehen.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
4.3 Zufallszahlen mit nichtkonstanter Verteilung 71<br />
4.3.5 Verbesserte Box-Muller Transformation<br />
Das obige Codefragment funktioniert einwandfrei, doch ist es relativ langsam, da zwei<br />
trigonometrische Funktionen <strong>und</strong> ein Logarithmus ausgeführt werden müssen. Zur Berechnung<br />
solcher Funktionen stellen moderne Prozessoren zwar integrierte hocheffiziente<br />
Hardware zur Verfügung, doch auch in solchen Chips muss eine Sinusfunktion über eine<br />
Reihendarstellung approximiert werden.<br />
Die verbesserte Box-Muller Transformation benutzt einen Trick, um Winkelfunktionen<br />
zu vermeiden. Um Zufallszahlen auf einer Kreisscheibe zu erzeugen, werden zunächst zwei<br />
gleichverteilte Zufallszahlen x s , y s zwischen −1 <strong>und</strong> 1 generiert. Anschaulich ausgedrückt<br />
wird dadurch ein Quadrat [−1, 1] ⊗ [−1, 1] ⊂ R 2 gleichverteilt mit Zufallszahlen belegt.<br />
Wenn die oben dargestellte Zielscheibe nicht getroffen wird, wenn also x 2 s + y 2 s > 1 ist,<br />
werden die Zufallszahlen einfach nochmal erzeugt:<br />
double xs,ys;<br />
do {<br />
xs = 2*rnd()-1; // Erzeuge zwei Zufallszahlen in [-1,1]<br />
ys = 2*rnd()-1;<br />
} // Wiederhole diesen Vorgang bis das<br />
while (xs*xs+ys*ys > 1); // Ergebnis im Einheitskreis liegt.<br />
Knapp ein Viertel der Versuche werden also erfolglos sein, doch die auf diese Weise<br />
verschwendete Rechenzeit ist immer noch geringer als jene, die <strong>für</strong> die Berechnung der<br />
Winkelfunktionen notwendig wäre. Die Zahlen x s <strong>und</strong> y s sind ausserdem bereits bezüglich<br />
des Winkels gleichförmig verteilt, doch die Radialverteilung hat noch nicht die gewünschte<br />
Form. So ist ρ s = x 2 s +ys 2 mit konstanter Wahrscheinlichkeitsdichte auf dem Intervall [0, 1]<br />
verteilt, erzeugen möchte man jedoch die Verteilung<br />
˜P (ρ) =<br />
∫ 2π<br />
0<br />
dΘ ˜P (ρ, Θ) = 1 2 e−ρ/2 . (4.39)<br />
Die (x s , y s )-Vektoren müssen also noch auf geeignete Weise in ihrer Länge skaliert werden,<br />
um diese Verteilung zu erhalten. Dazu wird wiederum ˜P (ρ) integriert <strong>und</strong> die Umkehrfunktion<br />
gebildet:<br />
ρ s = 1 2<br />
∫ ρ<br />
0<br />
e −ρ′ /2 dρ ′ = 1 − e −ρ/2 =⇒ ρ = −2 ln(1 − ρ s ) (4.40)<br />
wobei wieder 1 − ρ s durch ρ s ersetzt werden darf, da ρ s gleichverteilt auf [0, 1] ist. Wegen<br />
x/x s = y/y s = √ ρ/ρ s gelangt man zu<br />
bzw. als Codefragment:<br />
x = x s<br />
√<br />
−2 ln(ρs )/ρ s , y = y s<br />
√<br />
−2 ln(ρs )/ρ s . (4.41)<br />
double rhos = xs*xs + ys*ys;<br />
double b = sqrt(-2*log(rhos)/rhos);<br />
double x = xs*b;<br />
double y = ys*b;<br />
Die verbesserte Box-Muller-Transformation erfordert also immer noch die Auswertung<br />
eines Logarithmus, vermeidet jedoch die beiden Winkelfunktionen <strong>und</strong> ist daher etwas<br />
schneller.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
72 Zufallszahlen<br />
4.3.6 Umgang mit Wahrscheinlichkeitsverteilungen in Mathematica R○<br />
Für kontinuierliche Wahrscheinlichkeitsdichten sieht Mathematica R○ einen eigenen Datentyp<br />
vor. Zunächst muss dazu der Befehl<br />
4.4 Aufgaben 73<br />
Erzeugen Sie die Summe<br />
s =<br />
N∑<br />
i=1<br />
von N reellen Zufallszahlen r i , die gleichförmig über das Intervall r i ∈ [0, 1] verteilt sind.<br />
Überzeugen Sie sich, dass <strong>für</strong> große N der Mittelwert 〈s〉 <strong>und</strong> die Standardabweichung σ<br />
durch<br />
〈s〉 = N/2 , σ 2 = 〈s 2 〉 − 〈s〉 2 = N/12<br />
gegeben sind, wobei 〈. . .〉 die Mittelung über viele statistisch unabhängig erzeugte Summen<br />
s bezeichnet.<br />
Führen Sie dann die Summation <strong>für</strong> fest gewähltes N = 10, 100, 1000 mit unabhängigen<br />
Zufallszahlen viele Male durch <strong>und</strong> plotten Sie die gemittelte Häufigkeitsverteilung der<br />
Summen s in einem Histrogramm. Vergleichen Sie das Resultat mit der Gaußverteilung<br />
P (s) = 1 [ ]<br />
−(s − 〈s〉)<br />
2<br />
σ √ 2π exp 2σ 2 .<br />
r i<br />
Aufgabe 4.9<br />
(Umrechnung von Wahrscheinlichkeitsdichten)<br />
Gegeben sei die Wahrscheinlichkeitsdichte<br />
P (x, y) =<br />
{ α−1<br />
2π (x2 + y 2 ) −(α+1)/2 falls x 2 + y 2 > 1<br />
0 andernfalls<br />
. (4.42)<br />
(a) Schreiben Sie ein Programm, das Paare von Zufallszahlen (x, y) generiert, die gemäß<br />
der Wahrscheinlichkeitsdichte P (x, y) verteilt sind, wobei α > 1 ein reeller<br />
Parameter ist.<br />
Hinweis: Die Verfahrensweise ist ähnlich wie bei der Box-Muller-Transformation.<br />
(b) Erstellen Sie <strong>für</strong> α = 2 ein Histogramm <strong>für</strong> N = 10 7 solche Paare im Wertebereich<br />
(x, y) ∈ [−5, 5] ⊗ [−5, 5] mit der Auflösung ∆x = ∆y = 1/100. Normieren Sie das<br />
Histogramm auf geeignete Weise, so dass es die Wahrscheinlichkeitsdichte P (x, y)<br />
approximiert.<br />
Hinweis: In C++ erfordert dies eine Laufzeit von ca. 10 Sek<strong>und</strong>en. Mathematica ist<br />
erheblich langsamer, – hier müssen die Parameter evt. angepasst werden.<br />
(c) Plotten Sie einen Schnitt bei y = 0 durch das Histogramm <strong>und</strong> überlagern Sie die<br />
Kurve der vorgegebenen Verteilung P (x, 0) <strong>für</strong> α = 2.<br />
Aufgabe 4.10<br />
(Populationsdynamik)<br />
Untersuchen Sie eine Kolonie von Bakterien, die innerhalb einer Sek<strong>und</strong>e mit jeweils<br />
gleicher Wahrscheinlichkeit entweder sterben oder sich in jeweils zwei Bakterien teilen.<br />
Schreiben Sie ein Programm, das diesen Vorgang simuliert, wobei es mit einem einzelnen<br />
Bakterium startet. Wie groß ist die mittlere Bakterienanzahl <strong>und</strong> die Überlebenswahrscheinlichkeit<br />
der Kolonie nach n Zeitschritten? Tragen Sie das Ergebnis grafisch bis<br />
n = 100 auf.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
5 Zufallsbewegung<br />
Der einfachste stochastische Prozess ist die zufällige Bewegung (random walk) eines Teilchens.<br />
Zufallsbewegungen sind in der Natur auf vielfältige Weise realisiert. So bewegt<br />
sich beispielsweise ein individuelles Molekül in einem Gas auf einer irregulären Trajektorie,<br />
die sich wegen der komplexen Abfolge von Wechselwirkungen mit anderen Molekülen<br />
aus (scheinbar) zufälligen Einzelbewegungen zusammensetzt. Der random walk ist also<br />
<strong>für</strong> unser Verständnis von Diffusionsprozessen <strong>und</strong> später auch <strong>für</strong> diffusionsgetriebener<br />
chemische Prozesse von gr<strong>und</strong>legender Bedeutung.<br />
5.1 Universalität der Gaußverteilung<br />
Da sich die aktuelle Koordinate eines random walkers aus der Summe aller Einzelbewegungen<br />
ergibt <strong>und</strong> diese Einzelbewegungen als unkorreliert angenommen werden, wollen<br />
wir im Folgenden zunächst die Addition von Zufallsgrößen behandeln. Daran anschließend<br />
wird dann mit Hilfe des zentralen Grenzwertsatzes gezeigt werden, dass die Summe<br />
vieler Zufallsgrößen unter sehr allgemeinen Voraussetzungen immer normalverteilt ist,<br />
d.h. die Form einer Gauß-Glocke besitzt.<br />
5.1.1 Addition von Zufallsgrößen<br />
Seien r 1 , r 2 zwei gleichverteilte unkorrelierte Zufallszahlen<br />
zwischen 0 <strong>und</strong> 1. Dann ist die Summe S =<br />
r 1 + r 2 dieser beiden Zufallszahlen wiederum eine<br />
Zufallszahl zwischen 0 <strong>und</strong> 2. Allerdings ist S nicht<br />
mehr gleichverteilt, sondern besitzt eine dreiecksförmige<br />
Wahrscheinlichkeitsdichte.<br />
P(s)<br />
1<br />
0 1<br />
2<br />
s<br />
Wie berechnet man eine solche Verteilung auf systematische Weise? Als Beispiel betrachten<br />
wir zunächst zwei unkorrelierte Zufallsgrößen X 1 , X 2 mit Wahrscheinlichkeitsdichten<br />
P 1 (X 1 ), P 2 (X 2 ) <strong>und</strong> bilden deren Summe S = X 1 + X 2 . Wie man sich überzeugen kann,<br />
ist die Wahrscheinlichkeitsdichte der Zufallsgröße S durch das Faltungsintegral<br />
P S (S) = [P 1 ∗ P 2 ] (S)<br />
=<br />
∫ +∞<br />
−∞<br />
dX 1 P 1 (X 1 )P 2 (S − X 1 ) (5.1)<br />
gegeben, womit sich die dreieckige Form der Verteilung P (S) im obigen Beispiel mit<br />
geeigneten Fallunterscheidungen leicht verifizieren lässt.<br />
Auf integrierbaren Funktionen sind Faltungsprodukte assoziativ, d.h.<br />
f ∗ (g ∗ h) = (f ∗ g) ∗ h , (5.2)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
76 Zufallsbewegung<br />
so dass man Faltungsprodukte sehr einfach hintereinanderschalten kann. Betrachtet man<br />
beispielsweise n unkorrelierte Zufallsgrößen X 1 , . . . , X n mit Wahrscheinlichkeitsdichten<br />
P i (X i ) <strong>und</strong> bildet deren Summe S = ∑ n<br />
i=1 X i, so erhält man durch Hintereinanderausführung<br />
der Faltungsprodukte den Ausdruck<br />
P S (S) = [P 1 ∗ P 2 ∗ . . . ∗ P n ] (S)<br />
(5.3)<br />
∫ ∫<br />
n−1<br />
∑<br />
= . . . dX 1 dX 2 . . . dX n−1 P 1 (X 1 )P 2 (X 2 ) · · · P n−1 (X n−1 )P n (S − X i ) .<br />
Eine mehrfache Faltung ist also das Mehrfachintegral über ein Produkt von Funktionen<br />
derart, dass die Summe der Argumente auf der rechten Seite dem Argument auf der<br />
linken Seite entspricht.<br />
Beweis: Zum Beweis von Gl. (5.3) wollen wir das Problem auf die folgende noch allgemeinere<br />
Weise formulieren: Seien X 1, X 2, . . . , X n Zufallsgrößen mit der Wahrscheinlichkeitsdichte<br />
P (X 1, X 2, . . . , X n), d.h. die Zufallsgrößen dürfen sogar korreliert sein. Ferner sei<br />
i=1<br />
S = F (X 1, X 2, . . . , X n) (5.4)<br />
eine beliebige Funktion dieser Größen. Offenbar tragen zur Wahrscheinlichkeitsdichte P (S)<br />
an der Stelle S alle jene Konfigurationen der Zufallsgrößen X 1, . . . , X n bei, welche durch<br />
diese Funktion auf S abgebildet werden, d.h.<br />
∫ ∫ ∫<br />
(<br />
)<br />
P S(S) = dX 1 dX 2 . . . dX n P (X 1, X 2, . . . , X n) δ S − F (X 1, X 2, . . . , X n) , (5.5)<br />
wobei δ die Dirac’sche Deltafunktion ist. Auf der rechten Seite steht also die Zustandssumme<br />
gewichtet mit der Wahrscheinlichkeitsdichte der Zustände unter der Nebenbedingung,<br />
dass die Gl. (5.4) erfüllt ist.<br />
Dieses Integral lässt sich auswerten sofern Gl. (5.4) nach einer der Zufallsgrößen X i explizit<br />
auflösbar ist. Ohne Beschränkung der Allgemeinheit wollen wir annehmen, dass die<br />
Gleichung nach X n eindeutig auflösbar sei, also in der Form<br />
X n = G(X 1, X 2, . . . , X n−1, S) (5.6)<br />
geschrieben werden kann. Als notwendige Bedingung da<strong>für</strong> muss die partielle Ableitung<br />
J(X 1, X 2, . . . , X n) =<br />
∂F (X1, X2, . . . , Xn)<br />
∂X n<br />
(5.7)<br />
von Null verschieden sein. Wegen δ(ax) = |a| −1 δ(x) ist also<br />
(<br />
)<br />
∣<br />
δ S − F (X 1, X 2, . . . , X n) = ∣J(X 1, X 2, . . . , X n) ∣ −1 δ [ X n − G(X 1, X 2, . . . , X n−1, S) ]<br />
so dass man nun die Integration über X n ausführen kann:<br />
∫ ∫ ∫ ∣ )∣ ∣∣J ∣∣<br />
−1<br />
P S(S) = dX 1 dX 2 . . . dX n−1<br />
(X 1, . . . , X n−1, G(X 1, X 2, . . . , X n−1, S)<br />
(<br />
)<br />
× P X 1, . . . , X n−1, G(X 1, X 2, . . . , X n−1, S) (5.8)<br />
Wir testen diesen sehr allgemeinen Ausdruck anhand zweier Beispiele:<br />
• Skalierung: Für n = 1 <strong>und</strong> S = F (X) = aX ist J = a <strong>und</strong> G(S) = S/a. Man erhält<br />
in diesem Fall den bekannten Ausdruck P S(S) = |a| −1 P S(S/a) <strong>für</strong> die Umskalierung<br />
einer Wahrscheinlichkeitsdichte.<br />
• Addition zweier Zufallsgrößen: Mit n = 2 <strong>und</strong> S = F (X 1, X 2) = X 1 + X 2<br />
erhält man J = 1 <strong>und</strong> G(X 1, S) = S − X 1, womit man auf das zuvor betrachtete<br />
Faltungsintegral geführt wird:<br />
∫<br />
P S(S) = dX 1 P (X 1, S − X 1) . (5.9)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
5.1 Universalität der Gaußverteilung 77<br />
5.1.2 Faltungssatz<br />
Die bei der Addition von Zufallsgrößen auftretenden Faltungsintegrale <strong>für</strong> die Wahrscheinlichkeitsdichten<br />
können mit Hilfe des Faltungssatzes vereinfacht werden. Sei dazu<br />
̂P i (k) = √ 1 ∫ +∞<br />
dX i e ikX i<br />
P i (X i ) (5.10)<br />
2π<br />
−∞<br />
die Fouriertransformierte von P i (X i ), die in der Wahrscheinlichkeitstheorie aus als charakteristische<br />
Funktion bezeichnet wird. Nach dem Faltungssatz ist dann die Fouriertransformierte<br />
des Faltungsprodukts P S (S) = [P 1 ∗P 2 ] (S) bis auf einen Faktor gleich dem<br />
gewöhnlichen Produkt der Fouriertransformierten:<br />
̂P S (k) = √ 2π ̂P 1 (k)̂P 2 (k) (5.11)<br />
Durch Fouriertransformation lässt sich also ein Faltungsprodukt auf gewöhnliche Multiplikation<br />
zurückführen.<br />
Beweis: Die linke Seite von Gl. (5.11) ist gegeben durch<br />
̂P S(k) =<br />
=<br />
∫<br />
1 +∞<br />
√ dS e ikS P S(S)<br />
2π<br />
−∞<br />
∫<br />
1 +∞<br />
∫ +∞<br />
√ dS e ikS dX 1 P 1(X 1) P 2(S − X 1) .<br />
2π<br />
−∞<br />
−∞<br />
Vertauscht man nun die Integrale <strong>und</strong> substituiert S → S + X 1, so erhält man<br />
̂P S(k) =<br />
∫<br />
1 +∞<br />
∫ +∞<br />
√ dX 1 dS e ik(S+X1) P 1(X 1) P 2(S)<br />
2π<br />
−∞<br />
−∞<br />
= √ ( ∫ 1 +∞<br />
) ( ∫<br />
2π √ dX e ikX 1 +∞<br />
P 1(X) √<br />
2π 2π<br />
−∞<br />
= √ 2π ̂P 1(k)̂P 2(k) .<br />
−∞<br />
)<br />
dX e ikX P 2(X)<br />
Der Faltungssatz ist auch auf die Faltung von mehr als zwei Funktionen wie in Gl. (5.3)<br />
anwendbar <strong>und</strong> lautet:<br />
̂<br />
]<br />
̂P S (k) =<br />
[P 1 ∗ P 2 ∗ . . . ∗ P n = (k) (2π)(n−1)/2 ̂P1 (k)̂P 2 (k) · . . . · ̂P n (k) (5.12)<br />
Bei identische Verteilungen P 1 = P 2 = . . . = P läuft dies auf eine Potenzierung der<br />
Fouriertransformierten hinaus:<br />
̂P S (k) = (2π) (n−1)/2 ( ̂P (k)) n . (5.13)<br />
5.1.3 Transformierte Wahrscheinlichkeitsdichte eines Standardgenerators<br />
Um die Anwendung des Faltungssatzes zu demonstrieren, bilden wir zunächst die Fouriertransformierte<br />
der gleichverteilten Wahrscheinlichkeitsdichte<br />
P (r) =<br />
{ 1 falls 0 ≤ r ≤ 1<br />
0 andernfalls<br />
(5.14)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
78 Zufallsbewegung<br />
^<br />
Re(P(k))<br />
0.4<br />
0.3<br />
0.2<br />
^<br />
|P(k)|<br />
0.1<br />
-10 -5 5 10<br />
-0.1<br />
k<br />
^<br />
Im(P(k))<br />
-0.2<br />
-0.3<br />
Abbildung 5.1: Betrag sowie Real- <strong>und</strong> Imaginärteil der Fouriertransformierten der Verteilungsfunktion<br />
eines Standard-Zufallszahlengenerators.<br />
eines Standard-Zufallszahlengenerators:<br />
̂P (k) = √ 1 ∫ +∞<br />
e ikr P (r) dr = 1 ∫ 1<br />
√<br />
2π 2π<br />
−∞<br />
0<br />
e ikr dr = i(1 − eik )<br />
k √ 2π<br />
(5.15)<br />
Die Singularität bei k = 0 ist hebbar, so dass man eine stetige Funktion erhält, die in<br />
Abb. 5.1 abgebildet ist. Wie man sehen kann, befindet sich das betragsmäßige Maximum<br />
der Funktion in der Mitte bei k = 0.<br />
Beispiel: Die folgenden Mathematica R○ -Befehle führen die Faltung von n Standardzufallszahlen<br />
mit Hilfe des Faltungssatzes aus:<br />
1. Berechne Fouriertransformierte der Verteilung einer Standard-Zufallszahl<br />
FT =<br />
∫ 10 e ikr dr<br />
√ 2π<br />
− i(−1+eik )<br />
k √ 2π<br />
2. Bilde n -te Potenz des Ergebnisses <strong>und</strong> transformiere zurück:<br />
FTP[n_]:=(2π) n−1<br />
2 FT n ; P [n_]:=InverseFourierTransform[FTP[n], k, r]<br />
3. Plotte das Ergebnis <strong>für</strong> n =2,3,4,5:<br />
Plot[{P [2], P [3], P [4], P [5]}, {r, −1, 5},PlotRange → {0, 1}];<br />
1<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
-1 1 2 3 4 5<br />
Wie man an diesem Beispiel sehen kann, ist schon die Summe weniger Zufallszahlen an-<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
5.1 Universalität der Gaußverteilung 79<br />
^<br />
|P(k)| N<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
-15 -10 -5 5 10 15<br />
k<br />
-15 -10 -5 5 10 15<br />
-2<br />
-4<br />
-6<br />
-8<br />
-10<br />
N ln |P(k)| ^<br />
Abbildung 5.2: Betrag von (2π) (N−1)/2 |P S(k)| N <strong>für</strong> N = 2, 4, 8, 16, 32 in linearer <strong>und</strong> logarithmischer<br />
Darstellung. Durch die Potenzierung überlebt im Limes großer N nur der Bereich in<br />
der Nähe des Maximums der Funktion.<br />
k<br />
nähernd normalverteilt. Wenn es auf quantitative Genauigkeit nicht ankommt, wird in der<br />
Praxis die Summenbildung häufig als Trick benutzt, um quasi-normalverteilte Zufallszahlen<br />
zu erzeugen. Für quantitive Probleme in der <strong>Physik</strong> ist die Box-Müller-Transformation<br />
allerdings besser geeignet.<br />
Mit der fouriertransformierten Wahrscheinlichkeitsdichte des Standardzufallszahlengenerators<br />
<strong>und</strong> dem Faltungssatz sind wir nun in der Lage, die Verteilungsfunktion <strong>für</strong> eine<br />
Summe von N Zufallszahlen auszurechnen <strong>und</strong> den Limes N → ∞ zu untersuchen.<br />
5.1.4 Zentraler Grenzwertsatz<br />
Der zentrale Grenzwertsatz besagt, dass bei Addition sehr vieler Zufallsgrößen die Wahrscheinlichkeitsdichte<br />
der Summe in der Regel gegen eine Gaußverteilung konvergiert.<br />
Ausgedrückt in akustischen Metaphern heißt dies, dass sich das Konzert einer großen<br />
Anzahl unkorrelierter Rauschquellen stets gleich anhört da man stets ein normalverteiltes<br />
sogenanntes weisses Rauschen erhält.<br />
Die Voraussetzungen <strong>für</strong> zentralen Grenzwertsatz sind sehr allgemein. So spielt es beispielsweise<br />
keine Rolle, wie die jeweiligen Verteilungen der Zufallsgrößen konkret aussehen,<br />
sofern diese im Unendlichen nur schnell genug abfallen. Der zentrale Grenzwertsatz<br />
ist damit paradigmatisch <strong>für</strong> Universalität in der statistischen <strong>Physik</strong>. Der Begriff der<br />
Universalität umschreibt die Tatsache, dass mikroskopisch völlig unterschiedliche Systeme<br />
das gleiche makroskopische Verhalten aufweisen können.<br />
Der Einfachheit halber wollen wir annehmen, dass N gleichartig verteilte Zufallsgrößen<br />
aufaddiert werden. Gl. (5.12) wird dann zu<br />
̂<br />
P (N)<br />
S<br />
(k) = (2π) (N−1)/2 [ ̂P (k)] N (5.16)<br />
Betrachtet man nun große N, so wird sich der betragsmäßig maximale Bereich der Funktion<br />
̂P (k) zunehmend durchsetzen. Dieser Sachverhalt ist in Abb. 5.2 dargestellt. Der<br />
linke Graph zeigt verschiedene Potenzen von | ̂P (k)|, wobei die Kurven bei k = 0 auf den<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
80 Zufallsbewegung<br />
gleichen Wert normiert sind. Wie man sehen kann, setzt sich <strong>für</strong> große N das betragsmäßige<br />
Maximum der Kurve durch <strong>und</strong> bildet eine zunehmend δ-förmige Verteilung,<br />
während die detailreiche Struktur der Kurve <strong>für</strong> k ≠ 0 mit zunehmendem N immer<br />
mehr unterdrückt wird. Diese Details sind es aber, welche die rechteckige Struktur der<br />
ursprünglichen Verteilung codieren.<br />
Da die Kurve eine bei k = 0 konzentrierte Form annimmt, ist es nützlich, den Logarithmus<br />
von [ ̂P (k)] N zu betrachten, dessen Betrag im rechten Graphen dargestellt ist. In dieser<br />
Darstellung bewirkt die Potenzbildung eine Streckung der Kurven um den Faktor N in<br />
senkrechter Richtung. Wie man sehen kann, erhält man <strong>für</strong> große N in der Nähe von<br />
k = 0 annähernd eine nach unten geöffnete Parabel.<br />
Die Beweisidee <strong>für</strong> den zentralen Grenzwertsatz beruht darauf, ln[̂P S (k)] durch eine Parabel<br />
näherungsweise zu beschreiben, also eine Taylorentwicklung zweiter Ordnung<br />
] [<br />
ln[̂PS (k) = ln (2π) (N−1)/2 [ ̂P (k)] N] = a + bk − ck 2 + O(k 3 ) (5.17)<br />
durchzuführen, wobei a, b <strong>und</strong> c Koeffizienten sind, die von N abhängen. In dieser Näherung<br />
ist<br />
̂P S (k) ≈ exp(a) exp(bk − ck 2 ) (5.18)<br />
nämlich eine Gaußverteilung, deren Fouriertransformierte wiederum eine Gaußverteilung<br />
ist. Der lineare Anteil in k kann dabei durch quadratische Ergänzung absorbiert werden.<br />
Da man von den höheren Ordnungen der Taylorentwicklung zeigen kann, dass deren<br />
Beiträge <strong>für</strong> N → ∞ gegen Null skalieren, bleibt in diesem Limes tatsächlich die Normalverteilung<br />
als Grenzwert übrig.<br />
Beispiel: Bei der Addition von N Standard-Zufallszahlen S = ∑ N<br />
i=1<br />
ri mit ri ∈ [0, 1] ist<br />
ln<br />
⇒<br />
(N) ̂P<br />
S<br />
(k) = N − 1 ln 2π + N ln<br />
2<br />
̂P (k)<br />
≃ − 1 2 ln 2π − ikN 2 − k2 N<br />
24 + O(k3 )<br />
̂P<br />
(N)<br />
S<br />
(k) ≃<br />
−∞<br />
1<br />
(<br />
√ exp − ikN<br />
2π 2<br />
− k2 N<br />
)<br />
24<br />
Nach Ausführung der inversen Fouriertransformation erhält man in der Tat die Normalverteilung<br />
P (N)<br />
S<br />
= √ 1 ∫ +∞<br />
√ (<br />
(N)<br />
6<br />
dk ̂P<br />
S<br />
(k) =<br />
2π Nπ exp − 6 )<br />
N (r − N/2)2 (5.19)<br />
Wie man leicht zeigen kann, ist diese Verteilung korrekt normiert. Mittelwert <strong>und</strong> Varianz<br />
sind gegeben durch<br />
〈r〉 = N/2 σ 2 = 〈r 2 〉 − 〈r〉 2 = N/12 (5.20)<br />
5.2 Die eindimensionale Zufallsbewegung<br />
Um die gr<strong>und</strong>legenden Begriffe stochastischer Vielteilchensysteme an einem einfachen<br />
Beispiel einzuführen, betrachten wir zunächst eine Zufallsbewegung (random walk) eines<br />
einzigen Teilchens in einer Dimension. Wir wollen annehmen, dass sich das Teilchen auf<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
5.2 Die eindimensionale Zufallsbewegung 81<br />
Abbildung 5.3: Eindimensionale Zufallsbewegung (random walk). Ein Teilchen springt in jedem Zeitschritt<br />
mit gleicher Wahrscheinlichkeit nach rechts bzw. nach links.<br />
einer Kette mit diskreten Plätzen (sites) befindet (siehe Abb. 5.3). Der Zustand, also<br />
die Konfiguration des Systems, ist vollständig durch die Position x(t) ∈ Z des Teilchens<br />
charakterisiert. Die Dynamik des Systems sei nun dadurch definiert, dass in jedem Zeitschritt<br />
das Teilchen mit gleicher Wahrscheinlichkeit nach rechts oder nach links springt.<br />
Die Zeit t ∈ N ist also ganzzahlig <strong>und</strong> gleich der Anzahl der ausgeführten Sprünge.<br />
Die Dynamik lässt sich durch eine stochastische Bewegungsgleichung<br />
x(t + 1) = x(t) + R(t) (5.21)<br />
beschreiben, wobei R(t) eine bimodal verteilte Zufallsgröße ist, d.h. sie nimmt nur zwei<br />
mögliche Werte an. R(t) hat folgende Eigenschaften:<br />
- Wertebereich: R(t) = ±1<br />
- Mittelwert: 〈R(t)〉 = 0<br />
- Korrelationsfreiheit: 〈R(t)R(t ′ )〉 = δ t,t ′<br />
Diese Dynamik lässt sich beispielsweise in C++ durch die Befehlszeilen<br />
if (rnd()
82 Zufallsbewegung<br />
<strong>und</strong> hat die Struktur eines normierten Pascal-Dreiecks. Die Fallunterscheidung ist erforderlich,<br />
weil sich das Teilchen sich bei dem betrachteten Prozess zu geraden (ungeraden)<br />
Zeitschritten nur auf geraden (ungeraden) Plätzen aufhalten kann. Für große Zeiten approximiert<br />
die Binomialverteilung wie erwartet die Gaußsche Normalverteilung.<br />
5.2.2 Kontinuumlimes<br />
Zum Verständnis der makroskopischen Eigenschaften eines stochastischen Prozesses ist<br />
es oft nützlich, einen geeigneten Kontinuumlimes zu betrachten, in dem die diskrete Gitterstruktur<br />
<strong>und</strong> die diskreten Zeitschritte nicht mehr sichtbar sind. Dabei geht man zu<br />
kontinuierlichen Parametern über (hier also zu x, t ∈ R) <strong>und</strong> beschreibt die Wechselwirkung<br />
mit benachbarten Plätzen durch geeignete Differentialoperatoren.<br />
Im Fall der eindimensionalen Zufallsbewegung subtrahieren wir zunächst P t (x) auf beiden<br />
Seiten der Mastergleichung (5.23):<br />
P t+1 (x) − P t (x) = 1 (<br />
)<br />
P<br />
} {{ }<br />
t (x − 1) − 2P t (x) + P t (x + 1) (5.25)<br />
2 } {{ }<br />
≈ ∂/∂ t<br />
≈ ∂ 2 /∂x<br />
2<br />
Ohne hier auf die mathematisch korrekte Durchführung eines Kontinuumlimes eingehen<br />
zu wollen, sieht man sehr leicht, dass sich auf der linken Seite eine diskretisierte erste<br />
Ableitung nach der Zeit befindet, während auf der rechten Seite eine diskretisierte zweite<br />
Ableitung zu sehen ist. Im Kontinuumlimes erhält man also die Differentialgleichung<br />
∂<br />
∂t P t(x) = D ∇ 2 P t (x) , (5.26)<br />
die als Diffusionsgleichung bzw. Wärmeleitungsgleichung bekannt ist. Dabei ist D = 1/2<br />
die sogenannte Diffusionskonstante, welche die Geschwindigkeit des Diffusionsprozesses<br />
bestimmt. Würden x <strong>und</strong> t physikalische Einheiten tragen, hätte D die gleiche Dimension<br />
wie x 2 /t. Man beachte ausserdem, dass P t (x) nun eine kontinuierliche Wahrscheinlichkeitsdichte<br />
ist. Eine partielle Differentialgleichung wie die obige Diffusionsgleichung, welche<br />
die Zeitentwicklung einer Wahrscheinlichkeitsdichte beschreibt, wird in allgemeineren<br />
Zusammenhängen auch als Fokker-Planck-Gleichung bezeichnet.<br />
Bemerkung: Aus der Quantentheorie kennen Sie die zeitabhängige Schrödingergleichung<br />
eines freien Teilchens<br />
i∂ tψ(⃗x, t) = ˆp2<br />
2<br />
ψ(⃗x, t) = −<br />
2m 2m ∇2 ψ(⃗x, t) . (5.27)<br />
Diese Gleichung ist formal äquivalent zur Diffusionsgleichung bis auf den Faktor i auf der<br />
linken Seite, wobei /2m die Rolle der Diffusionskonstante spielt. Diese Analogie ist sehr<br />
gr<strong>und</strong>legend. In vielen Fällen lassen sich nämlich Probleme aus der statistischen <strong>Physik</strong><br />
mit reellen Wahrscheinlichkeiten auf Probleme der Quantentheorie mit komplexen Phasen<br />
durch analytische Fortsetzung abbilden <strong>und</strong> umgekehrt. Überspitzt könnte man sagen, dass<br />
sich Quantentheorie <strong>und</strong> statistische <strong>Physik</strong> in formaler Hinsicht nur durch ein i voneinander<br />
unterscheiden.<br />
Die Lösung der Diffusionsgleichung (∂ t − D∇ 2 )P t (x) = 0 <strong>für</strong> ein am Ursprung x = 0<br />
startendes Teilchen ist wie erwartet eine Normalverteilung:<br />
P t (x) =<br />
1<br />
√<br />
4πDt<br />
e −x2 /(4Dt)<br />
(5.28)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
5.2 Die eindimensionale Zufallsbewegung 83<br />
Die Breite (Streuung σ) dieser Gaußglocke wächst wie √ t. Wegen der Normierungsbedingung<br />
wird ausserdem ein zeitabhängiger Vorfaktor erforderlich.<br />
5.2.3 Skalierungseigenschaften der Diffusionsgleichung<br />
Die Diffusionsgleichung (∂ t − D∇ 2 )P t (x) = 0 ist relativ einfach zu lösen, doch nicht<br />
immer wird man im Kontinuumlimes auf eine solch einfache Gleichung geführt. Oftmals<br />
erhält man sogar partielle Differentialgleichungen, <strong>für</strong> die es keine geschlossene Lösung<br />
gibt.<br />
In den meisten Fällen kann man dennoch wesentliche Informationen dadurch gewinnen,<br />
dass man die Skalierungseigenschaften der Differentialgleichung untersucht. Man stellt<br />
sich dabei die Frage, unter welchen Bedingungen die Differentialgleichung unter Reskalierung<br />
x → x ′ = Λx (5.29)<br />
t → t ′ = Λ z t (5.30)<br />
P t (x) → P ′ t ′(x′ ) = Λ y P t (x) (5.31)<br />
forminvariant ist, wobei Λ > 0 der Reskalierungsparameter ist, also gewissermaßen ein<br />
Zoomfaktor, mit dem die Ortskoordinate gedehnt oder gestaucht werden kann. Der Zeitparameter<br />
<strong>und</strong> die Wahrscheinlichkeitsdichte werden ebenfalls reskaliert, wobei y <strong>und</strong> z<br />
noch zu bestimmende Exponenten sind. Forminvarianz bedeutet, dass die DGL in den<br />
gestrichenen Größen die gleiche Form wie in den ungestrichenen Größen besitzt, d.h.<br />
Daraus ergibt sich<br />
(∂ t ′ − D∂ 2 x ′)P ′ t ′(x′ ) = 0 . (5.32)<br />
(Λ −z ∂ t − DΛ −2 ∂ 2 x)Λ y P t (x) = 0 . (5.33)<br />
Offenbar ist die Gleichung nur erfüllbar sofern z = 2 ist. Ist in diesem Fall P t (x) eine<br />
Lösung der DGL, dann ist auch Λ −y P Λ 2 t(Λx) eine Lösung, es gilt also<br />
P t (x) = Λ −y P Λ 2 t(Λx) <strong>für</strong> alle Λ > 0 . (5.34)<br />
Weil der Reskalierungsparameter Λ frei wählbar ist, darf man eine spezielle Wahl vornehmen.<br />
Mit Λ = t −1/2 ergibt sich<br />
P t (x) = t y/2 f(x/ √ t) , (5.35)<br />
wobei f(ξ) = P 1 (ξ) eine sogenannte Skalenfunktion ist. Diese Wahrscheinlichkeitsdichte<br />
muss <strong>für</strong> alle Zeiten normiert sein, d.h.<br />
∫<br />
∫ +∞<br />
1 = dxP t (x) = dx t y/2 f(x/ √ t) = √ ∫ +∞<br />
t t y/2 du f(u) ∀t (5.36)<br />
−∞<br />
woraus folgt, dass y = −1 ist. Skaleninvarianz impliziert also, dass die gesuchte Lösung<br />
die Skalenform<br />
P t (x) = f(x/√ t)<br />
√<br />
t<br />
(5.37)<br />
erfüllt. Ein Vergleich mit der Lösung (5.28) bestätigt, dass dies in der Tat der Fall ist.<br />
Die Hypothese der Skaleninvarianz führt also eine Funktion mit zwei Parametern t <strong>und</strong><br />
x auf ein Potenzgesetz multipliziert mit einer Funktion von nur einem Parameter x/ √ t<br />
zurück.<br />
−∞<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
84 Zufallsbewegung<br />
5.3 Diffusion in höheren Dimensionen<br />
5.3.1 Entkopplung orthogonaler Freiheitsgrade<br />
Eine Zufallsbewegung in höherdimensionalen Räumen lässt sich in kartesischen Koordinaten<br />
additiv aus eindimensionalen Zufallsbewegungen zusammensetzen. In zwei Dimensionen<br />
könnte z.B. dies durch die Befehlssequenz<br />
if (rnd()
5.3 Diffusion in höheren Dimensionen 85<br />
5.3.2 Rückkehrwahrscheinlichkeit<br />
Wenn Sie morgens Ihre Kaffeemaschine<br />
anschalten, – wie lange<br />
wird es dauern, bis Sie den<br />
Kaffeeduft zum ersten Mal wahrnehmen<br />
können? Oder: Mit welcher<br />
Wahrscheinlichkeit findet ein<br />
Betrunkener wieder nach Hause?<br />
Fragestellungen dieser Art werden<br />
in der statistischen <strong>Physik</strong><br />
als first-passage oder first-return-<br />
Probleme bezeichnet.<br />
In diesem Buch [13] finden Sie alles zu Rückkehrproblemen.<br />
Wir wollen hier die Frage stellen, mit welcher Wahrscheinlichkeit ein am Ursprung startendes<br />
Teilchen, das eine Zufallsbewegung in einer Dimension ausführt, wieder zum Ursprung<br />
zurückkehrt. Mit dem in Abschnitt 5.2 benutzten Modell wird das Teilchen im<br />
ersten Zeitschritt nach links bzw. rechts springen <strong>und</strong> kehrt dann im zweiten Zeitschritt<br />
mit Wahrscheinlichkeit 1/2 zum Ursprung zurück. Bei zunehmender Zeit nimmt die Rückkehrwahrscheinlichkeit<br />
R(t) immer weiter ab. Mit einem einfachen Programm kann man<br />
sich leicht davon überzeugen, dass die Rückkehrwahrscheinlichkeit im Ensemblemittel<br />
(also gemittelt über viele unabhänge Läufe) algebraisch abnimmt:<br />
R(t) ∼ t −3/2 . (5.39)<br />
Der Exponent − 3 2<br />
wird als Rückkehrexponent (engl. first-passage exponent) bezeichnet.<br />
Beweis: Dieses Ergebnis kann man verstehen, indem man den Kontiuumlimes betrachtet.<br />
Man stellt sich dazu vor, dass ein Ensemble von Teilchen am Ursprung startet <strong>und</strong><br />
diejenigen Teilchen, die den Ursprung wieder erreichen, aus dem System entfernt werden.<br />
Im Kontinuumlimes entspricht das einer Dirichlet-Randbedingung P t(0) = 0 <strong>für</strong> die<br />
Wahrscheinlichkeitsdichte. Wegen des Verlusts von Teilchen erwartet man keine konstante<br />
sondern eine mit der Zeit abnehmende Normierung, die ein Maß da<strong>für</strong> ist, welcher Anteil<br />
von Teilchen den Ursprung noch nicht wieder erreicht hat.<br />
Mathematisch suchen wir also eine Lösung der Diffusionsgleichung unter der Randbedingungen<br />
P t(0) = 0. Setzt man den faktorisierenden Ansatz<br />
P t(x) = g(x)t −α e −x2 /4Dt<br />
(5.40)<br />
in die Diffusionsgleichung (∂ t − D∂ 2 x)P t(x) = 0 ein, so wird man auf die Gleichung (2α −<br />
1)g(x) − 2xg ′ (x) + 2Dtg ′′ (x) = 0 geführt. Diese ist nur dann t-unabhängig wenn g ′′ (x) = 0<br />
ist. Man erhält mit diesem Ansatz zwei unabhängige Lösungen, nämlich <strong>für</strong> g(x) = 1 die<br />
sich sich verbreiternde Gaußglocke in Gl. (5.28) <strong>und</strong> <strong>für</strong> g(x) = x die Lösung<br />
P t(x) = x t −3/2 e −x2 /4Dt<br />
(5.41)<br />
Diese Lösung ist bis auf Konstante die Ableitung einer Gaußglocke nach x <strong>und</strong> hat eine<br />
Nullstelle bei x = 0. Nur der positive Teil der Lösung <strong>für</strong> x > 0 ist physikalisch. Das<br />
Normierungsintegral ist ∫ ∞<br />
dx P<br />
0 t(x) = 2D/ √ t, der Anteil der noch nicht zurückgekehrten<br />
Teilchen zerfällt also wie t −1/2 . Die Rückkehrrate ist proportional zur Zeitableitung dieser<br />
Größe, womit man zu Gl. (5.39) gelangt.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
86 Zufallsbewegung<br />
Abbildung 5.4: Links: Experimentell erzeugter DLA-Cluster durch Elektrodeposition in einer Kupfersulfatlösung.<br />
Rechts: Computersimulation des Wachstums eines DLA-Clusters. Ein<br />
Teilchen wird auf einem Kreis gleichverteilt platziert (grüner Punkt), startet dort einen<br />
random walk (rot), bis es den Cluster erreicht <strong>und</strong> sich dort irreversibel anlagert.<br />
5.3.3 Diffusionsbegrenztes Wachstum (DLA)<br />
Diffusionsbegrenztes Wachstum (diffusion-limited aggregation, DLA) ist ein Prozess, bei<br />
dem Teilchen eine Zufallsbewegung vollführen <strong>und</strong> sich dabei an einem Aggregat, auch<br />
Cluster genannt, sukzessive anlagern. Im einfachsten Fall wird dazu ein punktförmiger<br />
Nukleationskeim am Ursprung des Koordinatensystems bzw. in der Mitte des Bildschirms<br />
plaziert. Ein diff<strong>und</strong>ierendes Teilchen, das zufällig mit dem Cluster in Kontakt gerät,<br />
bleibt an diesem irreversibel haften.<br />
Als theoretisches Modell wurde DLA 1981 von Sander <strong>und</strong> Witten eingeführt [14]. In<br />
diesem idealisierten Modell lagern sich aus dem Unendlichen kommende nichtwechselwirkende<br />
Teilchen durch Diffusion an dem bestehenden Cluster an <strong>und</strong> erzeugen auf<br />
diese Weise ein flockenartiges Aggregat. Um einen solchen Cluster in einer Computersimulation<br />
wachsen zu lassen, startet man den random walk des Teilchens gleichverteilt<br />
auf einem Kreis, der den aktuellen Cluster vollständig umschließt. Dann lässt man das<br />
Teilchen diff<strong>und</strong>ieren, bis es einen am Cluster benachbarten Gitterplatz findet, wo es<br />
aggregiert, also dem Cluster als zugehörig markiert wird. In einem einfachen Programm<br />
wird man deshalb zunächst ein Feld s[x][y] definieren, welches aussagt, ob ein Gitterplatz<br />
zum Cluster gehört oder nicht:<br />
const int L=400;<br />
bool s[L][L];<br />
// Seitenlänge des Bildschirms<br />
// Array <strong>für</strong> Clusterzugehörigkeit<br />
Anfangs werden alle Einträge dieses Arrays auf false gesetzt <strong>und</strong> ein Nukleationskeim<br />
durch s[L/2][L/2]=true in der Mitte platziert. Der Diffusionsprozess wird dann beispielsweise<br />
von folgender Funktion durchgeführt:<br />
void diffusion (double r=0.9)<br />
// Diffusion startend auf Kreis<br />
{ // mit Radius r<br />
bool attached;<br />
double phi=rnd()*2*M_PI;<br />
int x = (int)(L/2+L/2*r*cos(phi)); // Teilchen auf Kreis platzieren<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
5.3 Diffusion in höheren Dimensionen 87<br />
int y = (int)(L/2+L/2*r*sin(phi));<br />
do { // gehört Nachbar zum Cluster?<br />
int xl=(x+L-1)%L, xr=(x+1)%L, yb=(y+L-1)%L, yt=(y+1)%L;<br />
attached = (s[x][yb] or s[x][yt] or s[xl][y] or s[xr][y]);<br />
if (attached) s[x][y]=true; // dann diesen Platz markieren<br />
else switch (rndint(4)) {<br />
}<br />
while (not attached);<br />
}<br />
case 0: x=xl; break;<br />
case 1: x=xr; break;<br />
case 2: y=yb; break;<br />
case 3: y=yt; break;<br />
}<br />
// andernfalls Diffusion ausführen<br />
Das obige Codefragment startet das diff<strong>und</strong>ierende Teilchen auf einem Kreis mit einem<br />
Radius, der als Argument der Funktion übergeben wird. Um dieses Programm zu<br />
optimieren, kann man diesen Kreis so eng wie möglich um den aktuellen Cluster herumlegen.<br />
Oft passiert es aber auch, dass sich das Teilchen vom Cluster entfernt <strong>und</strong> wegen<br />
der sehr schnell abnehmenden Rückkehrwahrscheinlichkeit einer Zufallsbewegung in zwei<br />
Dimensionen praktisch nicht zurückkehrt, so dass das Programm zu ‘hängen’ scheint.<br />
Im obigen Codefragment wird dies durch eine endliche Systemgröße mit periodischen<br />
Randbedingungen vermieden. Andere Programme brechen die Diffusion ab, sobald ein<br />
bestimmter Stop-Radius überschritten wird. Beide Mechanismen beeinflussen jedoch die<br />
statistischen Eigenschaften des Clusters, die Systemgröße bzw. der Stopradius sollten<br />
also deutlich größer als der aktuelle Cluster sein.<br />
Spitzeneffekt<br />
Warum bilden sich so schöne Flocken? Um dies zu verstehen, stelle man sich eine dreidimensionale<br />
Flocke aus Metall vor, die elektrisch geerdet ist. Die Flocke befinde sich<br />
in einer Metallkugel, deren Radius sehr groß ist <strong>und</strong> an die eine bestimmte Spannung<br />
angelegt wird. Im Innern der Kugel bildet sich ein elektrostatisches Feld Φ(⃗r) aus, das<br />
zwischen Flocke <strong>und</strong> Kugel der Poisson-Gleichung ∆Φ = 0 genügt. Diese Gleichung ist also<br />
mit den Dirichlet-Randbedingungen Φ = 0 auf der Oberfläche der Flocke <strong>und</strong> Φ = U O<br />
auf der umgebenden Kugel zu lösen, – ein äußerst anspruchsvolles Problem.<br />
Was hat das mit dem DLA-Problem zu tun? Dazu stellen wir uns die Flocke als ein<br />
Gebilde vor, das Teilchen vernichtet, also bei Kontakt spurlos verschwinden lässt. Den<br />
umgebenden Kreis stellen wir uns als radialsymmetrische Teilchenquelle vor, an der ständig<br />
neue Teilchen mit einer gewissen Rate erzeugt werden. Diese Teilchen diff<strong>und</strong>ieren<br />
nun im Innern der Kugel <strong>und</strong> werden irgendwann die Flocke erreichen <strong>und</strong> dort verschwinden.<br />
Nach einiger Zeit wird sich ein stationärer Zustand mit konstanter Teilchendichte<br />
ρ(⃗r) einstellen. Da zwischen Flocke <strong>und</strong> Kugel die Diffusionsgleichung gilt, muss ∆ρ = 0<br />
sein. Die Dichte an der Quelle (Kugel) ist konstant <strong>und</strong> positiv, die Dichte an der Senke<br />
(Flocke) dagegen gleich Null. Damit hat man formal die gleiche Situation wie im zuvor<br />
beschriebenen elektrostatischen Problem, nur in zwei statt drei Dimensionen.<br />
Diese formale Identität zeigt uns, dass die Anlagerungswahrscheinlichkeit im DLA-Problem<br />
der Normalableitung des Potentials an der Oberläche der Flocke, also der lokalen Feld-<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
88 Zufallsbewegung<br />
stärke an der Oberfläche entspricht. Diese Feldstärke ist an den exponierten Positionen<br />
der Flocke besonders groß, – ein Umstand, der in der Elektrostatik als Spitzeneffekt bekannt<br />
ist. Die Teilchen werden sich also bevorzugt an den Spitzen der Flocke anlagern,<br />
was letzten Endes zur Ausbildung einer flockenförmigen Struktur führt.<br />
Selbstähnlichkeit<br />
In Abschnitt 5.2.3 wurde gezeigt, dass eine Zufallsbewegung ein skaleninvarianter Prozess<br />
ist, d.h. die Bewegungsgleichung ist invariant unter Reskalierung gemäß Gl. (5.29)-(5.31).<br />
<strong>Physik</strong>alisch hat dies zur Folge, dass in einer Zufallsbewegung zwar eine Beziehung zwischen<br />
Längen- <strong>und</strong> Zeitskalen durch r ∼ √ t besteht, jedoch keine typische Längen- bzw.<br />
Zeitskala als solche ausgezeichnet wird. Mit Ausnahme des elementaren Abstands zwischen<br />
benachbarten Gitterplätzen <strong>und</strong> ggf. der Systemgröße gibt es also in einem random<br />
walk keine ausgezeichnete Länge, bei der sich das physikalische Verhalten signifikant ändern<br />
würde. Einen solchen Prozess bezeichnet man als skalenfrei (scale-free).<br />
Da ein DLA-Cluster durch einen skalenfreien Prozess gebildet wird <strong>und</strong> mit einem (von<br />
der Gitterauflösung abgesehen) punktförmigen Keim beginnt, ist auch der DLA-Cluster<br />
selbst eine skalenfreie Struktur. Dieser Sachverhalt ist in Abb. 5.5 anschaulich dargestellt.<br />
Dort werden drei DLA-Cluster mit 10 5 , 10 6 <strong>und</strong> 10 7 aggregierten Teilchen gezeigt.<br />
Die Abbildungen sind reskaliert, so dass die Aggregate in allen drei Bildern visuell den<br />
gleichen Radius haben. Wie man sehen kann, beeinflusst die Reskalierung zwar etwas<br />
die mikroskopische Körnigkeit der Pixel, doch bleibt die globale Struktur der Flocke als<br />
solche durch die Reskalierung qualitativ unverändert.<br />
Fraktale Dimension<br />
Ein DLA-Cluster ist ein asymptotisch fraktales Gebilde. Wie bereits in Kap. 3.2 auf<br />
S. 45 angesprochen, ist ein Fraktal eine in einen metrischen Raum eingebettete Menge<br />
mit einer im Allgemeinen nicht-ganzzahligen Dimension. Während Linien eindimensional<br />
<strong>und</strong> Flächen zweidimensional sind, ist ein DLA-Cluster gewissermaßen ein Zwischending<br />
5 6 7<br />
10 Teilchen 10 Teilchen 10 Teilchen<br />
Abbildung 5.5: Reskalierte DLA-Cluster mit jeweils 10 5 , 10 6 <strong>und</strong> 10 7 deponierten Teilchen. [Quelle:<br />
Jon Machta, http://people.umass.edu/machta/images/dla.html]<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
5.4 Aufgaben 89<br />
– er ist zwar mehr als eine Linie, jeoch auch nicht in der Lage, eine Fläche auszufüllen.<br />
Es gibt verschiedene Methoden, die fraktale Dimension d f einer gegebenen Menge zu bestimmen.<br />
Die vielleicht bekannteste Methode ist das box-counting-Verfahren. Dazu wird,<br />
wie in Abb. 5.6 dargestellt, über die zu untersuchende Menge ein Gitter mit Gitterabstand<br />
∆x gelegt. Dann werden diejenigen Quadrate gezählt, die mindestens ein Element<br />
der Menge enthalten, in diesem Fall also von mindestens einem Pixel des DLA-Clusters<br />
berührt werden. Im Idealfall hängt diese Anzahl n mit ∆x über ein Potenzgesetz<br />
n ∼ (∆x) −d f<br />
(5.42)<br />
zusammen, wobei der Exponent die fraktale Dimension ist. 1 In der Tat bekäme man<br />
<strong>für</strong> eine Linie (z.B. <strong>für</strong> eine Gerade oder einen Kreis) den Wert d f = 1, <strong>für</strong> eine voll<br />
ausgefüllte Fläche dagegen d f = 2.<br />
Für fraktale Strukturen, die auf einem Rechner erzeugt werden, ist das Potenzgesetz<br />
(5.42) nur in einem bestimmten Bereich gültig. Auf der einen Seite darf ∆x nicht kleiner<br />
als die Gitterkonstante des DLA-Clusters sein, andererseits darf ∆x aber auch nicht<br />
größer als der Cluster selbst werden. Eine grobe Abschätzung des Potenzgesetzes in<br />
dem dazwischenliegenden Bereich mit dem in Abb. 5.6 gezeigten Verfahren führt auf<br />
d f ≈ 1.65. Literaturwerte bewegen sich in der Nähe von d f ≈ 1.7. Damit besitzt ein<br />
DLA-Cluster tatsächlich eine fraktale Struktur, – er ist weder eine Line noch eine Fläche,<br />
sondern ein flockenartiges Gebilde mit nicht-ganzzahliger Dimensionalität.<br />
Die Untersuchung von DLA ist gegenwärtig ein aktives Forschungsgebiet. Insbesondere<br />
gibt es zahlreiche Arbeiten, die zu unterschiedlichen Ergebnissen <strong>für</strong> die fraktale Dimension<br />
gelangen. Neuere numerische Untersuchungen haben gezeigt, dass die fraktale<br />
Dimension möglicherweise mit dem relativen Abstand vom Ursprung variiert. Ein umfassendes<br />
theoretisches Verständnis des DLA-Wachstums fehlt noch.<br />
5.4 Aufgaben<br />
Aufgabe 5.11<br />
Gegeben sei die Summe<br />
(Zentraler Grenzwertsatz)<br />
s N =<br />
N∑<br />
i=1<br />
r −γ<br />
i<br />
,<br />
wobei r i wie üblich gleichverteilte Zufallszahlen zwischen 0 <strong>und</strong> 1 sind während γ > 0 ein<br />
frei wählbarer Exponent ist. Ziel der Aufgabe ist es herauszufinden, <strong>für</strong> welche γ der zentrale<br />
Grenzwertsatz gültig ist <strong>und</strong> wann er versagt. Ausserdem soll im Gültigkeitsbereich<br />
die zu erwartende Streuung der Gaußverteilung im Limes großer N berechnet werden.<br />
Gehen Sie dazu in folgenden Schritten vor.<br />
(a) Bestimmen Sie mit Hilfe von Mathematica R○ analytisch die Wahrscheinlichkeitsverteilung<br />
P (y), wobei y i = r −γ<br />
i<br />
ist.<br />
1 Je nach Verfahren gibt es unterschiedliche fraktale Dimensionen. Die hier definierte wird deshalb in<br />
der Literatur auch häufig als box-counting dimension bezeichnet.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
90 Zufallsbewegung<br />
224 of 256 boxes 737 of 1024 boxes<br />
10 6<br />
number of visited boxes<br />
10 5<br />
10 4<br />
10 3<br />
10 2<br />
10 1<br />
2266 of 4096 boxes<br />
10 0<br />
10 -3 10 -2 10 -1 10 0<br />
∆x<br />
Abbildung 5.6: Veranschaulichung der boxcounting-Methode zur Bestimmung der fraktalen<br />
Dimension.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
5.4 Aufgaben 91<br />
(b) Berechnen Sie mit Hilfe von Mathematica R○<br />
˜P (k) von P (y).<br />
analytisch die Fourier-Transformierte<br />
(c) Führen Sie mit Hilfe von Mathematica R○ eine Taylorentwicklung von ln( ˜P (k)) bis<br />
zur zweiten Ordnung in k durch. Für welche γ ist dies eine Parabel? (Nur dann ist<br />
der zentrale Grenzwertsatz anwendbar).<br />
(d) Isolieren Sie im Wertebereich von γ, in dem der zentrale Grenzwertsatz anwendbar<br />
ist, den quadratischen Anteil der Taylornäherung von ln( ˜P (k)), multiplizieren Sie<br />
laut Faltungssatz mit N <strong>und</strong> führen Sie die inverse Fouriertransformation aus.<br />
(e) Lesen Sie von der resultierenden Gaussverteilung die zu erwartende Streuung σ <strong>für</strong><br />
große N ab.<br />
(f) Schreiben Sie ein C- oder Java-Programm, welches – ähnlich wie in Aufgabe 1 –<br />
die Streuung σ numerisch berechnet <strong>und</strong> verifizieren Sie Ihr analytisches Resultat.<br />
Wenn Sie möchten, lassen Sie dieses Programm auch einmal <strong>für</strong> Werte von γ laufen,<br />
wo der zentrale Grenzwertsatz nicht zutrifft. Sie werden sehen, dass Ihnen die<br />
Abschätzung <strong>für</strong> σ in diesem Fall aus dem Ruder läuft, also nicht konvergiert.<br />
Aufgabe 5.12<br />
(Levy-Flüge)<br />
Die Länge der Flugstrecken d, die Vögel oder Insekten zurücklegen, sind oftmals wie ein<br />
Potenzgesetz verteilt. Schreiben Sie eine Funktion, die unter Verwendung eines Standard-<br />
Zufallszahlengenerators <strong>für</strong> reelle Zahlen r ∈ [0, 1] Flugdistanzen gemäß der Verteilung<br />
{ }<br />
(α − 1)d<br />
−α<br />
falls d > 1<br />
P (d) =<br />
0 falls d ≤ 1<br />
generiert, wobei α > 1 ein reeller Exponent ist. Überprüfen Sie Ihre Funktion, indem Sie<br />
<strong>für</strong> α = 2 das erzeugte Histogramm mit P (d) vergleichen.<br />
Aufgabe 5.13<br />
(Finanzmärkte)<br />
Jeden Tag steigt oder fällt der DAX um den Faktor a = 1.03 mit jeweils gleicher Wahrscheinlichkeit.<br />
Schreiben Sie ein Programm, das diesen Vorgang simuliert. Der DAX habe<br />
einen Anfangsstand von 5000 Punkten. Wie groß ist der Mittelwert <strong>und</strong> die Standardabweichung<br />
des DAX nach einem Jahr? Mitteln Sie dazu über viele unabhängige Simulationen.<br />
Hinweis: Sie können zur Übung das Ergebnis auch analytisch ausrechnen, indem Sie den<br />
DAX logarithmieren.<br />
Aufgabe 5.14<br />
(Brückenmodell)<br />
Lesen Sie die Originalveröffentlichung<br />
M.R. Evans, D.P. Foster, C. Godrèche, and D. Mukamel<br />
Spontaneous Symmetry Breaking in one-dimensional Driven Diffusive Systems<br />
Physical Review Letters 74, 208 (1995).<br />
(in der Bibliothek oder prl.aps.org von Rechnern der Domäne uni-wuerzburg.de)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
92 Zufallsbewegung<br />
<strong>und</strong> schreiben Sie ein Programm, welches das dort beschriebene “Brückenmodell” simuliert.<br />
Reproduzieren Sie damit qualitativ das in Fig. 3 dieses Papiers dargestellte Springen<br />
zwischen links- <strong>und</strong> rechtslaufendem Verkehr (sie dürfen dabei gerne die Parameter variieren).<br />
Aufgabe 5.15<br />
(Rückkehrwahrscheinlichkeit des Random Walks)<br />
Weisen Sie durch numerische Simulation nach, dass die Wahrscheinlichkeit R(t), dass eine<br />
eindimensionale Zufallsbewegung zum ersten Mal an ihren Ausgangspunkt zurückkehrt,<br />
als Funktion der Zeit wie R(t) ∼ t −3/2 abnimmt.<br />
Aufgabe 5.16<br />
(Erzeugung eines deterministischen Fraktals)<br />
Betrachten Sie einen eindimensionalen binären zellulären Automaten, der durch die folgende<br />
deterministische Dynamik definiert ist:<br />
{<br />
1 falls s i−1 (t) ≠ s i+1 (t)<br />
s i (t + 1) :=<br />
0 sonst<br />
Starten Sie mit der Konfiguration . . . 000010000 . . ., also mit<br />
s i (0) = δ i,0<br />
<strong>und</strong> generieren Sie mit Hilfe des zellulären Automaten die oben abgebildete fraktale<br />
Struktur. Berechnen Sie dabei die Gesamtmasse des Clusters<br />
M(T ) =<br />
T∑ ∑<br />
s i (t)<br />
t=0 i∈Z<br />
als Funktion von T . Welcher asymptotischer Gesetzmäßigkeit folgt M(T ) <strong>für</strong> T → ∞ ?<br />
Hinweis: Sie können diese Gesetzmäßigkeit analytisch überprüfen, indem Sie die Struktur des<br />
Fraktals analysieren.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
6 Vielteilchensysteme <strong>und</strong><br />
Reaktions-Diffusionsprozesse<br />
In diesem Kapitel wollen wir Vielteilchensysteme<br />
untersuchen, in denen der<br />
Teilchentransport durch Diffusion realisiert<br />
ist. Die freie Weglänge der Teilchen<br />
wird dabei als extrem klein angenommen,<br />
so dass ballistische Effekte vernachlässigt<br />
werden können <strong>und</strong> die Teilchenbewegung<br />
effektiv durch einen random walk beschrieben<br />
werden kann. Man spricht auch oft<br />
davon, dass man im überdämpften Limes<br />
arbeitet.<br />
Reaktions-Diffusionsmodelle werden in der Regel durch Reaktionsgleichungen <strong>für</strong> verschiedene<br />
Teilchensorten beschrieben, wie man sie aus der Chemie kennt. Der Einfachheit<br />
halber werden wir die Teilchensorten mit Großbuchstaben A, B, C, ... bezeichnet. Die<br />
Reaktionsgleichung AB → C würde beispielsweise eine Reaktion beschreiben, wie sie in<br />
der Abbildung dargestellt ist. Dabei wird angenommen, dass nur Teilchen in unmittelbarem<br />
Kontakt miteinander reagieren können. Damit also eine Reaktion stattfinden kann,<br />
müssen die Reaktionspartner erst durch Diffusion zueinander finden.<br />
6.1 Molekularfeldnäherung<br />
6.1.1 Massenwirkungsgesetz<br />
In der Chemie werden zahlreiche Prozesse zufriedenstellend durch das sogenannte Massenwirkungsgesetz<br />
beschrieben. Das Massenwirkungsgesetz besagt, dass die Änderung<br />
der Konzentration einer Substanz X i proportional zur effektiven Reaktionsrate multipliziert<br />
mit dem Produkt der Konzentrationen der beteiligten Reaktionspartner ist. 1 Je<br />
nachdem, ob dabei Teilchen verbraucht oder erzeugt werden, kommt es zu Gewinn- <strong>und</strong><br />
Verlusttermen:<br />
d<br />
dt X i = ∑ k n X n1 X n2 − ∑ k m X m1 X m2<br />
(6.1)<br />
n<br />
m<br />
} {{ } } {{ }<br />
Gewinne<br />
Verluste<br />
Dabei sind die k i die effektiven Reaktionsraten. Für die Reaktion AB → C mit Rate k<br />
1 Das Massenwirkungsgesetz im engeren Sinne geht zusätzlich vom Gleichgewicht eines reversiblen Prozesses<br />
aus, d.h. die linke Seite von Gl. (6.1) wird gleich Null gesetzt.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
94 Vielteilchensysteme <strong>und</strong> Reaktions-Diffusionsprozesse<br />
Abbildung 6.1: Periodischer Farbumschlag in der Belousov-Zhabotinsky-Reaktion [6]<br />
wäre beispielsweise<br />
d<br />
dt [A] = d d<br />
[B] = −k[A][B] ,<br />
dt<br />
[C] = +k[A][B] . (6.2)<br />
dt<br />
Die Terme auf der rechten Seite von Gl. (6.1) sind immer dann quadratisch in den X i ,<br />
wenn zwei Teilchensorten <strong>für</strong> eine Reaktion erforderlich sind. Dies ist in realistischen<br />
chemischen Reaktionen fast immer der Fall. Spontane Reaktionen einzelner Teilchen ohne<br />
Reaktionspartner wie z.B. bei einem radioaktiven Zerfall entsprächen linearen Termen.<br />
Sind dagegen <strong>für</strong> eine Reaktion drei Teilchensorten erforderlich (wie z.B. bei katalytischen<br />
Reaktionen) erhielte man kubische Ausdrücke.<br />
6.1.2 Chemische Oszillationen<br />
Welchen Anwendungsbereich hat das Massenwirkungsgesetz <strong>und</strong> wann versagt es? Auf<br />
den ersten Blick scheint es einen recht eingeschränkten Anwendungsbereich zu haben, da<br />
jegliche räumliche Information vernachlässigt wird. Das Massenwirkungsgesetz ist also<br />
beschränkt auf Systeme mit guter diffusiver Durchmischung, deren Konzentrationsfelder<br />
als homogen angenommen werden können. Unter diesen Voraussetzungen erwartet man,<br />
dass das durch partielle Differentialgleichungen erster Ordnung beschriebene System relaxiert<br />
<strong>und</strong> schließlich einen stationären Zustand erreicht.<br />
Trotzdem können auch solche Systeme, <strong>für</strong> die das Massenwirkungsgesetz gültig ist, überraschende<br />
Eigenschaften haben, denn nicht immer relaxiert das System direkt in ein chemisches<br />
Gleichgewicht, so sind z.B. chemische Oszillationen möglich. Das bekannteste<br />
Beispiel ist die Belousov-Zhabotinsky-Reaktion [6], die zu einem periodischen Farbumschlag<br />
einer Lösung führt (siehe Abb. 6.1). Diese Oszillationen können über viele St<strong>und</strong>en<br />
stabil sein, bis sich die Substanzen verbraucht haben, denn natürlich ist auch hier kein<br />
perpetuum mobile möglich.<br />
Theoretische Untersuchungen haben gezeigt, dass man <strong>für</strong> chemische Oszillationen mindestens<br />
drei Substanzen braucht. Ein mögliches Modellsystem [7] ist durch die Raten-<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
6.1 Molekularfeldnäherung 95<br />
Abbildung 6.2: Belousov-Zhabotinsky-Reaktion in einer flachen Petri-Schale [6]<br />
gleichungen<br />
Ẋ = k 1 AY − k 2 XY + k 3 AX − 2k 4 X 2<br />
Ẏ = −k 1 AY − k 2 XY + 1 2 fk 5BZ (6.3)<br />
Ż = 2k 3 AY − k 5 BZ<br />
gegeben. Dabei sind A,B die Konzentrationen von Hilfssubstanzen <strong>und</strong> f eine numerische<br />
Konstante. Offenbar sind diese Gleichungen von der in Gl. (6.1) angegebenen allgemeinen<br />
Form des Massenwirkungsgesetzes.<br />
6.1.3 Raumzeitliche Strukturbildung<br />
Die Belousov-Zhabotinsky-Reaktion ist noch spektakulärer, wenn man sie nicht in einem<br />
Becherglas, sondern in einer flachen Petrischale durchführt. Es bilden sich dann nicht nur<br />
zeitliche, sondern auch räumliche Oszillationen in Form von wandernden Spiralen (siehe<br />
Abb. 6.2). Je nach Versuchsbedingungen können solche Spiralen auch instabil werden<br />
<strong>und</strong> aufbrechen.<br />
In der Theorie beschreibt man solche musterbildenden Systeme durch Ratengleichungen,<br />
die mit Diffusionstermen erweitert werden, also die allgemeine Form<br />
d<br />
dt X i<br />
= ∑ k n X n1 X n2 − ∑ k m X m1 X m2 + D i ∇ 2 X i (6.4)<br />
n<br />
m<br />
} {{ } } {{ }<br />
Gewinne Verluste Diffusion<br />
besitzen, wobei D i die entsprechenden Diffusionskonstanten sind. Ob die Diffusionsterme<br />
relevant sind, also beispielsweise zu Musterbildung führen, kann man durch lineare<br />
Störungstheorie um die homogene Lösung nachweisen. In Übereinstimmung mit dem Experiment<br />
hängt dies entscheidend von der räumlichen Dimension des Systems ab. Gr<strong>und</strong>sätzlich<br />
sind räumliche Effekte in niedrigdimensionalen Systemen ausgeprägter, da hier<br />
die diffusive Durchmischung geringer ist. Die Untersuchung von Musterbildung (pattern<br />
formation) im Rahmen solcher um Diffusionsterme erweiterter Ratengleichungen hat zur<br />
Entstehung zahlreicher Forschungsgruppen im Bereich der <strong>Physik</strong> komplexer Systeme<br />
geführt.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
96 Vielteilchensysteme <strong>und</strong> Reaktions-Diffusionsprozesse<br />
Abbildung 6.3: Computersimulation eines spiral breakup. [M. Bär, PTB Braunschweig]<br />
6.2 Gittermodelle<br />
Da ein Computer kontinuierliche Größen ohnehin nur mit einer diskretisierten Darstellung<br />
approximieren kann, bietet es sich an, die Teilchenpositionen in einem Reaktions-<br />
Diffusionsmodell von vornherein als diskretisierte Größen anzunehmen. Dadurch wird ein<br />
Gitter eingeführt, auf dem sich die Teilchen bewegen können. Je nach Modelldefinition<br />
können dabei Gitterplätze frei bzw. von einem oder auch mehreren Teilchen besetzt sein.<br />
6.2.1 Gittergeometrien<br />
Die Geometrie des Gitters wird definiert durch<br />
- seine Dimension d,<br />
- die mikroskopische Anordnung der Gitterplätze, <strong>und</strong><br />
- eine Relation, die angibt, welche Gitterplätze benachbart sind.<br />
In bildlichen Darstellungen werden die Gitterplätze (sites, nodes) in der Regel durch<br />
Punkte dargestellt, während als benachbart deklarierte Plätze durch Linien (links, bonds)<br />
verb<strong>und</strong>en werden.<br />
Eindimensionale Gittermodelle wie in Abb. 6.4 sind in der Regel als lineare Kette realisiert,<br />
deren Gitterplätze von 0 bis L − 1 durchnumeriert sind, wobei L die Länge der<br />
Kette ist. Da ein numerisch simuliertes Gittermodell immer endlich ist, müssen zudem<br />
die Randbedingungen spezifiziert werden. Die wichtigsten Typen sind<br />
- Dirichlet-Randbedingungen (geschlossene Enden) durch Fixierung des Zustands der<br />
Randplätze, z.B. indem die Randplätze stets als unbesetzt angenommen werden.<br />
Abbildung 6.4: Eindimensionale Kette mit L sites <strong>und</strong> periodischen Randbedingungen.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
6.2 Gittermodelle 97<br />
Abbildung 6.5: Verschiedene Gittertypen in zwei Dimensionen.<br />
- von-Neumann’sche Randbedingungen (offene Enden) bei denen die Randplätze keine<br />
linken bzw. rechten Nachbarn haben.<br />
- periodische Randbedingungen bei denen die Gitterplätze an gegenüberliegenden<br />
Ränder als benachbart gelten.<br />
Als Faustregel gilt, dass periodische Randbedingungen die wenigsten Probleme bereiten,<br />
da sie die Translationsinvarianz des Systems nicht zerstören. Oft ist man nämlich am<br />
Limes unendlich großer Systeme interessiert <strong>und</strong> möchte sogenannte finite-size-Effekte<br />
nach Möglichkeit gering halten. Es zeigt sich dabei, dass periodische Randbedingungen<br />
am wenigsten störend wirken. Wir werden deshalb im Folgenden stets periodische Randbedingungen<br />
betrachten.<br />
Bemerkung: Ist x ∈ {0, 1, . . . , L−1} eine räumliche Koordinate, so können die Positionen<br />
der linken bzw. rechten Nachbarn x l , x r durch geeignete Modulo-Operationen bestimmt<br />
werden. In C++ ist<br />
xr = (x+1)%L;<br />
xl = (x+L-1)%L;<br />
wobei L die Länge der Kette ist. Die Addition der Konstanten L in der zweiten Zuweisung<br />
ist notwendig, um zu verhindern, dass die Modulo-Operation ein negatives Argument erhält,<br />
was in C++ zu einem negativen Ergebnis führen würde.<br />
In Mathematica R○ arbeitet man dagegen mit der Zählung x ∈ {1, 2, . . . , L} <strong>und</strong> die Nachbarn<br />
sind gegeben durch<br />
xl = Mod[x-2,L]+1;<br />
Allerdings ist Mathematica R○<br />
xr = Mod[x,L]+1;<br />
wegen der vergleichsweise geringeren Geschwindigkeit nur<br />
bedingt zur Simulation von Reaktions-Diffusionmodellen auf einem Gitter geeignet.<br />
In zwei Dimensionen gibt es eine große Vielfalt verschiedener Gittergeometrien. Die wichtigsten<br />
Typen sind das Quadratgitter (square lattice), das Dreiecksgitter (triangular lattice),<br />
<strong>und</strong> das Honigwabengitter (honeycomb lattice), siehe Abb. 6.5. Das Quadratgitter<br />
ist besonders beliebt, da es sich auf einem Rechner bequem als zweidimensionales Array<br />
realsieren lässt. Periodische Randbedingungen werden in diesem Fall dadurch implementiert,<br />
dass man die Gitterplätze an gegenüberliegenden Gitterplätzen sowohl in x- als<br />
auch in y-Richtung identifiziert. Wie in Abb. 6.6 dargestellt, erhält man dadurch die<br />
Topologie eines Torus, weshalb man auch von torodialen Randbedingungen spricht.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
98 Vielteilchensysteme <strong>und</strong> Reaktions-Diffusionsprozesse<br />
Abbildung 6.6: Periodische Randbedingungen in zwei Dimensionen entsprechen einem Torus.<br />
6.2.2 Charakterisierung des Zustandsraums<br />
Während die Gitterstruktur als solche zeitlich konstant ist, können sich die Teilchen von<br />
Gitterplatz zu Gitterplatz bewegen. Ein bestimmtes Arrangement von Teilchen bezeichnet<br />
man als Konfiguration oder auch (Mikro-)Zustand des Systems. Die Menge aller<br />
möglichen Zustände wird als Zustandsraum Ω bezeichnet. Die Anzahl möglicher Zustände<br />
|Ω| ist in der Regel sehr hoch <strong>und</strong> wächst exponentiell mit der Systemgröße. Durch<br />
Anwendung der dynamischen Regeln springt das System gewissermaßen durch seinen<br />
Zustandsraum. Wenn es dabei im Prinzip jeden Zustand erreichen kann, bezeichnet man<br />
das System als Ergodizität.<br />
Beispiel: Als Beispiel wollen wir eine eindimensionale Kette mit nur 20 Gitterplätzen<br />
betrachten, auf denen 10 Teilchen diff<strong>und</strong>ieren, wobei jeder Gitterplatz jeweils leer oder<br />
einfach besetzt sein darf. Da die Teilchen auf ( 20<br />
10)<br />
mögliche Weisen arrangiert werden<br />
können, hat dieses System bereits 184756 verschiedene Zustände.<br />
Der Zustand des System, also die aktuelle Konfiguration der Teilchen, wird in der Regel<br />
im Kurzzeitspeicher (random access memory, RAM) 2 des Rechners, also in globalen oder<br />
lokalen Variablen abgelegt. Hier gibt es mehrere Möglichkeiten. Die beiden wichtigsten<br />
sind:<br />
(a) Besetzungszahlorientierte Speicherung: Für jeden Gitterplatz wird der lokale<br />
Zustand, also dessen momentane Belegung mit Teilchen, in einem Array abgespeichert.<br />
(b) Listenbasierte Speicherung: Der Rechner führt eine Liste, ggf. eine dynamisch<br />
erzeugte Liste mit variabler Länge, in der die Teilchen mit ihren entsprechenden<br />
Koordinaten aufgelistet sind.<br />
Bei dem ersten Verfahren benötigt man Schleifen, die über das gesamte Gitter iterieren.<br />
Diese Methode eignet sich deshalb vor allem bei hohen Teilchendichten. Beim listenbasierten<br />
Verfahren iteriert man dagegen über eine Liste der Teilchen <strong>und</strong> hat deshalb einen<br />
Geschwindigkeitsvorteil bei geringen Teilchendichten.<br />
2 Die Speicherung von Daten auf der Festplatte ist sehr viel zeitaufwändiger <strong>und</strong> sollte nur zum Herausschreiben<br />
von Mittelwerten <strong>und</strong> ggf. nur periodischen Sicherung des Systemzustands genutzt werden.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
6.2 Gittermodelle 99<br />
Bei Systemen, in denen sowohl hohe als auch niedrige Teilchendichten vorkommen können,<br />
eignet sich ein Hybridverfahren, bei dem man sowohl ein Array <strong>für</strong> die Besetzungszahlen<br />
als auch eine Liste <strong>für</strong> die Teilchenpositionen verwendet.<br />
6.2.3 Dynamiken<br />
Anders als bei einer Zufallsbewegung eines Teilchens finden in einem Vielteilchensystem<br />
eine große Anzahl von mikroskopischen Prozessen pro Zeiteinheit statt. In einer<br />
Computersimulation müssen also bestimmte Annahmen gemacht werden, in welcher Reihenfolge<br />
diese Prozesse abgearbeitet werden. Es gibt da<strong>für</strong> eine Anzahl verschiedener<br />
Update-Schemata. Die wichtigsten sind:<br />
1. Parallele Dynamik (parallel updates): In einem Zeitschritt t → t + 1 werden<br />
alle Plätze des Gitters gleichzeitig aktualisiert. Für diff<strong>und</strong>ierende Teilchen darf<br />
man sich eine solche Dynamik als synchrones Hüpfen vorstellen. Parallele Dynamiken<br />
sind in der Regel sehr effizient <strong>und</strong> eignen sich hervorragend zum Einsatz auf<br />
Parallelrechnern. Ein Einzelrechner wird die Gitterplätze zwar nacheinander aktualisieren,<br />
doch die Reihenfolge spielt dabei keine Rolle. In Modellen mit paralleler<br />
Dynamik kommutieren also die lokalen updates.<br />
Beispiel: Wir wollen parallele Dynamik am Beispiel des Koagulationsprozesses auf<br />
einer eindimensionalen Kette diskutieren. In diesem Prozess diff<strong>und</strong>ieren Teilchen mit<br />
Wahrscheinlichkeit p nach rechts <strong>und</strong> 1 − p nach links. Wenn zwei Teilchen auf einem<br />
Gitterplatz kollidieren, verschmelzen sie zu einem Teilchen, führen also die Reaktion<br />
2A → A aus. Der Zustand der Kette ist in einem eindimensionalen Array bool s[L]<br />
gespeichert. Folgende Codesequenz bildet eine gegebene Konfiguration s[i] auf eine<br />
neue Konfiguration u[i] ab, die dann ggf. nach s[i] zurückkopiert werden muss. Beachten<br />
Sie, dass man die lokale Aktualisierung nicht direkt nach s[i] schreiben darf,<br />
da sonst die lokalen Updates nicht kommutieren würden.<br />
void parallel_dynamics (bool s[], bool u[], double p) {<br />
for (int i=0; i
100 Vielteilchensysteme <strong>und</strong> Reaktions-Diffusionsprozesse<br />
3. Sequentielle Dynamik (sequential updates). Kommutieren die lokalen updates<br />
nicht, kann man eine bestimmte Reihenfolge der Aktualisierungen als Teil der Modelldefinition<br />
vereinbaren. Man könnte z.B. vereinbaren, eine lineare Kette von links<br />
nach rechts zu aktualisieren. Damit ist allerdings das Risiko verb<strong>und</strong>en, dass man<br />
die Spiegelsymmetrie des Systems verletzt, also eine Vorzugsrichtung auszeichnet,<br />
ohne dies zu beabsichtigen. Sequentielle Dynamiken sind daher <strong>für</strong> Anfänger nicht<br />
zu empfehlen <strong>und</strong> werden deshalb im Rahmen dieser Vorlesung nicht weiter behandelt.<br />
Beispiel: Folgende Codesequenz demonstriert, was bei sequentiellen Updates passieren<br />
kann. Die Kette wird hier von links nach rechts aktualisiert.<br />
void ordered_sequential_dynamics (bool s[], double p) {<br />
for (int i=0; i
6.3 Zelluläre Automaten 101<br />
lokale Dynamik<br />
t<br />
t+1<br />
nichtlokale Dynamik<br />
Abbildung 6.7: Illustration lokale <strong>und</strong> globaler updates in einem zellulären Automaten<br />
diese unregelmäßigen Aktualisierungen oftmals eher dem physikalischen Vorbild <strong>und</strong> können<br />
mit mathematischen Methoden leichter behandelt werden.<br />
6.3 Zelluläre Automaten<br />
Modelle mit paralleler Dynamik, deren Zustände Reihe <strong>für</strong> Reihe konstruiert werden können,<br />
bezeichnet man auch als zelluläre Automaten. Die ‘Zellen’ sind dabei nichts anderes<br />
als die Gitterplätze <strong>und</strong> die Reihen werden mit einem zeitlichen Index t durchnumeriert.<br />
Die dynamischen Regeln erfüllen die sogenannte Markov-Eigenschaft, d.h. die jeweils neu<br />
konstruierte Reihe zur Zeit t + 1 hängt nur vom Zustand der Zellen in der vorherigen<br />
Reihe zum Zeitpunkt t ab. Als Anfangszustand muss also nur eine Reihe (z.B. bei t = 0)<br />
spezifiziert werden.<br />
Man unterscheidet deterministische <strong>und</strong> stochastische zelluläre Automaten, je nachdem,<br />
ob bei der Konstruktion der nächsten Reihe Zufallszahlen involviert sind oder nicht. Ferner<br />
unterscheidet man räumlich lokale <strong>und</strong> nichtlokale Dynamiken. Bei räumlich lokalen<br />
updates hängt der Zustand einer Zelle zum Zeitpunkt t+1 nur von ihrem eigenen Zustand<br />
<strong>und</strong> dem der benachbarten Zellen zum Zeitpunkt t ab (siehe Abb. 6.7).<br />
Beispiel: Als Beispiel betrachteten wir einen deterministischen zellulären Automaten mit<br />
zwei Zuständen per Zelle, dessen lokale Dynamik durch die update-Vorschrift<br />
{<br />
1 falls s i−1(t) ≠ s i+1(t)<br />
s i(t + 1) :=<br />
0 sonst<br />
gegeben ist. Startet man den Prozess mit nur einem Teilchen am Ursprung, so ergibt sich<br />
dabei das in Abb. 6.8 dargestellte fraktale Gebilde, das als Sierpinski-Fraktal (Sierpinski-<br />
Abbildung 6.8: Deterministischer zellulärer Automat: Sierpinski-Fraktal<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
102 Vielteilchensysteme <strong>und</strong> Reaktions-Diffusionsprozesse<br />
r(t)<br />
t 1 t t t t t t t t t t t<br />
2 3 4 5 6<br />
7 8 9 10<br />
11t12<br />
13<br />
t<br />
Abbildung 6.9: Unkorrelierte Sprungzeitpunkte einer thermisch induzierten Zufallsbewegung.<br />
gasket) bekannt ist. Die deterministische Konstruktion spiegelt sich in einer hochsymmetrischen<br />
Strukturierung wieder.<br />
6.4 Systeme mit thermisch induzierten Übergängen<br />
Während bei zellulären Automaten mit paralleler Dynamik die Zeit eine diskrete Größe<br />
ist, ist die Zeit in Experimenten eine kontinuierliche Größe. Die Sprünge von einem Zustand<br />
in einen anderen sind dabei oft thermisch induziert. Deponiert man beispielsweise<br />
in MBE-Experimenten (MBE=molecular beam epitaxy) ein Atom auf der Oberfläche eines<br />
Festkörpers, so wird es bei geeigneter Temperatur auf der Oberfläche diff<strong>und</strong>ieren,<br />
also eine Zufallsbewegung ausführen. Dabei springt es von einem lokalen Potentialminimum<br />
zum nächsten, sobald die durch Phononen (Gitterschwingungen) bereitgestellte<br />
Energie da<strong>für</strong> ausreicht. 3<br />
Die Zeitpunkte von thermisch induzierten Übergängen sind unkorreliert <strong>und</strong> gleichen<br />
dem Knattern eines Geigerzählers bei der Messung eines radioaktiven Zerfalls:<br />
• Da die Übergänge als zeitlich punktförmig angenommen werden, ist die Wahrscheinlichkeit<br />
gleichzeitig stattfindender Übergänge gleich Null, so dass die Zeitpunkte<br />
geordnet werden können (siehe Abb. 6.9).<br />
• Die Wahrscheinlichkeit, dass in einem infinitesimalen Zeitintervall [t, t + dt] ein<br />
Übergang stattfindet, ist w dt, wobei w die Reaktionsrate ist.<br />
Wie sind die Zeitintervalle τ = t i+1 − t i zwischen zwei aufeinanderfolgenden Übergängen<br />
statistisch verteilt? Um diese Frage zu beantworten, teilt man das Zeitintervall in<br />
infinitesimale Teilintervalle der Breite dt auf:<br />
dt<br />
t i<br />
t i+1 t i+2<br />
In jedem der infinitesimalen Teilintervalle ist die Wahrscheinlichkeit <strong>für</strong> einen Übergang<br />
gleich w dt. Die Wartezeitverteilung, also die Wahrscheinlichkeit P w (τ)dt, ein Zeitintervall<br />
τ zu beobachten, ist demnach gleich dem Produkt der Wahrscheinlichkeiten 1 − w dt, in<br />
den dazwischenliegenden infinitesimalen Teilintervallen keinen Übergang festzustellen,<br />
3 Oberflächendiffusion wird also durch thermische Fluktuationen des Festkörpers vermittelt <strong>und</strong> sollte<br />
nicht mit dem quantenmechanischen Tunneleffekt verwechselt werden.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
6.5 Fluktuationseffekte im Koagulationsprozess 103<br />
multipliziert mit der Wahrscheinlichkeit w dt, im letzten Teilintervall zum Zeitpunkt t i+1<br />
einen Übergang festzustellen:<br />
P w (τ) dt = wdt (1 − wdt) τ/dt . (6.5)<br />
Mit der Grenzwertdarstellung der Exponentialfunktion e −x = lim n→∞ (1 − x/n) n erhält<br />
man im Limes dt → 0 bzw. n = τ/dt → ∞:<br />
P w (τ) = w(1 − wτ/n) n → w e −wτ . (6.6)<br />
Diese Wartezeitverteilung ist korrekt normiert <strong>und</strong> wird als Poisson-Verteilung bezeichnet.<br />
Bemerkung: In Lehrbüchern wird die Poisson-Verteilung durch<br />
P (k; λ) = e−λ λ k<br />
definiert <strong>und</strong> gibt die Wahrscheinlichkeit an, in einem gegebenen Intervall k Ereignisse zu<br />
beobachten, wobei λ die mittlere Anzahl der zu erwartenden Ereignisse ist. Die Poisson-<br />
Verteilung hat die besondere Eigenschaft, dass Mittelwert 〈k〉 <strong>und</strong> Varianz σ 2 k ≡ 〈k 2 〉−〈k〉 2<br />
identisch <strong>und</strong> gleich λ sind. Poisson-verteilte Ereignisse bezeichnet man in der Experimentalphysik<br />
auch häufig als shot noise.<br />
In Gl. (6.6) fragt man nach der Wahrscheinlichkeit, in einem Intervall τ mit mittlerer<br />
Ereignisanzahl λ = wτ kein Ereignis zu finden, diese Wahrscheinlichkeit ist P (0; λ) =<br />
e −λ . Diese Wahrscheinlichkeit wird mit der Wahrscheinlichkeit wdt multipliziert, dass im<br />
unmittelbar darauf folgenden infinitesimalen Zeitintervall ein Ereignis stattfindet. Auf diese<br />
Weise bekommt man die Verteilung der Zeiten zwischen aufeinanderfolgenden Ereignissen.<br />
k!<br />
6.5 Fluktuationseffekte im Koagulationsprozess<br />
In den folgenden Abschnitten wollen wir ein konkretes Vielteilchensystem betrachten,<br />
bei dem das Massenwirkungsgesetz, also die Molekularfeldtheorie, falsche Vorhersagen<br />
macht. Es handelt sich um einen Reaktionsprozess mit nur einer Sorte diff<strong>und</strong>ierender<br />
Teilchen A, die immer dann, wenn sie paarweise aufeinandertreffen, miteinander verschmelzen,<br />
also die Reaktion 2A → A ausführen. Diesen Verschmelzungsprozess bezeichnet<br />
man als Koagulation. Die Molekularfeldgleichung <strong>für</strong> diesen Prozess lautet<br />
˙ρ(t) = −w ρ 2 (t) , (6.7)<br />
wobei ρ(t) die Teilchendichte <strong>und</strong> w die Koagulationsrate ist. Offenbar zerfällt die Dichte<br />
asymptotisch wie<br />
ρ(t) ∼ 1/t (6.8)<br />
also mit einem Exponenten α = −1. Wir werden jedoch sehen, dass jedoch in eindimensionalen<br />
Systemen diese Vorhersage falsch ist <strong>und</strong> man de facto einen sehr viel langsameren<br />
Zerfall beobachtet.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
104 Vielteilchensysteme <strong>und</strong> Reaktions-Diffusionsprozesse<br />
6.5.1 Experimenteller Hintergr<strong>und</strong><br />
Hintergr<strong>und</strong> ist ein Lumineszenzexperiment mit<br />
einer kristallinen Substanz namens Tetramethylammoniummangantrichlorid,<br />
kurz TMMC.<br />
Dieses Material besteht aus Manganchlorid-<br />
Ketten. Wie in der Abbildung (a) zu sehen ist,<br />
befinden sich dabei die Manganionen in der Mitte,<br />
während die Chlorionen in Dreiergruppen arrangiert<br />
sind. Die Ketten sind parallel angeordnet<br />
<strong>und</strong> räumlich durch Tetramethylammoniumionen<br />
getrennt (siehe Querschnitt in Abb. (b)).<br />
Durch Einstrahlung von Laserlicht lassen sich<br />
nun die Manganionen elektronisch anregen, man<br />
spricht bei solchen angeregten Zuständen von sogenannten<br />
Exzitonen.<br />
Benachbarte Mn 2+ -Ionen können miteinander dadurch wechselwirken, dass ein Exziton<br />
von einem Platz zum nächsten springt. Solche Sprünge sind thermisch aktiviert durch die<br />
Wechselwirkung mit Phononen (Gitterschwingungen) <strong>und</strong> folgen deshalb effektiv einem<br />
random walk. Kommt es dabei zu einer Fusion zweier Exzitonen, so entsteht zunächst ein<br />
doppelt angeregter Zustand. Dieser ist jedoch nicht stabil <strong>und</strong> zerfällt unter Abstrahlung<br />
eines Phonons zu einem einfach angeregten Zustand. Im Teilchenbild bedeutet dies, dass<br />
zwei Teilchen zu einem Teilchen plus Wärme reagieren (siehe Abb. 6.11). Da die Wärme<br />
im Material absorbiert wird, erhält man also einen Koagulationsprozess 2A → A. Durch<br />
die großen Abstände zwischen den Ketten können diese als Ensemble eindimensionaler<br />
Systeme aufgefasst werden.<br />
Mit einer sehr viel geringeren Rate zerfallen die Exzitonen auch spontan, wobei sie Licht<br />
emittieren. Die gemessene Intensität dieses Lichtes ist also ein Maß <strong>für</strong> die momentane<br />
Anzahl der Exzitonen. Bestrahlt man das Material mit einem kurzen Laserpuls, kommt<br />
es zu einem Nachleuchten (Lumineszenz), das mit hoher Genauigkeit gemessen werden<br />
LASER<br />
EXZITON<br />
PHONON<br />
Abbildung 6.10: TMMC: Durch Einstrahlung eines Laserpulses werden Exzitonen auf den Mn 2+ -Ionen<br />
angeregt. Diese Exzitonen springen thermisch induziert mit gleicher Wahrscheinlichkeit<br />
nach links <strong>und</strong> nach rechts. Sprünge zwischen den Ketten sind stark unterdrückt.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
6.5 Fluktuationseffekte im Koagulationsprozess 105<br />
t<br />
PHONON<br />
PHOTON<br />
t<br />
Abbildung 6.11: Oben: Koagulation 2A → A unter Abstrahlung von Wärme. Unten: Lumineszenz<br />
durch spontanen Zerfall einzelner Exzitonen<br />
Abbildung 6.12: Messergebnisse <strong>für</strong> die reziproke Intensität als Funktion der Zeit in einer doppeltlogarithmischen<br />
Darstellung.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
106 Vielteilchensysteme <strong>und</strong> Reaktions-Diffusionsprozesse<br />
kann. Auf diese Weise kann man ρ(t), d.h. die Dichte der Exzitonen, als Funktion der<br />
Zeit messen.<br />
Die von Kroon, Fleurent <strong>und</strong> Sprik [8] gemessenen Daten sind in Abb. 6.12 in doppeltlogarithmischer<br />
Darstellung (’log-log’) aufgetragen. Dabei ist zu beachten, dass die Ordinate<br />
den Kehrwert der Intensität wiedergibt, also proportional zu ρ −1 (t) ist. Wie man<br />
erkennen kann, ergeben sich je nach Pulsintensität parallel verschobene Geraden mit der<br />
Steigung 1/2. Folglich zerfällt die Dichte algebraisch (d.h. nach einem Potenzgesetz) wie<br />
ρ(t) ∼ t −1/2 , (6.9)<br />
widerspricht also dem Meanfield-Resultat in Gl. (6.8). Die experimentellen Daten zeigen<br />
auch, dass das Potenzgesetz nur in einem bestimmten Bereich (gelb markiert) gültig ist.<br />
Für sehr große Dichten von Exzitonen ist die abgegebene Wärme bei der Koagulation<br />
noch so groß, dass sie nicht vernachlässigt werden kann, sondern die Diffusionsrate effektiv<br />
erhöht, womit es zu Abweichungen kommt. Für kleine Dichten finden dagegen Koagulationsprozesse<br />
so selten statt, dass die spontane Teilchenvernichtung durch Lumineszenz<br />
trotz ihrer kleinen Rate relevant wird <strong>und</strong> so die Teilchendichten weiter herabsetzt, womit<br />
die Geraden nach oben abbiegen.<br />
6.5.2 Simulation<br />
Das im Experiment beobachtete 1/ √ t-Verhalten kann mit Hilfe einer einfachen Computersimulation<br />
bestätigt werden. In C++ definiert man dazu eine Kette mit der Länge<br />
const int L=100000 in der Form eines Arrays int s[L], wobei s i = 0, 1 die Präsenz<br />
eines Exzitons auf Gitterplatz i angibt. Mit zufällig-sequentiellen Updates selektiert man<br />
zuerst ein zufälliges Paar benachbarter Plätze. Wenn nur ein Platz besetzt ist, wird das<br />
betreffende Exziton zum Nachbarplatz verschoben, wodurch die Teilchen diff<strong>und</strong>ieren.<br />
Sind beide Plätze besetzt, so springt eines der beiden Teilchen <strong>und</strong> koaguliert mit dem<br />
Nachbarn. Ein Zeitschritt (sweep) entspricht einer L-fachen Wiederholung. Diese Dynamik<br />
lässt sich mit folgendem Codefragment realisieren:<br />
void Koagulationsprozess (void) {<br />
int i,links,rechts;<br />
for (i=1; i
6.5 Fluktuationseffekte im Koagulationsprozess 107<br />
t<br />
Abbildung 6.13: Raumzeit-Plot eines Koagulationsprozesses mit einem anfangs voll besetzten Gitters.<br />
bis die Trajektorien sich vereinigen.<br />
Mit dem Codefragment ist es sehr einfach, die Dichte ρ(t) als Funktion der Zeit zu<br />
messen. Das Resultat ist in Abb. 6.14 auf der linken Seite zu sehen. Die Simulation<br />
reproduziert in der Tat den experimentell beobachteten Zerfall ρ(t) ∼ t −1/2 , während die<br />
Meanfield-Lösung ρ(t) ∼ 1/t eindeutig ausgeschlossen werden kann.<br />
Bemerkung: Damit die gemessene Größe nicht zu sehr fluktuiert, ist ein Mittelungsverfahren<br />
erforderlich. Neben dem bereits besprochenen Ensemblemittel, bei dem man über<br />
viele statistisch unabhängige Abläufe (runs) eines genügend großen Systems mittelt, kann<br />
man hier auch das räumliche Mittel benutzen, also einfach ein extrem großes System in nur<br />
einem Ablauf simulieren. Die in Abb. 6.14 gezeigten Daten wurden beispielsweise durch Simulation<br />
eines einzigen runs eines Systems mit 500.000 Gitterplätzen erzeugt. Da man sich<br />
ein solches extrem großes System zu endlichen Zeiten in unkorrelierte Teilsysteme zerlegt<br />
denken kann, sind die beiden Mittelungsprozeduren äquivalent.<br />
6.5.3 Interpretation<br />
Warum zerfällt die Teilchendichte im eindimensionalen Koagulationsprozess so viel langsamer<br />
(ρ ∼ 1/ √ t) als es die Meanfield-Gleichung vorhersagt (ρ ∼ 1/t)? Warum also<br />
versagt die Meanfield-Approximation?<br />
Anschaulich argumentiert sind die Voraussetzungen <strong>für</strong> die Meanfield-Approximation,<br />
nämlich eine homogene korrelationsfreie Mischung von Teilchen, nicht mehr gegeben,<br />
vielmehr kommt es zu Korrelationen zwischen den Teilchen. Der Koagulationsprozess<br />
bestraft nämlich Teilchen, die sich in der Nähe von anderen Teilchen befinden, indem<br />
er sie durch Koagulation entfernt <strong>und</strong> damit die Teilchendichte reduziert. Damit werden<br />
effektiv Antikorrelationen erzeugt, d.h. die Teilchen halten untereinander mehr Abstand,<br />
als dies in einer unkorrelierten (d.h. Poisson-verteilten) Anordnung der Fall wäre. Diese<br />
Antikorrelationen wiederum bremsen den Prozess ab, <strong>und</strong> zwar so stark, dass sich der<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
108 Vielteilchensysteme <strong>und</strong> Reaktions-Diffusionsprozesse<br />
10 0<br />
0.6<br />
1×10 -4<br />
ρ(t)<br />
10 -1<br />
ρ(t) t 1/2<br />
0.5<br />
0.4<br />
Steigung -1/2<br />
0.3<br />
10 0 10 1 10 2 10 3 10 4<br />
t<br />
c(r) = <br />
8×10 -5<br />
6×10 -5<br />
4×10 -5<br />
t = 2000<br />
10 -2<br />
Steigung -1<br />
2×10 -5<br />
10 0 10 1 10 2 10 3 10 4<br />
t<br />
0<br />
0 50 100 150 200 250 300<br />
r<br />
Abbildung 6.14: Links: Teilchendichte als Funktion der Zeit eines Koagulationsprozesses auf einer eindimensionalen<br />
Kette mit 500.000 Plätzen in doppelt-logarithmischer Darstellung. Die<br />
Hilfslinien markieren die Steigungen -1/2 <strong>und</strong> -1. Der eingeschobene Graph zeigt die<br />
selben Daten multipliziert mit t 1/2 . Rechts: Zweipunktkorrelationsfunktion eines Koagulationsprozesses<br />
nach 2000 Zeitschritten gemittelt über eine Kette mit 5.000.000<br />
Plätzen.<br />
Exponent des Zerfallsgesetzes dramatisch ändert. Wie wir sehen, ist dieser Effekt von<br />
der räumlichen Dimension des Systems abhängig <strong>und</strong> in niedrigdimensionalen Systemen<br />
besonders ausgeprägt.<br />
Um diese anschauliche Deutung zu verifizieren, wollen wir numerisch feststellen, ob die<br />
Teilchen tatsächlich antikorreliert sind. Dazu messen wir die Dichte-Zweipunktfunktion<br />
c(r) = 〈s i s i+r 〉, wobei der Wert des Index i wegen der räumlichen Translationsinvarianz<br />
keine Rolle spielt. Per Defintion ist diese Korrelationsfunktion stets positiv. Bestimmt<br />
man diese Zweipunktfunktion zu einem gegebenen Zeitpunkt t, so wird man <strong>für</strong> sehr<br />
große Abstände r erwarten, dass die Wahrscheinlichkeit, an diesen Punkten Teilchen zu<br />
finden, unkorreliert ist, also faktorisiert:<br />
lim c(r) = lim 〈s is i+r 〉 = lim 〈s i 〉〈s i+r 〉 = (〈s i 〉) 2 = ρ(t) 2 (6.10)<br />
r→∞ r→∞ r→∞<br />
Bei großen Abständen wird man also eine Konstante erwarten, die gleich dem Quadrat der<br />
mittleren Dichte ist. Für kleine Abstände r wird die Zweipunktfunktion jedoch von diesem<br />
Wert abweichen. Abweichungen nach oben bezeichnet man als (positive) Korrelationen,<br />
Abweichungen nach unten als Antikorrelationen.<br />
Bemerkung: Um Korrelationen <strong>und</strong> Antikorrelationen am Vorzeichen unterscheiden zu<br />
können, zieht man häufig die asymptotische Konstante ab <strong>und</strong> definiert so den sogenannten<br />
zusammenhängenden Anteil (connected part) der Korrelationsfunktion<br />
〈s is i+r〉 conn. = 〈s is i+r〉 − 〈s i〉〈s i+r〉.<br />
Die Bezeichnung ’zusammenhängend’ bezieht sich dabei auf die entsprechende Struktur<br />
von Feynman-Graphen in Feldtheorien.<br />
Der rechte Graph in Abb. 6.14 zeigt die Zweipunktkorrelationsfunktion nach einer Simulation<br />
von 2000 Zeitschritten mit räumlicher Mittelung über 5 × 10 5 Gitterplätze. Trotz<br />
etwa 10-minütiger Rechenzeit sind die Fluktuationen noch erheblich. Dennoch bestätigt<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
6.6 Aufgaben 109<br />
das Ergebnis die Existenz von Antikorrelationen <strong>für</strong> kleine r <strong>und</strong> den crossover zu einem<br />
konstanten Wert. Man kann aus den Daten schließen, dass die Korrelationslänge nach<br />
2000 Zeitschritten in der Größenordnung von knapp 100 Gitterplätzen liegt.<br />
6.5.4 Exakte Lösung<br />
Erst 1995 gelang es, das Koagulationsmodell in einer Dimension mit zufällig-sequentieller<br />
Dynamik exakt zu lösen [9]. Zur Lösung gelangt man durch Betrachtung der Verteilungsfunktion<br />
<strong>für</strong> leere Intervalle (empty-interval distribution functions) I l , welche die<br />
Wahrscheinlichkeit angeben, dass ein zufällig auf der Kette ausgewähltes Intervall von<br />
l aufeinanderfolgenden Gitterplätzen keine Teilchen enthält. Man kann zeigen, dass die<br />
Master-Gleichung des Prozesses in dieser Basis als<br />
∂ t I l (t) = I l−1 (t) − I l (t)<br />
} {{ }<br />
Gewinne<br />
− I l (t) + I l+1 (t)<br />
} {{ }<br />
Verluste<br />
(6.11)<br />
geschrieben werden kann, wobei I 0 (t) ≡ 1. Die Teilchendichte ist dann einfach durch<br />
ρ(t) = 1 − I 1 (t) gegeben. Geht man nun in den Kontinuumlimes über, erhält man die<br />
Differentialgleichungen<br />
(∂ t − ∂l 2 ) I(l, t) = 0 , I(0, t) = 1 , (6.12)<br />
wobei ρ(t) = ∂ l I(l, t)| l=0<br />
ist. Diese Gleichung hat die Form einer Diffusionsgleichung (5.26).<br />
Deren Lösung impliziert, dass ρ(t) asymptotisch wie t −1/2 zerfällt, womit die experimentelle<br />
<strong>und</strong> numerische Beobachtung bewiesen ist. Für endliche Zeiten gibt es allerdings<br />
kleine Abweichungen, die auch deutlich in den numerischen Daten zu sehen sind.<br />
6.5.5 Dimensionsabhängigkeit<br />
Die skizzierte exakte Lösung ist nur in einer räumlichen Dimension korrekt. In höheren<br />
Dimensionen erhält man dagegen<br />
⎧<br />
⎨ t −1/2 <strong>für</strong> d = 1<br />
ρ(t) ∼ log(t)/t <strong>für</strong> d = 2<br />
(6.13)<br />
⎩<br />
1/t <strong>für</strong> d > 2 .<br />
Offenbar ist die Meanfield-Approximation in d > 2 Dimensionen korrekt, während d = 2<br />
ein Grenzfall ist, <strong>für</strong> den man Meanfield-Verhalten kombiniert mit einer logarithmischen<br />
Korrektur erhält. Diese Grenzdimension bezeichnet man als obere kritische Dimension d c .<br />
Diese Situation ist paradigmatisch <strong>für</strong> Reaktions-Diffusionsprozesse: Während in niedrigen<br />
Dimensionen Korrelationseffekte einen erheblichen Einfluss haben <strong>und</strong> sogar die<br />
Exponenten verändern können, ist in genügend hohen Dimensionen die diffusive Durchmischung<br />
so gut, dass die Teilchen tatsächlich weitgehend unkorreliert <strong>und</strong> homogen<br />
verteilt sind, womit die Voraussetzungen <strong>für</strong> die Meanfield-Näherung erfüllt sind.<br />
6.6 Aufgaben<br />
Aufgabe 6.17<br />
(Straßenverkehr)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
110 Vielteilchensysteme <strong>und</strong> Reaktions-Diffusionsprozesse<br />
Die Bewegung von Fahrzeugen auf einem einspurigen Kreis läßt sich auf stark vereinfachte<br />
Weise durch einen zellulären Automaten beschreiben. Dazu wird der Kreis in N<br />
Abschnitte unterteilt. In jedem dieser Abschnitte befindet sich maximal eines von M ≤ N<br />
Fahrzeugen. Während des Zeitschritts t → t + 1 rücken diejenigen Fahrzeuge, die einen<br />
freien Abschnitt vor sich haben, mit der Wahrscheinlichkeit p um jeweils einen Abschnitt<br />
vor. Simulieren Sie diesen Prozess <strong>für</strong> p = 1 2<br />
<strong>und</strong> bestimmen Sie das sogenannte F<strong>und</strong>amentaldiagramm,<br />
indem Sie <strong>für</strong> hinreichend große N den zeitlich gemittelten Strom der<br />
Fahrzeuge 〈j〉 bestimmen <strong>und</strong> als Funktion der Fahrzeugdichte ρ = M/N auftragen.<br />
Aufgabe 6.18<br />
(Mastergleichung)<br />
Stellen Sie <strong>für</strong> den Koagulations-Dekoagulationsprozess<br />
- Koagulation AA → ∅A <strong>und</strong> AA → A∅ mit Rate λ<br />
- Dekoagulation ∅A → AA <strong>und</strong> A∅ → AA mit Rate µ<br />
- Diffusion ∅A ↔ A∅ mit Rate D<br />
mit zufällig-sequentieller Dynamik auf einer eindimensionalen Kette mit 3 Plätzen <strong>und</strong><br />
periodischen Randbedingungen die Mastergleichung auf. Bestimmen Sie mit Hilfe von<br />
Mathematica <strong>für</strong> λ = D = 1 <strong>und</strong> µ = 0.5 durch numerische Diagonalisierung des<br />
Liouville-Operators die Relaxationszeiten des Systems.<br />
Aufgabe 6.19<br />
(Finite-size Scaling)<br />
Der eindimensionale Koagulationsprozess 2A → A ist asymptotisch invariant unter Reskalierung<br />
• der Länge ⃗r → Λ⃗r<br />
• der Zeit t → Λ z t<br />
• der Teilchendichte ρ → Λ χ ρ<br />
mit dem Dichteexponenten χ = −1 <strong>und</strong> dem dynamischen Exponenten z = 2. Ziel der<br />
Aufgabe ist es, den Koagulationsprozess mit endlicher Systemgröße L <strong>und</strong> periodischen<br />
Randbedingungen zu simulieren <strong>und</strong> dabei die Teilchendichte ρ(L, t) über viele Abläufe<br />
gemittelt zu bestimmen. Wie Sie sehen werden, geht dabei das anfängliche algebraische<br />
Zerfallsgesetz ρ(t) ∼ t −1/2 wegen der endlichen Systemgröße nach einer gewissen Zeit in<br />
ein anderes Verhalten über. Solche finite-size-Effekte skalieren mit den Systemparametern<br />
<strong>und</strong> lassen sich deshalb gut kontrollieren.<br />
(a) Drücken Sie ρ(L, t) unter Ausnutzung der Skaleninvarianz durch eine Funktion mit<br />
nur einem Argument aus, indem Sie Λ := 1/L setzen <strong>und</strong> annehmen, dass L wie<br />
eine Länge skaliert.<br />
(b) Simulieren Sie den eindimensionalen Koagulationssprozess <strong>für</strong> die folgenden Systemgrößen<br />
L bis zur Zeit t max = L 2 :<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
6.6 Aufgaben 111<br />
L t max<br />
16 256<br />
32 1024<br />
64 4096<br />
128 16384 (optional)<br />
256 65536 (optional)<br />
<strong>und</strong> messen Sie die Teilchendichte ρ(L, t) gemittelt über hinreichend viele unabhängige<br />
Simulationsabläufe, so dass Sie einigermassen glatte Kurven erhalten (Achtung:<br />
Die Simulationszeiten <strong>für</strong> L = 128, 256 können lang werden).<br />
(c) Führen Sie wie in der Vorlesung besprochen einen Datenkollaps dieser Kurven in<br />
doppellogarithmischer Darstellung gemäß der in (a) ermittelten Skalenform durch.<br />
(d) Wie groß muss Ihr System mindestens sein, damit bei einer (auf Ihrem Computer<br />
nicht realisierbaren) Simulationszeit von 10 20 Zeitschritten noch keine finitesize-Effekte<br />
sichtbar werden, also noch keine nennenswerten Abweichungen vom<br />
Potenzgesetz ρ(t) ∼ t −1/2 zu erwarten sind ?<br />
(e) Wie <strong>und</strong> warum unterscheiden sich die beobachteten finite-size-Effekte von denen<br />
der in der Vorlesung untersuchten kritischen gerichteten Perkolation?<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
7 Phasenübergänge in<br />
Reaktions-Diffusionsprozessen<br />
Der Begriff des Phasenübergangs beschreibt kollektive Phänomene in Vielteilchensystemen,<br />
die mit einer abrupten Veränderung der Eigenschaften des Systems bei nur geringen<br />
Veränderungen der Außenbedingungen einhergehen. Man spricht dabei von unterschiedlichen<br />
Phasen, die am Phasenübergang ineinander übergehen. Beispielsweise geht reines<br />
Wasser bei Normaldruck am Siedepunkt bei 100 ◦ C von der flüssigen in die gasförmige<br />
Phase über. Ebenso verlieren Permanentmagnete bei einer bestimmten kritischen<br />
Temperatur ihr Magnetfeld. Auch in der Kosmologie gibt es Phasenübergänge. So rekombinierten<br />
etwa 500000 Jahre nach dem Urknall die bis dahin freien Ladungsträger<br />
zu elektrisch neutralen Atomen, das Universum wurde schlagartig durchsichtig <strong>und</strong> das<br />
damals emittierte Licht gibt es noch heute in Form des Mikrowellenhintergr<strong>und</strong>s.<br />
Phasenübergänge werden durch einen oder mehrere Kontrollparameter (z.B. Temperatur)<br />
gesteuert, wobei der Phasenübergang bei bestimmten kritischen Werten des Kontrollparameters<br />
stattfindet. Die unterschiedlichen Phasen werden durch einen sogenannten<br />
Ordnungsparameter (z.B. Aggregatszustand oder Magnetfeld) charakterisiert. Zur Darstellung<br />
von Phasenübergängen benutzt man Phasendiagramme, wobei die jeweilge Art<br />
der Phase über die Kontrollparameter aufgetragen wird. Phasenübergänge finden an den<br />
Grenzen dieser Phasen statt. Ist der Ordnungsparameter stetig im Phasenübergang, so<br />
spricht man von einem kontinuierlichen Phasenübergang oder auch von einem Phasenübergang<br />
zweiter Ordnung 1 . Ist der Ordnungsparameter allerdings unstetig, zeigt also<br />
einen endlichen Sprung, so spricht man von einem diskontinuierlichen Phasenübergang<br />
bzw. einem Phasenübergang erster Ordnung.<br />
Während Phasenübergänge erster Ordnung in der Natur häufiger anzutreffen sind, befasst<br />
sich die Mehrzahl der Veröffentlichungen mit Phasenübergängen zweiter Ordnung. Während<br />
nämlich diskontinuierliche Phasenübergänge stark von den jeweiligen System- oder<br />
Modelleigenschaften abhängen, können kontinuierliche Phasenübergänge in sehr verschiedenen<br />
Systemen in ihren langreichweitigen Eigenschaften identisch sein. Solche universellen<br />
Eigenschaften erlauben es, Äquivalenzklassen von Phasenübergängen zu identifizieren<br />
<strong>und</strong> wecken damit das Interesse der theoretischen <strong>Physik</strong>. Ziel ist es dabei, alle möglichen<br />
Universalitätsklassen unter gegebenen Rahmenbedingungen zu klassifizieren. Dabei stellt<br />
sich heraus, dass die jeweilige Universalitätsklasse im wesentlichen durch die Symmetrien<br />
des Systems festgelegt wird <strong>und</strong> durch einen Satz sogenannter kritischer Exponenten gekennzeichnet<br />
werden kann. Mit Universalitätsklassen verhält es sich also ähnlich wie bei<br />
1 Die sog. Ehrenfest-Klassifikation von Phasenübergängen erster, zweiter, dritter Ordnung usw., abhängig<br />
davon ob die erste zweite oder höhere partielle Ableitung eines thermodynamischen Potentials<br />
unstetig ist, hat sich als unzureichend herausgestellt, da sie auf Molekularfeldtheorien beruht <strong>und</strong><br />
thermische Fluktuationen nicht berücksichtigt, die jedoch am kritischen Punkt nicht vernachlässigbar<br />
sind.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
114 Phasenübergänge in Reaktions-Diffusionsprozessen<br />
Elementarteilchen, die durch wenige Parameter <strong>und</strong> ihre Symmetriegruppe vollständig<br />
charakterisiert werden können.<br />
Das klassische Standardbeispiel eines Phasenübergangs zweiter Ordnung ist der Magnetisierungsübergang<br />
in Ferromagneten. Dazu benötigt man aber Gr<strong>und</strong>lagen in der statistischen<br />
<strong>Physik</strong> des thermodynamischen Gleichgewichts. Viel einfacher ist dagegen das<br />
folgende Modellsystem, das in der Literatur als gerichtete Perkolation bekannt ist.<br />
7.1 Gerichtete Perkolation<br />
Der Ausdruck Perkolation (lat. per=durch <strong>und</strong> colare=fließen,leiten) bezeichnet das Hindurchleiten<br />
einer Flüssigkeit durch ein poröses Medium <strong>und</strong> wird oft im Zusammenhang<br />
mit Filtrierungsprozessen verwendet. Ein Filter ist ein poröses Material aus Zellstoff, Papier,<br />
Sand oder Aktivkohle, mit dem man Schwebeteilchen <strong>und</strong> andere Verunreinigungen<br />
zurückhalten kann. Das zurückgehaltene Material sammelt sich in den Poren des Filters<br />
an, so dass dieser nach einiger Zeit verstopft <strong>und</strong> ausgetauscht werden muss. Es ist deshalb<br />
von Interesse, den Übergang vom durchlässigen (perkolierenden) in den verstopften<br />
(nicht perkolierenden) Zustand zu verstehen.<br />
Mit dieser Motivation hat man verschiedene Modelle <strong>für</strong> Perkolation entworfen. In solchen<br />
Modellen werden die Poren durch die Plätze (sites) eines Gitters repräsentiert.<br />
Benachbarte Gitterplätze sind dabei durch Kanäle (bonds) miteinander verb<strong>und</strong>en. Um<br />
die Unregelmäßigkeit eines echten Filtermaterials nachzubilden, wird dabei angenommen,<br />
dass diese Kanäle mit der Wahrscheinlichkeit p durchlässig <strong>und</strong> andernfalls <strong>und</strong>urchlässig<br />
sind. Man stellt sich dann die Frage, wie sich der Parameter p, der die mikroskopische<br />
Durchlässigkeit bestimmt, auf die makroskopische Durchlässigkeit des Materials auswirkt.<br />
Es zeigt sich dabei, dass es in einem genügend großen System zu einem Phasenübergang<br />
von einem makroskopisch durchlässigen in einen verstopften Zustand kommt. Dieser<br />
Phasenübergang tritt bei einer wohldefinierten kritische Schwelle p c auf. Wie wir<br />
sehen werden, sind die langreichweitigen Eigenschaften eines solchen Perkolationsmodells<br />
universell, d.h. sie sind durch Symmetrien bestimmt, hängen jedoch nicht von den<br />
mikroskopischen Details des Modells ab. Die Situation ist ähnlich wie bei einer Zufallsbewegung,<br />
die in der Regel asymptotisch durch eine Normalverteilung beschrieben wird,<br />
unabhängig von der Art der Sprünge.<br />
7.1.1 Isotrope vs. gerichtete Perkolation<br />
Es gibt zwei gr<strong>und</strong>sätzlich verschiedene Versionen von Perkolationsmodellen. In isotroper<br />
Perkolation kann sich das Medium (Wasser) durch offene Kanäle in alle Richtungen<br />
ausbreiten, während in gerichteter Perkolation das Medium nur entlang einer vorgegebenen<br />
räumlichen Richtung fließen kann. In einem porösen Medium könnte eine solche<br />
gerichtete Ausbreitung beispielsweise durch ein Gravitationsfeld hervorgerufen werden.<br />
Wie man in Abbildung 7.1 sehen kann, erhält man unterschiedliche Cluster.<br />
Die Vorzugsrichtung hat eine strikte Ordnung des Clusters nach Ursache <strong>und</strong> Wirkung<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
7.1 Gerichtete Perkolation 115<br />
Isotrope Perkolation<br />
Gerichtete Perkolation<br />
Abbildung 7.1: Ungerichtete (isotrope) <strong>und</strong> gerichtete Perkolation. Die Abbildung zeigt ein endliches<br />
Gitter mit einer bestimmten Konfiguration von durchlässigen <strong>und</strong> <strong>und</strong>urchlässigen<br />
Kanälen. In der Mitte wird nun eine Flüssigkeit injiziert. Links: Im isotropen Fall<br />
perkoliert das Wasser durch die offenen Kanäle in jede beliebige Richtung <strong>und</strong> erzeugt<br />
dabei einen Cluster benetzter Poren. Rechts: Bei gerichteter Perkolation kann das<br />
Wasser nur entlang einer Vorzugsrichtung perkolieren, was zu einem kleineren länglichen<br />
Cluster führt. Diese Vorzugsrichtung kann als zeitliche Dimension interpretiert<br />
werden.<br />
zur Folge, so dass die ausgezeichnete Koordinate als Zeit interpretiert werden kann. So<br />
kann man beispielsweise in einem gerichteten Perkolationsprozess, in dem die Kanäle mit<br />
Wahrscheinlichkeit p geöffnet sind, die horizontalen Reihen mit einem zeitlichen Index<br />
t markieren (siehe Abb. 7.2). Ist also die Konfiguration benetzter Zellen zum Zeitpunkt<br />
t bekannt, kann man die nächste Konfiguration zum Zeitpunkt t + 1 durch einfache<br />
probabilistische Regeln bestimmen.<br />
7.1.2 Interpretation als Reaktions-Diffusionsprozess<br />
Interpretiert man nun benetzte (=aktive) Gitterplätze als Teilchen A <strong>und</strong> unbenetzte<br />
(=inaktive) Gitterplätze als Leerstellen ∅, so können diese probabilistischen Regeln als<br />
lokale Dynamik eines Reaktions-Diffusionsprozesses interpretiert werden. Sind z.B. beide<br />
Kanäle eines aktiven Platzes blockiert, so endet die Trajektorie des Teilchens, was<br />
einer spontanen Teilchenvernichtung A → ∅ entspricht. Ist nur einer der beiden Kanäle<br />
durchlässig, springt das Teilchen mit gleicher Wahrscheinlichkeit nach links <strong>und</strong> nach<br />
rechts, führt also effektiv einen Diffusionsprozess aus. Wenn beide Kanäle offen sind,<br />
kommt es zu einer Teilchenvermehrung A → 2A. Diese wird aber begrenzt durch die<br />
Tatsache, dass es pro Gitterplatz nur zwei Zustände (benetzt <strong>und</strong> unbenetzt) gibt, dass<br />
sich also an jedem Gitterplatz höchstens ein Teilchen befinden darf. Dies kann man<br />
in einem Reaktions-Diffusionsmodellen dadurch berücksichtigen, dass zwei Teilchen instantan<br />
zu einem verschmelzen. Eine solche Verschmelzung 2A → A bezeichnet man<br />
als Koaleszenz. Zusammenfassend wird also gerichtete Perkolation durch das effektive<br />
Reaktions-Diffusionsschema<br />
• spontane Teilchenvernichtung A → ∅<br />
• Vermehrung<br />
A → 2A<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
116 Phasenübergänge in Reaktions-Diffusionsprozessen<br />
t<br />
Startpunkt<br />
t N(t)<br />
0 1<br />
1 1<br />
2 2<br />
3 1<br />
4 2<br />
5 2<br />
6 3<br />
7 3<br />
Abbildung 7.2: Gerichtete Perkolation interpretiert als ein stochastischer zeitlicher Prozess. Der abgebildete<br />
Cluster startet mit nur einem benetzten Platz am Ursprung <strong>und</strong> entwickelt sich<br />
dann als Sequenz von Konfigurationen benetzter Plätze entlang horizontaler Reihen,<br />
die mit dem zeitlichen Index t durchnummeriert sind. Eine interessante Größe ist die<br />
Anzahl N(t) benetzter Gitterplätze zur Zeit t.<br />
• Koaleszenz<br />
2A → A<br />
in Kombination mit Diffusion ∅A ↔ A∅, wie in Abb. 7.3 zu sehen ist. Wie wir sehen<br />
werden, zeigt jeder Prozess, der dem Geist dieses Reaktions-Diffusionsschemas folgt, einen<br />
Phasenübergang, der zur Universalitätklasse der gerichteten Perkolation gehört.<br />
7.1.3 Algorithmische Implementierung<br />
Mit der dynamischen Interpretation ist es sehr einfach, gerichtete Perkolation auf einem<br />
Rechner zu simulieren. Um einen Zeitschritt von t nach t + 1 auszuführen, iteriert man<br />
über die aktiven (benetzten) Gitterplätze entlang der Reihe t <strong>und</strong> aktiviert die nächsten<br />
Nachbarn in der Reihe t + 1 unabhängig voneinander mit Wahrscheinlichkeit p. Ein<br />
nicht-optimierter Code zur Erzeugung der Cluster ist oft weniger als eine Seite lang. Das<br />
folgende Programm berechnet beispielsweise den Mittelwert der Teilchenanzahl N(t) <strong>und</strong><br />
schreibt das Ergebnis in eine Datei namens N.dat:<br />
const int T=1000; // number of updates<br />
const int R=10000; // number of independent runs<br />
const double p=0.6447001; // percolation probability<br />
int main (void) {<br />
int s[T][T],N[T],i,t,r;<br />
// array of sites, N(t), indices<br />
for (t=0; t
7.1 Gerichtete Perkolation 117<br />
for (i=0; i
118 Phasenübergänge in Reaktions-Diffusionsprozessen<br />
100<br />
<br />
10<br />
1<br />
p=0.7<br />
p=0.65<br />
p=0.64<br />
p=0.6447<br />
p=0.6<br />
0,1<br />
1 10 100 1000<br />
t<br />
Abbildung 7.5: Mittlere Teilchenanzahl 〈N(t)〉 als Funktion der Zeit t <strong>für</strong> verschiedene Perkolationswahrscheinlichkeiten<br />
p.<br />
Darstellung als Gerade, was einem Potenzgesetz entspricht. In der Tat findet man,<br />
dass 〈N(t)〉 am kritischen Punkt <strong>für</strong> große t wie t θ ansteigt, wobei θ ≈ 0.302 nichts<br />
anderes als die Steigung der Geraden im log-log plot ist. Dieses Potenzgesetz ist vor<br />
allem <strong>für</strong> große t mit hoher Genauigkeit erfülllt, während es <strong>für</strong> kleinere Werte von<br />
t, insbesondere während der ersten Zeitschritte, zu Abweichungen kommt. Diese sogenannten<br />
Transienten werden durch die diskrete Struktur des Gitters verursacht<br />
<strong>und</strong> hängen damit von nicht-universellen Details des Modells ab.<br />
Ein asymptotisches Potenzgesetz wird oft mit Hilfe des Symbols ∼ ausgedrückt 2 , das<br />
so viel wie ‘asymptotisch proportional’ bedeutet <strong>und</strong> deshalb transiente Abweichungen<br />
sowie die Proportionalitätskonstante mit Absicht ignoriert. Im obigen Fall schreibt man<br />
also<br />
〈N(t)〉 ∼ t θ . (7.1)<br />
Der Exponent θ ≈ 0.302 ist ein sogenannter kritischer Exponent, der in allen Realisierungen<br />
von DP den gleichen Wert besitzt. Diese Universalität <strong>und</strong> die extrem einfache<br />
Modelldefinition sind wohl die Hauptgründe da<strong>für</strong>, warum DP eine so starke Faszination<br />
ausstrahlt.<br />
Die unterschiedlichen Eigenschaften von 〈N(t)〉 unterhalb <strong>und</strong> oberhalb der kritischen<br />
Schwelle können als Kriterium zur iterativen Approximation des kritischen Punktes herangezogen<br />
werden. Dazu bestimmt man zunächst eine unter- <strong>und</strong> eine überkritische<br />
Schranke bei einer Simulationszeit von einigen Minuten, z.B. 0.64 < p c < 0.65 in dem<br />
oben diskutierten Modell. Dieses Intervall wird dann halbiert <strong>und</strong> eine Simulation am<br />
Halbierungspunkt (z.B. p = 0.645) durchgeführt. Wenn die entsprechende Kurve in einem<br />
doppelt-logarithmischen Graphen nach unten (oben) abweicht, wird das Teilungsverfahren<br />
iterativ im oberen (unteren) Intervall fortgesetzt. Zur Bestimmung solcher Abweichungen<br />
ist übrigens das menschliche Auge sehr gut geeignet. Ist keine Krümmung zu<br />
erkennen, so ist die Simulationszeit entsprechend zu erhöhen. Sind dagegen die Fluktuationen<br />
zu stark, muss die Anzahl der Läufe, über die gemittelt wird, erhöht werden. Das<br />
Verfahren wird so lange fortgesetzt, bis der Rechenaufwand zu groß wird. Die Fehlergrenzen<br />
der Abschätzung sind durch das jeweils letzte Intervall festgelegt. Der Exponent<br />
2 Mathematiker benutzen dieses Symbol <strong>für</strong> ‘asymptotisch gleich’ statt ‘asymptotisch proportional’.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
7.1 Gerichtete Perkolation 119<br />
Infektion:<br />
Heilung:<br />
Abbildung 7.6: Gerichtete Perkolation als epidemischer Prozess (siehe Text).<br />
ergibt sich aus der Steigung der Geraden.<br />
Bemerkung: Um die Fehlergrenzen <strong>für</strong> den kritischen Exponenten, also <strong>für</strong> die Steigung<br />
der Geraden, zu bestimmen, darf man sich NIE auf den χ 2 -Fehler einer Standardregression<br />
verlassen. Für die in Abb. 7.5 gezeigten Daten würde eine lineare Regression mit xmgrace<br />
das Resultat θ = 0.3017(2) ergeben, der beste Literaturwert θ = 0.313686(8) liegt jedoch<br />
weitab dieser Fehlergrenzen. Eine zuverlässige Abschätzung des Fehlers erhält man durch<br />
Vergleich der Steigungen in der höchsten Dekade gemessen an der unteren <strong>und</strong> oberen<br />
Schranke von p c. Als Faustregel gilt, dass der relative Fehler eines Exponenten mindestens<br />
10× höher als der relative Fehler der kritischen Schwelle ist.<br />
Es sollte betont werden, dass das beschriebene Verfahren voraussetzt, dass der Phasenübergang<br />
asymptotisch durch ein sauberes Potenzgesetz beschrieben wird. Für DP ist<br />
das in der Tat der Fall. In anderen Modellklassen ist das allerdings nicht selbstverständlich,<br />
so können zum Beispiel logarithmische Korrekturen überlagert sein, so dass die<br />
tatsächliche kritische Kurve leicht gekrümmt ist. Da man mit dem oben beschriebenen<br />
Verfahren aber nach einer Geraden sucht, ist man möglicherweise der Versuchung erlegen,<br />
diese Krümmung durch Veränderung des Kontrollparameters zu ’kompensieren’, was zu<br />
schwer einschätzbaren systematischen Fehlern führt. 3<br />
7.1.4 Epidemische Prozesse<br />
Die gerichtete Perkolation wird auch oft als einfaches Modell <strong>für</strong> die Ausbreitung von Epidemien<br />
herangezogen. Dabei befinden sich auf den Gitterplätzen Individuen, die entweder<br />
ges<strong>und</strong> (∅) oder infiziert (A) sind. Der Prozess A → 2A entspricht dabei der Ansteckung<br />
des nächsten Nachbarn, während Individuen durch den Prozess A → ∅ wieder ges<strong>und</strong><br />
werden (siehe Abb. 7.6). Bei großer Ansteckungsrate kann sich die Infektion über die gesamte<br />
Population ausbreiten, während sie bei kleiner Ansteckungsrate räumlich begrenzt<br />
bleibt. Der Phasenübergang in einem solchen Modell gehört zur Universalitätsklasse der<br />
gerichteten Perkolation.<br />
Während Forscher, die oft mit zellulären Automaten arbeiten, das oben besprochene<br />
bond-Perkolationsmodell mit paralleler Dynamik bevorzugen, favorisieren Epidemiker<br />
3 Einen solchen Fehler konnten wir in der Testphase des CIP-Pools mit zwei Wochen Rechenzeit auf<br />
allen 80 CPU’s aufdecken, Details dazu finden Sie in [10].<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
120 Phasenübergänge in Reaktions-Diffusionsprozessen<br />
<strong>und</strong> auch Mathematiker eine andere Realisierung der gerichteten Perkolation, die als<br />
Kontaktprozess bekannt ist. Der Kontaktprozess ist auf einem d-dimensionalen Gitter<br />
definiert, dessen Plätze entweder aktiv (s i (t) = 1) oder inaktiv (s i (t) = 0) sind. Im<br />
Gegensatz zum obigen Modell benutzt der Kontaktprozess eine zufällig-sequentielle Dynamik,<br />
d.h. die elementaren Prozesse (Ansteckung <strong>und</strong> Ges<strong>und</strong>ung) treten spontan mit<br />
gewissen Raten auf. Obwohl sich der Kontaktprozess in mikroskopischer Hinsicht erheblich<br />
von dem oben eingeführten bond-DP-Modell unterscheidet, zeigt er ebenfalls<br />
einen Phasenübergang mit asymptotisch identischen Eigenschaften. Wie wir sehen werden,<br />
gehören also die Phasenübergänge in beiden Modellen zur Universalitätsklasse der<br />
gerichteten Perkolation.<br />
Auf einem Rechner kann der d+1-dimensionale Kontaktprozess folgendermaßen implementiert<br />
werden. Für jeden Aktualisierungsversuch wird zunächst ein Gitterplatz zufällig<br />
ausgewählt. Je nachdem, ob dieser Platz besetzt (infiziert) ist <strong>und</strong> in Abhängigkeit von<br />
der Anzahl der besetzten Nachplätze n i (t) = ∑ j∈ s j(t) wird diesem Platz ein neuer<br />
Zustand s i (t + dt) = 0, 1 mit bestimmten Übergangsraten w[s i (t) → s i (t + dt), n i (t)]<br />
zugewiesen. Diese Übergangsraten sind definiert durch:<br />
w[0 → 1, n] = λn/2d , (7.2)<br />
w[1 → 0, n] = 1 . (7.3)<br />
Dabei spielt der Parameter λ die gleiche Rolle wie die Öffnungswahrscheinlichkeit p im<br />
bond-DP-Modell. Wie zuvor hängt die kritische Schwelle λ c von der Dimension d ab. Die<br />
zur Zeit beste Abschätzung wird mit λ c = 3.29785(8) [11] angegeben.<br />
Um von Raten (Wahrscheinlichkeiten pro Zeiteinheit) zu den im Programmcode benötigten<br />
Übergangswahrscheinlichkeiten zu gelangen, muss man die Raten geeignet normieren,<br />
so dass sie alle kleiner oder gleich 1 sind. Am einfachsten ist es, die Raten durch die Summe<br />
aller Raten, also in diesem Fall durch 1 + λ, zu dividieren. Jeder Update entspricht<br />
dann einem Zeitinkrement von 1/(1 + λ).<br />
In einer räumlichen Dimension kann der Kontaktprozess mit folgendem Programmfragment<br />
realisiert werden. Zunächst definiert man sich die Systemgröße, das Gitter <strong>und</strong><br />
eine Zeitvariable, die wegen der zufällig-sequentiellen Updates eine Fließkommazahl sein<br />
muss.<br />
const int L=128;<br />
int s[L];<br />
double t;<br />
// Systemgröße<br />
// die eindimensionale Kette<br />
// <strong>Physik</strong>alische Zeit<br />
Der Updateschritt folgt dann der in Abb. 7.7 dargestellten Dynamik: Ein Platz auf der<br />
Kette wird zufällig ausgewählt. Wenn dieser besetzt ist, wird das Teilchen mit Wahrscheinlichkeit<br />
1/(1 + λ) entfernt, andernfalls wird an einem der beiden Nachbarplätze ein<br />
t<br />
t+dt<br />
Infektion<br />
Selbstheilung<br />
λ/2 λ/2 1<br />
Abbildung 7.7: Dynamik des 1+1-dimensionalen Kontaktprozesses.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
7.1 Gerichtete Perkolation 121<br />
Teilchen erzeugt, sofern dieser Platz noch frei ist:<br />
void Update (double lambda)<br />
{<br />
int i = rndint(L);<br />
if (s[i])<br />
// wenn dort ein Teilchen ist<br />
{<br />
if (rnd() λ c ) eines sehr großen Systems mit einem<br />
anfangs voll besetzten Gitter wird sich diese Dichte auf einen stationären Wert ρ stat > 0<br />
einpendeln. Nähert man sich dem kritischen Punkt, an dem der Phasenübergang stattfindet,<br />
so geht diese Dichte gegen Null <strong>und</strong> folgt dabei einem Potenzgesetz<br />
i<br />
ρ stat ∼ (p − p c ) β , (7.5)<br />
wobei β ein kritischer Exponent ist. Für p > p c ist der sich einstellende stationäre Zustand<br />
durch eine bestimmte Korrelationslänge ξ ⊥ <strong>und</strong> eine Korrelationszeit ξ ‖ charakterisiert.<br />
Diese beiden Korrelationsskalen sind im Allgemeinen verschieden <strong>und</strong> sind in Abb. 7.8<br />
anschaulich dargestellt.<br />
Nahe am kritischen Punkt divergieren die beiden Korrelationsskalen algebraisch (d.h. als<br />
Potenzgesetz)<br />
ξ ⊥ ∼ (p − p c ) −ν ⊥<br />
, ξ ‖ ∼ (p − p c ) −ν ‖<br />
(7.6)<br />
wobei ν ⊥ <strong>und</strong> ν ‖ zwei weitere Exponenten sind. Deren Verhältnis<br />
z = ν ‖ /ν ⊥ (7.7)<br />
wird als dynamischer Exponent bezeichnet, da er beschreibt, wie die zeitliche Korrelationsskala<br />
ξ ‖ ∼ ξ⊥ z als Funktion der räumlichen Korrelationslänge am kritischen Punkt<br />
wächst. In einem diffusionsartigen Prozess wie z.B. einem random walk ist z = 2, während<br />
an einem Phasenübergang wie dem der gerichteten Perkolation im Allgemeinen z < 2 ist.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
122 Phasenübergänge in Reaktions-Diffusionsprozessen<br />
ξ<br />
ξ<br />
ξ ||<br />
ξ ||<br />
Abbildung 7.8: Korrelationsskalen ξ ⊥ <strong>und</strong> ξ ‖ .<br />
Exponent d = 1 d = 2 d = 3 d > 4<br />
β 0.276486(8) 0.584(4) 0.81(1) 1<br />
ν ⊥ 1.096854(4) 0.734(4) 0.581(5) 1/2<br />
ν ‖ 1.733847(6) 1.295(6) 1.105(5) 1<br />
1.580745(10) 1.76(3) 1.90(1) 2<br />
δ = β/ν ‖ 0.159464(6) 0.451 0.73 1<br />
θ 0.313686(8) 0.230 0.12 0<br />
Tabelle 7.1: Werte der kritischen Exponenten in der gerichteten Perkolation.<br />
Man geht davon aus, dass die drei Exponenten (β, ν ⊥ , ν ‖ ) eine gegebene Universalitätsklasse<br />
vollständig charakterisieren <strong>und</strong> nur von der Dimension des Systems abhängen<br />
(siehe Tabelle 7.1). Alle anderen universellen Exponenten können durch einfache Formeln,<br />
sogennanten Skalenrelationen auf diese drei Standardexponenten zurückgeführt<br />
werden. Als Beispiel betrachten wir einen DP-Prozess, der mit einem einzigen aktiven<br />
Gitterplatz startet <strong>und</strong> einen Cluster erzeugt. Die mittlere Anzahl der aktiven Gitterplätze<br />
zum Zeitpunkt t,<br />
N(t) = 〈 ∑ s i (t)〉 (7.8)<br />
i<br />
wächst am kritischen Punkt wie<br />
N(t) ∼ t θ . (7.9)<br />
Dabei kann θ durch die sogenannte verallgemeinerte Hyperskalenrelation ausgedrückt<br />
werden:<br />
θ = dν ⊥ − 2β<br />
ν ‖<br />
. (7.10)<br />
7.2 Phänomenologische Skalentheorie<br />
Wir haben bereits an verschiedenen Beispielen gesehen, dass fraktale Strukturen durch<br />
Potenzgesetze charakterisiert werden. Solche Systeme bezeichnet man als skalenfrei (scale<br />
free), d.h. abgesehen von der makroskopischen Systemgröße <strong>und</strong> der mikroskopischen<br />
Gitterkonstante gibt es keine ausgezeichnete typische Länge im System. Ebenso gibt es<br />
abgesehen von der gesamten Simulationszeit <strong>und</strong> der mikroskopischen Update-Zeit keine<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
7.2 Phänomenologische Skalentheorie 123<br />
weitere typische Zeitskala im System. Beispiele sind DLA-Cluster, Sierpinski-Fraktale, der<br />
Annihilations- <strong>und</strong> Koagulationsprozess, sowie die gerichtete Perkolation am kritischen<br />
Punkt. Skalenfreiheit verbietet beispielsweise einen exponentiellen Zerfall einer Korrelationsfunktion,<br />
denn das Argument der Exponentialfunktion muss immer dimensionslos<br />
sein, also von der Form exp(r/r 0 ) sein, wobei r 0 aber eine ausgezeichnete Länge wäre,<br />
die es in einem skalenfreien System nicht gibt.<br />
Skaleninvariante Systeme können sehr erfolgreich durch eine phänomenologische Skalentheorie<br />
beschrieben werden. ‘Phänomenologisch’ bedeutet dabei, dass die Gültigkeit der<br />
Theorie bis auf wenige exakt lösbare Fälle nicht streng bewiesen werden kann, sondern<br />
vielmehr postuliert <strong>und</strong> dann numerisch verifiziert wird.<br />
7.2.1 Skaleninvarianz<br />
Ausgangspunkt der phänomenologischen Skalentheorie <strong>für</strong> Phasenübergänge wie den in<br />
der gerichteten Perkolation ist die Annahme, dass die makroskopischen (d.h. langreichweitigen)<br />
Eigenschaften eines Systems nahe am Phasenübergang unter einer Skalentransformation<br />
invariant ist. Konkret bedeuted dies, dass eine Reskalierung der Zeit-, Längen,-<br />
<strong>und</strong> Kontrollparameter<br />
∆ → a ∆, ⃗x → a −ν ⊥<br />
⃗x, t → a −ν ‖<br />
t, (7.11)<br />
zu einer Änderung des Ordnungsparameters (der Teilchendichte)<br />
ρ → a β ρ (7.12)<br />
führt, wobei a > 0 ein Skalenfaktor (Zoomfaktor) <strong>und</strong> ∆ = p − p c der Abstand vom<br />
kritischen Punkt ist. Es stellt sich heraus, dass eine solche postulierte Skaleninvarianz<br />
die Form von Funktionen stark einschränkt. Als Beispiel betrachteten wir den Zerfall der<br />
Dichte aktiver Gitterplätze ρ(t) bei einem anfangs voll besetzten Gitter am kritischen<br />
Punkt. Das obige Postulat führt hier auf die Gleichung<br />
a β ρ(t) = ρ(a −ν ‖<br />
t) . (7.13)<br />
Da der Zoomparameter a frei wählbar ist, darf man eine spezielle Wahl vornehmen. Wählt<br />
man a derart dass t a −ν ‖<br />
= 1 ist, erhält man ρ(t) = t −β/ν ‖ρ(1), also einen algebraischen<br />
Zerfall von der Form<br />
ρ(t) ∼ t −δ , δ = β/ν ‖ . (7.14)<br />
In einem endlichen System mit N = L d Gitterplätzen nahe am kritschen Punkt hängt<br />
die Dichte ρ(t, ∆, L) von drei Parametern ab. Eine analoge Rechnung führt hier auf die<br />
Bestimmungsgleichung<br />
a β ρ(t) = ρ(a −ν ‖<br />
t, a∆, a −ν ⊥<br />
L) , (7.15)<br />
denn L ist eine Länge <strong>und</strong> skaliert demzufolge wie ⃗x. Man erhält dann<br />
ρ(t, ∆, L) ∼ t −β/ν ‖<br />
f(∆ t 1/ν ‖<br />
, t d/z /L) . (7.16)<br />
Dabei hängt die Funktion f nur von zwei skaleninvarianten Quotienten ab. Die Funktion<br />
f ist universell, d.h. (bis auf Proportionalitätskonstanten) identisch <strong>für</strong> alle Modelle in<br />
der gleichen Universalitätsklasse, <strong>und</strong> wird deshalb auch als universelle Skalenfunktion<br />
bezeichnet.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
124 Phasenübergänge in Reaktions-Diffusionsprozessen<br />
Bemerkung: Eine Funktion g(x 1, . . . , x n) mit der Eigenschaft g(x 1, . . . , x n) = af(ax 1, . . . , ax n)<br />
heisst homogen. Dementsprechend wird eine Funktion, die eine Bestimmungsgleichung von<br />
der Form (7.13) <strong>und</strong> (7.15) erfüllt, in der also die Skalenfaktoren mit individuellen Potenzen<br />
versehen sind, als verallgemeinerte homogene Funktion bezeichnet. Dabei kann durch<br />
spezielle Wahl des Skalenparameters einer der Funktionsparameter auf einen konstanten<br />
Wert gesetzt werden. Die Funktion g lässt sich damit ausdrücken als ein Potenzgesetz<br />
multipliziert mit einer Skalenfunktion, die von nur n − 1 skaleninvarianten Quotienten der<br />
Parameter abhängt.<br />
7.2.2 Universalität<br />
Wie bereits mehrfach erwähnt, ist die sogenannte Universalität von Phasenübergängen<br />
ein gr<strong>und</strong>legender Begriff. Mit diesem Begriff umschreibt man die Annahme, dass das<br />
kritische Verhalten von Systemen mit kontinuierlichen Phasenübergängen einer endlichen<br />
Anzahl möglicher Universalitätsklassen zugeordnet werden kann.<br />
Bemerkung: Für die Experten: Universalitätsklassen sind bestimmten Feldtheorien zugeordnet.<br />
Diese Feldtheorien werden durch die Symmetrien des Systems <strong>und</strong> die relevanten<br />
Terme im Wirkungsfunktional charakterisiert. Die mikroskopischen Details des Modells<br />
wie z.B. die konkrete Gitterstruktur führen dagegen zu Termen höherer Ordnung, die im<br />
feldtheoretischen Sinne irrelevant sind, also unter Reskalierung gegen Null gehen. Die Irrelevanz<br />
fast aller Terme mit Ausnahme einiger weniger relevanter Terme ist die Ursache <strong>für</strong><br />
Universalität.<br />
Die gerichtete Perkolation ist die wichtigste Klasse im Bereich der statistischen <strong>Physik</strong><br />
fernab vom Gleichgewicht. Sie tritt in unzähligen Modellen auf <strong>und</strong> ist in unzähligen<br />
Publikationen untersucht worden. Die extreme Robustheit dieser Klasse führten Janssen<br />
<strong>und</strong> Grassberger auf die sogenannte DP-Vermutung (DP conjecture). Diese besagt, dass<br />
ein System zur Universalitätsklasse der gerichteten Perkolation gehören sollte, sobald die<br />
folgenden Bedingungen erfüllt sind:<br />
1. Das Modell besitzt einen kontinuierlichen Phasenübergang von einer fluktuierenden<br />
aktiven Phase in einen absorbierenden fluktuationsfreien Zustand.<br />
2. Der Phasenübergang wird durch einen nicht-negativen einkomponentigen Ordnungsparameter<br />
charakterisiert (in der Regel die Dichte der aktiven Gitterplätze)<br />
3. Die Dynamik ist kurzreichweitig, Wechselwirkungen finden also nur lokal statt.<br />
4. Das System hat keine unkonventionellen Eigenschaften wie z.B. zusätzliche Symmetrien<br />
oder eingefrorene Unordnung 4 .<br />
Obwohl diese Vermutung nicht streng bewiesen ist, sind bislang keine Gegenbeispiele<br />
bekannt. Vielmehr scheint die gerichtete Perkolation sogar in Fällen zu existieren, bei<br />
denen eine oder mehrere dieser vier Bedinungen verletzt sind.<br />
4 Die Untersuchung von Systemen mit eingefrorener Unordnung (engl. quenched disorder) ist ein aktuelles<br />
Forschungsgebiet <strong>und</strong> geht über den Rahmen dieser Vorlesung hinaus.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
7.3 Andere stochastische Prozesse 125<br />
7.3 Andere stochastische Prozesse<br />
Die oben skizzierte phänomenologische Theorie der Skaleninvarianz ist nicht nur auf<br />
Reaktions-Diffusionsprozesse beschränkt, sondern in sehr vielen weiteren Fällen anwendbar.<br />
Als Beispiele wollen wir Wachstumsprozesse <strong>und</strong> das sogannte Wählermodell betrachten.<br />
7.3.1 Wachstumsprozesse<br />
Unter einem Wachstumsprozess versteht man ein<br />
vereinfachtes Modell <strong>für</strong> Oberflächenwachstum durch<br />
Deposition einzelner Atome bzw. Moleküle. Im Experiment<br />
gibt es verschiedene Realisierungsmöglichkeiten.<br />
In <strong>Würzburg</strong> wird vor allem Molekularstrahlepitaxie<br />
(MBE) betrieben, wobei Teilchen in einer<br />
thermischen Quelle (Ofen) freigesetzt <strong>und</strong> danach gezielt<br />
auf einer Probe deponiert werden. Dieses Verfahren<br />
wird vor allem <strong>für</strong> die Herstellung von dünnen<br />
Schichten im Monolagenbereich <strong>und</strong> Nanostrukturen<br />
eingesetzt.<br />
MBE-Experiment, EP III<br />
Arbeitsgruppe Prof. Brunner<br />
Je nachdem, ob das Material des Substrats <strong>und</strong> der aufzubringenden Strukturen gleich<br />
oder verschieden sind, spricht man von Homo- bzw. Heteroepitaxie. Alternativ kann man<br />
eine Oberfläche in eine gasförmige Umgebung bringen, wobei sich allein durch die thermische<br />
Dynamik des Gases Teilchen auf der Oberfläche absetzen. Neben der Deposition von<br />
Teilchen ist bei genügend hohen Temperaturen auch der umgekehrte Prozess, nämlich<br />
die Verdamfung (Desorption) von Teilchen möglich. Beide Prozesse, spontane Deposition<br />
<strong>und</strong> Desorption, konkurrieren miteinander, wodurch es zu interessanten Effekten kommt.<br />
Im einfachsten Fall modelliert man die zu deponierenden Atome bzw. Moleküle durch<br />
würfelförmige Teilchen. Die Konfiguration eines solchen solid-on-solid (SOS)-Modells<br />
wird durch eine Grenzfläche (interface) vollständig beschrieben. Sofern man die Bildung<br />
von Überhängen verbietet, wird die Grenzfläche eindeutig durch eine Höhenfunktion<br />
h(⃗r) beschrieben, welche die Höhe der Grenzfläche am (zweidimensionalen) Ort ⃗r auf der<br />
Oberfläche in Bezug auf ein willkürlich festgelegtes Höhenniveau angibt (siehe Abb. 7.9).<br />
Abbildung 7.9: Modellierung eines Wachstumsprozesses durch stoachstische Deposition <strong>und</strong> Verdampfung<br />
würfelförmiger Teilchen. Die Konfiguration wird dabei durch eine Grenzfläche<br />
beschrieben.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
126 Phasenübergänge in Reaktions-Diffusionsprozessen<br />
Das einfachste Wachstumsmodell dieser Art ist die zufällige Deposition (random deposition):<br />
Teilchen ‘regnen’ zufällig von oben herab <strong>und</strong> stapeln sich auf der Oberfläche.<br />
Ein solches Programm <strong>für</strong> das Wachstum einer eindimensionalen Oberfläche ist denkbar<br />
einfach:<br />
int main (void)<br />
{<br />
InitRandom();<br />
XWindow W; W.Open(L,Y);<br />
for (int i=0; i=h[i] and h[(i+L-1)%L]>=h[i]) h[i]++;<br />
Dabei wurden periodische Randbedingungen angenommen. Wie man in Abb. 7.10 sehen<br />
kann, ergeben sich erheblich glattere Oberflächen.<br />
Die mikroskopische Beschaffenheit einer wachsenden Oberfläche wird experimentell vor<br />
allem durch Streuung von Röntgenstrahlen analysiert. Eine wichtige experimentell messbare<br />
Größe ist die Rauigkeit (engl. roughness) w der Oberfläche, die als Standardabweichung<br />
der Höhen definiert ist:<br />
(<br />
2<br />
w 2 = (h − h) 2 = h 2 − h 2 = 1 ∑<br />
h(⃗r) 2 1 ∑<br />
− h(⃗r))<br />
(7.18)<br />
N<br />
N<br />
(<br />
2<br />
w 2 = 〈(h − 〈h〉) 2 〉 = 〈h 2 〉 − 〈h〉 2 = 1 ∑<br />
h(⃗r) 2 1 ∑<br />
− h(⃗r))<br />
(7.19)<br />
N<br />
N<br />
⃗r<br />
⃗r<br />
⃗r<br />
⃗r<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
7.3 Andere stochastische Prozesse 127<br />
Abbildung 7.10: Grenzfläche eines eindimensionalen solid-on-solid (SOS) <strong>und</strong> eines restricted-solidon-solid<br />
(RSOS)-Modells nach etwa 600 Zeitschritten.<br />
Dabei wird über alle N = L d Gitterplätze der Oberfläche summiert. Die Rauigkeit ist<br />
sehr viel interessanter als die (linear wachsende) Höhe, da sie den Einfluss der Oberflächenspannung<br />
quantitativ widergibt. Eine einfache Simulation zeigt, dass die Rauigkeit<br />
in den beiden betrachteten Modellen wie<br />
{ t<br />
1/2<br />
<strong>für</strong> das SOS-Modell<br />
w(t) ∼<br />
t 1/3 <strong>für</strong> das RSOS-Modell<br />
(7.20)<br />
ansteigt. Im Fall des SOS-Modells ist dieses Ergebnis einfach zu verstehen, denn hier<br />
gibt es keine Wechselwirkung zwischen benachbarten Plätzen, vielmehr wächst jede Säule<br />
unabhängig durch stochastische Deposition. Das Histogramm der Höhen, auch Höhenprofil<br />
genannt, ist deshalb wie bei einem random walk Gauß-verteilt mit einer Breite von<br />
√<br />
h ∼<br />
√<br />
t. Wegen der fehlenden Wechselwirkung spielt die Systemgröße dabei keine Rolle.<br />
Im Fall des RSOS-Modells wechselwirken benachbarte Plätze durch die Restriktion. Das<br />
obige Potenzgesetz ist deshalb nur gültig <strong>für</strong> eine unendlich große Oberfläche. Ist das<br />
System dagegen endlich, gibt es eine maximale Rauigkeit, die nicht überschritten werden<br />
kann. Die Kurve <strong>für</strong> w(t) saturiert also nach gewisser Zeit.<br />
Es zeigt sich, dass auch <strong>für</strong> Wachstumsprozesse das im vorangegangenen Abschnitt diskutierte<br />
Konzept der dynamischen Skaleninvarianz erfolgreich angewandt werden kann.<br />
Dabei muss die Höhe, aufgefasst als kontinuierlicher Freiheitsgrad, geeignet mitskaliert<br />
werden. Es sei an dieser Stelle nur erwähnt, dass beispielsweise die Rauigkeit in einem<br />
endlichen System mit Seitenlänge L einer Skalenform<br />
w(L, t) = L α f(t/L z ) (7.21)<br />
genügt, wobei α der sogeannte Rauigkeitsexponent ist. Dynamisches Scaling ist also ein<br />
sehr allgemeines Konzept, das auf eine Vielzahl unterschiedlicher Systeme angewandt<br />
werden kann. Auch hier lassen sich Wachstumsprozesse je nach ihren Symmetrieeigenschaften<br />
verschiedenen Universalitätsklassen zuordnen. Als Einführung in die Theorie der<br />
Wachstumsprozesse eignet sich das Buch von Barabasi <strong>und</strong> Stanley [16] an.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
128 Phasenübergänge in Reaktions-Diffusionsprozessen<br />
Abbildung 7.11:<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
7.4 Aufgaben 129<br />
7.3.2 Voter Modell<br />
7.4 Aufgaben<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
8 Fourier-Transformation<br />
Jean B. J. Fourier (1768-1830)<br />
8.1 Fourier-Transformation – kurz gefasst<br />
Die Fourier-Transformation ist eine lineare invertierbare Transformation, die physikalisch<br />
einer Spektralzerlegung entspricht. Eine Fourier-Transformation ist in verschiedenen Situationen<br />
sinnvoll, insbesondere dann wenn<br />
• das betrachtete System einem linearen Superpositionsprinzip gehorcht,<br />
• es abgesehen von Rand- <strong>und</strong> Anfangsbedingungen translationsinvariant ist.<br />
Ein Beispiel ist die Wellengleichung<br />
∂ 2 t φ(⃗x, t) − c 2 ∇ 2 φ(⃗x, t) = 0 . (8.1)<br />
Diese Differentialgleichung ist linear, d.h. die Summe zweier Lösungen ist wiederum eine<br />
Lösung. Außerdem ist sie translationsinvariant in Raum <strong>und</strong> Zeit, da weder t noch ⃗x in<br />
der Gleichung explizit auftreten. Hier bietet sich also sowohl in den räumlichen als auch<br />
in den zeitlichen Freiheitsgraden eine Fourier-Transformation an.<br />
Anschaulich ist eine Fourier-Transformation eine Entwicklung nach ebenen Wellen. Dabei<br />
spielt sowohl die Amplitude als auch die Phasenlage jedes Wellenanteils eine Rolle.<br />
Die Phasenlage wird in der <strong>Physik</strong> durch eine komplexe Phase ausgedrückt. Eine reelle<br />
Darstellung als “Cosinus- <strong>und</strong> Sinus-Transformierte” ist in der <strong>Physik</strong> eher ungebräuchlich.<br />
Die ebenen Wellen, nach denen entwickelt wird, müssen mit den Randbedingungen des<br />
betrachteten Systems kompatibel sein, wodurch es zu einer Auswahl, also zu einer Einschränkung<br />
des Funktionenraums kommen kann. Beispielsweise müssen in einem Resonator<br />
die ebenen Wellen am Rand einen Knoten besitzen, womit nur bestimmte Wellenzahlen<br />
möglich sind. Je nach Art der Randbedingungen unterscheidet man in der Theorie<br />
deshalb kontinuierliche Fourier-Transformationen, Fourier-Reihen <strong>und</strong> diskrete Fourier-<br />
Transformationen. Ohne auf mathematische Details einzugehen, wollen wir diese drei<br />
Typen hier kurz zusammenfassen.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
132 Fourier-Transformation<br />
8.1.1 Kontinuierliche Fouriertransformationen<br />
Funktionen, die auf einem unbeschränkten Zahlenkörper (also in der Regel R oder C)<br />
definiert sind, werden mit Hilfe einer kontinuierlichen Fourier-Transformation spektral<br />
zerlegt. Sei beispielsweise f(x) : R → R eine reelle Funktion auf einem (unbeschränkten)<br />
eindimensionalen Zahlenstrahl, dann ist<br />
˜f(k) = √ 1 ∫ +∞<br />
dx e ikx f(x) (8.2)<br />
2π<br />
−∞<br />
die Fourier-Transformierte von f(x). Mit Hilfe der Identität<br />
∫ +∞<br />
−∞<br />
dk e ik(x−x 0) = 2π δ(x − x 0 ) (8.3)<br />
kann man leicht überprüfen, dass die Umkehrtransformation durch<br />
f(x) = √ 1 ∫ +∞<br />
dk e −ikx ˜f(k) (8.4)<br />
2π<br />
−∞<br />
gegeben ist. Die mathematischen Voraussetzungen, die <strong>für</strong> eine kontinuierliche Fourier-<br />
Transformation erfüllt sein müssen, finden Sie in einschlägigen Lehrbüchern oder im<br />
Internet [2].<br />
Der Vorfaktor 1/ √ 2π rührt daher, dass <strong>Physik</strong>er gerne e ikx anstatt e 2πikx benutzen.<br />
Außerdem gibt es verschiedene Konventionen, die sich nur dadurch unterscheiden, wie<br />
der Vorfaktor auf Hin- <strong>und</strong> Rücktransformation verteilt ist. <strong>Physik</strong>er bevorzugen die oben<br />
eingeführte symmetrische Verteilung.<br />
Auch die Sprache Mathematica R○<br />
fs[k_] = FourierTransform[f[x],x,k];<br />
f[x_] = InverseFourierTransform[fs[k],k,x];<br />
hält sich an diese Konvention. Der Befehl lauten<br />
Dabei ist das erste Argument die zu transformierende Funktion, das zweite deren ursprüngliche<br />
unabhängige Variable, in der transformiert werden sollen, <strong>und</strong> das dritte<br />
Argument die neue unabhängige Variable der Fourier-Transformierten.<br />
Überzeugen Sie sich, dass die Fourier-Transformierte einer rellen Funktion im Allgemeinen<br />
komplexwertig ist. Wie man leicht nachrechnen kann, gilt <strong>für</strong> eine solche Fourier-<br />
Transformierte ˜f(k) = ˜f ∗ (−k). An dieser Eigenschaft erkennt man also, dass die ursprüngliche<br />
Funktion reell war.<br />
Eine Funktion, die von mehreren Variablen abhängt, kann sukzessive in jeder Variable<br />
einzeln Fourier-transformiert werden, wobei es auf die Reihenfolge nicht ankommt. Die<br />
Fourier-Transformierte einer Funktion mit zwei Variablen ist beispielsweise<br />
˜f(k x , k y ) = √ 1 ∫ +∞<br />
dx 1 ∫ +∞<br />
√ dy e i(kxx+kyy) f(x, y) (8.5)<br />
2π 2π<br />
−∞<br />
mit entsprechender Umkehrtransformation. In Mathematica R○ schreibt man da<strong>für</strong><br />
−∞<br />
FT = FourierTransform[f[x,y],{x,y},{kx,ky}];<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
8.1 Fourier-Transformation – kurz gefasst 133<br />
Fourier-Transformationen in d Dimensionen kann man mit Hilfe des euklidischen Skalarprodukts<br />
elegant darstellen als<br />
∫ ∫ ∫<br />
˜f( ⃗ 1<br />
+∞<br />
k) =<br />
(2π) d/2 · · · d d x e i⃗k·⃗x f(⃗x) , (8.6)<br />
wobei man statt des Vielfachintegrals in der Regel nur ein Integralzeichen hinschreibt.<br />
−∞<br />
8.1.2 Fourier-Reihen<br />
Im vorherigen Abschnitt haben wir kontinuierliche Fouriertransformationen von Funktionen<br />
auf einer unbeschränkten Urbildmenge betrachtet, also von Funktionen, die auf<br />
ganz R bzw. C definiert sind. Was aber passiert, wenn die zu transformierende Funktion<br />
auf einer beschränkten Urbildmenge, also beispielsweise auf einem endlichen Intervall<br />
I = [a, b] ⊂ R definiert ist?<br />
Um eine solche Funktion Fourier-transformieren zu können, muss sie auf geeignete Weise<br />
ergänzt werden, so dass sie auf dem gesamten Zahlenkörper erklärt ist, beispielsweise<br />
muss die Funktion außerhalb des Intervalls [a, b] auf sinnvolle Weise definiert werden.<br />
Eine Möglichkeit wäre, die Funktion außerhalb des Intervalls gleich Null zu setzen. Eine<br />
andere Möglichkeit, mit der wir uns in diesem Abschnitt befassen wollen, besteht darin,<br />
die Funktion periodisch fortzusetzen. Eine Funktion f(x) mit der Periode ∆x (im obigen<br />
Beispiel ∆x = b − a) mit der Definitionseigenschaft<br />
führt bei Fourier-Transformation wegen<br />
f(x + ∆x) = f(x) ∀x ∈ R (8.7)<br />
˜f(k) = √ 1 ∫ +∞<br />
dx e ikx f(x) = 1 ∫ +∞<br />
√ dx e ikx f(x + ∆x) = e −ik ∆x ˜f(k) (8.8)<br />
2π 2π<br />
−∞<br />
−∞<br />
auf die Bedingungsgleichung e −ik ∆x = 1 ist, d.h. k ∆x muss ein Vielfaches von 2π sein:<br />
Als Faustregel gilt also:<br />
k n<br />
= 2πn<br />
∆x<br />
, n ∈ Z. (8.9)<br />
Funktionen auf einem beschränkten Intervall, die periodisch<br />
fortgesetzt werden, besitzen ein diskretes Spektrum.<br />
Als Beispiel betrachten wir die Funktion f(x) = cos 4 (x) auf [0, 2π], die sich auf natürliche<br />
Weise periodisch fortsetzen lässt. Mit dem Befehl<br />
FourierTransform[Cos[x]^4, x, k]<br />
liefert Mathematica R○ die Fourier-Transformierte<br />
˜f(k) = 1 √ (<br />
)<br />
π<br />
δ(k − 4) + 4δ(k − 2) + 6δ(k) + 4δ(k + 2) + δ(k + 4) , (8.10)<br />
8 2<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
134 Fourier-Transformation<br />
Abbildung 8.1: Approximation einer Rechteckschwingung durch eine Fourier-Reihe.<br />
die in der Tat aus fünf äquidistanten δ-peaks besteht. Im Allgemeinen können sogar<br />
unendlich viele äquidistante δ-peaks auftreten. Wendet man nun auf eine solche Funktion<br />
die inverse Fourier-Transformation an, so erhält man eine Summe von oszillierenden<br />
Termen. Im obigen Beispiel besteht diese Summe aus 5 Termen, sie kann aber auch<br />
unendlich viele Summanden haben. Man spricht dann von einer Fourier-Reihe.<br />
Bei einer Fourier-Reihe reicht es aus, die Koeffizienten<br />
c n =<br />
∫<br />
1 b<br />
√ dx e iknx f(x) (8.11)<br />
b − a<br />
a<br />
der Entwicklung anzugeben, wobei k n<br />
nimmt dann die Gestalt einer Reihe<br />
an.<br />
f(x) =<br />
= 2πn<br />
∆x<br />
1<br />
√<br />
b − a<br />
+∞ ∑<br />
n=−∞<br />
ist. Die inverse Fourier-Transformation<br />
e −iknx c n (8.12)<br />
Als Beispiel betrachten wir eine Rechteckschwingung, die als Klang von elektronischen<br />
Geräten wie z.B. von Digitalweckern erzeugt wird:<br />
f(x) =<br />
{ +1 falls 0 < x ≤<br />
1<br />
2<br />
−1 falls 1 2 < x ≤ 1. (8.13)<br />
Die Koeffizienten sind dann<br />
c n =<br />
{ 0 falls n gerade<br />
falls n ungerade.<br />
2i<br />
nπ<br />
<strong>und</strong> man erhält die Fourier-Reihe<br />
f(x) = 2i ∞∑ exp[2πi(2m + 1)x]<br />
π<br />
2m + 1<br />
m=−∞<br />
= 4 π<br />
∞∑<br />
m=0<br />
sin[2π(2m + 1)x]<br />
2m + 1<br />
(8.14)<br />
. (8.15)<br />
Bricht man diese Reihe nach M Gliedern ab, so erhält man eine Approximation der<br />
Rechteckschwingung. Abb. 8.1 zeigt diese Approximation <strong>für</strong> M = 0, . . . , 4.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
8.1 Fourier-Transformation – kurz gefasst 135<br />
f(x) ˜f(k) Datenmenge<br />
kontinuierlich, nicht periodisch kontinuierlich, nicht periodisch überabzählbar unendlich<br />
kontinuierlich, periodisch diskret, nicht periodisch abzählbar unendlich<br />
diskret, nicht periodisch kontinuierlich, periodisch abzählbar unendlich<br />
diskret, periodisch diskret, periodisch endlich<br />
Tabelle 8.1: Vier unterschiedliche Typen von Fourier-Transformationen<br />
Bemerkung: Für unendliche Fourier-Reihen kennt Mathematica R○ keine eigenen Befehle,<br />
sondern man muss die betreffenden Integrale <strong>und</strong> Summen per Hand eingeben. Nicht immer<br />
sind die Ergebnisse dabei sofort transparent. Wertet man z.B. mit Mathematica R○ die Reihe<br />
in Gl. (8.15) aus, so erhält man das Ergebnis<br />
f(x) = 2i [<br />
]<br />
arctanh(e 2πix ) − arctanh(e −2πix ) . (8.16)<br />
π<br />
Man muss schon genau hinsehen um zu erkennen, dass diese Formel tatsächlich eine periodische<br />
Rechteckschwingung wie in Gl. (8.13) reproduziert.<br />
8.1.3 Diskrete Fourier-Transformationen<br />
Ist die zu transformierende Funktion diskret <strong>und</strong> periodisch, so ist auch die Fourier-<br />
Transformierte der Funktion diskret <strong>und</strong> periodisch. In diesem Fall liegt sowohl die<br />
Funktion als auch die Fourier-Transformierte in Form einer endlichen Menge von Koeffizienten<br />
{a 0 , . . . , a N−1 } bzw. {ã 0 , . . . , ã N−1 }vor. Die diskrete Fourier-Transformation<br />
ist also der einzige Typus, der auf einem Rechner numerisch realisiert werden kann. Die<br />
Transformationsformeln lauten<br />
ã k =<br />
a n =<br />
N−1<br />
1 ∑ ( 2πikn<br />
)<br />
√ a n exp<br />
N N<br />
n=0<br />
N−1<br />
1 ∑<br />
√<br />
N<br />
k=0<br />
(<br />
ã k exp<br />
− 2πikn<br />
N<br />
Diese linearen Transformationen lassen sich in Matrixschreibweise<br />
)<br />
k = 0, . . . , N − 1 (8.17)<br />
n = 0, . . . , N − 1 . (8.18)<br />
ã k = F kn a n , a n = F −1<br />
nk ãk (8.19)<br />
darstellen, wobei die Matrizen durch<br />
F kn = √ 1 ( 2πikn<br />
)<br />
exp , F −1<br />
N N<br />
nk = √ 1 (<br />
exp − 2πikn )<br />
N N<br />
(8.20)<br />
gegeben sind. Es gilt F kn F −1<br />
nk<br />
= δ ′ kk ′. Zum Beweis benötigt man die f<strong>und</strong>amentale Relation<br />
N−1<br />
∑<br />
n=0<br />
( 2πikn<br />
) { N falls k ein Vielfaches von N ist,<br />
exp =<br />
N 0 andernfalls.<br />
(8.21)<br />
Die obige Definition diskreter Fourier-Transformationen eignet sich <strong>für</strong> alle Programmiersprachen,<br />
bei denen Vektoren (Arrays) von 0 bis N − 1 indiziert werden, also beispielsweise<br />
C/C++. Dagegen benutzt Mathematica R○ die schwer nachvollziehbare Konvention<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
136 Fourier-Transformation<br />
der Indizierung von 1 bis N. In diesem Fall sehen die Transformationsformeln etwas<br />
komplizierter aus, unterscheiden sich aber nur durch eine Verschiebung in den Indices:<br />
ã k =<br />
a n =<br />
1<br />
√<br />
N<br />
1<br />
√<br />
N<br />
N ∑<br />
n=1<br />
∑<br />
N<br />
k=1<br />
(<br />
a n exp 2πi<br />
(<br />
ã k exp −2πi<br />
(k − 1)(n − 1)<br />
)<br />
N<br />
(k − 1)(n − 1)<br />
)<br />
N<br />
k = 1, . . . , N (8.22)<br />
n = 1, . . . , N . (8.23)<br />
Mit Mathematica R○ führt man diese Transformation einfach durch den Befehl<br />
FT=Fourier[{a1,a2,a3,a4,...,aN}]<br />
aus. Die ursprüngliche Liste erhält man dann durch InverseFourier[FT] zurück.<br />
Merke: Fourier[Liste] ≡ diskrete Fourier-Transformation<br />
FourierTransform[f[x],x,k] ≡ kontinuierliche Fourier-Transformation<br />
8.1.4 Invarianz des Skalarprodukts<br />
Wie man leicht überprüfen kann, erfüllen die in Gl. (8.20) definierten Matrizen die Relation<br />
FF † = F † F = 1 , (8.24)<br />
die Fourier-Transformation ist also eine unitäre Transformation (analog zu orthogonalen<br />
Transformation in reellen Vektorräumen). Eine diskrete Fourier-Transformation ist also<br />
im gewissen Sinne eine Drehung im N-dimensionalen Vektorraum <strong>und</strong> dementsprechend<br />
muss das dazugehörige euklidische Skalarprodukt<br />
a · b := ∑ n<br />
a n b ∗ n (8.25)<br />
invariant bleiben. Man kann sich davon leicht überzeugen, indem man zunächst das Skalarprodukt<br />
programmiert<br />
ScalarProduct[a_List,b_List] := a.Conjugate[b]<br />
<strong>und</strong> damit ein Beispiel ausprobiert:<br />
a={1,2,3}; b={4,5,6};<br />
ScalarProduct[a,b]<br />
ScalarProduct[Fourier[a],Fourier[b]];<br />
Ausgegeben werden 32 <strong>und</strong> 32. + 0.i, die Ergebnisse sind also bis auf winzige numerische<br />
Fehler im Imaginärteil identisch.<br />
Ähnliches gilt <strong>für</strong> kontinuierliche Fouriertransformationen. Diese lassen sich als ‘Drehungen’<br />
in einem (unendlich-dimensionalen) Funktionenraum interpretieren. Das entsprechende<br />
Skalarprodukt lautet<br />
f · g :=<br />
∫ +∞<br />
−∞<br />
f(x)g ∗ (x) (8.26)<br />
<strong>und</strong> ist unter Fourier-Transformation erhalten. Dies kann man mit dem folgenden Beispiel<br />
exemplarisch überprüfen:<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
8.1 Fourier-Transformation – kurz gefasst 137<br />
Abbildung 8.2: Gleitende diskrete Fourier-Transformation unter KDE mit KRecord.<br />
f[x_]:=x^2;<br />
fs[k_]=FourierTransform[f[x],x,k];<br />
g[x_]:=Exp[-x^2];<br />
gs[k_]=FourierTransform[g[x],x,k];<br />
ScalarProduct[f_,g_] := Integrate[f[x]*Conjugate[g[x]],{x,-Infinity,Infinity}]<br />
ScalarProduct[f,g]<br />
ScalarProduct[fs,gs]<br />
In beiden Fällen wird √ π/2 ausgegeben.<br />
8.1.5 Gleitende diskrete Fourier-Transformationen<br />
Oft benötigt man in der <strong>Physik</strong> Informationen über das Spektrum einer Zeitreihe, also<br />
einer zeitlichen Abfolge diskreter Amplituden. Insbesondere möchte man wissen, wie sich<br />
das Frequenzspektrum zeitlich ändert. Die meisten Programme zur Audio-Bearbeitung<br />
wie z.B. KRecord (siehe Abb. 8.2) bieten diese Möglichkeit. Die oben eingeführte diskrete<br />
Fourier-Transformation erlaubt aber nur, die gesamte Zeitreihe en bloc zu transformieren.<br />
Um ein zeitabhängiges Spektrum zu erhalten, benutzt man in der Regel ein gleitendes<br />
Zeitfenster, mit dem ein Teil der Zeitreihe isoliert <strong>und</strong> Fourier-transformiert wird. Für<br />
eine solche gleitende diskrete Fourier-Transformation gilt die ‘Unschärferelation’<br />
Zeitfensterbreite × Frequenzauflösung ≃ 1 . (8.27)<br />
Je breiter das Zeitfenster ist, um so genauer ist das Spektrum aufgelöst, jedoch wird es<br />
dadurch in seiner Zeitabhängigkeit träger.<br />
8.1.6 Allgemeine Eigenschaften von Fourier-Transformationen<br />
Wichtig <strong>für</strong> den praktischen Umgang mit Fourier-Transformationen ist eine gute Intuition.<br />
Eine wichtige Faustregel besagt, dass Welligkeit (Oszillation) auf der einen Seite<br />
Verschiebung (Translation) auf der anderen Seite zur Folge hat.<br />
• Multiplziert man insbesondere eine Funktion mit einer ebenen Welle, so führt das zu<br />
einer Translation der Fourier-Transformierten <strong>und</strong> umgekehrt. Für kontinuierliche<br />
Fourier-Transformationen heisst das konkret:<br />
f(⃗x) → f(⃗x + ⃗a) ⇔ ˜f( ⃗ k) → e<br />
−i ⃗ k·⃗a ˜f( ⃗ k) , (8.28)<br />
f(⃗x) → e i⃗q·⃗x f(⃗x) ⇔ ˜f( ⃗ k) → ˜f( ⃗ k + ⃗q) (8.29)<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
138 Fourier-Transformation<br />
Für diskrete Fourier-Transformationen gelten entsprechende Formeln, allerdings<br />
ist hier die Translation periodischen Randbedingungen zu unterwerfen, also stets<br />
modulo N auszuführen. Für Indizierung 0 . . . N − 1 erhält man<br />
a n → a (n+s)%N ⇔ ã k → e −2πiks/N ã k , (8.30)<br />
a n → e 2πiqn/N a n ⇔ ã k → ã (k+q)%N (8.31)<br />
wobei s, q ∈ {0, . . . N − 1} sind <strong>und</strong> ‘%’ wie in C/C++ <strong>für</strong> die Modulo-Operation<br />
steht. Für die Indizierung 1 . . . N sind diese Formeln um 1 in den Indices zu verschieben.<br />
So lässt sich der Verschiebungseffekt gemäß Gl. (8.30) mit Mathematica R○ demonstrieren:<br />
Liste = {1, 2, 3, 4, 5, 6};<br />
FT = Fourier[Liste];<br />
s = 2;<br />
Welle = Table[Exp[-2*Pi*I*j/Length[Liste]*s], {j, 0, Length[Liste]-1}];<br />
InverseFourier[Welle*FT]<br />
Als Ausgabe erhält man {3,4,5,6,1,2}, also die um s = 2 Position zyklisch nach<br />
links verschobene Liste. Beachten Sie, dass eine Verschiebung des Index n → n + s<br />
die Liste nicht etwa nach rechts, sondern um s Positionen nach links schiebt. Es<br />
verhält sich hier ganz ähnlich wie bei Funktionen: Wenn man f(x) <strong>und</strong> f(x+1) gemeinsam<br />
grafisch darstellt, so ist die letztere gegenüber f(x) nach links verschoben 1<br />
• Eine Punktspiegelung ⃗x → −⃗x auf der einen Seite ist äquivalent zu einer Punktspiegelung<br />
⃗ k → − ⃗ k auf der jeweils anderen Seite, d.h.<br />
f(⃗x) → f(−⃗x) ⇔ ˜f( ⃗ k) → ˜f(− ⃗ k) . (8.32)<br />
Anders ausgedrückt: Die Operation der Punktspiegelung kommutiert mit der Fouriertransformation.<br />
• Eine weitere wichtige Regel besagt, dass die Komplexkonjugation auf der einen<br />
Seite einer Punktspiegelung plus Komplexkonjugation auf der jeweils anderen Seite<br />
entspricht, also<br />
f(⃗x) → f ∗ (⃗x) ⇔ ˜f( ⃗ k) → ˜f ∗ (− ⃗ k) (8.33)<br />
f(⃗x) → f ∗ (−⃗x) ⇔ ˜f( ⃗ k) → ˜f ∗ ( ⃗ k) (8.34)<br />
Für diskrete Fouriertransformationen (Zählung 0 . . . N − 1) gilt entsprechend:<br />
a n → a ∗ n ⇔ b k → b ∗ N−k (8.35)<br />
a n → a ∗ N−n ⇔ ˜bk → b ∗ k (8.36)<br />
1 Dieser Sachverhalt ist in komplizierteren Zusammenhängen nichttrivial <strong>und</strong> führt häufig zu Fehlern.<br />
Stellen Sie sich beispielsweise eine Drehmatrix R vor, die einen zweidimensionalen Vektor ⃗x nach<br />
rechts dreht. In der Quantenmechanik würde diese Matrix, auf das Argument einer Wellenfunktion<br />
ψ(⃗x) angewandt, entgegengesetzt wirken, d.h. ψ(R⃗x) beschreibt ein nach links gedrehtes Objekt.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
8.1 Fourier-Transformation – kurz gefasst 139<br />
Die komplexe Konjugation der Koeffizienten entspricht also einer Umkehrung der<br />
Reihenfolge (Spiegelung) der Fourier-transformierten Koeffizienten <strong>und</strong> umgekehrt.<br />
Nur ein Koeffizient, nämlich derjenige, an dem gespiegelt wird, bleibt an seinem<br />
Platz: k = 0 bzw. n = 0. Mit Mathematica R○ lässt sich das leicht überprüfen:<br />
Liste = {1, 2, 3, 4, 5, 6};<br />
FT = Fourier[Liste];<br />
InverseFourier[Conjugate[FT]]<br />
Die Ausgabe lautet [1,6,5,4,3,2], also die an der ersten Komponente zyklisch<br />
gespiegelte Liste.<br />
• Fourier-Transformationen sind im Allgemeinen <strong>für</strong> komplexwertige Funktionen definiert,<br />
können aber (<strong>und</strong> werden oft) auf reelle Funktionen angewandt. Die Fourier-<br />
Transformierte einer reellen Funktion hat die Eigenschaft<br />
f(⃗x) ∈ R d ⇒ ˜f( ⃗ k) = ˜f ∗ (− ⃗ k) (8.37)<br />
<strong>und</strong> <strong>für</strong> diskrete Fourier-Transformationen entsprechend<br />
a n ∈ R<br />
⇒<br />
{<br />
ãk = ã ∗ N−k<br />
<strong>für</strong> Zählung k = 0, . . . N − 1 ,<br />
ã k = ã ∗ N+1−k<br />
<strong>für</strong> Zählung k = 1, . . . N .<br />
(8.38)<br />
Die Fourier-Transformierte einer reellen Funktion ist zwar komplex, ist aber spiegelsymmetrisch<br />
bezüglich k = 0 <strong>und</strong> besitzt damit nur halb so viele Freiheitsgrade.<br />
In der Tat haben reelle Funktionen haben wegen des verschwindenden Imaginärteils<br />
auch nur ‘halb so viele’ Freiheitsgrade wie komplexe Funktionenen.<br />
Bemerkung: Eng verwandt mit Fourier-Transformationen sind Laplace-Transformationen,die<br />
sich ganz grob als in der komplexen Ebene um 90 ◦ gedrehte Fourier-Transformationen interpretieren<br />
lassen. Die Transformationsformeln lauten<br />
F (s) =<br />
∫ ∞<br />
0<br />
dt e −st f(t) , f(t) =<br />
∫ +i∞+ɛ<br />
−i∞+ɛ<br />
ds e st F (s) (8.39)<br />
Dabei wird bei der Rücktransformation entlang der imaginären Achse integriert (mit einer<br />
infinitesimalen Verschiebung wegen der Residuen). Für die Laplace-Transformation gelten<br />
ähnliche Sätze <strong>und</strong> Merkregeln wie <strong>für</strong> die Fourier-Transformation.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
140 Fourier-Transformation<br />
8.1.7 Faltungssatz<br />
Das Faltungsprodukt ‘∗’ (engl. convolution product) zweier Funktionen f <strong>und</strong> g ergibt<br />
wiederum eine Funktion h = f ∗ g; es ist durch<br />
h(x) = [f ∗ g](x) =<br />
∫ +∞<br />
−∞<br />
dy f(x − y)g(y) (8.40)<br />
definiert. Faltungsprodukte braucht man z.B. bei der Glättung <strong>und</strong> Filterung von Daten.<br />
Ist beispielsweise g(x) eine schmale Gaußglocke, so wird die Funktion f(x) effektiv über<br />
die Breite dieser Gaußglocke gemittelt <strong>und</strong> damit geglättet. Die glättende Funktion g(x)<br />
wird dabei oft als mollifier bezeichnet.<br />
Das Faltungsprodukt verhält sich weitgehend wie ein normales Produkt:<br />
Kommutativität: f ∗ g = g ∗ f<br />
Assoziativität: (f ∗ g) ∗ h = f ∗ (g ∗ h) = f ∗ g ∗ h<br />
Bilinearität: f ∗ (g + h) = f ∗ g + f ∗ h, (f + g) ∗ h = f ∗ h + g ∗ h<br />
Skalare:<br />
λ ∗ f = λf ∀λ ∈ C<br />
Produktregel: (f ∗ g) ′ = f ′ ∗ g + f ∗ g ′<br />
Außerdem ist es translationsinvariant im dem Sinne, dass eine Verschiebung der Funktion<br />
f auf gleiche Weise das Faltungsprodukt f ∗ g verschiebt 2 . Bei der Glättung von<br />
Daten wird durch die Translationsinvarianz sichergestellt, dass die Funktion f(x) <strong>für</strong> alle<br />
x auf die gleiche Weise geglättet wird.<br />
Auch in höheren Dimensionen kann man ein Faltungsprodukt definieren. Im R n ist beispielsweise<br />
∫<br />
[f ∗ g](⃗x) = d d y f(⃗x − ⃗y)g(⃗y) . (8.41)<br />
R n<br />
Wegen Bilinearität <strong>und</strong> Translationsinvarianz ist das Faltungsprodukt prädestiniert <strong>für</strong><br />
die Fourier-Transformation. Man erhält<br />
h(x) = [f ∗ g](x) =<br />
∫ +∞<br />
= 1<br />
2π<br />
=<br />
dy 1<br />
2π<br />
−∞<br />
∫ +∞<br />
−∞<br />
∫ +∞<br />
−∞<br />
∫ +∞<br />
−∞<br />
∫ +∞<br />
dk 1 dk 2 e ik 1(x−y)+ik 2 y ˜f(k1 )˜g(k 2 )<br />
−∞<br />
∫ +∞<br />
dk 1 dk 2 2πδ(k 1 − k 2 )e ik 1x ˜f(k1 )˜g(k 2 ) (8.42)<br />
−∞<br />
dke ikx ˜f(k)˜g(k) . (8.43)<br />
Fourier-transformiert man diese Gleichung auf beiden Seiten, so erhält man den sogenannten<br />
Faltungssatz<br />
˜h(k) = [˜f ∗ g](k) = √ 2π ˜f(k)˜g(k) . (8.44)<br />
Ein Faltungsprodukt geht also durch Fourier-Transformation in ein gewöhnliches Produkt<br />
über.<br />
2 Ist also F (x) := f(x+a) eine gegenüber f um den Abstand a verschobene Funktion, so gilt [F ∗g](x) =<br />
[f ∗ g](x + a).<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
8.2 Klänge mit Mathematica R○ 141<br />
8.2 Klänge mit Mathematica R○<br />
8.2.1 Erzeugung eines Klanges mit Funktionen<br />
Mathematica R○ (Version 6.0) ermöglicht es, auf besonders einfache Weise mit der So<strong>und</strong>karte<br />
des Rechners Töne zu erzeugen. Das folgende Beispiel zeigt, wie man beispielsweise<br />
eine Sinusschwingung mit der Frequenz von 440 Hz (Kammerton a) erzeugen kann:<br />
Nach Berechnung der Funktion erzeugt<br />
Mathematica R○ ein Klangobjekt, das im<br />
Wesentlichen aus einer Liste der<br />
diskretisierten Amplituden besteht.<br />
Sie können sich den erzeugten Klang<br />
durch Klicken auf das Wiedergabesymbol<br />
ohne Neuberechnung beliebig oft anhören.<br />
Entscheidend <strong>für</strong> die Tonqualität ist die Abtastrate (engl. sample rate), also die Schrittweite<br />
der internen Diskretisierung. Sie ist bei Mathematica R○ standardgemäß auf 8.000<br />
Amplitudenwerte pro Sek<strong>und</strong>e (8 kHz) eingestellt <strong>und</strong> ist bei diesem Wert noch hörbar.<br />
Eine höhere Abtastrate kann als Option angegeben werden:<br />
Play[Sin[2 π ν t],{t,0,2},SampleRate→25000]<br />
Erst oberhalb des vom Menschen wahrnehmbaren Frequenzbereichs von etwa 20.000 Hz<br />
wird die Diskretisierung unhörbar. Musikaufnahmen benutzen deshalb in der Regel die<br />
Abtastrate 44.100 Hz.<br />
Mit dem Befehl Play können auch zwei Funktionen getrennt auf beiden Lautsprechern<br />
wiedergegeben werden, womit Stereo-Effekte ermöglicht werden. Zwei gegeneinander verstimmte<br />
Sinusschwingungen erzeugen beispielsweise eine räumliche Schwebung:<br />
ν=220; µ=222;<br />
Play[{Sin[2π ν t],Sin[2π µ t]},{t,0,4},SampleRate→25000]<br />
8.2.2 Hochladen von Klangdateien<br />
Sie können auch Klangdateien auf Ihrem Rechner hochladen, diskretisieren <strong>und</strong> mit<br />
Mathematica R○ verarbeiten. Die Klangdatei muss dabei im wavetable-Format (.wav) vorliegen.<br />
Komprimierte Formate (z.B. ogg oder mp3) sind nicht geeignet <strong>und</strong> müssen erst<br />
konvertiert werden. Das Klangbeispiel sollte nicht länger als einige Sek<strong>und</strong>en sein, damit<br />
sich die Ausführungszeiten in Grenzen halten. Hochgeladen wird die Datei mit:<br />
Klangdaten = Import["Vorlesung/V02-Fourier/Trompete.wav", "WAV"]<br />
Die Abtastrate wird dabei durch die eingelesene Datei festgelegt. In dem Objekt namens<br />
Klangdaten befindet sich dann eine Liste von Zahlenwerten, die den diskretisierten<br />
Verlauf der Schwingung beschreibt. Diese Liste kann man durch 3<br />
3 Wo sich die Liste in dem Objekt befindet, kann von den Eigenschaften der Klangdatei (z.B. Mono<br />
oder Stereo) abhängen, die Indizierung [[1,1,1]] ist also nicht immer korrekt.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
142 Fourier-Transformation<br />
Liste = Klangdaten[[1, 1, 1]];<br />
isolieren <strong>und</strong> dann mit dem Befehl<br />
ListPlay [Liste, SampleRate -> 25000, PlayRange -> {-2, 2}]<br />
wieder hörbar machen. Die SampleRate muss dabei natürlich der Diskretisierung der ursprünglichen<br />
Klangdatei entsprechen. Etwas kritisch ist die Wahl des PlayRange, dessen<br />
Grenzen der minimalen <strong>und</strong> maximalen Auslenkung der Lautsprechermembran entsprechen.<br />
Ohne diese Option wählt Mathematica R○ automatische Mittelwerte, doch damit<br />
kann es leicht zum Übersteuern der So<strong>und</strong>karte kommen. Hier empfiehlt es sich, einfach<br />
auszuprobieren.<br />
8.2.3 Manipulation von Klängen<br />
Sie können den hochgeladenen Klang Fourier-transformieren, beliebig manipulieren, <strong>und</strong><br />
wieder zurücktransformieren. Mit der Befehlsequenz<br />
FT = Fourier[Liste];<br />
FT2 = Conjugate[FT];<br />
Liste2 = InverseFourier[FT2];<br />
ListPlay [Re[Liste2], SampleRate -> 25000, PlayRange -> {-3, 3}]<br />
wird beispielsweise die Fourier-Transformierte komplex konjugiert; Sie hören dann den<br />
Klang rückwärts. Zyklisch verschieben kann man dagegen einen Klang durch Muliplikation<br />
mit einer ebenen Welle:<br />
FT = Fourier[Liste];<br />
Welle = Table[Exp[100*I*k], {k, 1, Length[FT]}];<br />
FT2 = FT * Welle;<br />
Liste2 = InverseFourier[FT2];<br />
ListPlay [Re[Liste2], SampleRate -> 25000, PlayRange -> {-3, 3}]<br />
Versehentlich entstandene kleine Imaginärteile werden in der letzten Zeile durch Re[...]<br />
eliminiert. Durch lineare Superposition von Wellen mit verschiedenen Wellenzahlen lässt<br />
sich leicht ein Stimmengewirr erzeugen.<br />
8.2.4 Künstlicher Nachhall<br />
Akustischer Nachhall wie etwa in einer Kirche entsteht durch Superposition zahlreicher<br />
Einzelechos von diversen Gebäudeteilen. Dabei kommt es zu mehrfachen Reflexionen<br />
(Mehrfachechos), die in ihrer Intensität abnehmen, da bei jeder Reflexion ein bestimmter<br />
Anteil der Schallenergie dissipiert wird.<br />
Ein einfaches Modell <strong>für</strong> die Erzeugung von Nachhall ist ein Echo mit konstanter Laufzeit<br />
β, das bei jeder Reflexion um den Faktor α < 1 abgeschwächt wird, also nach n<br />
Reflexionen nur noch einen Bruchteil α n der anfänglichen Energie besitzt. Ein Nachhall<br />
ist also eine Folge von unendlich vielen Echos n = 1, 2, . . ., verschoben um die Zeit βn<br />
<strong>und</strong> abgeschwächt um den Faktor α n .<br />
Im Fourier-Raum lässt sich wie oben die zeitliche Translation durch Multiplikation mit<br />
der ebenen Welle e inβk erreichen, die zusätzlich noch mit α n gewichtet werden muss. Die<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
8.3 Bildbearbeitung mit Mathematica R○ 143<br />
Fourier-Transformierte ist also mit einer geometrischen Reihe<br />
g(k) =<br />
∞∑<br />
α n e inβk =<br />
n=0<br />
1<br />
1 − αe iβk (8.45)<br />
zu multiplizieren. Diese einfache geometrische Reihe erzeugt einen erstaunlich guten<br />
Nachhall. Dieser Effekt kann noch gesteigert werden, wenn Sie auf beiden Stereo-Kanälen<br />
geringfügig verschiedene Nachhallzeiten benutzen, wodurch ein räumlicher Halleffekt entsteht:<br />
FT = Fourier[Liste];<br />
FTSL = Table [1 / (1 - 0.8 * Exp[0.005*I*k]), {k, 1, Length[FT]}] * FT;<br />
FTSR = Table [1 / (1 - 0.8 * Exp[0.006*I*k]), {k, 1, Length[FT]}] * FT;<br />
ListPlay[{InverseFourier[FTSL] // Re, InverseFourier[FTSR] // Re},<br />
SampleRate -> 44100, PlayRange -> {-2, 2}]<br />
8.3 Bildbearbeitung mit Mathematica R○<br />
Auf ähnliche Weise kann man mit Mathematica R○ Bilder bearbeiten. Der einzige Unterschied<br />
besteht darin, dass nun die Daten nun eine zweidimensionale Struktur besitzen.<br />
Diskrete zweidimensionale Fourier-Transformationen sind aber <strong>für</strong> den Befehl Fourier<br />
kein Problem.<br />
Zum praktischen Umgang empfiehlt sich die Definition der Funktionen<br />
GetBitmap[filename_] :=<br />
Transpose[Import[filename][[1, 1]], {2, 3, 1}];<br />
ShowBitmap[b_] := Module[{max}, max = Max[b];<br />
Show[Graphics[Raster[Transpose[b, {3, 1, 2}]/max]]]];<br />
Mit M=GetBitmap[”tux.png”] können Sie beispielsweise das Bild des Linux-Pinguins<br />
in diskretisierter Form hochladen. 4 Dem Bezeichner M wird dann eine 3 × X × Y -Liste<br />
zugeordnet, wobei X <strong>und</strong> Y die Pixel-Abmessungen des Bildes sind. M[[1]], M[[2]] <strong>und</strong><br />
M[[3]] sind drei X ×Y -Matrizen mit Intensitätswerten <strong>für</strong> die drei Farben rot, grün <strong>und</strong><br />
blau. 5<br />
Wir können nun die Daten (<strong>für</strong> jede Farbe einzeln) Fourier-transformieren <strong>und</strong> ähnlich wie<br />
bei den Klängen manipulieren. Eine Komplexkonjugation der Fourier-Transformierten<br />
beispielsweise führt zu einer Punktspiegelung des Bildes:<br />
FT = Table[Fourier[bild[[i]]], {i, 1, 3}];<br />
FT2 = Conjugate[FT];<br />
IM = Table[InverseFourier[FT2[[i]]], {i, 1, 3}];<br />
a = ShowBitmap[Abs[IM]]<br />
Dabei werden durch den Absolutwert in der letzten Zeile imaginäre <strong>und</strong> negative R<strong>und</strong>ungsfehler<br />
eliminiert.<br />
4 Verwenden Sie nur kleine Bilddateien, da sonst die Ausführungszeiten unpraktisch groß werden.<br />
5 Das menschliche Auge hat nur drei verschiedene Arten von Farbrezeptoren mit überlappenden Bandbreiten.<br />
Es kann deshalb z.B. die Farbe gelb nicht von einer Superposition aus rot <strong>und</strong> grün unterscheiden.<br />
Zur Darstellung von Farben reicht deshalb ein RGB-Triplet aus.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
144 Fourier-Transformation<br />
8.3.1 Faltungsprodukte in der Bildbearbeitung<br />
Wegen der umständlichen Handhabung der drei Farben bietet es sich an, zunächst eine<br />
Funktion zu schreiben, welche die Fourier-Transformation, die Faltung mit einer vorgegebenen<br />
Funktion f[kx,ky], die Rücktransformation <strong>und</strong> die Anzeige automatisiert:<br />
Faltung := Module[{FT, F, X, Y, FT2, IM},<br />
FT = Table[Fourier[bild[[i]]], {i, 1, 3}];<br />
X = Dimensions[FT][[3]];<br />
Y = Dimensions[FT][[2]];<br />
F = Table[f[Mod[X/2 + kx - 1, X] - X/2, Mod[Y/2 + ky - 1, Y] - Y/2 - 1],<br />
{c, 1, 3}, {ky, 1, Y}, {kx, 1, X}];<br />
FT2 = FT*F;<br />
IM = Table[InverseFourier[FT2[[i]]], {i, 1, 3}];<br />
ShowBitmap[Abs[IM]]]<br />
Faltungen sind translationsinvariant, d.h. sie wirken überall in gleicher Weise. Damit sind<br />
sie prädestiniert <strong>für</strong> Filterfunktionen in der Bildbearbeitung, denn die Filter sollen in der<br />
Regel an jedem Ort des Bildes auf gleiche Weise wirken.<br />
8.3.2 Scharfzeichnen <strong>und</strong> Weichzeichnen<br />
Jedes Bildbearbeitungsprogramm <strong>für</strong> Digitalkameras bietet die Möglichkeit, eine Aufnahme<br />
zu schärfen oder zu glätten. Diese Filterfunktionen ähneln einem Hochpass <strong>und</strong><br />
Tiefpass in der Akkustik. Eine Funktion, die zur Schärfung des Bildes führt, muss also<br />
hohe Wellenzahlen begünstigen. Außerdem sollte sie isotrop sein, also nicht von ⃗ k,<br />
sondern nur von | ⃗ k| oder ⃗ k 2 abhängen. Eine Möglichkeit von vielen ist:<br />
f[kx_, ky_] := Exp[(kx*kx + ky*ky)/20000]<br />
Für einen Weichzeichner muss man die großen Wellenlängen begünstigen – am einfachsten<br />
durch einen Vorzeichenwechsel im Exponenten.<br />
f[kx_, ky_] := Exp[-(kx*kx + ky*ky)/2000]<br />
Der Effekt dieser beiden Filter ist in Abb. 8.3 zu sehen.<br />
Abbildung 8.3: Filter f( ⃗ k) = e ±αk2<br />
zum Weichzeichnen <strong>und</strong> Scharfzeichnen von Bildern.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
8.4 Fast-Fourier-Transform (FFT) 145<br />
8.4 Fast-Fourier-Transform (FFT)<br />
Für die Effizienz eines Algorithmus ist die Ausführungszeit ein wichtiges Kriterium. Dabei<br />
spielt die absolute Ausführungszeit allerdings eine eher untergeordnete Rolle; viel<br />
wichtiger ist dagegen die Frage, wie die Ausführungszeit mit der Größe des gestellten<br />
Problems skaliert. Mit dieser Information lässt sich schon anhand kleinerer Testläufe auf<br />
einem Arbeitsplatzrechner vorhersagen, welche Ausführungszeit auf einem Großrechner<br />
benötigt werden wird. Außerdem legt das Skalierungsverhalten fest, welcher Algorithmus<br />
asymptotisch das Rennen gewinnt.<br />
Die Problemgröße bei einer diskreten Fourier-Transformation ist die Anzahl der Datenpunkte<br />
N. Im Abschnitt 8.1.3 haben wir besprochen, dass die diskrete Fourier-Transformation<br />
eine lineare Transformation ist <strong>und</strong> deshalb als Matrixmultiplikation aufgefasst<br />
werden kann (siehe Gl. 8.20). Die Ausführungszeit, die man <strong>für</strong> eine solche Matrixmultiplikation<br />
benötigt, steigt dabei proportional zur Anzahl der Matrixelemente, also zu N 2 .<br />
Man spricht im Jargon auch von einem N 2 -Algorithmus.<br />
Die Fast-Fourier-Transform (FFT) ist ein alternativer Algorithmus, der wie N ln N skaliert,<br />
also erheblich besser ist als die direkte Matrixmultiplikation. Allerdings unterliegt<br />
er folgenden Einschränkungen:<br />
• Die Stützstellen müssen äquidistant sein, was bei der ‘normalen’ diskreten Fouriertransformation<br />
im Prinzip nicht unbedingt der Fall sein muss.<br />
• Der FFT-Algorithmus arbeitet besonders effizient, wenn N eine Zweierpotenz ist.<br />
Der FFT-Algorithmus gehört zu den Standardalgorithmen <strong>und</strong> ist in vielen Programmbibliotheken<br />
verfügbar. Er beruht auf einer rekursiven Zweiteilung der Datenmenge, womit<br />
plausibel wird, warum er besonders gut <strong>für</strong> N = 2 n funktioniert. 6 Die in Gl. (8.17) auftretende<br />
Summe wird dazu in gerade <strong>und</strong> ungerade Anteile getrennt (hier <strong>für</strong> Zählung<br />
0, . . . , N − 1, in der Vorlesung hatten wir 1, . . . , N):<br />
ã k =<br />
N/2−1<br />
∑<br />
t=0<br />
F (N)<br />
k,2t a 2t<br />
} {{ }<br />
gerade<br />
+<br />
N/2−1<br />
∑<br />
t=0<br />
F (N)<br />
k,2t+1 a 2t+1<br />
} {{ }<br />
ungerade<br />
, (8.46)<br />
wobei F (N)<br />
k,n = 1<br />
√<br />
N<br />
exp( 2πikn<br />
N<br />
) ist. Wegen<br />
F (N)<br />
k,2t = 1 √<br />
2<br />
F (N/2)<br />
k,t<br />
, F (N)<br />
k,2t+1<br />
lässt sich dieser Ausdruck umformen zu<br />
ã k = √ 1<br />
N/2−1<br />
∑<br />
2<br />
t=0<br />
F (N/2)<br />
k,t<br />
a 2t<br />
} {{ }<br />
gerade<br />
N )<br />
2πik<br />
exp(<br />
= √<br />
2<br />
F (N/2)<br />
k,t<br />
(8.47)<br />
2πik<br />
exp(<br />
N<br />
+ √ )<br />
N/2−1<br />
∑<br />
F (N/2)<br />
2<br />
k,t<br />
a 2t+1 , (8.48)<br />
t=0<br />
} {{ }<br />
ungerade<br />
6 Professionelle Implementierungen des FFT-Algorithmus arbeiten auch dann, wenn N keine Zweierpotenz<br />
ist. Das kostet aber zusätzliche Ausführungszeit, so dass man in der Praxis, wenn N frei wählbar<br />
ist, mit Zweierpotenzen arbeiten sollte.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
146 Fourier-Transformation<br />
Abbildung 8.4: FFT-Chip SPIFFEE von Bevan Baas [3].<br />
Über den geschweiften Klammern stehen dabei zwei diskrete Fourier-Transformationen<br />
von jeweis halb so viel Datenpunkten. Mit diesen Formeln lässt sich die FFT bequem<br />
rekursiv programmieren. Man muss lediglich als Abbruchbedingung hinzufügen, dass die<br />
Fourier-Transformierte einer einzigen Zahl bei N = 1 die Zahl selbst ist.<br />
Hier sehen Sie eine rekursive Mathematica R○ -Funktion <strong>für</strong> den FFT-Algorithmus. Argument<br />
ist die Liste lst. Bei der Länge L = 1 wird abgebrochen <strong>und</strong> die Liste unverändert<br />
zurückgegeben, ansonsten wird die Liste in zwei Teillisten even <strong>und</strong> odd zerlegt wird. Beide<br />
werden rekursiv Fourier-transformiert. Mit Join[fteven, fteven] bzw. Join[ftodd,<br />
ftodd] werden die Fouriertransformierten periodisch verzweifacht <strong>und</strong> anschließend mit<br />
den in phases abgelegten Phasenfaktoren elementweise multipliziert:<br />
FFT[lst_ ] := Module[{L, even, odd, fteven, ftodd, phases},<br />
L = Length[lst];<br />
If[L == 1, lst,<br />
even = Table[lst[[2 x - 1]], {x, 1, L/2}];<br />
odd = Table[lst[[2 x]], {x, 1, L/2}];<br />
fteven = FFT[even]; ftodd = FFT[odd];<br />
phases = Table[Exp[2 Pi I (s - 1)/L], {s, 1, L}];<br />
(Join[fteven, fteven] + phases*Join[ftodd, ftodd])/ Sqrt[2] ]]<br />
Dieser Algorithmus kann nur Daten verarbeiten, welche die Länge einer Zweierpotenz<br />
haben. Sonderbehandlungen oder eine Sicherheitsabfrage fehlen noch.<br />
Bei manchen Anwendungen ist es notwendig, einen Datenstrom extrem schnell Fouriertransformieren<br />
zu können. Zu diesem Zweck gibt es sowohl universitäre als auch kommerzielle<br />
Hardware-Chips (Abb. 8.4). Unter http://nova.stanford.edu/˜bbaas/spiffee.html<br />
finden Sie eine Liste mit Weltrekorden, so liegt der Geschwindigkeitsrekord <strong>für</strong> eine FFT<br />
von N = 1024 Werten derzeit bei etwa 10µs, aber genau so wichtig ist es, <strong>für</strong> die Transformation<br />
nur wenig Energie zu verbrauchen.<br />
8.5 Aufgaben<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
Literaturverzeichnis<br />
[1] W. Kinzel and G. Reents, Physics by Computer, Springer, Berlin (1998), zu beziehen<br />
über Prof. Reents.<br />
[2] Siehe beispielsweise http://mathworld.wolfram.com/FourierTransform.html<br />
oder http://de.wikipedia.org/wiki/Fourier-Transformation<br />
[3] Bevan M. Baas, A Low-Power, High-Performance, 1024-point FFT Processor,<br />
IEEE Journal of Solid-State Circuits (JSSC), pp. 380-387, March 1999, vgl.<br />
http://nova.stanford.edu/ bbaas/spiffee.html<br />
[4] G. Marsaglia and A. Zaman, A new class of random number generators, The Annals<br />
of Applied Probability 1, No. 3, 462-480 (1991).<br />
[5] R. M. Ziff, Four-tap shift-register-sequence random-number generators, Computers<br />
in Physics 12, No. 4, 385-392 (1998), im Internet frei unter<br />
http://arxiv.org/abs/cond-mat/9710104.<br />
[6] zu chemischen Oszillationen siehe:<br />
http://de.wikipedia.org/wiki/Belousov-Zhabotinsky-Reaktion Die gezeigten<br />
Abbildungen stammen ebenfalls von dort.<br />
[7] R. Field, E. Körös, and R. Noyes, Oscillations in Chemical Systems. II. Thorough<br />
Analysis of Temporal Oscillation in the Bromate-Cerium-Malonic Acid System, J.<br />
Am. Chem. Soc. 94, 8649 (1972).<br />
[8] R. Kroon and H. Fleurent and R. Sprik, Diffusion-limited exciton fusion reaction<br />
in one-dimensional tetramethylammonium manganese trichloride (TMMC), Phys.<br />
Rev. E 47, 2462 (1993).<br />
[9] D. ben-Avraham, The method of inter-particle distribution functions for diffusionreaction<br />
systems in one dimension, Mod. Phys. Lett. B 9, 895 (1995).<br />
[10] H. Hinrichsen The phase transition of the diffusive pair contact process revisited,<br />
Physica A 361, 457 (2006), als Zeitschrift in der Bibliothek vorhanden, im Internet<br />
frei unter http://arxiv.org/abs/cond-mat/0501075.<br />
[11] R. Dickman and J. K. da Silva, Moment ratios for absorbing-state phase<br />
transitions, Phys. Rev. E 58, 4266 (1998), im Internet frei unter<br />
http://arxiv.org/abs/cond-mat/9805294.<br />
[12] A. L Barabási and H.E. Stanley, Fractal concepts in surface growth, Cambridge<br />
University Press, U.K., 1995.<br />
[13] S. Redner, A Guide to First-Passage Processes, Cambridge University Press, Cam-<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
148 Literaturverzeichnis<br />
bridge, UK (2001), vorhanden in der Lehrstuhlbibliothek von TP III.<br />
[14] T. A. Witten and L. M. Sander, Phys. Rev. Lett. 47, 1400 (1981), als Zeitschrift in<br />
der Bibliothek vorhanden,<br />
[15] B. B. Mandelbrot, B. Kol, and A. Aharony, Angular gaps in radial diffusion-limited<br />
aggregation: Two fractal dimensions and nontransient deviations from linear selfsimilarity,<br />
Physical Review Letters 88, 055501 (2002), als Zeitschrift in der Bibliothek<br />
vorhanden, im Internet frei unter http://arxiv.org/abs/cond-mat/0109426.<br />
[16] A. L Barabási and H.E. Stanley, Fractal concepts in surface growth, Cambridge<br />
University Press, U.K., 1995.<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
Index<br />
„ 2<br />
Abbildung<br />
chaotische, 60<br />
iterative, 46, 61<br />
logistische, 51<br />
Abtastrate, 141<br />
Adams-Bashforth-Methode, 18<br />
Aggregat, 86<br />
Algorithmus<br />
leapfrog,leapfrog-Algorithmus, 16<br />
symplektischer,Iteration<br />
symplektische, 16<br />
Anfangswerte, 19<br />
Antikorrelationen, 60<br />
Apfelmännchen, 52<br />
asymptotisch proportional, 118<br />
Attraktor, 44<br />
seltsamer, 45<br />
Automat<br />
zellulärer, 101<br />
Belousov-Zhabotinsky-Reaktion, 94<br />
Bewegungsgleichung<br />
stochastische, 81<br />
Bifurkation, 48<br />
Billard, 37<br />
Box-Muller-Transformation, 69<br />
Chaos, 37<br />
deterministisches, 37<br />
chaotische Abbildung, 60<br />
Cluster, 86<br />
unendlicher, 117<br />
diffusionsbegrenztes Wachstum, 86<br />
Diffusionsgleichung, 82<br />
Diffusionskonstante, 82<br />
Dimension<br />
fraktale, 89<br />
kritische, 109<br />
Diskretisierung, 10<br />
DLA, 86<br />
Dreiecksgitter, 97<br />
Dynamik<br />
lokale, 101<br />
nichtlokale, 101<br />
zufällig-sequentielle, 120<br />
dynamischer Exponent, 121<br />
Einschrittverfahren, 10, 17<br />
Ensemblemittel, 59<br />
ergodisch, 98<br />
Euler-Verfahren,Interationsverfahren<br />
Euler, 11<br />
Exponent<br />
kritischer, 118<br />
Exponenten<br />
kritische, 113<br />
Exzitone, 104<br />
Faltung<br />
mehrfache, 76<br />
Faltungsintegral, 75<br />
Faltungsprodukt, 75, 140<br />
Faltungssatz, 77, 140<br />
Fast-Fourier-Transform, 145<br />
Fehlerfunktion, 69<br />
Feigenbaumkonstante, 50<br />
Fenster<br />
chaotisches, 43<br />
Fixpunkt, 46<br />
Fokker-Planck-Gleichung, 82<br />
Forminvarianz, 83<br />
Fourier-Reihen, 134<br />
Fourier-Transformation, 131<br />
diskrete, 135<br />
gleitende diskrete, 137<br />
kontinuierliche, 132<br />
Fraktal, 45, 88<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
150 Index<br />
Funktion<br />
charakteristische, 77<br />
Gaußverteilung, 68<br />
Liouville<br />
gewöhnliche Differentialgleichungen,Differentialgleichungen<br />
gewöhnliche, 9<br />
Gitter, 96<br />
Gittergeometrien, 97<br />
Grenzfläche, 125<br />
Häufigkeit<br />
relative, 67<br />
Heteroepitaxie, 125<br />
Heun<br />
Verfahren von, 11<br />
Histogramm, 67<br />
Homoepitaxie, 125<br />
homogene Funktionen, 124<br />
Honigwabengitter, 97<br />
Hyperskalenrelation, 122<br />
Integration<br />
numerische, 1<br />
Iteration<br />
einstufige, 61<br />
Tiefe, 63<br />
Iterationsfehler, 11<br />
Iterationsindex, 10<br />
iterative Abbilung, 61<br />
Koagulation, 103<br />
Komplexkonjugation<br />
einer Fourier-Transformierten, 138<br />
Konfiguration, 98<br />
Konfindenzniveau, 68<br />
Kontaktprozess, 120<br />
Kontinuumlimes, 82<br />
Kontrollparameter, 113<br />
Korrektor, 11<br />
Korrelationen<br />
Anti-, 107<br />
Korrelationsfreiheit, 58<br />
Korrelationsfunktion, 59<br />
Zweipunkt-, 59<br />
kritischen Schwelle, 114<br />
Lösung<br />
einfach-periodische, 42<br />
mehrfach-periodische, 43<br />
Laplace-Transformationen, 139<br />
Limes<br />
überdämpfter, 93<br />
Satz von, 40<br />
Lyapunov-Exponent, 40, 41<br />
mittlerer, 41<br />
Lyapunov-Exponenten<br />
Spektrum, 40, 41<br />
Lypunov-Exponent<br />
maximaler, 41<br />
Mandelbrotmenge, 52<br />
Markov-Eigenschaft, 101<br />
Massenwirkungsgesetz, 93<br />
Mastergleichung, 81<br />
Mehrschrittverfahren, 10, 17<br />
explizites, 18<br />
implizites, 18<br />
lineares, 18<br />
Mittel<br />
arithmetisches, 59<br />
Enseble-, 59<br />
Modenzerlegung, 24<br />
Molekularstrahlepitaxie, 125<br />
Musterbildung, 95<br />
Newton-Cotes-Verfahren, 3<br />
Niveauabstoßung, 38<br />
Niveaukreuzungen, 38<br />
Normalverteilung, 68<br />
Numerov-Verfahren, 22<br />
Oberflächenspannung, 126<br />
Ordnungsparameter, 113<br />
Oszillationen<br />
chemische, 94<br />
Periode, 60<br />
Periodenverdopplung, 43, 48<br />
periodisches Fortsetzen,Fortsetzung<br />
periodische, 133<br />
Perkolation, 114<br />
gerichtete, 114<br />
isotrope, 114<br />
phänomenologische Skalentheorie, 123<br />
Phasenübergang, 113, 114<br />
diskontinuierlicher, 113<br />
erster Ordnung, 113<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
Index 151<br />
kontinuierlicher, 113<br />
zweiter Ordnung, 113<br />
Phasendiagramm, 113<br />
Poincaré-Schnitt, 44<br />
Prädikator, 11<br />
Pseudozufallszahlen, 60<br />
Quadratgitter, 97<br />
Quantenbillard, 38<br />
Quantenchaos, 37<br />
Quantenzustand, 20<br />
Rückkehrexponent, 85<br />
Randbedingungen<br />
Dirichlet-, 96<br />
periodische, 97<br />
torodiale, 97<br />
von Neumann, 97<br />
random walk, 80<br />
Randwerte, 19<br />
Raten, 120<br />
Rauigkeit, 126<br />
Rauigkeitsexponent,Exponent<br />
Rauigkeits, 127<br />
Rauschen<br />
weisses, 79<br />
Reaktions-Diffusionsmodelle, 93<br />
Rechteckverfahren, 1<br />
Rekursion,Algorithmen<br />
rekursive, 146<br />
Reskalierung, 83, 123<br />
Runge-Kutta Verfahren<br />
klassisches, 13<br />
Runge-Kutta-Fehlberg Verfahren, 14<br />
Runge-Kutta-Verfahren,Iterationsverfahren<br />
RungeKutta, 12<br />
Runge-Lenz-Vektor,Vektor<br />
Runge-Lenz, 17<br />
Sampling, 67<br />
Schmetterlingseffekt, 37<br />
Schrödingergleichung, 18, 82<br />
stationäre, 21<br />
zeitabhängige, 24<br />
Schrittweite, 10<br />
Selbstähnlichkeit, 45<br />
Simpsonregel, 3<br />
Skalenform, 83<br />
Skalenfreiheit, 122<br />
Skalenfunktion, 83<br />
Skaleninvarianz, 117<br />
Skalenrelationen, 122<br />
Skalentransformation, 123<br />
Skalierungseigenschaften, 83<br />
Spitzeneffekt, 88<br />
Stützstellen, 1<br />
System<br />
-zustand, 98<br />
System von Differentialgleichungen,Differentialgleichunge<br />
System, 9<br />
Systeme<br />
integrable, 21<br />
Transformation<br />
Box-Muller, 69<br />
unitäre, 136<br />
Transienten, 118<br />
Translation<br />
einer Fourier-Transformierten, 137<br />
Trapezregel, 2<br />
Umkehrfunktion, 66<br />
Unitarität, 29<br />
Universalität, 79, 113, 114, 124<br />
der Feigenbaumkonstante, 51<br />
Universalitätsklasse, 113, 124<br />
universelle Skalenfunktion, 123<br />
Updates<br />
alternierende, 99<br />
ordered-sequential, 100<br />
parallele, 99<br />
random-sequential, 100<br />
verallgemeinerte homogene Funktionen,<br />
124<br />
Verteilung<br />
bimodale, 81<br />
Vielteilchensysteme, 93<br />
Wärmeleitungsgleichung, 18, 82<br />
Wachstum<br />
diffusionsbegrenztes, 86<br />
Wachstumsprozess, 125<br />
Wahrscheinlichkeitsdichte, 59<br />
Wahrscheinlichkeitsverteilung, 81<br />
faktorisierende, 58<br />
Wellenfunktion, 20<br />
Wellengleichung, 18, 131<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics
152 Index<br />
Wellenpaket<br />
Zerfließen, 26<br />
Zeitreihe, 137<br />
Zellulärer Automat, 101<br />
deterministischer, 101<br />
stochastischer, 101<br />
Zerfließen des Wellenpakets, 31<br />
Zufallsbewegung, 80<br />
Zufallsgröße, 81<br />
Zufallszahlen<br />
Fließkomma, 59<br />
Pseudo, 60<br />
reelle, 59<br />
Zufallszahlengenerator, 58<br />
Zustand, 63, 81<br />
stationärer, 87<br />
Zustandsraum, 98<br />
Haye Hinrichsen — Vorlesungsskript Computational Physics