PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zufallszahlen: abgeleitete Generatoren


Janus
23.08.2005, 12:00
Hallo, ich nehme gerade die Zufallszahlen durch und steh bei ein paar abgeleiteten Generatoren ziemlich an. Kann mir wer Links oder Sofortbeschreibungen zu meinen gefragten Themen geben?

- Wozu ist die Normalverteilung von Zufallszahlen gut und was macht sie?
Wir haben aufgeschrieben dass man sich die Normalverteilung als eine Glockenkurve visuell vorstellen soll. Ok, ich weiß wie diese Kurve ausschaut. Sie entsteht durch Addition gleichverteilter Zufallszahlen.

Code:
gauss(){
sum = 0
for(i=1..n){
sum = sum + (fRand()*2.0-1.0)...........Mittelwert bei 0.
}
return sum
}

fRand() erzeugt gleichverteilt float Zufallszahlen

Wozu fRand()*2.0-1.0?
Und warum muss ich einen Mittelwert angeben?
Bei der Standardnormalverteilung haben wir zusätzlich noch eine Standardabweichung angegeben...Wozu?

mfg,
Janus


Jan Krüger
23.08.2005, 12:36
Dass Zufallszahlen normalverteilt sind, ist ein wichtiges Kriterium für die Güte der Zufallszahlen, denn sonst wären sie ganz bestimmt nicht zufällig.

das *2-1 kommt daher, dass Zufallszahlen zwischen 0 und 1 erzeugt werden, aber die Glockenkurve typischerweise von -1 bis 1 aufgezeichnet wird, weil das einige Berechnungen einfacher macht. Die Zufallszahlen werden also einfach auf dieses Intervall "verschoben", so dass ihr Mittelwert bei 0 und die Standardabweichung bei 1 liegt (also eine Kurve zur Standardnormalverteilung entsteht).

Wenn du eine Glockenkurve zu einer Normalverteilung mit anderen Parametern haben wolltest, könntest du die Verschiebung der Zufallszahlen anpassen. Ohne Verschiebung hättest du eine Normalverteilung mit Erwartungswert 0.5 und Varianz 0.5.

Janus
24.08.2005, 13:29
Hallo,..danke für die Antwort.
Meine Frage ist jetzt was man denn aus der Addition gleichverteilter Zufallszahlen,also Normalverteilung ablesen kann. Ist das etwa gut für die Statistik...also wie du schon beschrieben hast für die "Qualität" der Zufallszahlen?...Wozu brauche ich die Kurve...

Aha...also man trimmt die Zufallszahlen also auf die Standardnormalverteilung mit Mittelwert 0 und Varianz 1.
Dann haben wir noch zum Schluss (wir haben das Thema auf einer halben Seite angekrazt) einen Code kennengelernt mit dem man die Normalverteilung auf jeden beliebigen Mittelwert und der dazugehörigen Varianz verschieben kann..
Polarmethode:

gaussStd(){
repeat{
u = fRand()*2-1
v = fRand()*2-1 ....im Mittel 1.27 Durchläufe
s = u*u + v*v
}until (s<1)
return u*sqrt(-2*ln(2)/s) ...auch mit v möglich
}
...Erzeugung mormalverteilter Zufallszahlen mit Mittelwert m und Standardabweichung s: z=gaussStd()*s+m
...sehr bequem wie ich finde...nur steckt hinter dem Code irgendein Sinn dahinter oder ist dass nur die Definition der Polarmethode?

mfg,
Janus

Janus
24.08.2005, 13:39
Hallo,....hab jetzt schon ein bißchen mehr über die Normalverteilung in Erfahrung bringen können.....sie beschreibt also eine Wahrscheinlichkeitsdichte...Also mit welcher Wahrscheinlichkeit eine bestimmte Zufallszahl auftritt?
Als Mittelwert werden ein paar Zufallszahlen genannt die am häufigsten auftretten...und die Varianz gibt dann sozusagen die Ausreißer an oder?

mfg,
Janus

Jan Krüger
24.08.2005, 19:26
Ich stelle gerade fest, dass ich deinen Code nicht anständig gelesen habe, und generell nur halb nachgedacht habe.

Normalverteilung und Zufallszahlen haben nicht direkt miteinander zu tun. Eine normalverteilte Funktion erreichst du durch die Aufsummierung (wenn du eine Folge von Zufallszahlen von -1 bis 1 summierst, ist der durchschnittliche Wert 0, mit einer durchschnittlichen Abweichung (Standardabweichung) von 1).

An einer Wahrscheinlichkeitsdichte (http://de.wikipedia.org/wiki/Wahrscheinlichkeitsdichte) wie der der Normalverteilung (nämlich die Glockenkurve) kann man ablesen, welche Wahrscheinlichkeit einem bestimmten Wertebereich zugeordnet ist, aber nicht direkt, sondern über ein Integral (siehe verlinkte Wikipedia-Seite).

Dichten sind kontinuierlich (absolut-stetig), deshalb ist die Wahrscheinlichkeit eines einzelnen Werts 0 (in einem reellen Intervall kommt es äußerst selten vor, dass genau ein bestimmter Wert auftritt, denn es gibt unendlich viele). Man kann allerdings direkt am Graphen der Dichte abschätzen, wie groß die Wahrscheinlichkeit für "ungefähr einen bestimmten Wert" ist, nämlich der Funktionswert. Betrachte z.B. auf http://de.wikipedia.org/wiki/Normalverteilung den Graphen der Standardnormalverteilung -- die Wahrscheinlichkeit für Werte in der Nähe von 0 ist ziemlich genau 0,4.

Der Mittelwert der Normalverteilung kommt also bei Zufallszahlen nicht durch die häufigste Zufallszahl zustande, denn die sind ja gleichverteilt (auch, wenn ich das im vorherigen Beitrag anders behauptet habe, aber da hab ich geschlafen ;)), und der Graph zur entsprechenden Dichte wäre parallel zur x-Achse.

Die Varianz ist das Quadrat der Standardabweichung, und wir kümmern uns um Letztere, denn die ist leichter zu interpretieren. Die Standardabweichung ist die durchschnittliche Abweichung der Werte vom Mittelwert, bei der Standardnormalverteilung also 1. Bedeutet: wenn du jede mögliche Folge (beliebiger Längen) von Zufallszahlen von -1 bis 1 betrachtest, beträgt die Abweichung des Durchschnitts jeder Folge von 0 exakt 1.

Es ist etwas gewöhnungsbedürftig, in solch unendlichen, mikrokosmischen Dimensionen zu denken, aber man kann es lernen. ;)