Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Umwandlung Gleich- in Normalverteilung

661 views
Skip to first unread message

Kai Winter

unread,
Jul 5, 2000, 3:00:00 AM7/5/00
to
Ich habe momentan das Problem, dass ich fuer ein Projekt die Transformation von
gleichverteilten Zufallszahlen in die Gaussverteilung implementiern muss. Da das
meines Wissens nach nicht analytisch loesbar ist, wollte ich fragen, ob sich
jemand schon einmal mit diesem Problem der Implementierbarkeit befasst hat und
eine Loesung gefunden hat?!
Soweit vielen Dank
Kai
--
_____________________________________________________________
NewsGroups Suchen, lesen, schreiben mit http://netnews.web.de

Marco Guenther [Math.]

unread,
Jul 5, 2000, 3:00:00 AM7/5/00
to
In article <39630d8c$1...@netnews.web.de>, "Kai Winter" <tommy....@okay.net> writes:
|> Ich habe momentan das Problem, dass ich fuer ein Projekt die Transformation von
|> gleichverteilten Zufallszahlen in die Gaussverteilung implementiern muss. Da das
|> meines Wissens nach nicht analytisch loesbar ist, wollte ich fragen, ob sich
|> jemand schon einmal mit diesem Problem der Implementierbarkeit befasst hat und
|> eine Loesung gefunden hat?!
|> Soweit vielen Dank
|> Kai
|> --

Die einfachste Moeglichkeit ist, zwei gleichverteilte (unabhaengige) Zufallszahlen
x1,x2 zu ziehen. Dann erhaelt man mittels
z1 = sqrt(-log(x1))*cos(2*PI*x2)
eine normalverteilte Zufallszahl. Moechte man eine weitere
normalverteilte Zufallszahl haben, so braucht man nur den SIN statt den COS zu
verwenden und erhaelte eine zweite.
Gruss,
Marco.

Michael Steyer

unread,
Jul 5, 2000, 3:00:00 AM7/5/00
to
Kai Winter schrieb:

>
> Ich habe momentan das Problem, dass ich fuer ein Projekt die Transformation von
> gleichverteilten Zufallszahlen in die Gaussverteilung implementiern muss. Da das
> meines Wissens nach nicht analytisch loesbar ist, wollte ich fragen, ob sich
> jemand schon einmal mit diesem Problem der Implementierbarkeit befasst hat und
> eine Loesung gefunden hat?!

Es gibt die Box-Muller-Methode: ausgehend von 2 gleichverteilten
Zufallsvariablen x1 und x2 erhält man 2 normalverteilte (y1, y2) mit der
Rechnung

y1 = sqrt(-2*ln(x1))*cos(2*PI*x2)
y2 = sqrt(-2*ln(x1))*sin(2*PI*x2)

Erklärung siehe

http://www.ulib.org/webRoot/Books/Numerical_Recipes/bookcpdf.html

Kapitel 7.

Michael

Rainer Jahn

unread,
Jul 12, 2000, 3:00:00 AM7/12/00
to
Hallo Kai,
ich überlege mir, welche eineindeutige Funktion f man auf eine gleichverteilte
Zufallsgröße X anwenden muß, damit sie normalverteilt wird. Es sei N die
Wahrscheinlichkeitsfunktion einer Normalverteilung und G die
Wahrscheinlichkeitsfunktion der Gleichverteilung auf dem Intervall [0;1] (die
Ableitung ergibt die jeweilige Wahrscheinlichkeitsdichte). Dann muß für alle t
gelten:
N(t) = P(f(X) < t) = P(X < (f^-1)(t)) = G((f^-1)(t))
(G^-1)(N(t)) = (f^-1)(t)
(N^-1)(G(t)) = f(t)
f(t) = (N^-1)(t) für t aus [0;1] wegen G(t) = t.
Man muß also jedes gewürfelte x in f(x) = (N^-1)(x) transformieren. Die Umkehrung
des Gaußschen Fehlerintegrals" N muß man irgendwie numerisch bilden, aber das ist
"nur" ein rechentechnisches Problem (Tabelle, interpolieren, Approximation mit
arctan o.ä.).


Gruß Rainer


"Kai Winter" <tommy....@okay.net> wrote:
>Ich habe momentan das Problem, dass ich fuer ein Projekt die Transformation von
>gleichverteilten Zufallszahlen in die Gaussverteilung implementiern muss. Da das
>meines Wissens nach nicht analytisch loesbar ist, wollte ich fragen, ob sich
>jemand schon einmal mit diesem Problem der Implementierbarkeit befasst hat und
>eine Loesung gefunden hat?!

>Soweit vielen Dank
>Kai
>--

Horst Kraemer

unread,
Jul 12, 2000, 3:00:00 AM7/12/00
to
On 12 Jul 2000 10:57:37 +0200, "Rainer Jahn"
<raine...@maschinenbau.tu-ilmenau.de> wrote:

> Hallo Kai,
> ich überlege mir, welche eineindeutige Funktion f man auf eine gleichverteilte
> Zufallsgröße X anwenden muß, damit sie normalverteilt wird. Es sei N die
> Wahrscheinlichkeitsfunktion einer Normalverteilung und G die
> Wahrscheinlichkeitsfunktion der Gleichverteilung auf dem Intervall [0;1] (die
> Ableitung ergibt die jeweilige Wahrscheinlichkeitsdichte). Dann muß für alle t
> gelten:
> N(t) = P(f(X) < t) = P(X < (f^-1)(t)) = G((f^-1)(t))
> (G^-1)(N(t)) = (f^-1)(t)
> (N^-1)(G(t)) = f(t)
> f(t) = (N^-1)(t) für t aus [0;1] wegen G(t) = t.
> Man muß also jedes gewürfelte x in f(x) = (N^-1)(x) transformieren. Die Umkehrung
> des Gaußschen Fehlerintegrals" N muß man irgendwie numerisch bilden, aber das ist
> "nur" ein rechentechnisches Problem (Tabelle, interpolieren, Approximation mit
> arctan o.ä.).

So weit muss man nicht gehen.

Der Trick ist, dass man nicht eine eindimensionale sondern eine
zweidimensionale Standard-Normalverteilung simuliert, deren x- und y-
Komponenten jeweils ein unabhaengiges Paar Standard-normalverteilter
eindimensionaler ZV ergibt. Die zweidimensionale
Standardnormalverteilung laesst sich leicht simulieren, da der Abstand
r eines zweidimensionales standardnormalverteilten "Zufallspunktes"
vom Ursprung die Verteilungsfunktion

F(r) = 1-exp (-r^2/2) r>=0

mit der Umkehrfunktion

G(y) = sqrt(-2log(1-y))

hat (Uebungsaufgabe ;-). Man nehme also ein in [0,1) gleichverteiltes
Sample y1, berechne

r = sqrt(-2log(1-y1))

Dann nimmt man noch mittels eines zweiten Samples y2 einen zufaelligen
Drehwinkel

phi = 2pi*y2

und man hat die Polarkoordiaten eines zweidimensionalen
standardnormalverteilten Samples. Ergibt zwei unabhaengige
eindimensionale Samples

x = r*cos(phi)
y = r*sin(phi)


MfG
Horst


Rainer Jahn

unread,
Jul 14, 2000, 3:00:00 AM7/14/00
to
Hallo Horst,
vielen Dank für die Information. Das ist natürlich ein viel eleganteres Verfahren.


horst....@gmx.de (Horst Kraemer) wrote:
>Der Trick ist, dass man nicht eine eindimensionale sondern eine
>zweidimensionale Standard-Normalverteilung simuliert, deren x- und y-
>Komponenten jeweils ein unabhaengiges Paar Standard-normalverteilter
>eindimensionaler ZV ergibt. Die zweidimensionale
>Standardnormalverteilung laesst sich leicht simulieren, da der Abstand
>r eines zweidimensionales standardnormalverteilten "Zufallspunktes"
>vom Ursprung die Verteilungsfunktion
>
> F(r) = 1-exp (-r^2/2) r>=0
>
>mit der Umkehrfunktion
>
> G(y) = sqrt(-2log(1-y))
>
>hat (Uebungsaufgabe ;-).


Die "Übungsaufgabe" läuft auf die Integration der gemeinsamen Dichte von X, Y
(beide standardnormalverteilt, unabhängig) über eine Kreisscheibe hinaus.


Gruß Rainer

0 new messages