Zufallszahlen, Monte Carlo Methoden - Max-Planck

Werbung
Practical Numerical
Training UKNum
Zufallszahlen, Monte Carlo Methoden
Dr. H. Klahr & Dr. C. Mordasini
Max Planck Institute for Astronomy, Heidelberg
Programm:
1) Zufallszahlen
2) Transformations Methode
3) Monte Carlo Integration
1.0 Zufallszahlen
Anwendungen
•Anwendungen
‣Glücksspiele
‣Physikalische Simulationen
‣Monte Carlo Methoden
‣Kryptographie
‣...
Erzeugung I
•Physikalische Methode (“echte” Zufallszahlen)
‣Würfel
‣Radioaktive Zerfall
(Zeit zwischen zwei Zerfällen)
‣Rauschen
(z. B. Radio Frequenzbereich in der
Atmosphäre)
•Vorteil: tatsächlich zufällig
•Nachteil: langsam, oft schwierig zu
kontrollierende Verfälschung durch Messung.
Erzeugung II
•Numerische Methode (“Pseudo” Zufallszahlen)
‣so genannte “Pseudo random number generators”
PRNG
‣Algorithmen, die Zahlen erzeugen, in denen
statistisch kein Muster zu erkennen ist.
‣Start mit einem “seed”, daraus wird dann eine
Sequenz von Zufallszahlen erzeugt. Deterministisch!
‣Mit dem gleichen seed wird immer die gleiche
Sequenz erzeugt (wichtig für die Reproduktion von
Versuchen).
‣Nach einer gewissen (hoffentlich hohen Zahl) von
Zufallszahlen, fängt die Sequenz wieder von vorne an.
Numerische Pseudo-Zufallszahlen
•Vorteil: kann einfach und schnell viele Zufallszahlen
erzeugen.
•Nachteil: Es muss gezeigt werden, dass die
Zufallszahlen wirklich zufällig sind (im Vergleich mit
physikalisch erzeugten Sequenzen).
‣z. B. keine Korrelation zwischen einander
nachfolgenden Zahlen, keine bevorzugten Zahlen...
‣Statistische Tests.
•Ob ein numerischer RNG zufällig genug ist, hängt
von der Applikation ab (z. B. genug lange Sequenz).
Numerische RNG
•Es gibt sowohl RNG, die alle bekannten (!)
statistischen Tests für Zufälligkeit erfüllen (solange
die Anzahl der gezogenen Zufallszahlen << die
Länge der Sequenz bleibt).
•... aber auch solche, die sehr schlecht sind
‣Historisches (berüchtigtes) Beispiel:
randu
‣Installiert auf IBM mainframes in den 1960.
Weit verbreitet in den folgenden Jahrzehnten.
Folge: Viele (physikalische) Studien mit falschen
Resultaten. Vgl. weiter unten.
1.1 Gleichverteilte
Zufallszahlen
Wieso so wichtig?
•Englisch: “Uniform Deviates”
•Wenn wir gleichverteilte Zufallszahlen erzeugen
können, können wir mittels der weiter unten
beschrieben Methoden (z. B. Transformations
Methode) daraus beliebige andere Verteilungen
(z. B. Normalverteilung (Gauss’sche Verteilung),
Exponentialverteilung etc.) erzeugen.
•Typischerweise gleichverteilte rationale Zahlen
im Intervall 0 bis 1 (je nach Algorithmus sind die
Randwerte dabei oder nicht).
System-Supplied uniform PRNG
•Verfügbar in zahlreichen Sprachen und Libraries.
‣Random class in Java, Apple CarbonLib, glibc (benutzt
vom GCC), Microsoft Visual/Quick C/C++, etc.
•Oft schlechte (oder zumindest unklare) Qualität.
•Oft auch nicht portabel.
•Besser: portable PRNG (in einer höheren
Programmiersprache geschrieben, wie FORTRAN
oder C).
ndom number generator.” That routine t
Praktische
Anwendung
” and a calling sequence like
•Typische Calling Sequence (x: REAL, iseed: INTEGER)
x=ran(iseed)
sets x to the nex
•Erster Call
‣Initialisierung mit arbiträrem random seed. Muss je
Algorithmusiseed
aber z.B. to
negativ
sein oder
Younach
initialize
a (usually)
arbi
ungerade etc.. Für den gleichen seed, wird immer
initializing
value
will
typically
return
a
die gleiche Sequenz geliefert. Algorithmus gibt x, die
Zufallszahl,
und densubsequence
neuen Wert von iseed
zurück. on
east
a different
of some
izing
value
of
iseed
will
always
return
Weitere
calls
•
Mit
dem
vom
letzten
Mal
returntem
iseed.
(!)
‣
Now our first, and perhaps most impor
PRNG Algorithmen
•Mittquadratmethode
•Kongruenzgenerator
‣linear
‣multiplikativ
•Mersenne-Twister
•...
Mittelquadratmethode
•Einer der ersten PRNG.
‣Erfunden 1946 von Johann von Neumann.
•Nur noch historische Bedeutung.
(extrem kurze Sequenz, Abstürzen auf 0, etc.)
Kongruenzgenerator
•Sehr weit verbreitet.
‣Nicht perfekt in seiner einfachsten
Implementation,und die Güte kommt sehr auf die
verwendeten Parameter an, kann aber mit einigen
Tricks zu einem sehr brauchbaren RNG ausgebaut
werden.
•Sehr schnell.
•Minimale Grösse im Memory (im cache).
Chapter 7.
Random Numbers
Linearer Kongruenzgenerator
Generiert eine Sequenz von ganzen Zahlen I1, I2,
•
of integers I 1 , I2 , I3 , . . . , each between 0 a
I3 ..., jede zwischen 0 und m-1 wobei m eine “grosse”
urrence
Zahl ist.relation
•Rekursive Definition:
Ij+1 = aIj + c (mod m)
•m=Modulus (Integer, m>0)
a=Multiplier/Faktor (Integer, 0< a < m)
•
modulus,
and
a
and
c
are
positive
integers
c
•c=Inkrement (Integer, 0<= c <m)
spectively. The recurrence (7.1.1) will even
obviously no greater than m. If m, a, and c a
Linearer Kongruenzgenerator II
•Die Rekursion wiederholt sich spätestens nach m
calls.
‣Bei “schlechten” Parametern aber schon viel
früher.
•Bei “guten” Parametern (vgl. unten) werden alle
möglichen ganzen Zahlen von 0 bis m-1 genau ein
Mal durchlaufen (Pseudozufällige Permutation).
•Die Wahl des seed legt dann nur noch fest, wo in
der Sequenz gestartet wird.
Linearer Kongruenzgenerator III
•Die gleichverteilte reele Zufallszahl zwischen 0 und 1,
die schlussendlich ausgegeben wird, ist Ij+1/m.
‣Somit sind die Zufallszahlen immer kleiner als 1, aber
einmal in m calls genau gleich 0.
•Anforderungen an m, a, und c (Satz von Knuth) für eine
maximale Sequenzlänge (=m):
‣Das Inkrement b ist zum Modulus m teilerfremd.
‣Jeder Primfaktor von m teilt a-1.
‣Wenn m durch 4 teilbar ist, dann auch a-1.
•Illustration: Mathematica
"Linear Congruential Generators" from The Wolfram
Demonstrations Project http://demonstrations.wolfram.com/LinearCongruentialGenerators/ von Joe Bolte
Linearer Kongruenzgenerator IV
•Nachteile
‣Sequentielle Korrelation (Abhängigkeit sich
folgender Zufallszahlen), manifestiert sich in
Hyperebenen (Satz von Marsaglia):
Wenn k sich nachfolgende Zufallszahlen im k dimensionalen Raum
geplottet werden (jede Koordinate zwischen 0 und 1), füllen die Punkte
nicht den ganzen Raum, sondern liegen auf k-1 dimensionalen
Hyperebenen. Es gibt maximal m1/k Hyperebenen, bei “schlechten”
Werten von m,a und c aber wesentlich weniger.
‣Unterschiedliche Zufälligkeit der verschiedenen
bits innerhalb der Zahl.
Hyperebenen
(hier normale Ebenen,
da k=3)
[1]
Miller
surveyed
a largeofnumber
of of
random
number
generath
hey presenthave
an anecdotal
sampling
a number
inadequate
generators
used
the lastuse.
30The
years
or more.
Along
with ifa not
good
theoret
me
into over
widespread
historical
record
is nothing
appalling.
esent
an anecdotal
of a number
of inadequate
re is good
evidence,sampling
both theoretical
and empirical,
that thegenerators
simple mult
congruential
widespread algorithm
use. The historical record is nothing if not appalling
ood
evidence,
both theoretical
and empirical, that the simple mu
Park-Miller
PRNG genannt.
•Auch
(7.1
Ij+1 = aIj (mod m)
uential
algorithm
•Spezialfall mit c=0, d.h.
Multiplikativer Kongruenzgenerator
good as any of the more general linear congruential generators that ha
(7.
Ij+1 = aIj (mod m)
quation 7.1.1) — if the multiplier a and modulus m are chosen exquisite
Park
proposeextrem
a “Minimal
Standard”
generator
based on t
undMiller
a müssen
vorsichtig
gewählt
werden.
•m and
as any of the more general linear congruential generators that h
Park
und
Miller
schlagen
vor:
n 7.1.1) — if the multiplier a and modulus m are chosen exquisi
5propose a “Minimal
31 Standard” generator based on
k and Miller
a = 7 = 16807
m = 2 − 1 = 2147483647
(7.1
So genannter “Minimal Standard” MINSTD
•
posed by Lewis, Goodman, and Miller in 1969, this generator
has
Generator.
5passed all new theoretical
31 tests, and (perhaps more importantl
ntayears
= 7 = 16807
m = 2 − 1 = 2147483647
(7.
Weit
verbreitet,
sollte
aber
nicht
direkt
für
•
mulated a large amount of successful use. Park and Miller do not claim th
professionelle
Zwecke
verwenden
werden.
ator
is
“perfect”
(we
will
see
below
that
it
is
not),
only
that it is ahas
go
by Lewis, Goodman, and Miller in 1969,but
this
generator
Implementation von MINST
•Problem: Die Multiplikation von a und Ij führt je nach
Ij zu Integer > 232 (4 byte=32 bit, standard Fortran
Integer Länge, C long int)
‣Kann mit Schrage’s Algorithmus zur
approximativen Faktorisierung von m behoben
werden.
•Beispiel folgt dem Buch Numerical Recipes von
Press et al., Cambridge University Press.
http://www.nrbook.com/a/
MINSTD, 64 bit Integers
Press et al.
MINSTD: sample output
seed =1
31
2 -2
Call No.
x
1 7.82636926E-06
2 0.13153780
3 0.75560534
....
2147483645 0.65550071
2147483646 4.65661287E-10
2147483647 7.82636926E-06
idum
16807
282475249
1622650073
1407677000
1
16807
•MINSTD hat einige Probleme:
•Low order serial correlations. Beispiel:
231≈2 109
Ein Mal in 106 calls, wird eine Zahl < 10-6 ausgegeben (wie es sein
muss), aber die nachfolgende Zufallszahl wird immer kleiner als 0.0168
sein, was natürlich nicht so sein sollte.
2
MINSTD mit BD-shuffling
•Einfaches Verfahren von Bays und Durham, um die
low order serial correlations zu verhindern:
Chapter 7.
Random Numbers
iy
1
RAN
3
OUTPUT
2
iv32
ure 7.1.1.
Shuffling procedure used in ran1 to break up sequential correlations in the Minimal
Press
et al.
ndard generator.
Circled
numbers indicate the sequence of events: On each call, the random number
iy is used to choose a random element in the array iv. That element becomes the output random
Sample page from NUMERICAL RECIPES IN FORTRAN 77: THE AR
Copyright (C) 1986-1992 by Cambridge University Press. Programs C
Permission is granted for internet users to make one paper copy for th
readable files (including this one) to any server computer, is strictly pro
http://www.nr.com or call 1-800-872-7423 (North America only), or sen
iv1
Eine Zufahlszahl Ij, die
durch die j-ten Position
der Sequenz gegeben
ist, wird nicht beim jten call ausgegeben,
sondern bei einem
zufällig gewählten
späteren call (im Mittel j
+32).
MINSTD mit BD-shuffling
•Erfüllt sämtliche bekannten statistischen Tests
solange die Anzahl calls klar kleiner bleibt als m, ca.
m/20 (ca. 108 calls).
•Sind längere Sequenzen nötigt, werden PRNG
verwendet die mehrere verschiedene Sequenzen
mit unterschiedlichen Perioden kombinieren. So
können sehr lange Sequenzen erzeugt werden, z.B.
mit einer Länge von 2.3 x 1018.
randu
•Multiplikativer Kongruenzgenerator. Rekursion:
Vj+1 = 65539 · Vj mod 2
31
mit V0 ungerade
31-1]
Bereich
[1:2
•
•Übertragung in rationale Zahlen im Intervall ]0,1[
Vj
Xj = 31
2
•So gewählte Parameter, da (in einem 32 bit Integer
31
2
Zahlenmodel) sowohl mod
wie auch die Multiplikation mit 65539=216+3 hardwaremässig schnell ist.
randu - Fortsetzung II
•Problem: Studiere die Rekursion über 3
Schritte (Terme jeweils mod
16
xk+2 = (2
31
2
16
+ 3)xk+1 = (2
zu nehmen)
2
+ 3) xk
xk+2 = (232 + 6 · 216 + 9)xk = [6 · (216 + 3)
da 232 mod 231 = 0
•Deshalb
xk+2 = 6xk+1
9xk
Oops!!!
9]xk
2. Andere Verteilungen:
Transformations
Methode
Statistische Verteilungen I
bility distributions
•Eine Zufallsvariable X wird durch die kumulative
or Verteilungsfunktion
population synthesis calculations
is the
generation of initial cond
(cumulative
distribution
robability
distributions,
explained in the introduction to Paper I
function,
CDF) F(x) as
beschrieben.
a short
overview
on
probability
distributions
in
general.
•F(x) gibt die Wahrscheinlichkeit, dass die
iate
X
is
described
with
the
cumulative
distribution
function
(CD
Zufallsvariable X einen Wert zwischen -∞ und x
obability that the random deviate X takes a values between ⇤ a
annimmt, d.h.
F (x) = P (X ⇥ x) for
⇤<x<⇤
an die CDF:
•Anforderungen
lfill
an number of requirements,
namely (1) F ( ⇤) = 0, (2) F (⇤
F(∞)=1 and (4) F (x) must rightwards continuous
•F(-∞)=0,
notonically
increasing,
•Monoton steigend
stetig
y that
a continuous
random deviate takes a given value xi is zero. T
•rechtseitig
Statistische Verteilungen II
F (x) = P (X ⇥ x) for
⇤<x<⇤
l an number of requirements, namely (1) F ( ⇤) = 0, (2) F (
Die Wahrscheinlichkeit dass eine kontinuerliche
•
tonically increasing, and (4) F (x) must rightwards continuo
Zufallsverteilung X genau einen Wert xi annimmt, ist 0.
Die Wahrscheinlichkeitsdichtefunktion (eng.
•
hat a continuous random deviate takes a given value xi is zero.
probability density function PDF) f(x) wird deshalb
ity function (PDF) f (x) is used which states that the proba
verwendet und besagt dass die Wahrscheinlichkeit
imal interval dx is given as f (x)dx. The PDF is related to th
von X in einem infinit. Intervall dx zu liegen ist f(x)dx.
F (x) = P (X ⇥ x) =
x
f (x)dx,
⇥
•f(x) ist somit die Ableitung von F(x).
erivative of F (x). The geometrical interpretation is of course
der the curve given by f (x) to the left of x. Similarly is the
Popula
terval
[a,
b]
given
as
nterval
[a, b] given as Verteilungen III
Statistische
⇧⇧b
b
nterval
[a,
b]
given
as
dass
eine kontinuierliche
Zufallsverteilung
•Die Wahrscheinlichkeit
PP(a(a⇥⇥XX⇥
b)
=
f
(x)dx.
⇥ b) = a f (x)dx.
X im Intervall [a,b] liegt ist somit ⇧ ba
P
(a
⇥
X
⇥
b)
=
f
(x)dx.
ive
function
of
the
random
deviate
X,
then
it
is
itself
a
r
tive function of the random deviate
X, then it is itself a
a
dom
deviate
the
expectation
value
of
g(X),
E(g(x))
is
th
Ist
g(x)
eine
bijektive
Funktion
von
X,
ist
es
selbst
wieder
eine
•
ndom
deviate
the
expectation
value
of
g(X),
E(g(x))
is
tive
function of the
random
X, g(X),
thenE(g(x))
it is itself
a ra
Zufallsverteilung.
Der Erwartungswert
E von
ist
⇧⇧⇥ deviate
⇥ value of g(X), E(g(x)) is th
ndom
dann deviate the expectation
E(g(X))
=
g(x)f
(x)dx.
E(g(X)) =⇧ ⇥
g(x)f
(x)dx.
⇥
E(g(X)) =
⇥
g(x)f (x)dx.
the
expectation
value
of
itself,
which
is
Ein
wichtiger Speziallfall
istXder
Erwartungswert
von X selbst
•
⇥
the expectation value of X itself, which is
⇧⇧⇥
the expectation value
⇥ which is
. . of X itself,
E(X)
=
µ
=
xf
(x)dx.
x
E(X) = µx =⇧ ⇥
xf
(x)dx.
⇥
.
E(X) = µx =
⇥
xf (x)dx.
if
a
⇥
x
⇥
F (x) = In bthis
once
the synthetic
planets were calculated).
program,
a
1 Generic
distributions
a
⇤
probability distributions were implemented. 1
if x > b.
b
Gleichverteilung im Intervall [a,b]
program exostat which was written for this research project generates the initial condifor the populations synthesis calculations (it is also used for the statistical comparison
observational
data onceby
the setting
synthetic planets
calculated).
this program,
a
sthe
CDF
is obtained
dF =were
f (x)dx
= kIn1 dx
and deter
ber of important generic probability distributions were implemented.
F
(a)
0CDF
and F (b)
= 1. The
is obtained
ction
has=aeinfachste
Verteilung
hatPDF
die CDF
und PDF as the derivat
•Diese
form deviate
⇥in [a, b]
1
0
if x < a
⌅
if
a
⇥
x
⇥
b
simplest probability
function
has
a
CDF
b a
x a
f
(x)
=
if
a
⇥
x
⇥
b
F (x) =
(3.7)
b
a
⇥
Probability distributions
0
otherwise
⇤
31
0
if
x
<
a
⌅
1
if x > b.
x a
F (x) =
if a ⇥ x1⇥ b
⇤
x > 0.8
b.
se distributions
shown
in iffig.
3.1.
ting
dF = f0.8(x)dx =are
k dx
and 1determining
k
1
1
1
b a
1
by the conditions
(3.7)
0.8
0.6
The
is0.6is
obtained
asdFthe
The
mean
ofsetting
course
CDF PDF
is
obtained
by
=simply
fderivative,
(x)dx = k1 dx 0.6
and determining k1 by the conditions
0.4 derivative,
0.4
F (a) = 0 and 0.4
F (b) = 1. The PDF is obtained as the
⇧ b
0.2 1
0.2
0.2
if
a
⇥
x
⇥
b
b
a
1
a
+
b
1
f (x) = 0
(3.8)
if
a
⇥
x
⇥
b
b a
0
0 (3.8)
f (x)1 = 1.5 E(X)
.5
1
1.5
2
!1
0
0.5
2
=
µ
=
xdx
=
0 !0.5 otherwise
!1 !0.5 0
0
otherwisex!1 !0.5b 0 a0.5 1 1.5 2
2
a
Figure
3.1: PDF
(left) andkönnen
CDF (right) for a standard un
Der
Erwartungswert
ist
natürlich
(a+b)/2,
doch
dies
ne •
in
fig.
3.1.
distributions are shown in fig. 3.1.
. This
distribution
implemented
as No. 1 in exostat.
The
mean
is ofismit
course
simply
wir
auch
der
allgemeinen Formel
und
der= PDF
berechnen:
mply
and the
variance
. This
distribution is implemented as
niform deviate in the unit interval (i.e. between 0.0 and 1.0) which
A special case is the uniform deviate in the unit interval (i.e. b
er generators. Called the standard uniform deviate, it has a PDF
⇧ b
is given by
random
n the unit interval, and 0 otherwise. In ⇧
the practical
application for1
a+
b number generators. Called the standard unif
b
E(X)
= µdistribution,
xdx
(3.9) In t
equal=
1, i.e. f (x)dx = dx in the unit interval, and 0 otherwise.
wants to calculate random deviates
some given
1 from
x =a + b
b a a a computer 2program, one wants to calculate
r generator =
at disposition
uniform
E(X)
µx = which gives a standard
xdx
=deviate.
(3.9)random deviates fro
PDF (left) and CDF (right) for a standard uniform deviate.
a)2
2
2
x
(b a)2
12
Gleichverteilung im Intervall [0,1]
•Der bei den PRNG wichtige Speziallfall der
Gleichverteilung auf dem Einheitsintervall wird
standard uniform deviate (SUD) genannt.
•Es hat eine speziell einfache PDF =1,d.h.
einfach f(x)dx=dx im Einheitsintervall, und
sonst 0.
•Dies ist sehr hilfreich für die so genannte
Transformationsmethode zur Erzeugung
anderer Verteilungen.
toto
use
to draw
draw r
ble
usethe
thetransformation
transformation method
method to
way
explained
Transformationsmethode
I
e way
explainedininPress
Presset
et al.
al. (1992).
(1992).
er
program
can
generate
a
standard
uniform
uter
program
can
generate
a
standard
uniform
•Gegeben sei X, eine SUD. Wir suchen eine andere
wo die
samples yyy
dom
deviateY Y, ,Y,with
with
samples
that follow
i der
mZufallsverteilung
deviate
samples
follow so
s
Verteilungsfunktion
f(y)
folgen
sollen.
thisf (y),
f (y),wewecan
canuse
usethe
the fundamental
fundamental law
of
is
law
of
•Gemäss dem fundamentalen Gesetz zur
as
nven
as
Transformation von Wahrscheinlichkeiten gilt:
|f
(y)dy|
=
|f
(x)dx|
|f (y)dy| = |f (x)dx|
Somit (da f(x)=1 für SUD)
dx
dx
f (y) = f (x) dx = dx
f (y) = f (x) dy = dy
dy
dy
|f (y)dy| = |f (x)dx|
|f (y)dy| = |f (x)dx|
Transformationsmethode II
dx
dx
dx
dx
=
(y)f=(x)
f (x)
=
f (y)f=
dy
dydy
dy
Die Lösung dieser einfachen Diff. gleichung ist
•
is simple differential equation is just x = F (y), where F (y)
gerade
x=F(y), equation
wobei F(y) die
Stammfkt
von
f(y) where
ist.
eherefore,
differential
is
just
x
=
F
(y),
F
the transformation of a uniform deviate x to y distr
Somit
ist die Transformation
von einer deviate
SUD X zuxYto y
e, •the
transformation
of a uniform
die eine f(y) Verteilung
folgt
1
y(x) = F (x),
y(x)
=
F
function of F .
(x),
The transformation
1
s the inverse
method ca
towo
theF-1
indefinite
integral
of
f
can
be
calculated.
An
example
h
die Umkehrfunktion der Stammfunktion von f ist.
verse
function
of
F
.
The
transformation
meth
Diese muss somit existieren, damit die
ant
to generate
an uniform
deviate
in the
interval
[a,b].
F
ndefinite
integral
of f can
beYcalculated.
An
exam
Transformationsmethode
angewendet
werden
kann.
ly understand that we have to calculate y = x(b a) + a when
Einfaches Bespiel
•Wir wollen eine Gleichverteilung Y auf dem Intervall
[a,b], und haben eine SUD X.
•Es ist sofort klar, dass wir diese als y=x(b-a)+a
erzeugen können.
•Doch wir können dies auch mit der Transformationsmethode berechnen: Wir setzen x=F(y)=(y-a)/(b-a),
und lösen nach y auf (wir berechnen die
Umkehrfunktion F-1), was liefert y(x)=x(b-a)+a
e a. We can again calculate with the transformation method how we
x(ln(b)
able distributed according
to this ln(a))+ln(a)
distribution if we have an standard
y
=
e
.
tting x = F (y) and solving for y we find
Beispiel 2: Uniform in lg
Wir
wollen
Y
in
[a,b]
verteilt
ist,
•
to the base 10 is completely parallel, with th
d.h.
lg(x)
ist
gleichverteilt
in
[lg(a),lg(b)]
e logarithm to the
⌃base 10 is completely parallel, with the CDF given a
⌃
0 0
if ax < a
if x <
log(x) log(a)
log(x)
log(a)if a ⇥ x ⇥ b
F (x) =
log(b) log(a)
F (x) =
if
a
⇥
x
⇥
b
⌥
log(b)
log(a)if x > b.
1
⌥ 1
if
x
>
b.
amples
distribution one uses the equation
derthis
Transformationsmethode
(x=F(y) nach y
•Mitfrom
x(log(b)
auflösen) finden
wir
dann,log(a))+log(a)
dass um. y uniform in lg zu
y
=
10
m this
distribution
one
uses
the
equation
haben, berechnen wir aus x (das SUD) ist,
x(ln(b) ln(a))+ln(a)
y
=
e
das uniform in log10.
iformly distributed in the unit interval, then y is distributed log unifo
x(log(b)
log(a))+log(a)
means that log(y)
is
uniformly
distributed
in
[log(a),
log(b)].
The
dist
y
=
10
.
(x) is implemented as No. 2 in exostat.
Verallgemeinerungen
•Die Transformationmethode lässt sich auf mehrere
Dimensionen verallgemeinern. Dies dient z.B. zur
Erzeugung von normalverteilten Zufallszahlen
(sogenannte Box Muller Transformation)
•Nicht für alle Verteilungsfunktionen lässt sich die
Inverse der Stammfunktion berechnen. Die
Transformationsmethode kann dann nicht
angewendet werden. Statt dessen wird dann die
Rejektionsmethode verwendet.
•Beides wird ausführlich in den Numerical Recipes
von Press et al. diskutiert.
3. Monte Carlo
Methode
Grundidee Monte Carlo Integration
7.6 Simple Monte Carlo Integration
•Methode zur Berechnung komplexer Integrale einer
Funktion f im multidimensionalen Volumen V.
se that we pick7.6NSimple
random
points,
uniformly distributed in a multid
Monte
Carlo Integration
305
Verteile N Zufallszahlen x1,..,xN uniform in V.
•
me V . Call them x1 , . . . , xN . Then the basic theorem of Monte
Das
Grundtheorem
der
MC
Integration
besagt
•
estimates
the
integral
of
a
function
f
over
the
multidimensional
vo
Suppose
that
we
pick
N
random
points,
uniformly
distributed
in
a
multidimendann, dass wir das Integral abschätzen
können als
⇧
nal volume V . Call them x1 , . . . , xN . Then the basic theorem of Monte Carlo
⇥
2
2
egration estimates the integral of a function f over
the
multidimensional
volume,
⇧f ⌥ ⇥ ⇧f⌥
(
f dV ⌃ V ⇧f⌥ ± V ⇧
⇥
N
2
2
⇧f ⌥ ⇥ ⇧f⌥
(7.6.1)
f dV ⌃ V ⇧f⌥ ± V
N
gle brackets
denote
taking the
mean over
the über
N sample
wobei die
Klammer
dasarithmetic
arithmetische
Mittel
die p
•
re the
brackets
denote taking
the arithmetic mean over the N sample points,
N angle
sample
Punkte
bezeichnen.
N
⌅
1
N
⌅
⇧f⌥
1 f(xi )
⇧f⌥N
f(xi )
N
i=1
i=1
N
⌅
⌃ 2⌥
1⌅
N
2
⌃ f2 ⌥
1
2 f (xi )
f
f (xi )
N
N
i=1
i=1
(7.6.2)
(
Monte Carlo Integration II
•Im allgemeinen wird es schwierig sein, die sample
Punkte alle zufällig innerhalb von V zu haben, z.B.
weil V eine komplexe Form hat.
•Definiere deshalb einfach das minimale Volumen W,
das V ganz enthält, und setze f gleich der
eigentlichen Funktion für Punkte die innerhalb von V
liegen, und =0 für Punkte die ausserhalb von V (aber
innerhalb von W) liegen.
306
Chapter 7.
Random Numbers
area A
∫fdx
Press et al.
Beispiel
∫fdx
•Berechnung der Masse und des Schwerpunktes
Figure 7.6.1. Monte Carlo integration. Random points are chosen within the area A. The integral of the
function f is estimated as the area of A multiplied by the fraction of random points that fall below the
curve f . Refinements on this procedure can improve the accuracy of the method; see text.
eines geometrischen Körpers in 3D.
Torus, abgeschnitten durch
zwei sich rechtwinklig
schneidende Ebenen.
y
4
2
0
Press et al.
1
2
4
x
Die Integrationsgrenzen
können nur schwer in einer
analytischen, geschlossenen
Form geschrieben werden.
Mit MC Integration ist die
Z
Aufgabe hingegen leicht zu
1
~rs =
⇢(~r)~rdV lösen.
M
, (see
but
a worked
example
show
underlying
simplicity
ofm
but
a§7.8),
worked
willwill
show
the
underlying
simplicity
the
but a example
worked
example
will
show
thethe
underlying
simplicity
of the of
method.
Suppose
that we
want
to
find
theweight
weight
and
thethe
position
of of
thethe
center
of mass
ofmas
anof
hat
we
want
to
find
the
and
position
of
the
center
at
we
want
to
find
the
weight
and
the
position
center
of
Beispiel
II
object of complicated shape, namely the intersection of a torus with the edge of a
complicated
shape,
namely
intersection
a
torus
th
omplicated
shape,
namely
thethe
intersection
of aoftorus
withwith
the ed
large box. In particular let the object be defined by the three simultaneous conditions
nIn
particular
let
the
object
be
defined
by
the
three
simultaneous
con
particular
let
the
object
be
defined
by
the
three
simultaneou
⇤
durch
drei
gleichzeitige
•Der Körper ist beschrieben
2
2
2 + y2 ⇥ 3
z
+
x
⇤
1
(7.6.3)
⇤
⇤
2 2
Bedingungen:2
2 +2 y2 ⇥23
2
z
+
x
⇤
1
z
+
x
+
y
⇥
3
⇤radius
1 = 2)
(torus centered on the origin with major radius = 4, minor
(Torus um den Nullpunkt,
Aussenradius
= 4, Innenradius =3)
x
⌅
1
y
⌅
⇥3
(7.6.4)
ered
on
the
origin
with
major
radius
=
4,
minor
radius
=
2)
tered
origin with major
radius = 4, minor radius = 2)
und on
für the
die abschneidenden
Ebenen:
(two faces of the box, see Figure 7.6.2). Suppose for the moment that the object
1
y
⌅
⇥3
has a constant density ⇧. x ⌅
x⌅1
y ⌅ ⇥3
We want to estimate the following integrals over the interior of the complicated
object:
of
the
box,
see
Figure
7.6.2).
Suppose
for
the
moment
that
the
Finde
über
dieses
Volumen
die
Integrale
s of ⇥the box, see ⇥Figure 7.6.2). ⇥Suppose for the
moment
tha
⇥
tant density ⇧.
nstant ⇧density
dx dy dz ⇧.
x⇧ dx dy dz
y⇧ dx dy dz
z⇧ dx dy dz
•
ant to estimate the following integrals over the interior of the comp
want to estimate the following integrals over the interior of
the c
(7.6.5)
The
coordinates
of the center
of mass
will be the ratio
the latter
three integrals
betrachten
den
einfachsten
Fallofeiner
konstanten
•Wir
⇥ to the first one (the weight).
⇥
⇥
(linear moments)
Dichte
ρ
innerhalb
des
Körpers.
⇥
⇥
⇥
In the following
the region V , y⇧
enclosing
piece-of-torusz⇧
W dx
, is the
x dy dz
x⇧fragment,
dx dy dz
dx dythedz
dy
Beispiel III
306
Chapter 7.
Random Numbers
area A
•Als minimales Volumen W, das den abgeschnittenen
Torus umgibt, und in dem wir unsere sampling points
uniform verteilen, nehmen wir einen Quader von 1 bis
4 in x, -3 bis 4 in y, und -1 bis 1 in z.
∫fdx
Figure 7.6.1. Monte Carlo integration. Random points are chosen within the area A. The integral of the
function f is estimated as the area of A multiplied by the fraction of random points that fall below the
curve f . Refinements on this procedure can improve the accuracy of the method; see text.
y
4
2
0
1
2
4
x
1
~rs =
M
Z
⇢(~r)~rdV
•Resultat für n=1000000
w,dw 22.107918
2.09707543E-02 (Masse des Körpers; Umgebender Quader: 3x7x2=42)
x,dx 53.275669
5.50482012E-02
y,dy 3.4985492
5.61315641E-02
0
1
z,dz -1.39091080E-02 1.53482482E-02
•Somit Schwerpunkt
2.4098
~rs = @ 0.1582 A
0.0006
was zumindest plausibel erscheint (z-Komponente muss =0
sein aus Symmetriegründen)
• Exercise 1, 6 points: The infamous randu.
Write a program code with the (not-so) random number generator randu following
the recurrence:
⇣
31
Ij+1 = (65539 Ij ) mod 2
⌘
(see Lecture for details). Then to obtain a random number xi drawn from the interval
(0, 1) use the normalisation xi = ui /231 . Create some 100 000 random number,
starting with an initial seed u0 = 1 and plot the consecutive triples (xi , xi+1 , xi+2 )
in a 3-dimensional plot, e.g., using the splot command from gnuplot. Count the
number of 2D planes by viewing the data in di↵erent projections. What is the
number of planes for randu?
• Exercise 2, 8 points: Transformation method.
Write a program code to generate random numbers with an exponential probability
distribution function (PDF) ⇢(y) = e y in the interval ymin = 0 to ymax = 5 using
the transformation:
y=
ln (1
x)
,
x = e y.
Use an random number generator with uniform PDF of your choice or the one
o↵ered in the Lecture. Show that your resulting distribution of random numbers
indeed follows an exponential one.
• Exercise 3, 6 points: Monte-Carlo Integration.
Approximate the value of ⇡ using the Monte-Carlo technique by integrating the area
of a square with side length a and a circle of radius 1/2a. Use the equation:
⇡=4
Ac
Nc
⇡4 ,
As
Ns
where Ac and As is the area of the square and the circle, respectively. How does the
precision of the result scale with the number of points used in the integration?
Herunterladen