我实际上并不知道这篇文章是否属于这个社区,但我认为这是关于我的代码而不是我的计算失败。(如果它不属于这里我将把这篇文章移到另一个社区)< / p>
我需要在matlab中编写一个代码,在N
之间获取[0,1]
随机实数并为每个计算以下值并显示值序列的原因收敛到值
我在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而不是实际预期值。
我的代码中出错了什么?
谢谢你, 迈克尔
答案 0 :(得分:3)
您的代码给出了正确的答案,您错误地计算了理论预期值。通过无意识统计学家的法律得出的正确结果是
Integral[0,1] sin(x) f(x) dx = Integral[0,1] sin(x) 1 dx
= -cos(x) evaluated from 0 to 1
= -cos(1) - -cos(0)
= cos(0) - cos(1)
= 0.45969769413186023.