蒙特卡罗方法入门
本文通过五个例子,介绍蒙特卡罗方法(Monte Carlo Method)。 一、概述 蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。 它非常强大和灵活,又相当简单易懂,很容易实现。对于许多问题来说,它往往是最简单的计算方法,有时甚至是唯一可行的方法。 它诞生于上个世纪40年代美国的"曼哈顿计划",名字来源于赌城蒙特卡罗,象征概率。 思路:首先产生大量随机样本,观察样本的分布情况,从中总结出一般规律,可以推算出问题的近似解。 二、圆周率 π 的计算 第一个例子是,如何用蒙特卡罗方法计算圆周率 π 。 正方形内部有一个相切的圆,它们的面积之比是 π /4。 现在,在这个正方形内部,随机产生10000个点(即10000个坐标对 (x, y)),计算它们与中心点的距离,从而判断是否落在圆的内部。 如果这些点均匀分布,那么圆内的点应该占到所有点的 π/4,因此将这个比值乘以4,就是 π 的值。通过R语言脚本随机模拟30000个点, π 的估算值与真实值相差0.07%。 三、积分的计算 上面的方法加以推广,就可以计算任意一个积分的值。 比如,计算函数 y = x 2 在 [0, 1] 区间的积分,就是求出下图红色部分的面积。 这个函数在 (1,1) 点的取值为1,所以整个红色区域在一个面积为1的正方形里面。在该正方形内部,产生大量随机点