Quelle bibliothèque java calcule la fonction de distribution normale standard cumulative?
-
22-07-2019 - |
Question
Pour un projet, j'ai une spécification avec des formules, que je dois implémenter. Dans ces formules, il existe une fonction de distribution normale standard cumulative, qui prend un float et génère une probabilité. La fonction est symbolisée par un & # 934 ;. Existe une bibliothèque Java, qui calcule cette fonction?
Autres conseils
Apache Commons - Mathématiques a ce que vous recherchez.
Plus précisément, consultez le NormalDistribution
classe.
Si vous voulez le code exact, celui-ci semble être la même fonction utilisée dans OpenOffice Calc (j'ai apporté quelques modifications pour que cela fonctionne en Java):
// 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);
}
Vous le trouverez ici: http://www.codeproject.com/ Messages / 2622967 / Re-NORMSDIST-function.aspx
SuanShu, une bibliothèque d'analyse numérique Java , calcule la distribution normale et de nombreuses autres distributions statistiques.
Vous pouvez utiliser la formule de la série power, qui ne prend qu'environ 10 lignes de code ... voir par exemple http://introcs.cs.princeton.edu/java/22library/Gaussian.java.html (la fonction Phi
)