【发布时间】:2018-10-24 02:34:59
【问题描述】:
我实际上不知道这篇文章是否属于这个社区,但我认为这是我的代码失败而不是我的计算。(如果它不属于这里,我会将这篇文章移到另一个社区)
我在概率课程中得到了一个作业来证明以下随机变量 的期望值 。
我需要在 matlab 中编写代码,在 [0,1] 之间获取 N 随机实数并为每个 计算以下值 ,并说明为什么值序列会收敛到值
我在matlab中写了如下代码:
n = [2^5,2^6,2^7,2^8,2^9,2^10,2^11,2^12,2^13];
for i=1:9
X = rand(n(i),1);
E(i) = sum(sin(X))/n(i);
end `
但 E(i) 的值收敛到 0.46 而不是实际的期望值。
我的代码做错了什么?
谢谢你, 迈克尔
【问题讨论】:
-
请不要放代码图片。编辑您的问题并将代码复制粘贴到其中。工具栏上有一个按钮,您可以按该按钮将其格式化为代码。这样我们就可以在不输入代码的情况下试用您的代码。此外,我们可以在不眯着眼睛看图片中的小字体的情况下阅读它(在手机上,我什至无法放大到读起来舒服)。谢谢!
-
我没有在代码中看到错误。但可以改进:您可以使用
mean计算期望值。您应该在循环外预先分配E=zeros(size(n))。 -
你的计算有误。实际期望值为 1-cos(1) 或大约 0.46。
-
是的,你说得对……我已经编辑了这篇文章
标签: matlab random probability