转载需注明出处:https://www.codelast.com/

查看本系列文章合集,请点击这里

为了对蒙特卡罗方法有一个直观的印象,我们先举一个实例(计算圆周率 \pi ),让从来没有接触过蒙特卡罗方法的人产生“原来这就是Monte Carlo”的感觉,以减少刚开始学习的困惑。

  • 非蒙特卡罗方法

圆周率 \pi 可以怎么计算?其中一个“常规”的方法就是利用 \pi 的莱布尼茨公式:
\frac{\pi }{4} = \sum\limits_{n = 0}^\infty {\frac{{{{\left( { - 1} \right)}^n}}}{{2n + 1}}} = 1 - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} + \frac{1}{9} - \cdots
不断增大 n 的值,就能越来越逼近 \frac{\pi }{4}
n 的最大值取30000时,可以计算得 \pi = 3.141559320256462

  • 蒙特卡罗方法

相比之下,用蒙特卡罗方法来计算 \pi ,可能就是一个比较“另类”的途径了。
假设圆外部有一个相切的正方形,如下图所示:
monte carlo method calculate pi example
文章来源:https://www.codelast.com/
设圆面积为C,正方形面积为S,则利用面积公式可以轻易算得: \frac{C}{S} = \frac{{\pi {r^2}}}{{{{(2r)}^2}}} = \frac{\pi }{4}
然后,我们在正方形内随机生成30000个点(当然可以生成更多,这里只是用30000举个例子),分别计算这些点与圆心的距离,距离<r 表示点在圆内部:
monte carlo method calculate pi example
文章来源:https://www.codelast.com/
从面积之比可知:如果点是均匀分布的,则圆内的点的数量应该占所有点数量的 \frac{\pi }{4} ,计算数量之比,再乘以4,即可得圆周率。
在某一次实验中,模拟30000个点, \pi 的估算值与真实值相差0.07%
所以,这里正是巧妙地利用了“随机”这个技术,来计算了圆周率,这种方法就属于蒙特卡罗方法。

  • 参考文献

维基百科: \pi 的莱布尼茨公式
► 蒙特卡罗方法入门

[原创] 蒙特卡罗方法的实例1:计算圆周率

发表评论

电子邮件地址不会被公开。 必填项已用*标注