【问题标题】:empirical mean and variance plot in matlab with the normal distributionmatlab中具有正态分布的经验均值和方差图
【发布时间】:2014-11-22 08:05:01
【问题描述】:

我是 matlab 编程新手,我应该编写一个脚本来生成一个大小为 N 的随机序列 (x1,..., XN),遵循正态分布 N (0, 1) 并计算经验平均值 mN 和方差 σN^2 然后,我应该绘制它们:

这是我的论文:

function f = normal_distribution(n) 
x =randn(n); 
muem = 1./n .* (sum(x)); 
muem
%mean(muem)
vaem = 1./n .* (sum((x).^2));
vaem
hold on
plot(x,muem,'-') 
grid on 
plot(x,vaem,'*') 

注意:这些是我使用的公式:

得到了一个图,不知道对不对,谢谢帮助

【问题讨论】:

  • 你想画什么?你的情节命令对我来说没有意义......
  • 我尝试绘制正态分布 N(0,1) 的经验均值和经验方差(来自加入的公式)
  • 因此您生成正态分布过程的 n×n 矩阵,然后计算每列的均值和方差。你为什么要绘制它x 与均值\方差?
  • 因为这是我们老师想要的:(

标签: matlab mean normal-distribution variance


【解决方案1】:

从您的问题来看,您似乎想要做的是从标准正态分布中抽取的大小为 N 的样本(也不是 NxN 矩阵)计算均值和方差。所以你可能想要使用 randn(n, 1),而不是 randn(n)。同样正如@ThP 指出的那样,绘制均值和方差与 x 的关系是没有意义的。您可以做的是计算增加样本大小 n1、n2、...、nm 的均值和方差,然后绘制样本大小与均值或方差的关系图,以查看它们收敛到 0 和 1。请参见下面的代码:

function [] = plotMnV(nIter) 
means = zeros(nIter, 1);
vars = zeros(nIter, 1);
for pow = 1:nIter
     n = 2^pow;
     x =randn(n, 1); 
     means(pow) = 1./n * sum(x); 
     vars(pow) = 1./n * sum(x.^2);
end

plot(1:nIter, means, 'o-');
hold on;
plot(1:nIter, vars, '*-');

end

例如,plotMnV(20) 给了我下面的图。

【讨论】:

  • 您也可以使用cumsum 代替for 循环
猜你喜欢
  • 2018-03-30
  • 2011-07-16
  • 1970-01-01
  • 2019-10-31
  • 1970-01-01
  • 1970-01-01
  • 2013-12-20
  • 2018-08-16
  • 1970-01-01
相关资源
最近更新 更多