哪个Java库计算累积标准正态分布函数?

问题描述:

对于一个项目,我有一个公式规范,我必须执行。在这些公式中,存在累积标准正态分布函数,其采用浮点并输出概率。该功能由Φ表示。存在一个Java库,计算这个函数?哪个Java库计算累积标准正态分布函数?

一位同事建议colt,因为他以前使用过。该function与参考文档中的示例具有完全相同的结果。

Apache Commons - Math有你在找什么。

更具体地说,请查看NormalDistribution类。

+0

这似乎太工作,因为小马库。非常感谢。 – Mnementh 2009-01-14 15:44:35

SuanShu,a Java numerical analysis library,计算正态分布和许多其他统计分布。

如果你想确切的代码,这一次似乎是在OpenOffice的Calc中使用相同的功能(我做了一些改变它在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); 
} 

在这里找到它:http://www.codeproject.com/Messages/2622967/Re-NORMSDIST-function.aspx

+0

问题想要正常分配的pdf! – 2013-06-04 11:30:31

您可以使用幂级数公式,只占用约10行代码...例如见http://introcs.cs.princeton.edu/java/22library/Gaussian.java.html(功能Phi