蒙特卡罗方法
故事:
蒙特卡罗方法是计算模拟的基础,其名字来源于世界著名的赌城——摩纳哥的蒙特卡罗。
其思想来源于著名的蒲丰投针问题。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。1777年法国科学家蒲丰提出了下述著名问题:平面上画有等距离 a(a>0) 的一些平行线,取一根长度为 l(l>0) 的针,随机地向有平行线的平面上掷去,求针与平行线相交的概率。
我们用几何概型来解决这一问题。设 M 为针落下后的中点, x 表示中点M到最近一条平行线的距离, φ 表示针与平行线的交角。
那么基本时间区域为一个面积为aπ/2的矩形:
如果要想使针与平行线相交,则要满足:
设一共投掷 n 次( n 是一个事先选好的相当大的自然数),观察到针和直线相交的次数为 m。
从上式我们看到,当比值 l/a不变时,p 值始终不变。取 m/n 为 p 的近似值,我们可以算出 π 的近似值。可以想象当投掷次数越来越多时计算的结果就越来越准确。
定义:
蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。与它对应的是确定性算法。
使用前提:
当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。
基本步骤:
(1)构造或描述概率过程
对于本身就具有随机性质的问题,如粒子输运问题,主要是正确描述和模拟这个概率过程,对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。即要将不具有随机性质的问题转化为随机性质的问题。
(2)实现从已知概率分布抽样
构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)。随机数就是具有这种均匀分布的随机变量。随机数序列就是具有这种分布的总体的一个简单子样,也就是一个具有这种分布的相互独立的随机变数序列。产生随机数的问题,就是从这个分布的抽样问题。在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生。这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。不过,经过多种统计检验表明,它与真正的随机数,或随机数序列具有相近的性质,因此可把它作为真正的随机数来使用。由已知分布随机抽样有各种方法,与从(0,1)上均匀分布抽样不同,这些方法都是借助于随机序列来实现的,也就是说,都是以产生随机数为前提的。由此可见,随机数是我们实现蒙特卡罗模拟的基本工具。
(3)建立各种估计量
一般说来,构造了概率模型并能从中抽样后,即实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解,我们称它为无偏估计。建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。
蒙特卡罗方法主要用在难以定量分析的概率模型,这种模型一般得不到解析的结果,或虽然有解析结果,但计算代价太大以至不可用。也可以用在算不出解析结果的定性模型中。
用蒙特卡罗方法解题,需要根据随机变量遵循的分布规律选出具体的至,即抽样。随机变量的抽样方法很多,不同的分布采用的方法不尽相同。在计算机上的各种分布的随机数事实上都是按照一定的确定性方法产生的伪随机数。
建模应用:
通常蒙特·卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特·卡罗方法是一种有效的求出数值解的方法。
一般蒙特·卡罗方法在数学中最常见的应用就是蒙特·卡罗积分。
