2011-03-12 57 views
7

我有一個功能,該功能在如下的概率分佈函數的形式:在Java中問題實現的概率分佈函數

formula

雖然我發現一些LIB提供功能,以獲得結果作爲上述式會做;但我正在學習實施它,所以如果可能的話,我想盡我所能。

下面是我能想到的實現功能

 
public double pdf(double x){ 
    double mean = mean(); 
    double variance = variance(); 
    double base = 1/Math.sqrt(2*Math.PI*variance); 
    double pow = -(Math.pow((x-mean), 2)/2*variance); 
    return Math.pow(base, pow); 
} 

是,這是實現PDF格式的正確方法時?或者我錯過了哪些部分?

我很感激任何幫助。

+1

您可以使用http://www.texify.com正確顯示公式。 – JoeSlav 2011-03-12 12:24:15

+2

您需要以集成形式提供函數p(x)(即已經解決的積分),以便我們查看Java算法是否真正匹配它。 – 2011-03-12 12:59:59

回答

1

pdf方法實現正態分佈的概率密度函數,但它似乎要實現累積正態分佈函數(或至少是它的變化)。對於正態分佈,這是非常平凡的,因爲它涉及無限積分。

您可以嘗試使用諸如梯形法則之類的方法進行數值積分,但我懷疑隨着距離平均值越來越遠,不準確度開始增加。

如果你要實現的累積正態分佈函數,那麼有兩種方法,我建議:

0

不知道多少有關係,但也檢查Apache Commons數學的東西。我發現它非常乾淨和有用。

org.apache.commons.math.stat.descriptive.DescriptiveStatistics在一端工作,分析給定的分佈。

org.apache.commons.math.distribution.Distribution在另一端用於生成分佈。

這些應該給你一些關於APIs和一些代碼來研究實現的想法。您可能想要研究的其他開放源代碼統計軟件包。