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?