24
U NIVERSITÄT B IELEFELD Computerpraktikum Dozent: Praktikanten (Gruppe 1): Dr. Udo Werner Marcus Boettiger Jan Van der Heide Marius Schirmer E6-106 [email protected]

Computerpraktikum -

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computerpraktikum -

UNIVERSITÄT BIELEFELD

Computerpraktikum

Dozent: Praktikanten (Gruppe 1):Dr. Udo Werner Marcus BoettigerJan Van der Heide Marius SchirmerE6-106 [email protected]

Page 2: Computerpraktikum -

INHALTSVERZEICHNIS II

Inhaltsverzeichnis

1 Aufgaben zu GNUPLOT 1

1.1 Aufgeben, 2-dimensionale Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Aufgeben, 3-dimensionale Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 Aufgeben, Least Square (χ2) Fits mit Gnuplot . . . . . . . . . . . . . . . . . . 3

2 Mathematica 4

3 Numerische Methoden - Das einfacheFadenpendel und Zufallszahlen 6

3.1 Teil A: Integrationsmethoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.2 Teil B: Fadenpendel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.3 Zufallszahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4 Brown’sche Bewegung und Clusterwachstum - Skalengesetze 12

4.1 Random Walks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.2 Self Avoiding Random Walks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.3 Clusterwachstum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5 Zellularautomaten simulierenden Straßenverkehr 18

6 Percolation 20

Page 3: Computerpraktikum -

1 AUFGABEN ZU GNUPLOT 1

1 Aufgaben zu GNUPLOT

Das Computerpraktikum beginnt mit einer Einfuhrung in gnuplot, einem Programm zur gra-phischen Darstellung von Funktionen, etc..Als erstes sollen die grundlegenden Funktionen dieses Programs ausprobiert werden sollten.

1.1 Aufgeben, 2-dimensionale Plots

1. Zur Erzeugung des Plots fur die erste Aufgabe verwendeten wir folgenden Code in gnuplot:

gnuplot> set title ’Marcus und Marius’

gnuplot> plot [1:4] ’daten2’ using 1:2 title "Daten2" w lines

gnuplot> replot ’daten2’ using 1:2:3:4 title "Fehlerbalken" w xyerrorbar

gnuplot> f(x)=1.6-0.3*x

gnuplot> replot f(x) title"f(x)=1.6-0.3*x"

gnuplot> set terminal postscript eps

gnuplot> set output’daten2.eps’

gnuplot> replot

Gnuplot Bild von ’daten2’:

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

1 1.5 2 2.5 3 3.5 4

Marcus und Marius

Daten2Fehlerbalkenf(x)=1.6-0.3*x

2. Fur die Ellipsen nahmen wir folgende Gleichungen:Nach set parametric

Page 4: Computerpraktikum -

1 AUFGABEN ZU GNUPLOT 2

gnuplot> plot sin(t-1), 0.3*cos(t)

gnuplot> replot 1.99*sin(t), 0.3*cos(t)

gnuplot> replot 1.25*sin(t), 1.5*cos(t+5)

gnuplot> replot 1.25*sin(t), 1.5*cos(t)

Gnuplot Bild der Ellipsen:

-1.5

-1

-0.5

0

0.5

1

1.5

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

Marcus und Marius

sin(t-1), 0.3*cos(t)1.99*sin(t), 0.3*cos(t)

1.25*sin(t), 1.5*cos(t+5)1.25*sin(t), 1.5*cos(t)

1.2 Aufgeben, 3-dimensionale Plots

Um in gnuplot 3-dimensionale Plots zu erhalten verwendet man den Befehl splot. Im folgendenTeil sollten wir uns mit den Funktionen fur 3-dimensionale Plots vertraut machen.

1. Um einen 3-dimensionalen Plot der Flache zu erhalten, haben wir zunachst den hochstenWert aus den Daten bestimmt, damit wir die passenden Hohenlinien einfugen konnten.Die folgenden Befehle lieferten uns dann den Plot, wobei das erzeugen des eps-Files analogzu Aufgabe 1) geht.Um die Hohenlinien mit in den Plot zu bekommen, verwendeten wir folgenden Code:

gnuplot> set cntrparam levels discrete 0.9*6.906730e-02,

0.8*6.906730e-02, 0.7*6.906730e-02

gnuplot> contour both

gnuplot> splot ’flaeche1’ w lines

Page 5: Computerpraktikum -

1 AUFGABEN ZU GNUPLOT 3

Gnuplot Bild von ’flaeche1’:

0 0.1

0.2 0.3

0.4 0.5

0.6 0.7

0.8 0.9

1

0 5

10 15

20 25

30

0.025 0.03

0.035 0.04

0.045 0.05

0.055 0.06

0.065 0.07

Marcus und Marius

’flaeche1’ 0.0483 0.0553 0.0622

1.3 Aufgeben, Least Square (χ2) Fits mit Gnuplot

1. Um die Fitparameter zu bestimmen, mussen wir zunachst eine Esponentialfunktion ingnuplot definieren. Dies geht durch:

gnuplot> f(x)=a*x**b

Um die Funktion nun an die Daten zu fitten benutzt man folgenden Code.

gnuplot> fit f(x) ’expo1’ u ($1):($2) via a,b

Nun wird eine Tabelle der Fitparameter ausgegeben, welche auch etwas ihre Genauigkeitbzw. den Fehler aussagt (siehe Tabelle). Will man nun die Fitparameter fur ’expo2’ haben,so muss man entweder eine neue Funktion mit neuen Parametern definieren, oder vorhera und b = 1 setzen, da gnuplot sonst evtl. die Parameter nicht berechnen kann.Bei ’expo3’ wird eine neue Funktion definiert, die zusatzlich den Parameter c beinhaltet.

gnuplot> f(x)=a+b*exp(c*x)

2. Als nachstes werden die Daten doppelt logarithmisch betrachtet, d.h. es werden beideAchsen logarithmiert und die Werte aufgetragen. Dies wird durch den Befehl using er-reicht, den wir folgendermaßen verwendet haben.

Page 6: Computerpraktikum -

2 MATHEMATICA 4

gnuplot> plot ’expo1’ using (log($1)):(log($2)) title ’expo1’, f(x)

gnuplot> fit f(x) ’expo1’ using (log($1)):(log($2)) via a,b

Und analog fur die andere Funktion.Damit man die Parameter mit den nicht logarithmierten vergleichen kann betrachtet man

f(x) = a · xb) ln f(x) = ln(a) + b · ln(x) = m + n · (ln(x)) = g(x) (1)

und korrigiert das n durch exp(n).

3. Tabelle der Fitparameter:

Datei a ± ∆a b ± ∆b c ± ∆cexpo1 4.501 ± 0.003 3 ± 0.0004 −−− ± −−−expo2 −2.309 ± 0.033 1.248 ± 0.008 −−− ± −−−expo3 0.514 ± 0.018 3.192 ± 0.061 −0.93 ± −0.033

Tabelle der logarithmierten Fitparameter:

Datei a ± ∆a b ± ∆bexpo1 4.495 ± 0.002 3.001 ± 0.001expo2 −2.32 ± 0.01 1.245 ± 0.008

Geraden-Fit:

y(x, a, b) = a + bx (2)

χ2(a, b) =N∑

i=1

(yi − a− bxi

σi

)2

(3)

2 Mathematica

Hier sollten wir uns zunachst mit den elementaren Funktionen des Programs vertraut machen.Die Aufgabe bestand darin das Integral

∫ π

0

sin(ax)

xdx

in Abhangigkeit von a zu berechnen und zwar einmal analytisch mit dem Befehl Integrateund einmal numerisch mit NIntegrate.

1. Integrate

Page 7: Computerpraktikum -

2 MATHEMATICA 5

f[x_,a_]:=(Sin[a*x])/x

g[a_]:=Integrate[f[x,a],{x,0,Infinity}]

g[1]=Pi/2

5 10 15 20

1.5708

1.5708

1.5708

1.5708

1.5708

1.5708

2. NIntegrate

h[a_] := NIntegrate[f[x, a], {x, 0, Infinity}, Method -> Oscillatory]

h[1]

plot[h[1]{x, 1, 20}]

5 10 15 20

1.5708

1.5708

1.5708

1.5708

1.5708

1.5708

Da wir den Bereich des Plots nicht festgelegt haben, ist das numerische ’Rauschen’ gutzu erkennen.

3. e-Funktion:

In diesem Teil sollte die Funktion

f(x) = e1x

betrachtet werden, welche bei 0 eine Polstelle besitzt. Außerdem sollte die Ableitungberechnet werden, was mit dem Code D[f[x], x] funktioniert, wenn man die Funktionvorher analog zu 1. definiert hat. Damit ergibt sich fur die Ableitung

f ′(x) :=d

dxf(x) =

e1x

x2,

Page 8: Computerpraktikum -

3 NUMERISCHE METHODEN - DAS EINFACHEFADENPENDEL UND ZUFALLSZAHLEN6

welche ebenfalls fur f ′(0) nicht definiert ist. Die beiden folgenden Bilder zeigen die Gra-phen zu f(x) und f ′(x).

-20 -10 10 20

2

4

6

8

10

12

f(x) = e1x

2 4 6 8 10

200

400

600

800

1000

1200

1400

f(x) =e

1x

x2

3 Numerische Methoden - Das einfacheFadenpendel und

Zufallszahlen

3.1 Teil A: Integrationsmethoden

1. Bei dieser Aufgabe untersuchen wir die drei Integrationsmethoden Trapez, Simpson und

Bool. Dazu wird das Integralπ∫0

sin x dx mit dem Programm ’integral’ berechnet. Die

Page 9: Computerpraktikum -

3 NUMERISCHE METHODEN - DAS EINFACHEFADENPENDEL UND ZUFALLSZAHLEN7

Anzahl der Stutzstellen stellt die Genauigkeit des Integrals dar. Um eine Genauigkeit von10−10 zu erreichen, wird das Programm zunachst mit einer hohen Anzahl von Stutzstellengestartet. In der ausgegebenen Liste kann man dann die benotigten Stutzstellen fur diegegebene Genauigkeit ablesen.

N Trapez Simpson Boole

4 1.896118897937040 2.004559754984421 1.998570731823836

8 1.974231601945551 2.000269169948388 1.999983130945985

16 1.993570343772340 2.000016591047935 1.999999752454572

32 1.998393360970145 2.000001033369413 1.999999996190845

64 1.999598388640037 2.000000064530002 1.999999999940708

128 1.999899600184203 2.000000004032258 1.999999999999073

256 1.999974900235052 2.000000000252002 1.999999999999986

512 1.999993725070576 2.000000000015751 1.999999999999998

1024 1.999998431268381 2.000000000000984 1.999999999999998

2048 1.999999607817140 2.000000000000064 2.000000000000000

4096 1.999999901954288 2.000000000000008 2.000000000000001

8192 1.999999975488575 1.999999999999997 1.999999999999993

16384 1.999999993872147 2.000000000000010 1.999999999999993

32768 1.999999998468038 1.999999999999999 2.000000000000007

65536 1.999999999617033 1.999999999999987 1.999999999999996

131072 1.999999999904251 1.999999999999989 2.000000000000007

262144 1.999999999976061 1.999999999999983 2.000000000000004

2. Beim Trapezverfahren, dem einfachsten Verfahren, werden mindestens 217, also 131072Stutzstellen benotigt um die gewunschte genauigkeit zu erreichen. Fur Simpson werden29 (512) benotigt und fur Boole nur 26, also nur 64.Als nachstes sollten wir den k-Wert fur die verschiedenen Verfahren finden. Beim Trapez-verfahren ergibt sich fur k ein Wert von 2. Beim Simpsonverfahren ist k = 4 und beimBooleverfahren ist k = 6. Die Fehleranalyse des Programms ’integral’ liefert folgendeTabelle. Bei einer großen Anzahl von Stutzstellen kommt es zu Rundungsfehlern.

Fehleranalyse:

N Trapez Simpson Boole

4 1.6620976330E+00 -1.1672972760E+00 5.8542824496E+00

8 1.6491774755E+00 -1.1025201086E+00 4.4221212956E+00

16 1.6459919943E+00 -1.0873109175E+00 4.1531231143E+00

32 1.6451983666E+00 -1.0835663653E+00 4.0900490284E+00

64 1.6450001304E+00 -1.0826337785E+00 4.0745239258E+00

128 1.6449505820E+00 -1.0824010372E+00 4.0751953125E+00

256 1.6449381956E+00 -1.0823421478E+00 4.0000000000E+00

512 1.6449350990E+00 -1.0823669434E+00 3.2000000000E+01

1024 1.6449343259E+00 -1.0820312500E+00 1.7920000000E+03

2048 1.6449341364E+00 -1.1171875000E+00 -3.2768000000E+04

4096 1.6449340843E+00 -2.3750000000E+00 -6.2914560000E+06

Page 10: Computerpraktikum -

3 NUMERISCHE METHODEN - DAS EINFACHEFADENPENDEL UND ZUFALLSZAHLEN8

8192 1.6449339092E+00 1.5000000000E+01 2.2145925120E+09

16384 1.6449329853E+00 -7.3600000000E+02 1.3314398618E+11

32768 1.6449315548E+00 1.0240000000E+03 -8.2463372083E+12

65536 1.6448297501E+00 2.4576000000E+05 3.3425153484E+14

132072 1.6449623108E+00 3.2112640000E+06 -3.3776997205E+16

262144 1.6450958252E+00 8.0740352000E+07 -1.2970366927E+18

3. Im letzten Teil sollte das Integral∫

sin x dx im Intervall von [0.5;2.0] berechnet werden.Beim Boolverfahren reichen hier schon 64 Stutzstellen aus.

N Boole

4 1.293721185985062

8 1.293729277234761

16 1.293729396569948

32 1.293729398408435

64 1.293729398437061

128 1.293729398437508

2∫

0

sin x dx = 1.2937293984

3.2 Teil B: Fadenpendel

Mit dem Programm ’fpendel’ wird die Periode eines mathematischen Pendels berechnet. Dasheißt der Faden selber hat keine Masse, wodurch die berechnung Wesentlich vereinfacht wird,da man kein Schwerpunktsystem betrachten muss. Man muss beachten, dass es bei Θ0 = πeine Singularitat gibt und das Integral nicht konvergiert. Das Programm benutzt zur berech-nung des Integrals Simpsonregel.Wie viele Stutzstellen werden benotigt um die Resultate auf 10 Stellen genau zu erhalten?Das Programm benotigt in unserem Fall zwischen 140-150 Stutzstellen.

Plot von ’fpendel.out’ mit gnuplot:

Page 11: Computerpraktikum -

3 NUMERISCHE METHODEN - DAS EINFACHEFADENPENDEL UND ZUFALLSZAHLEN9

1.5

2

2.5

3

3.5

4

0 0.5 1 1.5 2 2.5 3

fpendel

3.3 Zufallszahlen

Fur die Erzeugung von Zufallszahlen wird as Programm ’rantest’ benutzt. Es liefert die Datei’rantest.out’ bei der die relative Haufigkeit P (x) fur das Auftreten der jeweiligen Zufallszahl imIntervall [x ; x + ε] gespeichert wird.Wenn man diese Daten mit gnuplot fittet, sieht man dass diese Werte gleichverteilt sind, dasich eine Gerade bei 1 ergibt.

0.8

0.9

1

1.1

1.2

1.3

1.4

1.5

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

’rantest.out’1

Page 12: Computerpraktikum -

3 NUMERISCHE METHODEN - DAS EINFACHEFADENPENDEL UND ZUFALLSZAHLEN10

Die hier verwendeten Parameter entsprachen den vorgaben, des Programms.Im Script ist noch das Moment angegeben, als alternative Moglichkeit um die Gute der Zufalls-zahlen zu bestimmen. Die Momente werden vom Programm ausgegeben und konnen mit derFunktion

F (x) =1

ax + b+ c

gefittet werden.

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

0.55

1 2 3 4 5 6 7 8 9 10

Momentef(x)

Das Programm liefert noch die Ausgabe ’rand num.out’, welche mit einem 3d-Plot zufalligverteilt aussieht.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

1

’rand_num.out’

Page 13: Computerpraktikum -

3 NUMERISCHE METHODEN - DAS EINFACHEFADENPENDEL UND ZUFALLSZAHLEN11

Wenn wir aber die erste Spalte gegen die dritte auftragen, erkennt man in dem Plot einedeutliche Korrelationen.

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

randnum.out 1 gegen 3

Page 14: Computerpraktikum -

4 BROWN’SCHE BEWEGUNG UND CLUSTERWACHSTUM - SKALENGESETZE 12

4 Brown’sche Bewegung und Clusterwachstum - Skalen-

gesetze

4.1 Random Walks

Mit dem Programm ’walk’ soll das Skalenverhalten der zufalligen Wege in Abhangigkeit von Kder Kollisionen und der Einschrankung fur die Wahl der zufalligen Richtung auf einem 2D-Gitteruntersucht werden. Dabei soll der kritische Exponent ν auf drei verschiedene Arten bestimmtwerden. Namlich durch einen direkten Fit, einen logarithmierten und durch direkte Auswertungder gemessenen Exponenten.

1. Direkter Fit:

2

3

4

5

6

7

8

9

10

11

12

13

0 10 20 30 40 50 60 70 80 90 100

Marcus und Marius

’b5a.txt’ using 1:2:31.31742*K^0.492077-0.199199

2. Graph mit logarithmiertem Fit:

0.8

1

1.2

1.4

1.6

1.8

2

2.2

2.4

2.6

1.5 2 2.5 3 3.5 4 4.5 5

’b5a.txt’ using (log($1)):(log($2)):(1/$2*$3)f(x)

Page 15: Computerpraktikum -

4 BROWN’SCHE BEWEGUNG UND CLUSTERWACHSTUM - SKALENGESETZE 13

3. Durchschnitt der Exponenten:

0.44

0.46

0.48

0.5

0.52

0.54

0.56

0.58

0.6

0.62

0.64

0 10 20 30 40 50 60 70 80 90 100

Marcus und Marius

’b5a.txt’ using 1:4:50.50962

Damit ergeben sich durch die verschiedenen Methoden folgende Werte fur ν:

Methode νdirekter Fit 0.49± 0.002

logarithmierter Fit 0.50± 0.001direkte Auswertung 0.54± 0.014

Man sieht, dass die unterschiedlich bestimmten νs voneinander abweichen. Bei den beiden Fitsist diese Abweichung sehr gering, jedoch weicht der Wert des einfachen Durchschnitts starkervon diesen ab und hat auch einen großeren Fehler. Insgesamt liegt der Messfehler aber sogarbei der letzten Methode unter 3 Prozent.

4.2 Self Avoiding Random Walks

Das Programm wird nun in der einstellung ’self avoiding random walks’ benutzt. Durch dieseEinstellung soll das Modell realistischer werden. Dabei uberschneiden sich die zufalligen Wegenach einer Kollision nicht. Als Beispiel sind hier Molekulketten gegeben, bei denen sich dieAtome durch die Coulombkrafte abstoßen. Die Auswertung folgt wieder wie im vorherigen Teil.

Page 16: Computerpraktikum -

4 BROWN’SCHE BEWEGUNG UND CLUSTERWACHSTUM - SKALENGESETZE 14

1. Direkter Fit:

2

3

4

5

6

7

8

9

10

11

12

13

0 10 20 30 40 50 60 70 80 90 100

Marcus und Marius

’b5a.txt’ using 1:2:31.31742*K^0.492077-0.199199

2. Graph mit logarithmiertem Fit:

1

1.2

1.4

1.6

1.8

2

2.2

2.4

2.6

2.8

3

1.5 2 2.5 3 3.5 4 4.5 5

’b5a2.txt’ using (log($1)):(log($2)):(1/$2*$3)0.638863*x+0.00403391

3. Durchschnitt der Exponenten:

Page 17: Computerpraktikum -

4 BROWN’SCHE BEWEGUNG UND CLUSTERWACHSTUM - SKALENGESETZE 15

0.45

0.5

0.55

0.6

0.65

0.7

0.75

0.8

0.85

0.9

0.95

0 10 20 30 40 50 60 70 80 90 100

Marcus und Marius

’b5a2.txt’ using 1:4:50.65911

Man erreicht diesmal auch andere Werte fur ν

Methode νdirekter Fit 0.64± 0.002

logarithmierter Fit 0.63± 0.001direkte Auswertung 0.66± 0.044

bei denen der Wert durch direkte Auswertung wieder am starksten abweicht. Insgesamt ist derFehler aber kleiner als 10 %.

4.3 Clusterwachstum

Mit dem Modell der Clusterbildung kann man z.B. die Anlagerung an einen Kristallisationskeimbeschreiben.Mit dem Programm ’walk’ wird das Clusterwachstum in zwei Dimensionen untersucht. Dabeilagern sich Teilchen die aus dem Unendlichen kommen, am Kristall an. Es sollen Flache undUmfang des Clusters untersucht werden.Mit der graphischen Ausgabe des Programms kann man sich ein Bild des Wachstums verschaf-fen. Um das Clusterwachstum zu berechnen ist es jedoch ungeeignet, da es zu viel Rechenlei-stung benotigt.

Page 18: Computerpraktikum -

4 BROWN’SCHE BEWEGUNG UND CLUSTERWACHSTUM - SKALENGESETZE 16

1. Flache:Hier wurde die Flache F (R) gegen die Ausdehnung R aufgetragen:

0.3

0.35

0.4

0.45

0.5

0.55

0.6

0.65

0.7

0.75

0.8

0 10 20 30 40 50 60 70 80 90 100

WerteF(R)=((1.09609+/-0.04622)*R^(1.72654+/-0.01276))/(R^2)

2. Umfang:Umfang U(R) gegen Ausdehnung R:

0

10

20

30

40

50

60

0 10 20 30 40 50 60 70 80 90 100

Marcus und Marius

WerteU(R)=((1.53477+/-0.1413)*R^(1.79445+/-0.02166))/(R)

Die Parameter sind:

Parameter Wertα 1.72654± 0.01276β 1.79445± 0.02166

Page 19: Computerpraktikum -

4 BROWN’SCHE BEWEGUNG UND CLUSTERWACHSTUM - SKALENGESETZE 17

Der Fehler liegt damit bei ca. 3%.

3. Das gleiche sollte jetzt nochmal mit der Datei ’walk160.out’ gemacht werden, da hier derFehler kleiner als 1 % ist. Die Parameter sind hier:

α = 1.7284± 0.00649β = 1.70929± 0.007578

und man erhalt folgende Graphen:

0.25

0.3

0.35

0.4

0.45

0.5

20 40 60 80 100 120 140 160

’walk160.out’ u 1:2:3f(x)

10

20

30

40

50

60

70

80

90

20 40 60 80 100 120 140 160

’walk160.out’ u 1:4:5g(x)

Insgesamt ist hier der Fehler noch wesentlich kleiner als bei den von uns berechnetenDaten. Allerdings wurde hier auch eine Wesentlich hohere Statistik verwendet.

Page 20: Computerpraktikum -

5 ZELLULARAUTOMATEN SIMULIERENDEN STRASSENVERKEHR 18

5 Zellularautomaten simulierenden Straßenverkehr

In diesem Abschnitt wird der Staßenverkehr auf einer einspurigen Straße simuliert.Das Programm ’staug’ hat eine graphische Ausgabe, bei der 40 aufeinanderfolgende Verkehrs-situationen auf dem Bildschirm dargestellt werden. Die Geschwindigkeit der einzelnen Autosist νmax = 5 und die Strecke ist in L = 200 Abschnitte aufgeteilt. p beschreibt die Trodelwahr-scheinlichkeit und c die Fahrzeugdichte.

1. Als erstes soll mit dem Programm ’staug’ fur funf unterschiedliche p die kritische Ver-kehrsdichte c ermittelt werden, bei der sich ein spontaner Stau bildet. Wir haben dabeifolgende Werte ermittelt:

p 0.2 0.4 0.6 0.8 0.9c 0.16 0.12 0.1 0.08 0.03

Man sieht, dass mit steigender Trodelwahrscheinlichkeit die Verkehrsdichte schneller kri-tisch ist.

2. Mit Hilfe des Programms ’stau’ wird nun die Flußdichte f(c, p) fur verschiedene c und pberechnet. Das Programm erzeugt den Output ’stau.out’. Wir haben daraus einen 3d-Ploterstellt.

0 0.1

0.2 0.3

0.4 0.5

0.6 0.7

0.8 0.9

1 0.2 0.3

0.4 0.5

0.6 0.7

0.8 0.9

0

0.1

0.2

0.3

0.4

0.5

0.6

Flussdichte

Marcus und Marius

’b61.txt’ using 1:3:2

FahrzeugdichteTroedelw.

Flussdichte

Page 21: Computerpraktikum -

5 ZELLULARAUTOMATEN SIMULIERENDEN STRASSENVERKEHR 19

Das ganze nochmal mit einer erheblich kleineren Schrittweite im interessanten Bereich:

0 0.05

0.1 0.15

0.2 0.25

0.3 0.2 0.3

0.4 0.5

0.6 0.7

0.8 0.9

0

0.1

0.2

0.3

0.4

0.5

0.6

Flussdichte

Marcus und Marius

’b62.txt’ using 1:3:2

FahrzeugdichteTroedelw.

Flussdichte

3. Als letzte haben wir das Problem noch analytisch gelost durch:

f(c, p) =1

2

[1− (1− 4(1− p)c(1− c))

12

]

Fur entsprechende c und p ergibt sich folgender Graph:

0 0.2

0.4 0.6

0.8 1

0 0.2

0.4 0.6

0.8 1

0

0.1

0.2

0.3

0.4

0.5

Flussdichte

Marcus und Marius

f(p,c)=(1-[1-4*(1-p)*c*(1-c)]^0.5)/2

Troedelw.Fahrzeugdichte

Flussdichte

Page 22: Computerpraktikum -

6 PERCOLATION 20

Man sieht sowohl bei der simmulierten Losung, als auch bei der analytischen, dass die maxi-male Flussdichte bei einer bestimmten Fahrzeugdichte erreicht wird. Das bedeutet, man solltebei der Straßenplanung darauf achten eine bestimmte Fahrzeugdichte zu erreichen, damit derVerkehrsfluss maximal ist.

6 Percolation

Das Programm ’xpercolation’ wird zur Untersuchung von Kontinuumsperkolation mit Kreis-scheiben in der Ebene verwendet. Uber die graphische X-Oberflache werden die Parametereingestellt.

1. Als erstes sollte fur eine Anzahl verschiedener Radien ein Plot wie in Abb. (5) im Scripterstellt werden. Damit die Daten fur den eigentlichen Plot umgewandelt werden, mus-ste man sie mit dem X-Programm nach der Berechnung plotten. Wir haben dabei diefolgenden Radien verwendet:

Ri GroßeR1 0.3R2 0.2R3 0.1R4 0.05R5 0.02R6 0.01

Aus dem Plot der zugehorigen Kurven sollten pc und ηc bestimmt werden. Dafur habenwir die Anzahl der perkolierenden Konfigurationen

ΠL(p) =Perkulationen

Konfigurationen

gegen die Wahrscheinlichkeit p = (1− (1− πR2)n) aufgetragen.

0

0.2

0.4

0.6

0.8

1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Marcus und Marius

r=0.3r=0.01r=0.02r=0.05r=0.1r=0.2

Da bei dem großten

Page 23: Computerpraktikum -

6 PERCOLATION 21

Radius die Percolation sehr fruh eintrat, konnten wir nur wenig Scheiben verwenden,deshalb haben wir diesen Graph nicht dazu genommen. Der Schnitt- punkt liegt bei 0.68,unser gesuchtes pc.Aus Gleichung (B.49) des Scriptes gilt folgender Zusammenhang zwischen ηc und pc

ηc = ln

(1

1− pc

)

Damit erhalten wir unsere gesuchten Werte

pc = 0.68

ηc = 1.14.

2. Bei diesem Teil sollte, mit der in 1. ermittelten kritischen Wahrscheinlichkeit pc, dasSkalenverhalten SL(pc) der mittleren Clustergroße und der Perkolationsstarke PL

∞(pc) be-stimmt werden.Die Clustergroße ist proportional zu Lγ/ν . Gesucht wird der kritische Exponent. Da fol-gendes gilt L ∝ 1/R wird SL gegen 1/R aufgetragen.Außerdem gilt:

SL(pc) =Orig.Discs

Config

Dabei darf ’Config’ nur die Konfigurationen beinhalten, bei denen es zu einer Perkolationkam. Die Werte werden wieder doppelt logarithmisch aufgetragen.

1

2

3

4

5

6

7

8

1 1.5 2 2.5 3 3.5 4 4.5 5

’b72.dat’ u (log(1/$5)):(log($3/$4))f(x)

Fur den ersten Exponenten ergibt sich aus dem Fit: γν

= 1.51356 ± 0.03059

Fur die Perkolationsstarke gilt: PL(pc) ∝ L−β/ν . Dabei tragen wir PL wieder gegen 1/Rauf.pL ist definiert als:

pL(pc) =Orig.Perc

Perc

Page 24: Computerpraktikum -

6 PERCOLATION 22

0.35

0.4

0.45

0.5

0.55

0.6

0.65

0.7

1 1.5 2 2.5 3 3.5 4 4.5 5

’b72.dat’ u (log(1/$5)):(log($2/$1))f(x)

Durch den Fit ergibt sich hier ein Exponent von βν

= 0.0849688 ± 0.004399

Zum Schluss sollten die Exponenten noch mit Hilfe des Hyperskalengesetzes verglichenwerden.

γ = νd− 2β

Da die Dimension hier 2 ist folgt daraus

γ = 2ν − 2β

⇒ γ

ν= 2(1− β

ν).

Durch Einsetzen ergibt sich

1.51356± 0.03059 = 2(1− 0.0849688± 0.004399

1.51356± 0.03059 = 1.8300624± 0.008798

Damit liegen die Exponenten außerhalb der Toleranz. Genauere Werte erreicht man nurindem man noch mehr Konfigurationen verwendet.