normalverteilte Zufallszahlen erzeugen. |
| 25.05.2009, 18:15 | fdsa | Auf diesen Beitrag antworten » | |||||
| normalverteilte Zufallszahlen erzeugen. ich brauch für eine Simulation Zufallszahlen, die einer definierten Normalverteilung folgen, z.B. N(a,b). Dafür hab ich ein Programm, das mit Hilfe der Polarmethode http://de.wikipedia.org/wiki/Polarmethode ein Array von Zufallszahlen arrzzahl() erzeugt. Das Ganze sieht in VBA so aus:
jetzt will ich aber die Verteilung in arrZZahl() = Z in eine Verteilung T mit den Parameter a (Mittelwert) und b (Varianz bzw. Sigma) umwandeln. Den Mittelwert kann ich einfach addieren, da bei Z der Mittelwert 0 ist. T = Z + a Aber die Varianz macht Schwierigkeiten. Ich habe versucht die quadratischen Abweichungen von Z "per Dreisatz" über einen Faktor anzupassen
Aber da kommt natürlich Blödsinn raus. Hat jemand eine Idee? |
|||||||
| 25.05.2009, 19:14 | Huggy | Auf diesen Beitrag antworten » | |||||
| RE: normalverteilte Zufallszahlen erzeugen. Wenn x normal verteilt ist mit Mittelwert und Standardabweichung , dann ist bekanntlich standardnormal verteilt. Das ergibt umgestellt: Mit dieser Gleichung verwandelst du dein standardnormal verteiltes y in ein normalverteiltes x mit Mittelwert und Standardabweichung (bei dir a und b genannt). |
|||||||
| 26.05.2009, 10:07 | fdsa | Auf diesen Beitrag antworten » | |||||
Sehr geil, es funktioniert. Danke! |
|||||||
| 26.05.2009, 10:31 | AD | Auf diesen Beitrag antworten » | |||||
Ich kenne VB nicht so gut, aber anscheinend ist q mit Wert 0 vorbelegt? Ansonsten wäre der erste Schleifendurchlauf (d.h. i=0) undefiniert. Sicherer wäre es, die Anweisung q=2 als erste statt als letzte Anweisung in die Hauptschleife zu platzieren! |
|||||||
|
|
