2012-02-08 49 views
1

我想能夠從很少的數據生成這些bellcurves:生成PHP不同的鐘形曲線與小數據

bell cuves

我正在尋找一個函數在PHP,會給我這些鐘形曲線生成的數據。我還不知道要用什麼來顯示它們,但我首先需要數據。

我不是在數學很好,我已經嘗試創造一些正態分佈,但沒有一種簡單的方法說:「我要薄鐘形曲線」或「我要一個大的」。

也許使用都在圖片的右側頂部的上述參數可能會很酷。

會有人知道我可以重現PHP這些圖的數據點?

謝謝!

回答

4

嗯,你可以查查normal distribution's probability density on Wikipedia的公式。

一個PHP實現這一功能的是這樣的:

function normal($x, $mu, $sigma) { 
    return exp(-0.5 * ($x - $mu) * ($x - $mu)/($sigma*$sigma)) 
     /($sigma * sqrt(2.0 * M_PI)); 
} 

這個功能會給你你張貼的鐘形曲線的值。 我真的建議你閱讀功能維基百科的文章,但簡單地說,$mu標誌着鐘形曲線的中央峯的位置和$sigma決定了它的寬度($sigma一個較大的值意味着更廣泛的分佈)。

+0

花了我一些時間來了解它,但謝謝你!效果很好! – xtrimsky 2012-02-08 23:54:31

+0

當我輸入這個:$ x = 0,$ mu = 0,$ sigma = 0.2(藍色路邊),它給我1.99。這與上面的圖片不同(取自維基百科)。有什麼不對 ?維基百科圖像是否錯誤?或者它是功能? – xtrimsky 2012-02-09 00:13:46

+0

不,大約1.99是正確的。我的猜測是這些圖像只是試圖說明分佈(它們的形狀爲「$ sigma」的不同值),並不能提供準確的值。也請看這個網頁:http://www.wolframalpha.com/input/?i=normal+distribution%2C+mu%3D0%2C+sigma%3D0.2 – Carsten 2012-02-09 00:48:15