Prof Dr. R. Kree Sommersemester 2002
Dr. A. Hartmann Blatt 6
Übungen zur Thermodynamik und Statistik
Abgabe am Montag, den 3. Juni 2002, 11:00 Uhr (Übungskästen)
Aufgabe 14: Markov-Ketten I (13 Punkte)
Im folgenden werden Markov-Ketten mit zeitunabhängigen Übergangsraten,
dargestellt durch Matrizen , betrachtet. Die Aufgabe dient
dazu, mit dem Konzept des Markov-Prozesses sowie den Begriffen
Ergodizität und Stationarität vertrauter zu werden.
- Betrachten Sie
folgende drei Übergangsmatrizen. Begründen Sie,
welche zugehörigen Markov-Prozesse ergodisch sind!
TIP: Stellen Sie die Prozesse als Graphen dar.
- Berechnen Sie für die
ergodischen Matrizen die stationären
Zustände aus .
- Welche der ergodischen Matrizen
erfüllen detaillierte Balance?
- Gegeben sei folgender Vektor:
. Konstruieren Sie eine
ergodische Matrix, die als stationären Zustand
hat. Beweisen Sie es.
TIP: Versuchen Sie, mit möglichst wenig Übergängen auszukommen
und benutzen Sie detaillierte Balance.
Aufgabe 15: Markov-Ketten II (21 Punkte)
Betrachten Sie nebenstehende durch einen Übergangsgraphen
teilweise gegebene Markov-Kette. Sie ist bis auf die Übergangsraten
definiert.
|
- Berechnen Sie die fehlenden Raten
und geben Sie die gesamte Übergangsmatrix an.
- Schreiben
Sie ein Programm markov, das das
Übergangsverhalten der Markov-Kette ausrechnet, indem es -mal von links
die Matrix an den Startvektor
multipliziert. Das Programm gebe dann aus. Sie können und als
Parameter an das Programm übergeben oder auch fest kodieren. Die
Übergangsmatrix sollte der Einfachheit halber fest kodiert sein.
- Ermitteln Sie numerisch den stationären Zustand?
- Starten Sie im Zustand 0
mit und lassen Sie das
Programm als Funktion von ausgeben.
Ändern Sie dann die
Markov-Kette, indem Sie die Übergangsraten zwischen den Zuständen 0
und 3 auf ein Zehntel reduzieren (, und
und entsprechend anpassen.) Wie ändert sich der
stationäre Zustand? Geben Sie
wieder aus.
Plotten Sie in einem Graphen (z.B mit gnuplot) für beide Fälle
für . Wie erklären Sie sich den Unterschied?
Projekt-Aufgabe 16: zweidimensionales Ising Modell (33 Punkte)
Abgabe dieser Aufgabe bis zum Montag den 10, Juni 2002!
- Schreiben Sie ein
Monte-Carlo Simulationsprogramm, das das
zweidimensionale Ising-Modell der Größe
mit periodischen Randbedingungen (ohne
äußeres Feld) simuliert. Sie können ein komplett eigenes Programm
schreiben oder auch die Vorlage
mc_sample.c
ergänzen, die
unter
http://www.theorie.physik.uni-goettingen.de/lehre/Uebungen/ThermoDynamik/02/
zum Download bereit steht. Achtung: Wg. technischer Probleme
ggf. Verzögerung. Dann versuchen unter
http://www.theorie.physik.uni-goettingen.de/~hartmann/mc_sample.c.
- Das Beispielprogramm wird mit
cc -o mc_sample mc_sample.c -lm
compiliert.
- Es wird in der Form
mc_sample <random>
aufgerufen
- Es initialisiert eine Spinkonfiguration entweder zufällig
(
<random>=1
) oder all Spins 'hoch` (<random>=0
). Dann
gibt es die Energie der Spinkonfiguration und die Konfiguration selbst aus.
- Das Programm realisiert die periodischen Randbedingungen mittels
eines Makros
NEXT()
, das in dem Beispielprogramm erklärt ist. Eine
Unterroutine zur Initialisierung von NEXT()
ist in dem Programm
enthalten und wird als Black-Box verwendet. Weiter ist eine
Unterroutine
double energy(int dim, int N, int *next, short int *spin)
enthalten, die die Energie des Systems pro Spin ausrechnet. Die Parameter sind
Dimension des Systems (hier 2), Anzahl der Spins, ein Array
next
, das die Daten für das Makro NEXT()
enthält, sowie die
Spinkonfiguration, näheres wird in dem Programm erläutert.
- In dem Programm sind die Spins von 1 bis nummeriert,
d.h. das Array
spin[]
hat die Größe und das Element 0
bleibt ungenutzt.
Das Programm soll in der folgenden Form aufrufbar
sein:
monte_carlo <random> <T> <num_sweeps>
Es soll die Simulation bei Temperatur durchführen, genau
<num_sweeps>
mal durch Gitter gehen und nach jedem Durchlauf
die aktuelle Schrittzahl, die Energie pro Spin und den Absolutwert der
Magnetisierung pro Spin spin[i]
ausgeben.
TIP: Schreiben Sie eine Unterroutine für einen Monte-Carlo Sweep
durch das Gitter, die die Form
int mc_sweep(int dim, int N, int *next, short int *spin, double temp)
hat.
- Lassen Sie das Programm
für bei den Temperaturen
jeweils mit zufällig sowie systematisch initialisierten Spins
für 100 Sweeps laufen. Plotten Sie für und
Graphen mit Magnetisierung und Energie als
Funktion der Schrittzahl . Hier können Sie das System als
equilibriert ansehen, wenn bzw. im Rahmen ihrer Schwankungen
für die beiden Startkonfigurationen übereinstimmen. Was für
Equilibrierungszeiten finden Sie (ungefähr) für die verschiedenen
Temperaturen?
- Lassen Sie das Programm nun
für bei für 1000
Sweeps laufen, wieder mit den beiden Startkonfigurationen.
Was beobachten Sie? Wie erklären Sie sich das
Ergebnis? Drucken Sie dazu die End-Spinkonfigurationen für die beiden
Startbedingungen aus.
Hinweis: Bitte achten Sie darauf, dass Ihre Lösungen stets mit
Ihrem Namen und mit Name des Leiters und
Nummer Ihrer Übungsgruppe beschriftet
und zusammengeheftet sind. Werfen Sie die Lösungen am Montag jeweils
bis spätestens 11:00 Uhr in die dafür bestimmten Kästen ein! Die
Kästen werden um diese Zeit geleert, und die Lösungen unmittelbar an
die Leiter der einzelnen Übungsgruppen weitergegeben. Senden Sie bis
zum gleichen Zeitpunkt Ihre erstellten Programme per E-mail an Ihren Betreuer.
|
Diese Beschreibung in PostScript
hartmann
Mon May 27 15:35:44 CEST 2002