版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数学建模专题三MonteCarlo模拟幻灯片本课件PPT仅供大家学习使用学习完请自行删除,谢谢!本课件PPT仅供大家学习使用学习完请自行删除,谢谢!内容提纲1.引言2.MonteCarlo模拟根本思想3.随机数生成函数4.应用实例举例5.排队论模拟6.MonteCarlo模拟求解规划问题引言(Introduction)MonteCarlo方法:蒙特卡罗方法,又称随机模拟方法,属于计算数学的一个分支,它是在上世纪四十年代中期为了适应当时原子能事业的发展而发展起来的。亦称统计模拟方法,statisticalsimulationmethod利用随机数进行数值模拟的方法MonteCarlo名字的由来:MonteCarlo是摩纳哥(monaco)的首都,该城以赌博闻名NicholasMetropolis(1915-1999)Monte-Carlo,Monaco二十世纪四十年代中期,由于科学技术的发展和电子计算机的发明,蒙特卡罗方法作为一种独立的方法被提出来,并首先在核武器的试验与研制中得到了应用。但其基本思想并非新颖,人们在生产实践和科学试验中就已发现,并加以利用。一个简单实例MonteCarlo方法的根本思想举例Buffon投针实验1768年,法国数学家ComtedeBuffon利用投针实验估计的值dLSolutionThepositioningoftheneedlerelativetonearbylinescanbedescribedwitharandomvectorwhichhascomponents:Therandomvectorisuniformlydistributedontheregion[0,d)×[0,).Accordingly,ithasprobabilitydensityfunction1/d.Theprobabilitythattheneedlewillcrossoneofthelinesisgivenbytheintegral例1.蒲丰投针问题利用关系式:求出π值其中N为投计次数,n为针与平行线相交次数。这就是古典概率论中著名的蒲丰氏问题。一些人进展了实验,其结果列于下表:实验者年份投计次数π的实验值沃尔弗(Wolf)185050003.1596斯密思(Smith)185532043.1553福克斯(Fox)189411203.1419拉查里尼(Lazzarini)190134083.1415929根本思想由上面的例子可以看出,当所求问题的解是某个事件的概率,或者是某个随机变量的数学期望,或者是与之有关的量时,通过某种试验的方法,得出该事件发生的频率,再通过它得到问题的解。这就是蒙特卡罗方法的根本思想。蒙特卡罗方法的基本思想虽然早已被人们提出,却很少被使用。直到电子计算机出现后,使得人们可以通过电子计算机来模拟巨大数目的随机试验过程,使得蒙特卡罗方法得以广泛地应用,在现代化的科学技术中发挥应有的作用。例1在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点.经过长期观察发现,我方指挥所对敌方目标的指示有50%是准确的,而我方火力单位,在指示正确时,有1/3的射击效果能毁伤敌人一门火炮,有1/6的射击效果能全部毁伤敌人火炮.现在希望能用某种方式把我方将要对敌人实施的20次打击结果显现出来,确定有效射击的比率及毁伤敌方火炮的平均值。分析:这是一个概率问题,可以通过理论计算得到相应的概率和期望值.但这样只能给出作战行动的最终静态结果,而显示不出作战行动的动态过程.为了能显示我方20次射击的过程,现采用模拟的方式。举例需要模拟出以下两件事:
[2]当指示正确时,我方火力单位的射击结果情况[1]观察所对目标的指示正确与否模拟试验有两种结果,每一种结果出现的概率都是1/2.因此,可用投掷一枚硬币的方式予以确定,当硬币出现正面时为指示正确,反之为不正确.模拟试验有三种结果:毁伤一门火炮的可能性为1/3(即2/6),毁伤两门的可能性为1/6,没能毁伤敌火炮的可能性为1/2(即3/6).这时可用投掷骰子的方法来确定:如果出现的是1、2、3三个点:则认为没能击中敌人;如果出现的是4、5点:则认为毁伤敌人一门火炮;若出现的是6点:则认为毁伤敌人两门火炮.问题分析i:要模拟的打击次数;k1:没击中敌人火炮的射击总数;k2:击中敌人一门火炮的射击总数;k3:击中敌人两门火炮的射击总数;E:有效射击比率;E1:20次射击平均每次毁伤敌人的火炮数.符号说明模拟框图初始化:i=0,k1=0,k2=0,k3=0i=i+1骰子点数?k1=k1+1k2=k2+1k3=k3+1k1=k1+1i<20?E=(k2+k3)/20E1=0*k1/20+1*k2/20+2*k3/20停止硬币正面?YNNY1,2,34,56模拟结果理论计算结果比较
虽然模拟结果与理论计算不完全一致,但它却能更加真实地表达实际战斗动态过程.用蒙特卡洛方法进行计算机模拟的步骤:[1]设计一个逻辑框图,即模拟模型.[2]根据流程图编写程序,模拟随机现象.可通过具有各种概率分布的模拟随机数来模拟随机现象.[3]分析模拟结果,计算所需要结果.注:rand(n)=rand(n,n)Matlab中的随机数生成函数randperm(m)生成一个由1:m
组成的随机排列randn(m,n)生成一个满足正态m
n
的随机矩阵rand(m,n)
生成一个满足均匀分布的m
n
随机矩阵,矩阵的每个元素都在(0,1)
之间。perms(1:n)生成由1:n
组成的全排列,共n!
个name
的取值可以是'norm'or'Normal''unif'or'Uniform''poiss'or'Poisson''beta'or'Beta''exp'or'Exponential''gam'or'Gamma''geo'or'Geometric''unid'or'DiscreteUniform'......random('name',A1,A2,A3,M,N)Matlab中的随机数生成函数fix(x):
截尾取整,直接将小数部分舍去floor(x):
不超过x
的最大整数ceil(x):
不小于x
的最小整数round(x):
四舍五入取整Matlab中的取整函数
随机投掷均匀硬币,验证国徽朝上与朝下的概率是否都是1/2
n=10000;%给定试验次数m=0;fori=1:nx=randperm(2)-1;y=x(1);ify==0%0表示国徽朝上,1表示国徽朝下m=m+1;endendfprintf('国徽朝上的频率为:%f\n',m/n);小实例一:投掷硬币随机投掷骰子,验证各点出现的概率是否为1/6
n=10000;m1=0;m2=0;m3=0;m4=0;m5=0;m6=0;fori=1:nx=randperm(6);y=x(1);switchycase1,m1=m1+1;case2,m2=m2+1;case3,m3=m3+1;case4,m4=m4+1;case5,m5=m5+1;otherwise,m6=m6+1;endend...%
输出结果小实例二:投掷骰子
用蒙特卡罗(MonteCarlo)投点法计算
的值n=100000;a=2;m=0;fori=1:nx=rand(1)*a/2;y=rand(1)*a/2;if(x^2+y^2<=(a/2)^2)m=m+1;endendfprintf('计算出来的pi为:%f\n',4*m/n);小实例三:蒙特卡罗投点法
在画有许多间距为d
的等距平行线的白纸上,随机投掷一根长为l(l
d)的均匀直针,求针与平行线相交的概率,并计算的值小实例四:蒲丰投针实验n=100000;l=0.5;d=1;m=0;fori=1:nalpha=rand(1)*pi;y=rand(1)*d/2;ify<=l/2*sin(alpha)m=m+1;endendfprintf('针与平行线相交的频率为:%f\n',m/n);fprintf('计算出来的pi为:%f\n’,2*n*l/(m*d));小实例四源程序
设某班有m
个学生,则该班至少有两人同一天生日的概率是多少?小实例五:生日问题解:设一年为365天,且某一个学生的生日出现在一年中的每一天都是等可能的,则班上任意两个学生的生日都不相同的概率为:所以,至少有两个学生同一天生日的概率为:n=1000;p=0;m=50;%设该班的人数为50fort=1:na=[];q=0;fork=1:mb=randperm(365);a=[a,b(1)];endc=unique(a);iflength(a)~=length(c)p=p+1;endendfprintf(‘至少两人同一天生日的概率为:%f\n',p/n);试验五源程序clear;m=50;p1=1:365;p2=[1:365-m,365*ones(1,m)];p=p1./p2;p=1-prod(p);fprintf('至少两人同一天生日的概率为:%f\n',p);小实例五的理论值计算排队问题随机模拟排队论主要研究随机服务系统的工作过程。在排队系统中,服务对象的到达时间和服务时间都是随机的。排队论通过对随机服务现象的统计研究,找出反映这些随机现象平均特性的规律指标,如排队的长度、等待的时间及服务利用率。[1]系统的假设:(1)顾客源是无穷的;(2)排队的长度没有限制;(3)到达系统的顾客按先后顺序依次进入服务,“先到先服务”。在某商店有一个售货员,顾客陆续来到,售货员逐个地接待顾客.当到来的顾客较多时,一部分顾客便须排队等待,被接待后的顾客便离开商店.设:
1.顾客到来间隔时间服从参数为0.1的指数分布.2.对顾客的服务时间服从[4,15]上的均匀分布.3.排队按先到先服务规则,队长无限制.假定一个工作日为8小时,时间以分钟为单位。[1]模拟一个工作日内完成服务的个数及顾客平均等待时间t.[2]模拟100个工作日,求出平均每日完成服务的个数及每日顾客的平均等待时间。单服务员的排队模型模拟w:总等待时间;ci:第i个顾客的到达时刻;bi:第i个顾客开始服务时刻;ei:第i个顾客服务结束时刻;xi:第i-1个顾客与第i个顾客之间到达的间隔时间;yi:对第i个顾客的服务时间。符号说明c1b1c3c4c5c2e1b2e2b3e3b4e4b5ci=ci-1+xiei=bi+yibi=max(ci,ei-1)t思路分析初始化:令i=1,ei-1=0,w=0产生间隔时间随机数xi~参数为0.1的指数分布ci=xi,bi=xi
产生服务时间随机数yi~[4,15]的均匀分布ei=bi+yi累计等待时间:w=w+bi-ci准备下一次服务:i=i+1产生间隔时间随机数xi~参数为0.1的指数分布ci=ci-1+xi
确定开始服务时间:bi=max(ci,ei-1)bi>480?YNi=i-1,t=w/i输出结果:完成服务个数:m=i
平均等待时间:t停止[1]模拟一日ToMatlab(simu1)[2]模拟100日ToMatlab(simu2)流程框图用蒙特卡洛法解非线性规划问题基本假设试验点的第j个分量xj服从[aj,bj]内的均匀分布.符号假设求解过程先产生一个随机数作为初始试验点,以后则将上一个试验点的第j个分量随机产生,其它分量不变而产生一新的试验点.这样,每产生一个新试验点只需一个新的随机数分量.当K>MAXK或P>MAXP时停止迭代.框图初始化:给定MAXK,MAXP;k=0,p=0,Q:大整数xj=aj+R(bj-aj)j=1,2,…,nj=0j=j+1,p=p+1P>MAXP?YNxj=aj+R(bj-aj)gi(X)≥0?i=1,2…nYNj<n?f(X)≥Q?YNX*=X,Q=f(X)k=k+1k>MAXK?Y
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一年级上册语文教案
- 农药残留土壤生物降解研究
- 高一化学教案:专题第二单元第四课时糖类
- 2024届浙江省温州十五校联合体高考化学押题试卷含解析
- 2024高中化学第四章电化学基础第一节原电池达标训练含解析新人教版选修4
- 2024高中地理课时作业9资源的跨区域调配-以我国西气东输为例含解析新人教版必修3
- 2024高中语文开学第一课学生观后感范文700字范文三篇素材
- 2024高中语文第五单元散而不乱气脉中贯伶官传序作业含解析新人教版选修中国古代诗歌散文欣赏
- 2024高中语文精读课文一第3课2在动乱中成长起来作业含解析新人教版选修中外传记蚜
- 2024高考化学一轮复习第十章化学实验基础第四讲实验方案的设计与评价规范演练含解析新人教版
- 《国有控股上市公司高管薪酬的管控研究》
- 餐饮业环境保护管理方案
- 食品安全分享
- 矿山机械设备安全管理制度
- 《创伤失血性休克中国急诊专家共识(2023)》解读课件
- 小学六年级数学100道题解分数方程
- 2022年五年级数学兴趣小组活动记录
- Q∕GDW 12127-2021 低压开关柜技术规范
- YY 0838-2021 微波热凝设备
- 商品房预售合同登记备案表
- 版式设计发展历程-ppt课件
评论
0/150
提交评论