- Polar-Methode
-
Die Polar-Methode von George Marsaglia ist ein Verfahren zur Erzeugung normalverteilter Zufallszahlen (Zufallszahlengenerator).
Inhaltsverzeichnis
Beschreibung
Mit dieser Methode werden aus zwei gegebenen, im Intervall [0,1] gleichverteilten und voneinander unabhängigen Zufallszahlen u1 und u2 zwei standardnormalverteilte, voneinander unabhängige Zufallszahlen z1 und z2 erzeugt.
Zunächst wird berechnet
(die ai sind in [ − 1,1] gleichverteilt).
.
Ist q = 0 oder q > 1, müssen zwei neue Zahlen u1 und u2 erzeugt werden, da in den reellen Zahlen der Logarithmus von Null und die Division durch Null nicht definiert sind, und außerdem muss der Punkt (a1,a2) im Einheitskreis gleichverteilt sein.
Wenn
, berechnet man
,
und die beiden standardnormalverteilten Zufallszahlen z1 und z2 ergeben sich dann als
Beispielprogramm
Prozedur ErzeugeNormalverteilteZufallszahlen (Referenzparameter z1, z2) Wiederhole a1 = 2 * Zufallszahl - 1 // "Zufallszahl" liefert in [0,1) a2 = 2 * Zufallszahl - 1 // gleichverteilte Werte q = a1 * a1 + a2 * a2 Solange bis (0 < q) und (q ≤ 1) p = Wurzel (-2 * ln(q) / q) z1 = a1 * p z2 = a2 * p // Rückgabe durch die Referenzparameter z1, z2 Ende
Geschichte
Diese Methode geht zurück auf den Box-Muller Algorithmus zur Erzeugung normalverteilter Zufallsgrößen. Ausgangspunkt ist ein gleichverteilter Punkt in der Ebene. Beim Box-Muller Algorithmus werden die euklidischen Koordinaten verwertet. Bei der Polar-Methode werden diese euklidischen Koordinaten in Polarkoordinaten umgewandelt. Dadurch spart man sich hier die Auswertung von trigonometrischen Funktionen.
Alternativen
Alternativen sind im Artikel Normalverteilung beschrieben.
Wikimedia Foundation.