Wie generiert man aus gleich verteilten Zufallszahlen normalverteilte Zufallszahlen?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ist nicht ganz einfach.

Du gehts von der gaussschen Normalverteilung aus, die üblicherweise als Wahrscheinlichkeitsdichte bezeichnet wird.

Wenn man diese Funktion intergriert von -unendlich bis x dann hast Du die so genannte Verteilungsfunktion(x). Diese hat einen Definitionsbereich von -unendlich bis +unendlich und einen Wertebereich von 0 bis 1.

Unglücklicherweise gibt es keine Stammfunktion für dieses Integral. Man muss auf tabellierte Werte zurückgreifen oder irgendwo diese erf-Funktion abrufen können.

Was Du brauchst ist nun wiederum die Umkehrfunktion von dieser Verteilungsfunktion. Da kannst Du Zufallszahlen von 0 bis 1 hineinkippen und es kommen normalverteilte Zahlen von -uendlich bis + unendlich heraus.

Wenn Du damit ein wenig herumspielen möchtest: In Excel gibt es das als Fertiglösung und heisst

NORM.INV(zufallszahl; Mittelwert; Standardabweichung)

Probier es mal aus. Es macht Spass.

NORM steht für Normalverteilt

INV steht für Umkehrfunktion

In Zufallszahl gibts Du Deine randoms von 0 bis 1 ein

Bei Mittelwert stellts Du Deinen Häufungsschwerpunkt ein

Und natürlich kannst Du Dir auch eine Streuung aussuchen.


Eine bewährtes Verfahren ist die Box-Muller-Methode, siehe Wikipedia. Der englische Artikel, Box–Muller transform, enthält ein Codebeispiel in C++. Eine Abwandlung hiervon findet man unter: Polar-Methode. Das Codebeispiel ist in C. Der engl. Artikel hierzu, Marsaglia polar method, zeigt Codebeispiele in Java und C++.

Hier werden einige Verfahren diskutiert: http://stackoverflow.com/questions/2325472/generate-random-numbers-following-a-normal-distribution-in-c-c


DepravedGirl 
Fragesteller
 25.02.2016, 19:32

Recht herzlichen Dank für deine Antwort !

0

Es gibt ein paar mathematische Algorithmen, um mithilfe von gleichverteilten Zufallszahlen Normalverteilte zu generieren.

https://de.wikipedia.org/wiki/Normalverteilung#Erzeugung_normalverteilter_Zufallszahlen


DepravedGirl 
Fragesteller
 24.02.2016, 22:43

Erst mal recht herzlichen Dank für deine Antwort !

Das hatte ich schon gesehen, jedoch kann ich dort nirgends eine Verrechnung des Erwartungswertes und der Varianz erkennen.

1
ceevee  24.02.2016, 22:57
@DepravedGirl

Die Algorithmen erzeugen eine Standardnormalverteilung (also my = 0, sigma = 1). Wenn du dir damit also eine standardnormalverteilte Zufallszahl ZN erzeugst, dann kannst du die anschließend mit

YN = my + sigma * ZN

in den gewünschten Bereich schieben. my = Erwartungswert, sigma = Standardabweichung

3
DepravedGirl 
Fragesteller
 24.02.2016, 22:58
@ceevee

Ok, vielen Dank !

Ich werde mich mal damit auseinandersetzen.

0

Auf welches Programm bezogen?


DepravedGirl 
Fragesteller
 24.02.2016, 22:19

Auf kein Programm bezogen, auf ein selbst programmiertes.

Die Frage lautet wie man aus gleichverteilten Zufallszahlen normalverteilte Zufallszahlen macht.

Aber Danke für dein Interesse !

0