Zufallszahlen, Monte Carlo Methoden - Max-Planck

Werbung
Practical Numerical
Training UKNum
Zufallszahlen, Monte Carlo Methoden
PD. 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 ty
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 arbi
Younach
initialize
a (usually)
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 den
neuen Wert von iseed
zurück.one
east
a different
subsequence
of some
izing
value
of
iseed
will
always
return
Weitere
calls
•
Mit
dem
vom
letzten
Mal
returntem
iseed.
(!)
‣
Now our first, and perhaps most import
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,
•
ofI integers
I
,
I
,
I
,
.
.
.
,
each
between
0
a
1
2
3
..., jede zwischen 0 und m-1 wobei m eine “grosse”
3
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
ca
•c=Inkrement (Integer, 0<= c <m)
spectively. The recurrence (7.1.1) will even
obviously no greater than m. If m, a, and c ar
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] have surveyed a large number of random number genera
Miller
hey present an anecdotal sampling of a number of inadequate generators th
used
over
the
last
30
years
or
more.
Along
with
a
good
theoret
me into widespread use. The historical record is nothing if not appalling.
esent
an anecdotal
of a number
of inadequate
re is good
evidence,sampling
both theoretical
and empirical,
that thegenerators
simple mult
widespread algorithm
use. The historical record is nothing if not appalling
congruential
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 Ithe more
general
linear
congruential
generators
that
ha
(mod m)
(7.
j+1 = aIj
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.
verbreitet,
sollte
aberuse.
nicht
direkt
für do not claim th
•Weita large
mulated
amount of
successful
Park
and Miller
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, 32 bit
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 Co
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
•Bereich
•Übertragung in rationale Zahlen im Intervall
31
[1:2 -1]
]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
notonically
increasing,
•F(-∞)=0,
•Monoton steigend
y that
a continuous
random deviate takes a given value xi is zero. T
stetig
•rechtseitig
F (x) = P (X ⇥ x)
for
⇤<x<⇤
Statistische
Verteilungen
II
l an number of requirements, namely (1) F ( ⇤) = 0, (2) F (⇤
Die Wahrscheinlichkeit dass eine kontinuerliche
•
tonically increasing, and (4) F (x) must rightwards continuou
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 probab
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,
nterval
[a,b]b]given
givenasas Verteilungen III
Statistische
⇧ ⇧b b
nterval
[a,
b]
given
as
Die
Wahrscheinlichkeit
dass
eine
kontinuierliche
Zufallsverteilung
•
PP(a(a⇥⇥XX⇥⇥b)b)== f (x)dx.
f
(x)dx.
X im Intervall [a,b] liegt ist somit
⇧aba
P (a ⇥ X ⇥ b) =
f (x)dx.
ive function
X,
tive
functionofofthe
therandom
randomdeviate
deviate
X,then
thenit itis isitself
itselfa ra
a
Ist
g(x)
eine
bijektive
Funktion
von
X,
ist
es
selbst
wieder
eine
dom
deviate
the
expectation
value
of
g(X),
E(g(x))
is
th
•
ndom
deviate
the
expectation
value
of
g(X),
E(g(x))
is
tive
function of the
random
deviate
X,
then
it
is
itself
a
ra
Zufallsverteilung.
Der Erwartungswert
E
von
g(X),
E(g(x))
ist
⇧⇧⇥
⇥ value of g(X), E(g(x)) is the
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.
Ein
wichtiger Speziallfall
istXder
Erwartungswert
von X selbst
the
expectation
value
of
itself,
which
is
•
⇥
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 determ
ber of important generic probability distributions were implemented.
tction
F
(a)
0CDF
and F (b)
= 1. The
is obtained
has=aeinfachste
Verteilung
hatPDF
die CDF
und PDF as the derivat
•Diese
form deviate
⇥in [a, b]
1
0
if x < a
⌅
simplest probability
b a
x a function has a CDF f (x) =
if
a
⇥
x
⇥
b
F (x) =
⇥ 31
Probability distributions
0
⇤ b a
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
if a ⇥ x ⇥ b
(3.7)
otherwise
b a
1
by the conditions
1
(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
1
a
+
b
1
f (x) = 0 b a
(3.8)
if
a
⇥
x
⇥
b
0
0 (3.8)
b a
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
Der
ne •
in
fig. Erwartungswert
3.1. are shown in fig. ist
distributions
3.1.natürlich (a+b)/2, doch dies können
PDF (left) and CDF (right) for a standard uniform deviate.
Figure 3.1: PDF (left) and CDF (right) for a standard uni
This
distribution
implemented
as allgemeinen
No. 1 in exostat.
The
mean
is ofismit
course
simply
wir
auch
der
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 unifo
b
equal=
1, i.e. f (x)dx = dx in the unit interval, and 0 otherwise.
E(X)
= µdistribution,
xdx
(3.9) In t
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 from
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
drawr
ble
usethe
thetransformation
transformation method
method to
Transformationsmethode
I
way
explained
e way
explainedininPress
Presset
et al.
al. (1992).
(1992).
er
program
generate
standard
uniform
uter
program
can
generate
standard
uniform
seican
X,
eine
SUD. Wiraasuchen
eine andere
•Gegeben
wo die
samples yyyi der
dom
deviateY Y, ,Y,with
with
samples
mZufallsverteilung
deviate
samples
that follow
follow so
s
Verteilungsfunktion
f(y)
folgen
sollen.
this
f (y),wewecan
canuse
usethe
the fundamental
fundamental law
of
is
fGemäss
(y),
law
of
dem fundamentalen Gesetz zur
•
as
nven
as
Transformation von Wahrscheinlichkeiten gilt:
(y)dy|==|f|f(x)dx|
(x)dx|
|f|f(y)dy|
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
•
his simple differential equation is just x = F (y), where F (y) i
gerade
x=F(y),
wobei
F(y)
die
Stammfkt
von
f(y)
ist.
e
differential
equation
is
just
x
=
F
(y),
where
F
Therefore, 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
1
die eine f(y) Verteilung
folgt
y(x) = F (x),
y(x) =
(x),
es the inverse function
of FF. The
transformation method can
to the -1
indefinite integral of f can be calculated. An example h
1
wo F 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
Ycalculated.
in the interval
[a,b].
F
ndefinite
integral
of
f
can
be
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⌥
1N
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
General purpose routines for Monte Carlo integration are quite complicated
,(see
but
a worked
example
will
show
the
underlying
simplicity
of
t
but
a§7.8),
worked
example
will
show
the
underlying
simplicity
of
the
m
but a worked example will show the underlying simplicity of the method.
hat
want
find
the
and
position
of center
the
center
of
Suppose
that
we
want
to
find
theweight
weight
and
thethe
position
of of
thethe
center
of mass
an
at
wewe
want
to to
find
the
weight
and
the
position
ofofmas
object of complicated
shape,
namely
the
intersection
ofofa torus
the edge
a
complicated
shape,
namely
intersection
awith
torus
with
th
omplicated
shape,
namely
thethe
intersection
aoftorus
with
theofed
large box. In particular let the object be defined by the three simultaneous conditions
particular
the
object
be
defined
by
the
three
simultaneous
nIn
particular
letlet
theist
object
be
defined
by
the
three
simultaneous
con
Der
Körper
beschrieben
durch
drei
gleichzeitige
⇤
2
2
2 + y2 ⇥ 3
z
+
x
(7.6.3)
Bedingungen:2 ⇤ ⇤
2 ⇤ 12
2
2 +2 y2 ⇥23
z
+
x
⇤
1
z
+
x
+
y
⇥
3
⇤
1
(torus centered on the origin with major radius = 4, minor radius = 2)
Beispiel II
•
(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)
ntered
on
the
origin
with
major
radius
=
4,
minor
radius
=
2)
und für die abschneidenden Ebenen:
(two faces of the box, see Figure 7.6.2). Suppose for the moment that the object
has a constant density ⇧. x ⌅
x 1⌅ 1 y ⌅y ⇥3
⌅ ⇥3
We want to estimate the following integrals over the interior of the complicated
seesee
Figure
7.6.2).
Suppose
for for
the the
moment
that tha
the
object:
sof
ofthe
thebox,
box,
Figure
7.6.2).
Suppose
moment
Finde
über
dieses
Volumen
die
Integrale
⇥
⇥
⇥
⇥
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(7.6.5)
the c
•
The Wir
coordinates
of the center
of mass
will be the ratio
ofeiner
the latter
three integrals
betrachten
den
einfachsten
Fall
konstanten
⇥ to the first one (the weight).
⇥
⇥
(linear moments)
⇥
⇥
⇥
Dichte
ρ
innerhalb
des
Körpers.
In the following
the region V , y⇧
enclosing
piece-of-torus
, is the
x dy dz
x⇧fragment,
dx dy dz
dx dythedz
z⇧Wdx
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)
Herunterladen