概率密度函数的理论图

时间:2014-10-02 18:02:08

标签: matlab

我正在使用概率密度函数:

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 个答案:

答案 0 :(得分:1)

你的y不是来自统一分布;它们来自均匀分布的i.i.d(独立同分布)随机变量之和的分布,均值为0,方差为1/12。 sum approaches normal distribution作为求和变量的数量(在您的情况下为100)变大。 使用你的代码,我能够很好地适应normpdf,正确的方差是1/12(西格玛是这个数字的平方根):

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

顺便说一句,你的matlab代码可以更简单,更易读,取代前8行:

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