Zufallszahlen – Mathematik zum Nachbilden von Zufälligkeit

Werbung
Zufallszahlen – Mathematik zum Nachbilden von Zufälligkeit
SommerUni 2013
Bergische Universität Wuppertal
Autor: Prof. Dr. Roland Pulch
Aufgabe: Konstruiere Zufallszahlen aus der Menge {0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
d.h. wähle zufällig eine der zehn Ziffern aus.
Das ermitteln von n Zufallszahlen ergibt eine Stichprobe x1 , x2 , . . . , xn . Sei
Xj die Zufallsvariable zum jten Versuch mit j = 1, . . . , n. Die Wahrscheinlichkeiten zur Auswahl von Ziffern sind gleich für jedes j. Sei daher kurz X
die Zufallsvariable, die die Auswahl einer der Zahlen beschreibt. Die Wahrscheinlichkeit P für die Auswahl einer bestimmten Zahl ist für alle zehn
Ziffern gleich.
i
P (X = i)
0
1
2
3
4
5
6
7
8
9
1
10
1
10
1
10
1
10
1
10
1
10
1
10
1
10
1
10
1
10
Der Erwartungswert von X ist
E(X) =
9
∑
i·
1
10
=0·
+1·
1
10
+2·
+ 12 ·
1
10
+ 22 ·
1
10
1
10
+ ··· + 9 ·
1
10
=
i=0
9
= 4.5.
2
Analog gilt
E(X 2 ) =
9
∑
i2 ·
1
10
= 02 ·
1
10
1
10
+ · · · + 92 ·
1
10
i=0
=
57
= 28.5.
2
Die Varianz ist allgemein
Var(X) = E([X − E(X)]2 ) = E(X 2 ) − (E(X))2
und speziell hier ergibt sich
57
Var(X) =
−
2
( )2
9
33
=
= 8.25.
2
4
Als Schätzer für den Erwartungswert dient das arithmetische Mittel
1∑
x̄n =
xj .
n j=1
n
1
Als Schätzer für die Varianz folgt die Stichprobenvarianz
1 ∑
[xj − x̄n ]2 .
n − 1 j=1
n
s̄n =
Desweiteren können in der Stichprobe x1 , . . . , xn Wiederholungen von aufeinanderfolgenden Zahlen auftreten, d.h. xj+1 = xj für ein j = 1, . . . , n − 1.
Somit können bis zu n − 1 Wiederholungen entstehen oder auch gar keine
Wiederholung. Ist xj bereits festgelegt, dann ist die Wahrscheinlichkeit für
1
das Ereignis Xj+1 = xj gerade 10
. Es sei Y die Zufallsvariable, die die Anzahl
der Wiederholungen beschreibt. Somit gilt Y ∈ {0, 1, 2, . . . , n − 1}. Also ist
Y binomial-verteilt mit n − 1 Versuchen und einer Trefferwahrscheinlichkeit
1
von 10
.
Wahrscheinlichkeit
1
0.8
0.6
0.4
0.2
0
0
5
10
15
Anzahl der Wiederholungen
20
Abbildung 1: Wahrscheinlichkeiten von Wiederholungen der Ziffern.
Im Fall n = 20 ergeben sich die in Abbildung 1 als Histogramm dargestellten
Wahrscheinlichkeiten. Für hohe Anzahlen von Wiederholungen (Y ≥ 7) sind
diese Wahrscheinlichkeiten somit verschwindend klein. Die Wahrscheinlichkeiten für die Fälle Y ≤ 6 finden sich in folgender Tabelle.
k
0
1
2
3
4
5
6
P (Y = k) 0.1351 0.2852 0.2852 0.1796 0.0798 0.0266 0.0086
Unser Ziel wird es nun sein die Stichprobe x1 , . . . , xn mit einer geeigneten
Formel zu konstruieren. Dadurch werden die Zahlen nicht zufällig sein, sich
2
jedoch ähnlich verhalten wie echte Zufallszahlen. Um dieses Ziel zu erreichen
stellen wir zunächst eine andere Aufgabe.
Aufgabe: Bestimme Zufallszahlen aus den reellen Zahlen im Intervall [0, 1).
Diese Aufgabe ist gleichbedeutend mit: Wähle zufällig einen Punkt auf Zahlengerade innerhalb der Strecke [0, 1).
0
1
Es bezeichne U die zugehörige Zufallsvariable. Damit folgt 0 ≤ U < 1. Für
0 ≤ c < d < 1 soll für die Wahrscheinlichkeit P gelten
P (c ≤ U ≤ d) = d − c.
Man kann diese Zufallszahlen dann auf ganze Zahlen aus {0, 1, 2, . . . , m − 1}
umrechnen. Es ist 0 ≤ mU < m. Somit definieren wir die Zufallsvariable X
über
X = max {i ∈ 0 : i ≤ mU } .
(1)
N
Für Zufallszahlen aus {1, 2, . . . , m} setzen wir einfach
X = max {i ∈
N0 : i ≤ mU } + 1.
(2)
Somit können wir über diese Aufgabe auch die Zufallszahlen aus der ursprünglichen Aufgabenstellung mit m = 10 erhalten.
Linear kongruente Generatoren
Die Konstruktion von reellen Zufallszahlen in [0, 1) über linear kongruente
Generatoren wird im folgenden kurz beschrieben.
1. Wähle eine große ganze Zahl M , z.B. eine Zweierpotenz (M = 2q ).
2. Wähle große ganze Zahlen a, b mit 0 ≤ a, b < M und a ̸= 0.
3. Setze eine ganze Zahl z0 als Startwert fest mit 0 < z0 < M .
3
Wir definieren dadurch eine Folge von nichtnegativen ganzen Zahlen über
zj+1 = azj + b für j = 0, 1, 2, . . . .
Wir definieren nun die Zahl z̃j ∈ {0, 1, 2, . . . , M − 1} als den Divisionsrest
der Division von zj durch M , d.h.
zj = kj M + z̃j
z̃j = zj − kj M
bzw.
mit einer eindeutigen ganzen Zahl kj ≥ 0. Schließlich sei
uj =
z̃j
M
für jedes j. Dadurch gilt
{
}
uj ∈ 0, M1 , M2 , M3 , . . . , MM−2 , MM−1 ,
(3)
d.h. auch 0 ≤ uj < 1. Die Zahlen uj verhalten sich näherungsweise wie
Realisierungen einer gleichverteilten Zufallsvariable im Intervall [0, 1), weil
M eine große Zahl ist. Es sei betont, dass die erzeugte Folge u0 , u1 , u2 , . . .
nicht zufällig sondern klar durch eine Formel definiert ist. Deshalb nennt man
die erzeugten Werte auch Pseudo-Zufallszahlen. Zudem gibt es höchstens M
verschiedene Zahlen wegen (3).
Beispiele:
a) Generator RANDU, siehe [4]:
M = 231 ≈ 2 · 109 , a = 65539,
b = 0.
b) Generator aus Numerical Recipes, siehe [5]:
M = 232 ≈ 4 · 109 , a = 1664525, b = 1013904223.
Der Startwert z0 kann beliebig gewählt werden und ergibt in jedem Generator das jeweils qualitativ gleiche Verhalten der Folge. Abbildung 2 stellt
Auswertungen mit diesen beiden Generatoren grafisch dar. Visuell stellen wir
eine näherungsweise zufällige Abfolge fest.
Ein Kriterium der Güte eines Generators ist wie gut der Erwartungswert und
die Varianz durch den Mittelwert und die Stichprobenvarianz approximiert
werden. Für eine gleichverteilte Zufallsvariable U ∈ [0, 1) gilt
E(U ) =
1
2
und Var(U ) =
4
1
.
12
0
0.2
0.4
0.6
0.8
0
1
0.2
0.4
0.6
0.8
1
u
u
Abbildung 2: Erste 10 (oben), 100 (mitte) und 1000 (unten) Zufallszahlen
des Generators (a) mit Startwert z0 = 200 (links) und des Generators (b)
mit Startwert z0 = 2 (rechts).
Abbildung 3 zeigt diese Abweichungen im Fall des Generators (b). Wir stellen
fest, dass die Abweichungen betragsmäßig klein sind (unter 10−3 bzw. 10−4 ).
Jedoch gehen sie für steigende Anzahlen von Zufallszahlen nicht gegen null,
was für tatsächliche Zufallszahlen gegeben wäre.
Wie bereits erwähnt können die reellen Zufallszahlen aus dem Intervall [0, 1)
umrechnet werden auf ganze Zufallszahlen in den Mengen {1, 2, 3, . . . , m}
oder {0, 1, 2, . . . , m − 1}, siehe (1) und (2).
Spezialfälle:
• Münzwurf: {0, 1}, 0 bedeutet Kopf, 1 bedeutet Zahl,
• Würfeln: {1, . . . , 6},
• Roulette: {0, 1, 2, . . . , 36},
• Lotto 6 aus 49: {1, . . . , m} sukzessive m = 49, 48, 47, 46, 45, 44.
Wir greifen den Fall {0, 1, 2, . . . , 9} wieder auf, wobei wir n = 20 PseudoZufallszahlen pro Versuchsreihe bestimmen. Verwendet wurde der Generator (b) mit Startwert z0 = 150. Damit wurden einmal 15 Reihen und einmal 10000 Reihen aus je 20 Werten erstellt. Abbildung 4 zeigt die relativen
5
−3
1
−4
x 10
1
0.8
Abweichung
Abweichung
0.8
x 10
0.6
0.4
0.2
0.6
0.4
0.2
0
2
4
6
8
Anzahl der Zufallszahlen
0
2
4
6
8
Anzahl der Zufallszahlen
7
x 10
7
x 10
Abbildung 3: Beträge der Differenzen des Mittelwerts zum Erwartungswert
(links) und der Stichprobenvarianz zur Varianz (rechts) für Generator (b) zu
verschiedener Länge der Zahlenfolge (bis zu 108 ).
15 Reihen je 20 Zufallszahlen
10000 Reihen je 20 Zufallszahlen
1
Wahrscheinlichkeit
Wahrscheinlichkeit
1
0.8
0.6
0.4
0.2
0
0.8
0.6
0.4
0.2
0
0
5
10
15
Anzahl der Wiederholungen
20
0
5
10
15
Anzahl der Wiederholungen
20
Abbildung 4: Vergleich von Wahrscheinlichkeiten (blau) und relativen Häufigkeiten (rot) zur Wiederholung von Ziffern in Folge von Zufallszahlen.
6
Häufigkeiten der Wiederholungen von aufeinanderfolgenden Ziffern zusammen mit den exakten Wahrscheinlichkeiten dieser Ereignisse. Wir erkennen
eine sehr gute Übereinstimmung bei hoher Versuchszahl. Hier wurde sogar
nur eine lange Folge von Pseudo-Zufallszahlen zu einem bestimmten Startwert berechnet und diese dann in die verschiedenen Reihen aufgeteilt.
Anwendung: Radioaktiver Zerfall
Es bezeichne N die Anzahl der Atome einer radioaktiven Substanz. Die Änderung dieser Anzahl über die Zeit t hinweg wird beschrieben durch die Zerfallskurve
( )T t
1 1/2
N (t) = N (0) ·
,
(4)
2
wobei N (0) die Anzahl der Atome zur Anfangszeit t = 0, N (t) die Anzahl
der Atome zur Zeit t ≥ 0 und T1/2 die Halbwertszeit bezeichnet. Beispiele
sind in folgender Tabelle gegeben.
Isotop
Helium He-6
Halbwertszeit
0.8 Sek.
Radon Rn-222
3.8 Tage
Kohlenstoff C-14
5730 Jahre
Die Werte N (t) aus (4) sind reelle Zahlen, d.h. sie sind nur gute Näherungen
der tatsächlichen Anzahlen, welche ganze Zahlen sind.
Wir teilen nun die Zeitachse in kleine Intervalle der Länge ∆t > 0 auf. Es
entstehen somit die Zeitpunkte
tj = j∆t für j = 0, 1, 2, . . . .
Betrachten wir ein einzelnes Atom zum Zeitpunkt tj , dann ist die Wahrscheinlichkeit p, dass dieses Atom bis zum Zeitpunkt tj+1 zerfällt, dann
p=
ln(2)
∆t
T1/2
(5)
mit dem natürlichen Logarithmus. Vorausgesetzt wird dabei ein hinreichend
kleines ∆t.
Während des Zeitintervalls [tj , tj+1 ] gibt es daher zwei mögliche Ereignisse
für das einzelne Atom:
7
400
Teilchenzahl
Teilchenzahl
10000
350
300
250
200
150
100
50
0
0
0.5
1
1.5
8000
6000
4000
2000
0
2
0
0.5
1
1.5
2
Zeit
Zeit
Abbildung 5: Zerfallskurve (rote Linie) und Atomanzahlen aus Zufallsexperiment (blaue Sterne) für N (0) = 400 (links) und N (0) = 10000 (rechts).
1. das Atom zerfällt mit Wahrscheinlichkeit p,
2. das Atom bleibt bestehen mit Wahrscheinlichkeit 1 − p.
Dieses Bernoulli-Experiment können wir ebenfalls mit den Pseudo-Zufallszahlen simulieren. Wir bestimmen eine Pseudo-Zufallszahl u ∈ [0, 1) und
machen die Fallunterscheidung:
1. u ≤ p : das Atom zerfällt,
2. u > p : das Atom bleibt bestehen.
p
0
1−p
p
1
Dies können wir jetzt ausgehend von ganzzahligem N (0) für jedes Atom
durchführen und in jedem Zeitintervall für die noch bestehenden Atome wiederholen. Wir setzen T1/2 = ln(2) ≈ 0.69, wodurch p = ∆t folgt laut (5). Das
Zeitintervall t ∈ [0, 2] wird unterteilt in die Längen ∆t = 0.001. Abbildung 5
zeigt die Ergebnisse für unterschiedliche Anfangswerte der Atomanzahlen.
8
Wir erkennen, dass bei hoher Anzahl eine sehr gute Übereinstimmung mit
der Zerfallskurve (4) auftritt.
Als weiterführende Literatur zu linear kongruenten Generatoren und zu Pseudo-Zufallszahlen sei die Internetseite [3] sowie Abschnitt 5.2 aus dem Buch [1]
empfohlen. Untersuchungen zu von Menschen ausgedachten Zufallszahlen finden sich im Buch [2].
Literatur
[1] M. Günther, A. Jüngel: Finanzderivate mit MATLAB. Vieweg, 2003.
[2] G.M. Ziegler: Darf ich Zahlen? Geschichten aus der Mathematik. Piper,
2010.
[3] http://de.wikipedia.org/wiki/Linearer Kongruenzgenerator
[4] http://en.wikipedia.org/wiki/RANDU
[5] http://en.wikipedia.org/wiki/Linear congruential generator
9
Herunterladen