《第5讲-蒙特卡洛方法的应用课件》由会员分享,可在线阅读,更多相关《第5讲-蒙特卡洛方法的应用课件(49页珍藏版)》请在金锄头文库上搜索。
1、实验目的实验目的实验内容实验内容学习如何应用蒙特卡洛方法解决实际问题学习如何应用蒙特卡洛方法解决实际问题1 1、起源和发展起源和发展2 2、原理、原理3 3、计算机模拟应用实例、计算机模拟应用实例4 4、实验作业、实验作业蒙特卡洛方法的应用一、一、MC MC 的起源和发展的起源和发展 随机模拟方法,也称为Monte Carlo方法,是一种基于“随机数”的计算方法。这一方法源于美国在第一次世界大战进行的研制原子弹的“曼哈顿计划”。该计划的主持人之一、数学家冯诺伊曼用驰名世界的赌城摩纳哥的Monte Carlo来命名这种方法,为它蒙上了一层神秘色彩。冯诺伊曼是公理化方法和计算机体系的领袖人物,Mo
2、nte Carlo方法也是他的功劳。 事实上,Monte Carlo方法的基本思想很早以前就被人们所发现和利用。早在17世纪,人们就知道用事件发生的“频率”来决定事件的“概率”。18世纪下半叶的法国学者Buffon提出用投针试验的方法来确定圆周率的值。这个著名的Buffon试验是Monte Carlo方法的最早的尝试!历史上曾有几位学者相继做过这样的试验。不过呢,他们的试验是费时费力的,同时精度不够高,实施起来也很困难。然而,随着计算机技术的飞速发展,人们不需要具体实施这些试验,而只要在计算机上进行大量的、快速的模拟试验就可以了。Monte Carlo方法是现代计算技术的最为杰出的成果之一,它
3、在工程领域的作用是不可比拟的。 BuffonBuffon试验试验 假设平面上有无数条距离为1的等距平行线,现向该平面随机投掷一根长度为 的针( ),则我们可计算该针与任一平行线相交的概率。这里,随机投针指的是:针的中心点与最近的平行线间的距离 均匀的分布在区间 上,针与平行线的夹角 (不管相交与否)均匀的分布在区间 上。因此,针与线相交的充要条件是 BuffonBuffon试验试验从而针线相交的概率为根据上式,若我们做大量的投针试验并记录针与线相交的次数,则由大数定理可以估计出针线相交的概率 ,从而得到 的估计值。 针与线的位置关系:function piguji=buffon(llength
4、,mm)%llength 是针的长度%mm 是随机实验次数frq=0;xrandnum = unifrnd(0,0.5,1,mm);phi= unifrnd(0,pi,1,mm);for ii=1:mm if (xrandnum(1,ii) buffon(.6,1000) piguji = 3.1662 buffon(.6,10000) piguji = 3.1072 buffon(.6,100000) piguji = 3.1522 buffon(.6,1000000) piguji = 3.1386 buffon(.6,1000000) piguji = 3.1451 buffon(.6,
5、1000000) piguji = 3.1418 buffon(.6,1000000) piguji = 3.1448 buffon(.6,1000000) piguji = 3.1405 buffon(.6,1000000) piguji = 3.1394二、二、MC MC 的原理的原理应用Monte Carlo方法求解工程技术问题可以分为两类: 确定性问题 随机性问题思路思路1、 针对实际问题建立一个简单且便于实现的概率统计模型,使问题的解对应于该模型中随机变量的概率分布或其某些数字特征,比如,均值和方差等。所构造的模型在主要特征参量方面要与实际问题或系统相一致的。2、 根据模型中各个随机
6、变量的分布,在计算机上产生随机数,实现一次模拟过程所需的足够数量的随机数。通常先产生均匀分布的随机数,然后生成服从某一分布的随机数,再进行随机模拟试验。 3、 根据概率模型的特点和随机变量的分布特性,设计和选取合适的抽样方法,并对每个随机变量进行抽样(包括直接抽样、分层抽样、相关抽样、重要抽样等)。4、 按照所建立的模型进行仿真试验、计算,求出问题的随机解。5、 统计分析模拟试验结果,给出问题的估计以及其精度估计。6、 必要时,还应改进模型以降低估计方差和减少试验费用,提高模拟计算的效率。 收敛性收敛性: : 由大数定律, Monte-Carlo模拟的收敛是以概率而言的误差误差: : 用频率估
7、计概率时误差的估计,可由中心极限定理,给定置信水平 的条件下,有: 模拟次数模拟次数: :由误差公式得三、三、MCMC的应用举例的应用举例 1 1、定积分的、定积分的MCMC计算计算 随机投点法随机投点法 样本平均值法样本平均值法 几种降低估计方差的几种降低估计方差的MCMC方法方法 2 2、 系统的可靠性数值模拟计算问题系统的可靠性数值模拟计算问题1 1、定积分的、定积分的MCMC计算计算事实上,不少的统计问题,如计算概率、各阶距等,最后都归结为定积分的近似计算问题。下面考虑一个简单的定积分为了说明问题,我们首先介绍两种求 的简单的MC方法,然后给出几种较为复杂而更有效的MC方法。 在计算积
8、分上,MC的实用场合是计算重积分其中 是 维空间的点,当 较大时,用MC方法比一般的数值方法有优点,主要是它的误差与维数 无关。随机投点法随机投点法 方法简述方法简述:设 ,有限, , ,并设 是在 上均匀分布的二维随机变量,其联合密度函数为 。则易见 是 中 曲线下方的面积。假设我们向 中进行随机投点,若点落在 下方,(即 称为中的,否则称为不中,则点中的概率为 。若我们进行了 次投点,其中 次中的,则用频率来估计概率 。即 。那么我们可以得到 的一个估计 具体试验步骤为求解定积分的算例求解定积分的算例例例 计算定积分事实上,其精确解为用随机投点法求解:注注 增加样本数目,可提高计算精度,但
9、计算时间也会提高。sjtdf(0,4,4,1000000) result = 7.2336function result=sjtdf(a,b,m,mm)%a是积分的下限%b是积分的上限%m是函数的上界%mm 是随机实验次数frq=0;xrandnum = unifrnd(a,b,1,mm);yrandnum = unifrnd(0,m,1,mm);for ii=1:mm if (cos(xrandnum(1,ii)+2=yrandnum(1,ii) frq=frq+1; end end result=frq*m*(b-a)/mm注注1 1 随机投点法的思想简单明了,且每次投点结果服从二项分布,
10、故 ,其中注注2 2 可证 是 的无偏估计。若用估计的标准差来衡量其精度,则估计 的精度的阶为 。注注3 3 这里,定积分的解,就对应我们选定的随机变量的概率值。 例例 的计算的计算1.单位圆的面积等于 2.3.用随机投点法求用随机投点法求 的值的值7/21/2024 sjtdf_pi1(1000) piguji = 3.0520 sjtdf_pi1(10000) piguji = 3.1204 sjtdf_pi1(100000) piguji = 3.1296function piguji=sjtdf_pi1(mm)%mm 是随机实验次数frq=0;xrandnum = unifrnd(0,
11、1,1,mm);yrandnum = unifrnd(0,1,1,mm);for ii=1:mm if xrandnum(1,ii)2+yrandnum(1,ii)2 sjtdf_pi2(1000) piguji = 3.2120 sjtdf_pi2(10000) piguji = 3.1260 sjtdf_pi2(100000) piguji = 3.1373function piguji=sjtdf_pi2(mm)%mm 是随机实验次数frq=0;xrandnum = unifrnd(0,1,1,mm);yrandnum = unifrnd(0,1,1,mm);for ii=1:mm if
12、 (sqrt(1-xrandnum(1,ii)2)=yrandnum(1,ii) frq=frq+1; end End,piguji=4*frq/mm样本平均值法样本平均值法 基本原理基本原理:对积分 ,设 是 上的一个密度函数,改写可见,任一积分均可以表示为某个随机变量(函数)的期望。由矩法,若有 个来自 的观测值,则可给出 的一个矩估计。最简单的,若 ,有限,可取 。设 是来自 的随机数,则 的一个估计为 具体步骤为注注 可证 是 的无偏估计。一般而言,样本均值法要比随机投点法更有效。 求解定积分的算例求解定积分的算例例例 计算定积分事实上,其精确解为样本平均值法求解:注注 增加样本数目,
13、可提高计算精度,但计算时间也会提高。ybjzf(0,4,4,1000) result = 7.3036 ybjzf(0,4,4,10000) result = 7.2970 ybjzf(0,4,4,100000) result = 7.2578function result=ybjzf(a,b,m,mm)%a是积分的下限%b是积分的上限%积分函数cos(x)+2%mm 是随机实验次数sum=0;xrandnum = unifrnd(a,b,1,mm);for ii=1:mm sum=sum+cos(xrandnum(1,ii)+2;end result=sum*(b-a)/mm例例 的计算的计
14、算1.单位圆的面积等于 2.3.用样本平均值法求用样本平均值法求 的值的值7/21/2024function result=ybjzf1(a,b,m,mm)%a是积分的下限 %b是积分的上限%积分函数 %mm 是随机实验次数xrandnum = unifrnd(a,b,1,mm);sum=sum(sqrt(1-xrandnum.2);result=sum*(b-a)/mm;result=result*4ybjzf1(0,1,1,100) result = 3.08745746887753function result=ybjzf1(a,b,m,mm)%a是积分的下限 %b是积分的上限%积分函数
15、 %mm 是随机实验次数sum=0;xrandnum = unifrnd(a,b,1,mm);for ii=1:mm sum=sum+1/(1+xrandnum(1,ii)2);end result=sum*(b-a)/mm;result=result*4ybjzf2(0,1,1,100) result = 3.04500162146030几种降低估计方差的几种降低估计方差的MCMC方法方法重要抽样法重要抽样法 特点:相对样本均值法而言,样本均值法是由于假设 是均匀分布的概率密度,故采用的是均匀抽样,各随机数 是均匀分布的随机数,各 对 的贡献是不同, 大则贡献大,但在抽样时,这种差别未能体现
16、出来。而重要抽样法,则希望贡献率大的随机数出现的概率大,贡献小的随机数出现概率小,从而提高抽样的效。几种降低估计方差的几种降低估计方差的MCMC方法方法重要抽样法重要抽样法关键因素在于 的选取,使得估计的方差较小。重要抽样法的基本思想,就是通过选取与 形状接近的密度函数 来降低估计的方差。 几种降低估计方差的几种降低估计方差的MCMC方法方法分层抽样法分层抽样法 同样是利用贡献率大小来降低估计方差的方法。它首先是把样本空间 分成一些小区间 ,且诸 不交, ,然后在各个小区间内的抽样数由其贡献大小决定。对 贡献大的 抽样多,可提高抽样效率。如果能够提出较好抽样区间的分配和各子区间内抽样次数的分配
17、方案,分层抽样法估计积分可以达到非常令人满意的效果。 几种降低估计方差的几种降低估计方差的MCMC方法方法关联抽样法关联抽样法 将需要估计的积分分解成两个积分之差, 对 的估计转化为对 , 的估计的差。则相应的,其估计的方差的大小则与 , 的估计的正相关度有关,若两者的相关程度越高,则 的估计方差越小。这便是关联抽样法的基本出发点。 一个元件(或系统)能正常工作的概率称为元件(或系统)的可靠性系统由元件组成,常见的元件连接方式:串联并联12212 2、系统的可靠性计算问题、系统的可靠性计算问题 例例 设两系统都是由 4 个元件组成,每个元件正常工作的概率为 p=0.5 , 每个元件是否正常工作
18、相互独立.两系统的连接方式如下图所示,比较两系统的可靠性.A1A2B2B1S1:function Rguji=litiR01(0.5,0.5,0.5,0.5,mm)frq=0;randnuma1 = binornd(1,0.5,1,mm);randnuma2 = binornd(1,0.5,1,mm); randnumb1 = binornd(1,0.5,1,mm)randnumb2 = binornd(1,0.5,1,mm); Rguji=frq/mmfunction Rguji=litiR01(0.5,0.5,0.5,0.5,mm)frq=0;randnuma1 = binornd(1,0
19、.5,1,mm);randnuma2 = binornd(1,0.5,1,mm); randnumb1 = binornd(1,0.5,1,mm)randnumb2 = binornd(1,0.5,1,mm); for ii=1:mm if (randnuma1(1,ii)=1)&(randnuma2(1,ii)=1) pass1=1; else pass1=0; end if (randnumb1(1,ii)=1)&(randnumb2(1,ii)=1) pass2=1; else pass2=0; end if (pass1+pass2)=1 frq=frq+1; end End,Rguj
20、i=frq/mm例例 设两系统都是由 4 个元件组成,每个元件正常工作的概率为 p , 每个元件是否正常工作相互独立.两系统的连接方式如下图所示,比较两系统的可靠性.A1A2B2B1S1:A1A2B2B1S2:例例 设两系统都是由 4 个元件组成,每个元件的寿命服从参数为的指数分布,每个元件是否正常工作相互独立.两系统的连接方式如下图所示,求两系统寿命大于T=100的概率.A1A2B2B1S1:例例 设两系统都是由 4 个元件组成,每个元件的寿命服从参数为的指数分布,每个元件是否正常工作相互独立.两系统的连接方式如下图所示,求两系统寿命大于T=100的概率.A1A2B2B1S1:A1A2B2B
21、1S2:function Rguji=litiR1(t,thetaa1,thetaa2,thetab1,thetab2,mm)%t 是要求系统生存的寿命%thetaa1 是元件A1的数学期望%thetaa2 是元件A2的数学期望%thetab1 是元件B1的数学期望 %thetab2 是元件B2的数学期望%mm 是随机实验次数frq=0;randnuma1 = exprnd(thetaa1,1,mm);randnuma2 = exprnd(thetaa2,1,mm);randnumb1 = exprnd(thetab1,1,mm);randnumb2 = exprnd(thetab2,1,mm
22、);for ii=1:mm if (randnuma1(1,ii)t)&(randnuma2(1,ii)t) pass1=1; else pass1=0; end if (randnumb1(1,ii)t)&(randnumb2(1,ii)t) pass2=1; else pass2=0; end if (pass1+pass2)=1 frq=frq+1; end End,Rguji=frq/mmfunction Rguji=litiR2(t,thetaa1,thetaa2,thetab1,thetab2,mm)%t 是要求系统生存的寿命%thetaa1 是元件A1的数学期望%thetaa2
23、是元件A2的数学期望%thetab1 是元件B1的数学期望 %thetab2 是元件B2的数学期望%mm 是随机实验次数frq=0;randnuma1 = exprnd(thetaa1,1,mm);randnuma2 = exprnd(thetaa2,1,mm);randnumb1 = exprnd(thetab1,1,mm);randnumb2 = exprnd(thetab2,1,mm);for ii=1:mm if (randnuma1(1,ii)t)|(randnumb1(1,ii)t) pass1=1; else pass1=0; end if (randnuma2(1,ii)t)|
24、(randnumb2(1,ii)t) pass2=1; else pass2=0; end if (pass1*pass2)=1 frq=frq+1; end End,Rguji=frq/mm四、四、EMEM算法及其算法及其MCMCMCMC方法方法EM算法:算法:是一种迭代方法,最初由Dempster等提出,并主要应用于较为复杂的后验分布,来计算后验均值或后验众数,即极大似然估计的一种数据添加算法。最大优点是简单和稳定。MCMC算法:算法:当后验分布较为复杂时,对于后验分布的积分计算,像后验均值、后验方差、后验分布的分位数等等,就不得不求助于MCMC算法。他在统计物理学中得到广泛的应用,近年来,迅速发展到Bayes统计、显著性检验、极大似然估计等方面。关于这两方面的详细知识,感兴趣的可自己阅读!2.用随机投点法、样本平均值法用随机投点法、样本平均值法计算定积分1.设两系统都是由 5个元件组成,每个元件的寿命服从期望为5的指数分布,每个元件是否正常工作相互独立.两系统的连接方式如下图所示,求系统寿命大于T=3的概率.(用随机投点法)用随机投点法)作业作业:A1A2B2B1C2.用随机投点法、样本平均值法用随机投点法、样本平均值法计算定积分