2014-10-02 142 views
3

我使用的是情節的概率密度函數的理論曲線:概率密度函數

y = zeros(1,10000); 
for j=1:10000 
    r = rand(100,1); 
    for i=1:100 
     y(j) = y(j) + r(i) - 0.5; 
    end 
    y(j) = y(j)/sqrt(100); 
end 
[n,x] = hist(y,100); 
plot(x,n/10000/diff(x(1:2))); 
hold on; 

不過,我也想打印的理論了。最好的,我似乎已經管理如下:

plot(x,normpdf(x,0,1),'r'); 

但是,這並沒有遵循實際的。我在這裏錯過了什麼?這是我現在的情節。藍色是實際的,紅色是理論。

enter image description here

+1

你的理論西格瑪顯然是錯誤的,嘗試例如'情節(X,normpdf(X,0,1/PI), 'R');' – 2014-10-02 18:39:32

+0

@ClockworkOrkwork工作。當然,我的西格瑪錯了......謝謝! :)雖然我不能完全接受你的評論作爲答案......;) – codedude 2014-10-02 18:47:41

回答

1

你y會被不均勻分佈來;它們來自均勻分佈的均勻分佈均值爲0和方差爲1/12的i.i.d(獨立同分布)隨機變量之和的分佈。 sum approaches normal distribution作爲總和變量的數量(在你的情況下爲100)變大。 使用你的代碼,我卻能達到一個非常好的契合normpdf,用正確的方差爲1/12(SIGMA是這個數的平方根):

y2=normpdf(x,0,sqrt(1/12)); 
plot(x,y2,'r'); 

順便說一句,您的MATLAB代碼可以製成更簡單和更可讀與替換第一8行:

r=rand(100,10000)-0.5; 
y=sum(r)/sqrt(100);