概率密度函数的理论图形

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
你的理论标准差明显是错误的,尝试使用例如 plot(x,normpdf(x,0,1/pi),'r'); - Maksim Gorkiy
@ClockworkOrkwork 有用。当然我的 sigma 错了...谢谢!:) 不过我还不能完全接受您的评论作为答案... ;) - codedude
1个回答

1
你的y并不是来自均匀分布;它们来自于一个均值为0,方差为1/12的均匀分布的独立同分布随机变量之和的分布。当求和变量数量很大时(在你的情况下是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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接