蒙特卡洛法模拟器 返回
数值分析·统计

蒙特卡洛法·统计模拟器 — 中心极限定理与分布收敛

通过随机抽样估计π·计算积分·体验中心极限定理。实时动画可视化蒙特卡洛法的收敛过程。包含随机游走和扩散过程。

ms
计算结果
估计值
真值
误差
样本数
0
主图
收敛图
可视化
理论·主要公式
向单位正方形内随机投掷飞镖,根据落在 $x^2+y^2 \le 1$ 圆内的比例: $$\pi \approx 4 \times \frac{\text{圆内的数量}}{N}$$ 误差为 $O(1/\sqrt{N})$ 递减。
母平均 $\mu$、母方差 $\sigma^2$ 时,
$$\bar{X}_n \xrightarrow{d}N\!\left(\mu,\frac{\sigma^2}{n}\right)$$ $n$ 越大越接近正态分布。
在 $[0,1]$ 上随机选择 $x_i$,
$$\int_0^1 f(x)\,dx \approx \frac{1}{N}\sum_{i=1}^N f(x_i)$$ 通过曲线下点数占总点数的比例 × 面积来估计。
每步独立选择方向。
均方位移 $\langle r^2 \rangle = N \cdot (\Delta x)^2$
这是扩散方程的基础:$\langle r^2 \rangle = 2dDt$

蒙特卡洛法模拟器介绍

🙋
蒙特卡洛法真的能通过随机投掷飞镖来计算圆周率吗?
🎓
完全可以!大概的原理是向正方形内随机投掷飞镖,然后根据落在圆内的比例来估计π。在这个模拟器中,试着增大"N"的值,你会看到推定值逐步趋近于3.14159...,整个收敛过程实时显示。
🙋
那既然是随机的,怎么能保证收敛呢?误差大概是多少?
🎓
问得好!这是因为大数定律在起作用。误差与样本数的平方根成反比,也就是 $O(1/\sqrt{N})$。换句话说,要使精度提高10倍,需要增加100倍的样本数。从N=500到N=50000,你可以看到这个趋势。上面的"绘制速度"滑块可以加快过程。
🙋
我看到有"中心极限定理"、"数值积分"和"随机游走"的选项,这些也都用到随机数吗?
🎓
是的!中心极限定理展示的是,无论什么分布的样本,只要重复足够多次取平均,结果就会趋向正态分布。数值积分用的是"随机点在曲线下的比例"来估计面积。随机游走则模拟粒子的扩散行为。这些都是蒙特卡洛法的应用。试试改变参数,看看分布如何变化吧。

常见问题

增大样本数 N 会使误差按 O(1/√N) 的速度减小。具体地,把 N 增加 4 倍,误差就会减半。此外,伪随机数生成器的质量也会影响精度,所以生产环境中推荐使用高质量的生成器如梅森旋转算法。
蒙特卡洛法基于随机抽样,所以每次运行都会有不同的结果。这是统计误差,N越小波动越大。但当N足够大时(如10000以上),推定值会更加稳定,波动范围会缩小。
可以处理在单位正方形内定义的任意连续函数,包括 f(x)=x²、sin(πx)、eˣ 等多项式和超越函数。只要函数的值域不太大,收敛就会比较快。如果值域很大,可能需要更多样本。
这通常是因为每个样本的大小(n)太小或重复次数不足。建议增大"标本量"(n≥30)和"重复次数"(试试2000以上),这样就能看到更明显的钟形曲线。

实际应用

金融风险评估:用蒙特卡洛法估计期权价格和投资组合的风险值(VaR)。通过模拟股价的随机波动,可以计算出损失超过某个阈值的概率。

放射治疗计划:在人体内模拟放射线的轨迹和能量沉积。用蒙特卡洛法可以精确计算每个组织体素的吸收剂量,从而优化治疗方案,最大化肿瘤杀伤,最小化正常组织伤害。

半导体器件设计:微观尺度上电子的运动涉及随机散射和扩散。蒙特卡洛模拟可以预测电流-电压特性和可靠性。

计算机图形学(光线追踪):通过随机采样光线路径来生成逼真图像。漫反射、间接光等复杂光学现象可以用蒙特卡洛法精确模拟。

常见误区与注意事项

首先要避免"随机就能解决任何问题"的错觉。蒙特卡洛法并非万能,某些问题的收敛极其缓慢。例如金融中的"尾部风险"(rare event),直接用蒙特卡洛估计需要天文数字的样本,此时需要"重要性抽样"等高级技巧。

其次,伪随机数的质量至关重要。我们这里用的是JavaScript内置的Math.random(),周期可能有限,高精度的科学计算会用梅森旋转或PCG等更好的生成器。如果周期太短或有偏差,模拟结果就会失真。

最后,不要仅凭一次运行的图形判断精度。要科学地评估模拟精度,应该独立运行多次(如100次),计算估计值的标准差。这个模拟器的"N=10000"每次得到的值都不同,这恰好说明了统计误差的真实存在。要真正验证收敛,看标准差随N增大而减小的趋势。

使用指南

  1. π估计模拟中,在piNNum输入框指定试验次数(例:10000),用piSpeed调整绘制速度(1~100),然后点击开始执行
  2. 中心极限定理(CLT)验证中,cltN设置每次试验的样本数(例:n=30),cltTrial设置重复试验次数(例:1000次),观察样本平均分布向正态分布的收敛
  3. 实时图表展示理论值与实测值的偏差程度,确认样本量增加时标准误差SE=σ/√n的减小效果

具体计算示例

π估计中,10000次乱数生成时,单位正方形(1×1)内均匀分布点数与四分圆内部点数的比率出现π≈3.14159。中心极限定理验证中,平均值μ=0、标准差σ=1的正态分布,每次抽30个样本,重复1000次,样本平均的标准误差SE=1/√30≈0.183,理论值与实测值偏差在±0.2以内收敛。对于柯西分布等厚尾分布,即使n=100也会出现收敛失败。

实务注意