2012-12-04 163 views
1

我將如何模擬的概率密度函數在MATLAB這樣概率密度函數

fx(x)={ x/8 0<=x<=4 
     { 0  Other 

謝謝!

1)推導逆累積分佈:從任意的概率密度函數

回答

7

模擬按如下進行。

2)從統一的[0,1]分佈模擬。

3)將統一的[0,1]數字插入逆累積分佈。

在你的情況中,你有一個很好的簡單概率密度來處理,讓我懷疑這是一個家庭作業問題。鑑於你沒有發佈任何代碼表明你已經試圖自己解決它,我不會爲你寫出答案。

相反,你爲什麼不去自己推導逆累積分佈?首先你需要獲得累積分配。這可以通過找到你的概率密度從負無窮到x的積分來完成,在你的情況下它等於從0到x的積分。一旦你完成了這個,你需要找到它的逆向。示例here應該足以向您展示如何爲您的簡單情況做到這一點。如果你得到那麼多,然後用rand(100, 1)來模擬均勻[0,1]密度下的100次繪製,然後將這些數字插入到你的逆累積分佈中。

如果遇到任何問題,請隨時編輯您的問題以添加它們,並對此答案留下評論,我會幫助您解決問題。我在下一個小時左右。

乾杯。

UPDATE:我的數字OP的作業是可能已經到期,爲了完整性:概率密度的積分,即累積分佈,是F(X)=(1/16)的x^2。請注意,當x = 0時,f(x)= 0,並且當x = 4時,f(x)= 1。這表明問題已正確說明了概率密度的域。接下來,f(x)意味着g(x)= 4 * x ^(1/2)的逆CDF。因此:

MyInverseCDF = @(x) (4 * sqrt(x)); 
MySimulatedDraw = MyInverseCDF(rand(100, 1)); 

我們可以直觀地驗證一切工作使用:

hist(MySimulatedDraw); 

一件事,這裏是另一個相關的問題,SO鏈接:defining-your-own-probability-distribution-function-in-matlab

+0

+1被如此外交!事情應該是這樣的。 – Adam27X

+0

謝謝科林。你說得對,這個問題確實來自作業。我們想通過使用符號集成來實現這一點。我只是想模擬這種情況,看看不同密度下概率的差異。 – Joe

+0

@Joe你解決了嗎?正如我所說,在我的回答中,如果遇到問題,請將它們發佈到此處,我很樂意提供幫助。 –