2

維基百科has listed各種計算正態分佈累積概率的數值方法。然而,與Apache共享數學,你不需要知道任何人如干脆在圖書館做這項工作對您:Apache Commons Math正態累積概率

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

對於一些研究項目,我想知道他們用什麼方法。有誰知道Apache Commons Math使用什麼方法來近似正常的累計值?它是來自維基百科中列出的方法還是他們實現了不同的東西?

回答

4

開源軟件的美妙之處在於您可以隨時使用check the source code。的cumulativeProbability實現是相當簡單的,它只是返回

0.5 * (1 + Erf.erf(dev/(standardDeviation * SQRT2))); 

其中Erf.erf計算error function。它的定義爲here

不,它不使用上述維基百科文章中的任何特殊方法。這只是一個直觀的實現公式

enter image description here

+0

謝謝。爲了完整性,我想提一下,誤差函數沒有封閉的公式,並且使用某種數值方法近似。 –

+1

對,通過查看'special'包中'Erf'的實現,你可以清楚地看到Commons Math做了什麼。它確實使用維基百科Erf文章[1]中引用的方法。 [1]:HTTP://en.wikipedia.org/wiki/Error_function#Approximation_with_elementary_functions –

1
+0

感謝,但我的問題是沒有在Javadoc回答。在調查源代碼之前,我傾向於詢問我的同行。 –

+1

@ Pro.Hessam這有點粗魯。您可以在幾秒鐘內查看源代碼,而您選擇不這樣做,但依靠其他人的時間和耐心來完成您的工作。 – Carsten

+0

@Carsten我希望找到熟悉社區圖書館的人來回答我的問題。不要浪費任何人的時間。 –