Practical Numerical Training UKNum 9: Random Numbers, Monte Carlo Methods C. Mordasini Max Planck Institute for Astronomy, Heidelberg Program: 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 durch-laufen (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 Multiplikativer into widespread use. TheKongruenzgenerator 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. 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 32 2 (4 Ij zu Integer > 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/ Ältere Versionen (samt C, C++ , Fortran77, Fortran90 source code) sind online frei verfügbar. Wärmstens empfohlen für alle standard numerischen Algorithmen! Die Physik ist alleine oft schon komplex genug.... 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: 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 Press et al. ure 7.1.1. Shuffling procedure used in ran1 to break up sequential correlations in the Minimal 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 7.1 Uniform Deviates * 271 Sample page from NUMERICAL RECIPES IN FORTRAN 77: THE ART OF Copyright (C) 1986-1992 by Cambridge University Press. Programs Copyrig Permission is granted for internet users to make one paper copy for their ow readable files (including this one) to any server computer, is strictly prohibite http://www.nr.com or call 1-800-872-7423 (North America only), or send em FUNCTION ran1(idum) INTEGER idum,IA,IM,IQ,IR,NTAB,NDIV REAL ran1,AM,EPS,RNMX PARAMETER (IA=16807,IM=2147483647,AM=1./IM,IQ=127773,IR=2836, NTAB=32,NDIV=1+(IM-1)/NTAB,EPS=1.2e-7,RNMX=1.-EPS) “Minimal” random number generator of Park and Miller with Bays-Durham shuffle and added safeguards. Returns a uniform random deviate between 0.0 and 1.0 (exclusive of the endpoint values). Call with idum a negative integer to initialize; thereafter, do not alter idum between successive deviates in a sequence. RNMX should approximate the largest floating value that is less than 1. INTEGER j,k,iv(NTAB),iy SAVE iv,iy DATA iv /NTAB*0/, iy /0/ if (idum.le.0.or.iy.eq.0) then Initialize. idum=max(-idum,1) Be sure to prevent idum = 0. do 11 j=NTAB+8,1,-1 Load the shuffle table (after 8 warm-ups). k=idum/IQ idum=IA*(idum-k*IQ)-IR*k if (idum.lt.0) idum=idum+IM if (j.le.NTAB) iv(j)=idum enddo 11 iy=iv(1) endif k=idum/IQ Start here when not initializing. idum=IA*(idum-k*IQ)-IR*k Compute idum=mod(IA*idum,IM) without overflows by if (idum.lt.0) idum=idum+IM Schrage’s method. j=1+iy/NDIV Will be in the range 1:NTAB. iy=iv(j) Output previously stored value and refill the shuffle taiv(j)=idum ble. ran1=min(AM*iy,RNMX) Because users don’t expect endpoint values. return END Press et al. 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. recurrence: RANDU is an infamous linear congruential randu seudorandom number generator of the ark–Miller type, which has been used ince the 1960s. [1] It is defined by the Multiplikativer Kongruenzgenerator. • ecurrence: with V odd. It generates pseudorandom Three-dime 100,000 point RANDU. It is Rekursion: the points f dimensio Three-dimensional plot of 0 31 0 ungerade integers Vj in the interval [1,2 mit!V1] that 100,000 points generated with RANDU. It is clearly seen tha 31-1]pseudorandom with V0 odd. Itapplications generates fall in 15 twoin practical are often mapped the intopoints pseudorandom Bereich [1:2 dimensional planes. 31 • in rationale the•Übertragung interval (0,1) by the ntegers Vj in the interval [1,2formula: ! Zahlen 1] that im Intervall ]0,1[ n practical applications are often mapped into pseudorandom rationals Xj i he interval (0,1) by the formula: So gewählte Parameter, da (in einem 32 bit Integer • It is widely considered to be one of the most ill-conceived ran 31 2 Zahlenmodel) sowohl modit fails wie die Multigenerators designed. Notably, theauch spectral test badly fo 16of tgreater isplikation widelythan considered to be one the most ill-conceived random number mit 65539=2 +3 hardwaremässig schnell ist. 2, and every result is odd. 31 16 word size the arithmetic of mod 2 and 65539 = 2 + 3 c randu -­‐ Fortsetzung II could be done quickly. To show the problem with these values c 3 following calculation where every term should be taken mod 2 Problem: Studiere die Rekursion über 3 • RANDU - Wikipedia, the free encyclopedia writing the recursive relation as: 31 Schritte (Terme jeweils mod 2 zu nehmen) which becomes, after expanding the quadratic factor: RANDU - Wikipedia, the free encyclopedia which becomes, after expanding the quadratic factor: http://en.wikipedia.org/w/index.php?title=RANDU&printable=yes 32 31 because 2 mod 2 = 0 32 31 32 31 because 2 2mod= 20 = 0 da 2 mod and allowsusustotoshow show enormous correlation between thr •Deshalb and allows thethe enormous correlation between three point Oops!!! As a result of this correlation, the points in three space As a result of this correlation, the points in dimensional three dimensiona 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. 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 (f(x)=1) dx dx f (y) = f (x) dx = dx f (y) = f (x) dy = dy dy dy dx dx Transformationsmethode = f (y) = f (x) dy dy II •Die Lösung dieser einfachen Diff. gleichung ist x=F(y), equation wobei F(y) das Integral f(y) ist. e gerade differential is just x =von F (y), where F e, •the transformation of a uniform Somit ist die Transformation von einer deviate SUD X zuxYto y die eine f(y) Verteilung folgt y(x) = F 1 (x), -1 F wo die Umkehrfunktion der Stammfunktion von f ist. verse function of F . The transformation meth Diese muss somit existieren, damit die ndefinite integral of f can be calculated. An exam Transformationsmethode angewendet werden kann. enerate an uniform deviate Y in the interval [a 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 finden wir dann, •Mitfrom x(log(b) dass um y uniform in lg zulog(a))+log(a) haben berechnen wir aus y = 10 . m this distribution one uses the equation 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, das 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 Aufgabe hingegen (recht) leicht zu lösen. 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 •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. 1000000 w,dw 22.107918 2.09707543E-02 x,dx 53.275669 5.50482012E-02 y,dy 3.4985492 5.61315641E-02 z,dz -1.39091080E-02 1.53482482E-02