蒙特卡洛定积分(一)
一、蒙特卡洛模拟法分类
蒙特卡洛法模拟法从其应用方面来划分,可以分成以下三种形式:
1)直接蒙特卡洛模拟。采用随机数学咧来模拟复杂随机过程的效应。
2)蒙特卡洛定积分(间接蒙特卡洛模拟)。利用随机数序列计算积分的方法。积分维数越高,该方法的积分效率就越高。
3)Metropolis蒙特卡洛模拟。以"马尔可夫"链形式产生系统的分布序列,该方法可以使我们能够研究经典和量子多粒子系统的问题。
二、直接、间接蒙特卡洛法简介
本文介绍其中间接蒙特卡洛模拟法求解定积分,顺带说一下直接蒙特卡洛法。摘录马文淦《计算物理学》中一段话,如下:
直接蒙特卡洛法使用的情况往往是问题本身具有一定的概率和数理统计性的情况,如核衰变过程等。该方法是按照实际问题所遵循的概率统计规律,用电子计算机进行直接的抽样试验,然后计算其统计参数。直接蒙特卡洛模拟法最充分体现出蒙特卡洛模拟法无可比拟的的特殊性和优越性,因而在物理学的各种各样问题中得到广泛的应用。该方法也就是通常说的"计算机试验"。
间接蒙特卡洛法是人为构造出一个适合的概率模型,然后依照该模型进行大量的试验,使它的某些统计参量正好是待求问题的解。
三、间接蒙特卡洛法应用
Buffon投针试验---求π的近似值(现在采用用级数展开逼近求解)。虽然Buffon投针试验精确度不高,就连小数点后第二位也是不精确的,但是作为直接蒙特卡洛法应用的例子,本文将对其展开分析求解。
题目太长懒得抄,给个度娘传送门:http://baike.baidu.com/link?url=X4w29nF0EJyzcu_wpgHBWvmxyfLd93cf-g06Wl7b3GnTCXK2m2Ksp-ro2Gq69I566zeI3TJpozmv1-i0jV73Ua 。
Buffon采用投针与平行线的夹角作为变量,并充分使用了cos的特性---cos在[0,π]是均匀分布的。这就出来我们需要求的π的,挺巧妙的。然后由于cos具有均匀型的特征,而蒙特卡洛方法自变量均匀时有对应的方法,这就一拍而和了。可能词不达意,不过读者可以慢慢体会。
稍微推导一下公式:
1)投针长为L,平行线之间距离为S,投针与垂直平行线方向夹角为a。那么投针与平行线相交的概率就是投针在垂直平行线方向上的投影与平行线距离的比值。
2)由于夹角a在[0,π]中是均匀分布的,那么投针和平行线相交的平均概率为
3) 为了计算方便,假设有L=S,那么公式可以简化为
4)如果投针N次,有M次和平行线相交。当N值充分大时,相交的频数M/N与概率相等,即有
四、Buffon试验代码
实在是不能再简单的入门级代码了......→_→这步就省略了吧。
关于生成伪随机数的算法,可以参考我的另一篇文章《伪随机数算法(一)》,里面解释相对比较详细。