【问题标题】:Theoretical Plot of Probability Density Function概率密度函数的理论图
【发布时间】:2014-10-17 04:44:38
【问题描述】:

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

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');

但这根本不符合实际。我在这里想念什么?这是我的情节目前的样子。蓝色为实际值,红色为理论值。

【问题讨论】:

  • 您的理论 sigma 显然是错误的,例如 plot(x,normpdf(x,0,1/pi),'r');
  • @ClockworkOrkwork 成功了。当然,我的 sigma 是错误的……谢谢! :) 我不能完全接受你的评论作为答案...... ;)

标签: matlab


【解决方案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);

【讨论】:

    猜你喜欢
    • 2016-06-07
    • 2012-11-21
    • 2017-09-20
    • 1970-01-01
    • 2019-04-19
    • 2019-07-19
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    相关资源
    最近更新 更多