Frage

Für ein Projekt habe ich eine Spezifikation mit Formeln, ich habe zu implementieren. In diesen Formeln existiert eine kumulative Standardnormalverteilungsfunktion nimmt, dass ein Schwimmer und gibt eine Wahrscheinlichkeit. Die Funktion wird durch einen Φ symbolisiert. Es liegt eine Java-Bibliothek, die diese Funktion berechnet?

War es hilfreich?

Lösung 3

Ein Mitarbeiter vorgeschlagen Fohlen , wie er es zuvor. Diese Funktion hat genau das Ergebnis, wie das Beispiel im Referenzdokument.

Andere Tipps

Apache Commons - Math. hat, was Sie suchen

Insbesondere Besuche die NormalDistribution Klasse.

Wenn Sie den genauen Code wollen, scheint dies eine die gleiche Funktion in Openoffice Calc verwendet werden (ich habe einige Änderungen vorgenommen für es in Java zu arbeiten):

// returns the cumulative normal distribution function (CNDF)
// for a standard normal: N(0,1)
double CNDF(double x)
{
    int neg = (x < 0d) ? 1 : 0;
    if ( neg == 1) 
        x *= -1d;

    double k = (1d / ( 1d + 0.2316419 * x));
    double y = (((( 1.330274429 * k - 1.821255978) * k + 1.781477937) *
                   k - 0.356563782) * k + 0.319381530) * k;
    y = 1.0 - 0.398942280401 * Math.exp(-0.5 * x * x) * y;

    return (1d - neg) * y + neg * (1d - y);
}

hier gefunden: http://www.codeproject.com/ Nachrichten / 2622967 / Re-NORMSDIST-function.aspx

SuanShu, eine Java numerische Analyse Bibliothek , berechnet die Normalverteilung und viele andere statistische Verteilungen.

Sie könnten die Potenzreihe Formel verwenden, die nur etwa 10 Zeilen Code in Anspruch nimmt ... siehe zum Beispiel der http://introcs.cs.princeton.edu/java/22library/Gaussian.java.html (die Funktion Phi)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top