当前位置:文档之家› 浅析蒙特卡洛方法原理及应用

浅析蒙特卡洛方法原理及应用

浅析蒙特卡洛方法原理及应用于希明(英才学院1236103班测控技术与仪器专业6120110304)摘要:本文概述了蒙特卡洛方法产生的历史及基本原理,介绍了蒙特卡洛方法的最初应用——蒲丰投针问题求圆周率,并介绍了蒙特卡洛方法在数学及生活中的一些简单应用,最后总结了蒙特卡洛方法的特点。

关键词:蒙特卡洛方法蒲丰投针生活应用蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。

它是以概率统计理论为基础, 依据大数定律( 样本均值代替总体均值) , 利用电子计算机数字模拟技术, 解决一些很难直接用数学运算求解或用其他方法不能解决的复杂问题的一种近似计算法。

蒙特卡洛方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。

一、蒙特卡洛方法的产生及原理蒙特卡洛方法于20世纪40年代美国在第二次世界大战中研制原子弹的“曼哈顿计划”计划的成员S.M.乌拉姆和J.冯·诺伊曼首先提出。

数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩。

在这之前,蒙特卡洛方法就已经存在。

1777年,法国数学家蒲丰(Georges Louis Leclere de Buffon,1707—1788)提出用投针实验的方法求圆周率π。

这被认为是蒙特卡洛方法的起源。

其基本原理如下:由概率定义知,某事件的概率可以用大量试验中该事件发生的频率来估算,当样本容量足够大时,可以认为该事件的发生频率即为其概率。

因此,可以先对影响其可靠度的随机变量进行大量的随机抽样,然后把这些抽样值一组一组地代入功能函数式,确定结构是否失效,最后从中求得结构的失效概率。

蒙特卡洛法正是基于此思路进行分析的。

设有统计独立的随机变量Xi(i=1,2,3,…,k),其对应的概率密度函数分别为fx1,fx2,…,fxk,功能函数式为Z=g(x1,x2,…,xk)。

首先根据各随机变量的相应分布,产生N组随机数x1,x2,…,xk值,计算功能函数值Zi=g(x1,x2,…,xk)(i=1,2,…,N),若其中有L组随机数对应的功能函数值Zi≤0,则当N→∞时,根据伯努利大数定理及正态随机变量的特性有:结构失效概率,可靠指标。

二、蒲丰投针问题作为蒙特卡洛方法的最初应用, 是解决蒲丰投针问题。

1777 年, 法国数学家蒲丰提出利用投针实验求解圆周率的问题。

设平面上等距离( 如为2a) 画有一些平行线, 将一根长度为2l( l< a) 的针任意投掷到平面上, 针与任一平行线相交的频率为p 。

针的位置可以用针的中心坐标x 和针与平行线的夹角θ来决定。

任意方向投针, 便意味着x与θ可以任意取一值, 只是0≤x ≤a, 0≤θ≤π。

那么, 投针与任意平行线相交的条件为x ≤ l sinθ。

相交频率p 便可用下式求出 : ππθθπa l a d l p 2sin 0==⎰ 于是, ap l 2=π 由于式中含有两个未知量p 和π, 要求解π就必须知道p , 而采取常用的方法是无法得到p 的。

然而, 从统计学角度却可以通过实验来得到p ,这就是进行投针实验。

投针实验N 次可能有n 次使针与任意平行线相交, 那么Nn p =显然, 实验次数N 越多, p 的近似程度好。

有不少人进行过投针实验, 并用手工计算出π值:实验者 年代 投掷次数 相交次数 圆周率估计值沃尔夫 1850 5000 2531 3.1596史密斯 1855 3204 1219 3.1554德摩根 1680 600 383 3.137福克斯 1884 1030 489 3.1595拉泽里尼 1901 3408 1808 3.1415929赖纳 1925 2520 859 3.1795三、蒙特卡洛方法求一维定积分一维积分计算在x 的定义域[0,1]上均匀地随机取点,该均匀分布的随机变量记为ξ。

我们定义一个随机变量η1为则显然有η1的期望值等于积分值I 。

只要抽取足够多的随机点,即取随机点数足够大时,n 的平均值 f (ξ )就是积分 I 的一个无偏估计值。

η的方差显然V{η1}依赖于被积函数f(x)在积分域上的方差。

当f(x)在x 的定义域内变化平坦,即和I 的差处处都较小时,方差也小;反之,则方差较大。

从这里可以看出:尽量减小被积函数在积分域上的方差,可以减小积分估计值的方差,加速收敛。

推而广之来说,就是要减少模拟量在模拟范围内的方差。

根据这样的原则,当被积函数f(x)在积分域内的方差较大时,可以采用各种抽样技巧。

如采用重要抽样法,将f(x)的方差吸收到g(x)中去,这样模拟量—记录函数f*(x)=f(x)/g(x)在定义域内相当平坦,则我们将积分式的计算变为若选取η′为服从分布密度函数g(x)的函数f*(x)的抽样值。

这里g(x)称为偏倚分布密度函数。

我们得到因此它的平均值给出了I的一个无偏估计值。

这时的方差为:在实际计算中,方差通过下式得到计算结果:式中角型括号表示对括号内所有可能的[0,1]区间,按g(x)分布的随机坐标数序列{xi }对应的数值求平均。

方程右边第一项对{f*2(xi)}求平均(_____2*f),第二项表示求{f*(xi )}平均值的平方)___*(2f。

上式可以经推导得到:由此我们看出其误差平方与f*在[0,1]区间的方差成正比,并且σ∝1/n。

这与中心极限定理所得到的结果一致。

四、蒙特卡洛方法在学校分班问题中的应用学生分班是学校管理中的一项经常而重要的工作. 每个新学期伊始,学校要对新招取的新生进行分班.操作时需要综合考虑男女生比例、各科成绩、生源分布、是否住校、学生干部安排等要素.假设分班的结果要求满足以下条件:A. 班级规模尽量相当,人数相差不超过1 人;B. 各班学生总分的均分差值在2 分内;C. 各班的各科平均分差值在3 分内;D. 各班的住校人数相差最多3 人;E. 入学前任过学生干部的人数相差不超2 人.现要求条件A~B 必须满足,C~E 尽量满足(有时还需设定男女生人数之差的上限等) . 采用蒙特卡罗算法来实现的过程为:a. 随机产生一个分班的方案使符合条件B ;b. 检验是否符合条件A ,若符合执行步骤c ,否则返回执行步骤a ;c. 计算条件C~E 的参数,作为目标函数的参考值. 在此可以通过构造加权系数来确定条件C ,D ,E 的优先级,作为最终参考目标;d. 通过大量模拟得到多个目标值,选择其中最佳目标值作为最优方案.五、总结蒙特卡洛方法的解题过程可以归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。

蒙特卡洛方法解题过程的三个主要步骤:(1)构造或描述概率过程对于本身就具有随机性质的问题,如粒子输运问题,主要是正确描述和模拟这个概率过程,对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。

即要将不具有随机性质的问题转化为随机性质的问题。

(2)实现从已知概率分布抽样构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡洛方法模拟实验的基本手段,这也是蒙特卡洛方法被称为随机抽样的原因。

最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)。

随机数就是具有这种均匀分布的随机变量。

随机数序列就是具有这种分布的总体的一个简单子样,也就是一个具有这种分布的相互独立的随机变数序列。

产生随机数的问题,就是从这个分布的抽样问题。

在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。

另一种方法是用数学递推公式产生。

这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。

不过,经过多种统计检验表明,它与真正的随机数,或随机数序列具有相近的性质,因此可把它作为真正的随机数来使用。

由已知分布随机抽样有各种方法,与从(0,1)上均匀分布抽样不同,这些方法都是借助于随机序列来实现的,也就是说,都是以产生随机数为前提的。

由此可见,随机数是我们实现蒙特卡洛模拟的基本工具。

(3)建立各种估计量一般说来,构造了概率模型并能从中抽样后,即实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解,我们称它为无偏估计。

建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。

作为一种解决物理数学问题和系统性质分析的近似计算法, 蒙特卡洛方法和传统方法相比, 具有思路新颖, 直观性强, 简便易行的优点。

特别是借助电子计算机可以在很大程度上模拟许多大型的、难以实现的复杂实验或社会行为过程, 使蒙特卡洛方法逐渐成为重要的计算方法。

尤其在复杂系统的性能评价上给出量化指标, 利用蒙特卡洛方法对系统进行模拟几乎是必不可少的。

参考文献[1]吴海霞刘潞锋蒙特卡罗方法在实际问题中的应用太原师范学院学报(自然科学版) 2009.3 Vol.8 No.3[2]杨莉军赵贤淑蒙特卡洛方法及在二维随机游动问题中的应用初探北京印刷学院学报2001.9 Vol.9 No.3[3]柳海东蒙特卡洛方法在概率计算中的应用苏州职业大学学报 2004.8 Vol.15 No.3[4]百度百科。

相关主题