Mento Carlo方法

蒙特·卡罗(Monte Carlo)方法简介

      蒙特·卡罗(Monte Carlo)原是摩纳哥一个非常著名的赌场(与其所在城市同名),所以如果知道这点,就不由得让人感觉以此来命名的统计方法岂不会很厉害。这个方法也的确很适合与赌场相配,因为它和别的算法最与众不同之处就在于它并不用确定性的想法去解值,相反而是用随机性的思路去试探结果来解决问题,所以当初这个算法的研究者之一十分乐意的取了这个名字同时也来对他在赌场奋斗的叔叔表示敬意,表现的十分人性化,也就从此弃用了最初使用的更学术化的名称“统计取样”(”statistical sampling”)。

      蒙特卡罗方法其实也只是对一种思想的泛称,只要在解决问题时,利用产生大量随机样本,然后对这些样本结果进行概率分析,从而来预测结果的方法,都可以称为蒙特卡罗方法。最简单的也就是比如你不知道扔硬币两面的几率,然后就自己不停的扔,记录下结果,最后通过自己的实验来得出结果(当然实验不能有大偏差,像周星星在少林足球里面劝师兄那招就不行)。说了这个例子,感觉都有些贬低了这个方法,但重要的,这就是它的中心思想所在,只要能真正的实现随机数取样,就能作出很好的模拟。

      下面说一个它在积分里运用的例子,或者说的更牛一些,来求圆周率pi 值。还记得当初中学的时候,看见用割圆术来求圆周率,就从此一直对能求pi的方法感觉佩服。下面这个图,既可以视为一个函数求积分的示意图(即函数x2+y2=1, x>0, y>0),也可以看作是圆面积的四分之一,可是问题的最终,如果不知道pi值,也就无法求解。这时候,蒙特卡罗思想就可以派上用处了,同时如果来重新分析一下问题,下面这个图可以认为是在这个正方形里面随机取一个点,落在红色区域内的几率是多少,也就是对任意点(x,y),在0<x,y0<1的前提下,满足x2+y2<1的情况是多少。然后蒙特卡罗的想法就是,从[0,1]区间内随机给出x,y值,得到一点,然后计算其平方和是否小于1;以此来做个循环,直到达到规定的数值(当然越大越好)。当取1000个点,误差还有7%左右。有兴趣的不妨试试这个网址,Approximation of π with the Monte Carlo Method

pi circle

还有一点没有强调的就是,这儿给出的随机数必须均匀分布,比如,就不能有90%的时间从[0,0.5]取值,而只有10%在[0.5,1]取值。所以并不能确保如果只是闭上眼,在这个区域里瞎点就能比较正确的估算结果(当然往往样本也不够大)。不过如果没有别的更好的方法来解题,而且对付的还是选择题,就死马当活马医吧。

问题反过来之后,其实也还可以来确认给出的随机数是否均匀,比如这回如果求得是y=x的积分,在这个方形区域里概率显然是1/2,所以就可以和利用蒙特卡罗大样本取得的数值进行比较,如果在取点很大的情况下,偏差还是很大,就说明给出的随机数并不均匀。

这些均匀随机取值,然后与预定结果比较,重复大数量,最好都还是交给计算机来处理。蒙特卡罗方法也的确就是随着第一台计算机的诞生而茁壮成长,在曼哈顿工程和氢弹研制中都起到了非常重要的作用(应该不只只是用来求积分吧~)。现在就更是非常广泛的在各个领域得到了普遍应用,比如大分子模拟(Molecular Modeling),金融,视频游戏等等,只是不知道什么时候才能用到赌场上来大赚一笔,或者它本身就要求着先得大样本亲身体验才行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值