蒙特卡罗(Monte Carlo)方法简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蒙特卡罗(Monte Carlo)方法简介
蒙特卡罗(Monte Carlo)方法简介
蒙特卡罗(Monte Carlo)方法,也称为计算机随机模拟方法,是一种基于"随机数"的计算方法。
一起源
这一方法源于美国在第二次世界大战进研制原子弹的"曼哈顿计划"。Monte Carlo方法创始人主要是这四位:Stanislaw Marcin Ulam, Enrico Fermi, John von Neumann(学计算机的肯定都认识这个牛人吧)和Nicholas Metropolis。
Stanislaw Marcin Ulam是波兰裔美籍数学家,早年是研究拓扑的,后因参与曼哈顿工程,兴趣遂转向应用数学,他首先提出用Monte Carlo方法解决计算数学中的一些问题,然后又将其应用到解决链式反应的理论中去,可以说是MC方法的奠基人;Enrico Fermi是个物理大牛,理论和实验同时都是大牛,这在物理界很少见,在“物理大牛的八卦”那篇文章里提到这个人很多次,对于这么牛的人只能是英年早逝了(别说我嘴损啊,上帝都嫉妒!);John von Neumann可以说是计算机界的牛顿吧,太牛了,结果和Fermi一样,被上帝嫉妒了;Nicholas Metropolis,希腊裔美籍数学家,物理学家,计算机科学家,这个人对Monte Carlo方法做的贡献相当大,正式由于他提出的一种什么算法(名字忘了),才使得Monte Carlo方法能够得到如此广泛的应用,这人现在还活着,与前几位牛人不同,Metropolis很专一,他一生主要的贡献就是Monte Carlo方法。
蒙特卡罗方法的名字来源于摩纳哥的一个城市蒙地卡罗,该城市以赌博业闻名,而蒙特•罗方法正是以概率为基础的方法。与它对应的是确定性算法。
二解决问题的基本思路
Monte Carlo方法的基本思想很早以前就被人们所发现和利用。早在17世纪,人们就知道用事件发生的"频率"来决定事件的"概率"。19世纪人们用投针试验的方法来决定圆周率π。本世纪40年代电子计算机的出现,特
别是近年来高速电子计算机的出现,使得用数学方法在计算机上大量、快速地模拟这样的试验成为可能。
为了说明Monte Carlo方法的基本思想,让我们先来看一个简单的例子,从此例中你可以感受如何用Monte Carlo方法考虑问题。
例1:比如y=x^2(对x)从0积到1。结果就是下图红色部分的面积:
注意到函数在(1,1)点的取值为1,所以整个红色区域在一个面积为1的正方形里面。所以所求区域的面积即为在正方形区域内任取点,点落在所求区域的概率。这个限制条件是y 1)总结Monte Carlo方法的基本思想:所求解问题是某随机事件A出现的概率(或者是某随机变量B的期望值)。通过某种“实验”的方法,得出A 事件出现的频率,以此估计出A事件出现的概率(或者得到随机变量B的某些数字特征,得出B的期望值)。 2)工作过程 在解决实际问题的时候应用蒙特卡罗方法主要有两部分工作: 用蒙特卡罗方法模拟某一过程时,需要产生各种概率分布的随机变量。 用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。3)蒙特卡罗解题三个主要步骤: (1)构造或描述概率过程:对于本身就具有随机性质的问题,如粒子输运问题,主要是正确描述和模拟这个概率过程,对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。即要将不具有随机性质的问题转化为随机性质 的问题。 (2)实现从已知概率分布抽样:构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)。随机数就是具有这种均匀分布的随机变量。随机数序列就是具有这种分布的总体的一个简单子样,也就是一个具有这种分布的相互独立的随机变数序列。产生随机数的问题,就是从这个分布的抽样问题。在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生。这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。不过,经过多种统计检验表明,它与真正的随机数,或随机数序列具有相近的性质,因此可把它作为真正的随机数来使用。由已知分布随机抽样有各种方法,与从(0,1)上均匀分布抽样不同,这些方法都是借助于随机序列来实现的,也就是说,都是以产生随机数为前提的。由此可见,随机数是我们实现蒙特卡罗模拟的基本工具。建立各种估计量:一般说来,构造了概率模型并能从中抽样后,即实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解,我们称它为无偏估计。 (3)建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。例如:检验产品的正品率问题,我们可以用1表示正品,0 表示次品,于是对每个产品检验可以定义如下的随机变数Ti,作为正品率的估计量:于是,在N次实验后,正品个数为:显然,正品率p为:不难看出,Ti为无偏估计。当然,还可以引入其它类型的估计,如最大似然估计,渐进有偏估计等。但是,在蒙特卡罗计算中,使用最多的是无偏估计。用比较抽象的概率语言描述蒙特卡罗方法解题的手续如下:构造一个概率空间(W ,A,P),其中,W 是一个事件集合,A是集合W 的子集的s 体,P是在A上建立的某个概率测度;在这个概率空间中,选取一个随机变量q (w ),w Î W ,使得这个随机变量的期望值正好是所要求的解Q ,然后用q (w )的简单子样的算术平均值作为Q 的近似值。 三本方法特点 直接追踪粒子,物理思路清晰,易于理解。 •采用随机抽样的方法,较真切的模拟粒子输运的过程,反映了统计涨落的规律。 •不受系统多维、多因素等复杂性的限制,是解决复杂系统粒子输运问题的好方法。 •MC程序结构清晰简单。 •研究人员采用MC方法编写程序来解决粒子输运问题,比较容易得到自己想得到的任意中间结果,应用灵活性强。 •MC方法主要弱点是收敛速度较慢和误差的概率性质,其概率误差正比于,如果单纯以增大抽样粒子个数N来减小误差,就要增加很大的计算量。 另一类形式与Monte Carlo方法相似,但理论基础不同的方法-"拟蒙特卡罗方法"(Quasi-Monte Carlo方法)-近年来也获得迅速发展。我国数学家华罗庚、王元提出的"华-王"方法即是其中的一例。这种方法的基本思想是"用确定性的超均匀分布序列(数学上称为Low Discrepancy Sequences)代替Monte Carlo方法中的随机数序列。对某些问题该方法的实际速度一般可比Monte Carlo方法提出高数百倍,并可计算精确度。 蒙特卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。 四Monte Carlo方法的计算程序 关于蒙特卡罗方法的计算程序已经有很多,如:EGS4、FLUKA、ETRAN、ITS、MCNP、GEANT等。这些程序大多经过了多年的发展,花费了几百人年的工作量。除欧洲核子研究中心(CERN)发行的GEANT主要用于高能物理探测器响应和粒子径迹的模拟外,其它程序都深入到低能领域,并被广泛应用。就电子和光子输运的模拟而言,这些程序可被分为两个系列: 1.EGS4、FLUKA、GRANT