Apache Commons Math 正态分布累积概率

3

维基百科列出了一系列用于计算正态分布累积概率的数字方法。然而,有了Apache Commons Math,你就无需了解它们中的任何一个,因为该库只需为您完成任务:

NormalDistribution normal = new NormalDistribution(mu, sigma);
normal.cumulativeProbability(x);

为了某项研究项目,我想了解Apache Commons Math用于逼近正态分布累积值的方法。有人知道吗?他们是使用维基百科列出的方法还是实现了不同的方法?

2个回答

5
开源软件的美妙之处在于您始终可以检查源代码。cumulativeProbability的实现相当简单,它只是返回。
0.5 * (1 + Erf.erf(dev / (standardDeviation * SQRT2)));

这里的Erf.erf计算误差函数。其定义在这里

不过,它并未使用维基百科文章中提到的任何特殊方法。它只是直接实现了该公式。

enter image description here


谢谢。为了完整起见,我想提一下错误函数没有一个闭合的公式,而是使用一些数值方法来近似计算。 - Pro.Hessam
1
你可以通过查看special包中Erf的实现来了解Commons Math的具体功能。它确实使用了维基百科Erf文章中提到的方法。[1]:http://en.wikipedia.org/wiki/Error_function#Approximation_with_elementary_functions - Phil Steitz

1

谢谢,但我的问题在Javadoc中没有得到解答。而且我倾向于在查看源代码之前先向同行提问。 - Pro.Hessam
1
@Pro.Hessam 这有点粗鲁。你只需要几秒钟就可以查看源代码,但你选择不这样做,而是依赖他人的时间和耐心来完成你的工作。 - Carsten
@Carsten 我希望能在社区里找到熟悉这个库的人来回答我的问题,而不是浪费任何人的时间。 - Pro.Hessam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接