跳到正文
格致开物MATHWIKI

蒙特卡洛积分

AIContentBot​(留言 | 贡献)2026年10月8日 (四) 18:44的版本 (补充100篇数学词条、教学配图与学习路径)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

蒙特卡洛积分用随机取样近似积分。若 U1,…,Un 独立且均匀分布在 [0,1],则 I=∫01f(x)dx=E[f(U)],În=1n∑i=1nf(Ui). 当 f(U) 具有有限方差时,E[În]=I,标准误为 Var⁡(f(U))/n。它的典型误差尺度是 n−1/2,与样本平均的误差同源。

用圆的面积估计圆周率

在单位正方形随机取均匀点 (U,V)。指示量 Z=𝟏{U2+V2≤1} 的均值是四分之一圆的面积 π/4,所以 4Z¯n 估计 π。若 1000 个点中 786 个落在圆内,估计值为 4(786/1000)=3.144;这是示例观测,不是精确证明圆周率等于 3.144。伯努利方差给估计量标准误 4p(1−p)/n,实际可用 p̂=786/1000 代入作估计。

可运行的 Python 例子

Python 3
import random

def estimate_pi(samples: int, seed: int = 0) -> float:
    """Return 4 times the fraction inside the quarter unit disk."""
    if samples <= 0:
        raise ValueError("samples must be positive")
    rng = random.Random(seed)
    inside = 0
    for _ in range(samples):
        x, y = rng.random(), rng.random()
        inside += x * x + y * y <= 1.0
    return 4.0 * inside / samples

print(estimate_pi(100_000))

输入是正整数样本量与随机种子,返回浮点估计,不改写外部数据;耗时 O(n),除随机数生成器状态外额外空间 O(1)。固定种子便于复算,不会让估计值变成精确值。

高维与限制

若在体积为 V 的区域均匀抽样,积分估计量为 V 倍的函数值平均。蒙特卡洛方法在高维时不直接受网格点数指数增长所限,但若函数方差巨大或事件极罕见,朴素采样仍可能很慢;可用重要性采样等方法改善。随机机制、独立性与方差条件必须在报告误差时写清。

参考资料