You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab实现均匀随机变量期望时结果不符的问题排查

你的代码其实没有错误!

嗨,Michael!先别着急——你看到的收敛值0.46其实完全符合理论结果,咱们来一步步理清楚:

首先,先计算一下理论期望的具体数值:
1 - cos(1) 这个表达式的结果大约是 0.4597,和你观察到的0.46几乎一致,只是四舍五入的差异而已。

为什么序列会收敛到1 - cos1?

这是大数定律的直接应用:

  • 你生成的每个X_k都是独立同分布的均匀随机变量,服从U[0,1];
  • 对于每个X_k,它的期望E[sin(X_k)]可以通过积分计算:
    $$E[\sin X] = \int_0^1 \sin x , dx = -\cos x \bigg|_0^1 = 1 - \cos1$$
  • 根据大数定律,当样本量N趋向于无穷大时,样本均值$\frac{1}{N}\sum_{k=1}^N \sin(X_k)$会依概率收敛到这个理论期望。

补充建议:

你可以在代码里加入理论值的计算和对比,让结果更直观:

n = [2^5,2^6,2^7,2^8,2^9,2^10,2^11,2^12,2^13];
theoretical = 1 - cos(1); % 计算理论期望
disp(['理论期望:', num2str(theoretical)]);

for i=1:9
    X = rand(n(i),1);
    E(i) = sum(sin(X))/n(i);
    disp(['样本量', num2str(n(i)), '对应的样本均值:', num2str(E(i))]);
end

运行这段代码后,你会看到每个样本均值都在理论值附近波动,且随着样本量增大越来越接近0.4597。

内容的提问来源于stack exchange,提问作者ms_stud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:35:25