首先直观上理解: 1.第一个例子:π的计算,如何用蒙特卡罗方法计算圆周率π。 正方形内部有一个相切的圆,它们的面积之比是π/4。
现在,在这个正方形内部,随机产生10000个点(即10000个坐标对 (x, y)),计算它们与中心点的距离,从而判断是否落在圆的内部。 如果这些点均匀分布,那么圆内的点应该占到所有点的 π/4,因此将这个比值乘以4,就是π的值。通过R语言脚本随机模拟30000个点,π的估算值与真实值相差0.07%。
2.积分的计算 上面的方法加以推广,就可以计算任意一个积分的值。 比如,计算函数 y = x2 在 [0, 1] 区间的积分,就是求出下图红色部分的面积。
这个函数在 (1,1) 点的取值为1,所以整个红色区域在一个面积为1的正方形里面。在该正方形内部,产生大量随机点,可以计算出有多少点落在红色区域(判断条件 y < x2)。这个比重就是所要求的积分值。 用Matlab模拟100万个随机点,结果为0.3328。
3.
理论上解释: 针对射击问题的那个例子,对下述理论就比较好理解了。
参考: http://www.ruanyifeng.com/blog/2015/07/monte-carlo-method.html http://www.docin.com/p-429765423.html http://blog.csdn.net/itplus/article/details/19168937
新闻热点
疑难解答