-
求解结果并不是一个精确值,而是一个近似值。当投点的数量越来越大时,该近似值也越接近真实值。
蒙特卡洛方法也可以用于根据概率分布来随机采样的任务。
布丰投针问题是1777年法国科学家布丰提出的一种计算圆周率的方法:随机投针法。其步骤为:
首先取一张白纸,在上面绘制许多条间距为 的平行线。
取一根长度为 的针,随机地向纸上投掷 次,观测针与直线相交的次数,记做 。
计算针与直线相交的概率 。可以证明这个概率 。因此有:
由于向纸上投针是完全随机的,因此用二维随机变量 来确定针在纸上的具体位置。其中:
- 表示针的中点到平行线的距离,它是 之间的均匀分布。
- 表示针与平行线的夹角,它是 之间的均匀分布。
当 时,针与直线相交。
由于 相互独立,因此有概率密度函数:
因此,针与直线相交的概率为:
根据 即可得证。
对于函数 ,其在区间 上的积分 可以采用两种方法来求解:投点法、期望法。
投点法求积分:对函数 ,对其求积分等价于求它的曲线下方的面积。
此时定义一个常数 ,使得 ,该常数在区间 上的面积就是矩形面积 。
具体做法是:从 之间的均匀分布中采样 ,从 之见的均匀分布中采样 , 构成一个随机点。
- 若 ,则说明该随机点在函数 下方,染成绿色。
- 若 ,则说明该随机点在函数 上方,染成红色。
假设绿色点有 个,红色点有 个,总的点数为 ,因此有: 。
期望法求积分:假设需要求解积分 ,则任意选择一个概率密度函数 ,其中 满足条件:
令:
则有: ,它刚好是一个期望:设随机变量 服从分布 ,则 。
则期望法求积分的步骤是:
- 任选一个满足条件的概率分布 。
- 根据 ,生成一组服从分布 的随机数 。
- 计算均值 ,并将 作为 的近似。
在期望法求积分中,如果 均为有限值,则 可以取均匀分布的概率密度函数:
此时 , 。
其物理意义为: 为在区间 上函数的平均高度,乘以区间宽度 就是平均面积。
对于期望 ,如果 或者 的表达式比较复杂,则也可以转化为另一个期望的计算。
选择一个比较简单的概率密度函数 ,根据:
令 ,则原始期望转换为求另一个期望 。此时可以使用期望法求积分的策略计算。
采样问题的主要任务是:根据概率分布 ,生成一组服从分布 的随机数 。
通过均匀分布的采样的原理:假设随机变量 满足 ,则 的概率分布为:
因为 是 上面的均匀分布,因此 ; 为概率分布 的累计分布函数,因此 。因此上式刚好等于 ,即: 服从概率分布 。
这其中有两个关键计算:
- 根据 ,计算累计分布函数 。
- 根据 计算反函数 。
如果累计分布函数无法计算,或者反函数难以求解,则该方法无法进行。
对于复杂的概率分布 ,难以通过均匀分布来实现采样。此时可以使用 策略。
首先选定一个容易采样的概率分布 ,选择一个常数 ,使得在定义域的所有位置都满足 。
然后根据概率分布 随机生成一个样本 。
计算 ,以概率 接受该样本。
具体做法是:根据均匀分布 随机生成一个点 。如果 ,则接受该样本;否则拒绝该样本。
在高维的情况下会出现两个问题:
- 合适的 分布比较难以找到。
- 难以确定一个合理的 值。
这两个问题会导致拒绝率很高,无效计算太多。