Die Generierung der Werte von der Normalverteilung mit Hilfe von Box-Muller-Methode

Schreibe ich eine kleine Funktion zum generieren der Werte von der Normalverteilung mit Hilfe von Box-Muller-Methode, aber ich bin immer negative Werte.

Hier ist mein source code

import random

def generate_normal(mu, sigma):
    u = random.random()
    v = random.random()

    z1 = sqrt(-2 * log(u)) * sin(2 * pi * v)
    z2 = sqrt(-2 * log(u)) * cos(2 * pi * v)

    x1 = mu + z1 * sigma
    x2 = mu + z2 * sigma

    return x2

Was bin ich? Ich bin immer negative Werte in beiden x1 und x2. Zum Beispiel:

mu: 400
sigma: 150
u: 7.27333176449e-05
v: 0.642384573173
z1: -3.40497345242
x1: -110.746017863

und:

x2: -9.79324023117
Schreibe einen Kommentar