蒙特卡罗方法教材课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《蒙特卡罗方法教材课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 蒙特卡罗 方法 教材 课件
- 资源描述:
-
1、2023-1-231数学建模专题之数学建模专题之蒙特卡罗方法蒙特卡罗方法主讲:李培峦主讲:李培峦时间:时间:2014-08-032014-08-03数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-232内容提纲内容提纲1.1.引言引言2.Monte Carlo2.Monte Carlo模拟基本思想模拟基本思想3.3.随机数生成函数随机数生成函数4.4.应用实例举例应用实例举例5.5.随机游走模拟随机游走模拟6.6.机械零件的可靠度计算机械零件的可靠度计算7.7.排队论模拟排队论模拟8.Monte Carlo8.Monte Carlo方法求解规划问题方法求解规划问题9.M
2、onte Carlo9.Monte Carlo方法预测搜救区域方法预测搜救区域数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-233Monte Carlo方法:方法:蒙特卡罗方法,又称随机模拟方法,属于计算数学的一个分支,它是在上世纪四十年蒙特卡罗方法,又称随机模拟方法,属于计算数学的一个分支,它是在上世纪四十年代中期为了适应当时原子能事业的发展而发展起来的。代中期为了适应当时原子能事业的发展而发展起来的。亦称统计模拟方法,亦称统计模拟方法,statistical simulation method 利用随机数进行数值模拟的方法利用随机数进行数值模拟的方法Monte C
3、arlo名字的由来:名字的由来:Monte Carlo是摩纳哥(是摩纳哥(monaco)最大的城市,该城以赌博闻名。最大的城市,该城以赌博闻名。Monte-Carlo,Monaco数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-234Monte Carlo方法的起源:方法的起源:二十世纪四十年代中期,由于科学技术的发展和电子计算机的发二十世纪四十年代中期,由于科学技术的发展和电子计算机的发明,蒙特卡罗方法作为一种独立的方法被提出来,并首先在核武明,蒙特卡罗方法作为一种独立的方法被提出来,并首先在核武器的试验与研制中得到了应用器的试验与研制中得到了应用(中子的链锁反应中子
4、的链锁反应)。但其基本思想。但其基本思想并非新颖,可追溯到并非新颖,可追溯到1818世纪后半叶的蒲丰(世纪后半叶的蒲丰(BuffonBuffon)随机投针实)随机投针实验(验(17771777年)。年)。Nicholas Metropolis(1915-1999)John Von Neumann(1903-1957)数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-235Monte Carlo方法的应用:方法的应用:物理:核物理,热力学与统计物理,粒子输运问题等物理:核物理,热力学与统计物理,粒子输运问题等 数学:多重积分、解微分方程、非线性方程组求解等数学:多重积分、解
5、微分方程、非线性方程组求解等 工程领域:真空技术,水力学,激光技术等工程领域:真空技术,水力学,激光技术等 经济学领域:期权定价、项目管理、投资风险决策等经济学领域:期权定价、项目管理、投资风险决策等 其他领域:化学、医学,生物,生产管理、系统科学、公用其他领域:化学、医学,生物,生产管理、系统科学、公用事业等方面。随着科学技术的发展,其应用范围将更加广泛。事业等方面。随着科学技术的发展,其应用范围将更加广泛。数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-236Monte Carlo方法的基本思想方法的基本思想qBuffon投针实验投针实验17681768年,法国数学
6、家年,法国数学家Comte de Buffon利用投针实验估计利用投针实验估计 的值的值2,()LpLdd dL数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-237SolutionThe positioning of the needle relative to nearby lines can be described with a random vector which has components:0,)0,)AdThe random vector is uniformly distributed on the region 0,d)0,).Accordingl
7、y,it has probability density function 1/d.The probability that the needle will cross one of the lines is given by the integralsin1002sinldlpP AldAdd 数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-238例例1.蒲丰投针问题蒲丰投针问题n利用关系式:利用关系式:求求出出值值 其中其中 为投计次数,为投计次数,n 为针与平行线相交为针与平行线相交次数。这就是古典概率论中著名的蒲丰氏问题。次数。这就是古典概率论中著名的蒲丰氏问题
8、。2lpd2212()lll Ndpdpdn数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-239一些人进行了实验,其结果列于下表一些人进行了实验,其结果列于下表:实验者年份投计次数的实验值沃尔弗(Wolf)185050003.1596斯密思(Smith)185532043.1553福克斯(Fox)189411203.1419拉查里尼(Lazzarini)190134083.1415929数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-2310基本思想基本思想n MSMS基本思想:为了求解数学、物理、工程技术或随基本思想:为了求解数学、物理、工程
9、技术或随机服务系统等方面的问题,首先构造一个模型(概率机服务系统等方面的问题,首先构造一个模型(概率统计模型),使所求问题的解正好是该模型的参数或统计模型),使所求问题的解正好是该模型的参数或特征量或有关量,然后通过模拟(统计试验),给出特征量或有关量,然后通过模拟(统计试验),给出模型参数或特征量的估计值,最后得出所求问题的近模型参数或特征量的估计值,最后得出所求问题的近似解。似解。n MSMS特点:特点:1.1.方法新颖、应用面广、实用性强;方法新颖、应用面广、实用性强;2.2.随机模拟方面的算法简单,但计算量大;随机模拟方面的算法简单,但计算量大;3.3.模拟结果具有随机性,精度较低;模
10、拟结果具有随机性,精度较低;4.4.模拟结果的收敛过程服从概率规律。模拟结果的收敛过程服从概率规律。数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-2311例例1 1在我方某前沿防守地域,敌人以一个炮排(含两门火炮)在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏为躲避我方打击,敌方对其阵地为单位对我方进行干扰和破坏为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点进行了伪装并经常变换射击地点 经过长期观察发现,我方指挥所对敌方目标的指示有经过长期观察发现,我方指挥所对敌方目标的指示有5050是是准确的,而我方火力单位,在指示正确时,有
11、准确的,而我方火力单位,在指示正确时,有1/31/3的射击效果能的射击效果能毁伤敌人一门火炮,有毁伤敌人一门火炮,有1/61/6的射击效果能全部毁伤敌人火炮的射击效果能全部毁伤敌人火炮 现在希望能用某种方式把我方将要对敌人实施的现在希望能用某种方式把我方将要对敌人实施的2020次打击结次打击结果显现出来,确定有效射击的比率及毁伤敌方火炮的平均值。果显现出来,确定有效射击的比率及毁伤敌方火炮的平均值。分析分析:这是一个概率问题,可以通过理论计算得到相应的概率和期望值.但这样只能给出作战行动的最终静态结果,而显示不出作战行动的动态过程.为了能显示我方20次射击的过程,现采用模拟的方式。举例举例数学
12、建模专题之数学建模专题之Monte Carlo方法方法2023-1-2312 需要模拟出以下两件事:2 2 当指示正确时,我方火力单位的射击结果情况当指示正确时,我方火力单位的射击结果情况1 1 观察所对目标的指示正确与否观察所对目标的指示正确与否模拟试验有两种结果,每一种结果出现的概率都是1/2 因此,可用投掷一枚硬币的方式予以确定可用投掷一枚硬币的方式予以确定,当硬币出现正面时为指示正确,反之为不正确 模拟试验有三种结果:毁伤一门火炮的可能性为1/3(即2/6),毁伤两门的可能性为1/6,没能毁伤敌火炮的可能性为1/2(即3/6)这时可用投掷骰子的方法来确定可用投掷骰子的方法来确定:如果出
13、现的是、三个点:则认为没能击中敌人;如果出现的是、点:则认为毁伤敌人一门火炮;若出现的是点:则认为毁伤敌人两门火炮问题分析问题分析数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-2313i:要模拟的打击次数;k1:没击中敌人火炮的射击总数;k2:击中敌人一门火炮的射击总数;k3:击中敌人两门火炮的射击总数;E:有效射击比率;E1:20次射击平均每次毁伤敌人的火炮数符号说明符号说明数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-2314模拟框图模拟框图初始化:i=0,k1=0,k2=0,k3=0i=i+1骰子点数?k1=k1+1k2=k2+1k3=
14、k3+1k1=k1+1i20?E=(k2+k3)/20 E1=(0*k1+1*k2+2*k3)/20停止硬币正面?YNNY1,2,34,56数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-2315模拟结果模拟结果消消灭灭敌敌人人火火炮炮数数试试验验序序号号投投硬硬币币结结果果指指示示正正确确指指示示不不正正确确掷掷骰骰子子结结果果正正反正正反正正反反数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-2316从以上模拟结果可计算出:170.35(0 13 1 42 3/200.520EE )数学建模专题之数学建模专题之Monte Carlo方法方法2
15、023-1-2317理论计算理论计算数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-2318结果比较结果比较 虽然模拟结果与理论计算不完全一致,但它却能更加真实地表虽然模拟结果与理论计算不完全一致,但它却能更加真实地表达实际战斗动态过程要使结果接近理论计算值,必须加大模拟次达实际战斗动态过程要使结果接近理论计算值,必须加大模拟次数,这就要求使用计算机模拟了。数,这就要求使用计算机模拟了。用蒙特卡洛方法进行计算机模拟的步骤:用蒙特卡洛方法进行计算机模拟的步骤:1 1 设计一个逻辑框图,设计一个逻辑框图,即建立模拟模型即建立模拟模型2 2 根据流程图编写程序,模拟随机现象根
16、据流程图编写程序,模拟随机现象可通过生成具有各种概率可通过生成具有各种概率分布的随机数来模拟随机现象,进行模拟试验分布的随机数来模拟随机现象,进行模拟试验3 3 分析模拟结果,给出所求问题的近似解分析模拟结果,给出所求问题的近似解(求解)(求解).数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-2319注:注:rand(n)=rand(n,n)Matlab 中的随机数生成函数中的随机数生成函数randperm(m)l 生成一个由生成一个由 1:m 组成的随机排列组成的随机排列randn(m,n)l 生成一个满足正态生成一个满足正态 m n 的随机矩阵的随机矩阵rand(
17、m,n)l 生成一个满足均匀分布的生成一个满足均匀分布的 m n 随机矩阵,矩阵的每随机矩阵,矩阵的每个元素都在个元素都在(0,1)之间。之间。perms(1:n)l 生成由生成由 1:n 组成的全排列,共组成的全排列,共 n!个结果个结果数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-2320l name 的取值可以是的取值可以是norm or Normalunif or Uniformpoiss or Poissonbeta or Betaexp or Exponentialgam or Gammageo or Geometricunid or Discrete U
18、niform.random(name,A1,A2,A3,M,N)Matlab 中的随机数生成函数中的随机数生成函数数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-2321fix(x):截尾取整,直接将小数部分舍去截尾取整,直接将小数部分舍去floor(x):不超过不超过 x 的最大整数的最大整数ceil(x):不小于不小于 x 的最小整数的最小整数round(x):四舍五入取整四舍五入取整Matlab中的取整函数中的取整函数数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-2322q 模拟随机投掷均匀硬币,验证国徽朝上与朝下的模拟随机投掷均匀硬币,
19、验证国徽朝上与朝下的概率是否都是概率是否都是 1/2 n=10000;%给定试验次数给定试验次数m=0;%m%m 表示试验成功(国徽朝上)的次数表示试验成功(国徽朝上)的次数for i=1:n x=randperm(2)-1;%randperm(2%randperm(2)生成)生成1 1和和2 2的随机排列的随机排列 y=x(1);if y=0%0%0 表示国徽朝上,表示国徽朝上,1 1 表示国徽朝下表示国徽朝下 m=m+1;endendfprintf(国徽朝上的频率为国徽朝上的频率为:%fn,m/n);小实例一:投掷硬币小实例一:投掷硬币数学建模专题之数学建模专题之Monte Carlo方法
20、方法2023-1-2323q 随机投掷骰子,验证各点出现的概率是否为随机投掷骰子,验证各点出现的概率是否为 1/6 n=10000;m1=0;m2=0;m3=0;m4=0;m5=0;m6=0;for i=1:n x=randperm(6);y=x(1);switch y case 1,m1=m1+1;case 2,m2=m2+1;case 3,m3=m3+1;case 4,m4=m4+1;case 5,m5=m5+1;otherwise,m6=m6+1;endend.%输出结果输出结果小实例二:投掷骰子小实例二:投掷骰子数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-2
21、324q 用蒙特卡罗用蒙特卡罗(Monte Carlo)投点法计算投点法计算 的值的值 n=10000;a=2;m=0;%m表示落入圆内的次数表示落入圆内的次数for i=1:n x=rand(1)*a/2;y=rand(1)*a/2;if(x2+y2=(a/2)2)m=m+1;endendfprintf(计算出来的计算出来的 pi 为:为:%fn,4*m/n);小实例三:蒙特卡罗投点法小实例三:蒙特卡罗投点法数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-2325小实例三:蒙特卡罗投点法小实例三:蒙特卡罗投点法ezplot(x2+y2-1,-1.1 1.1);hold
22、 onaxis equalplot(-1-1 1 1-1,-1 1 1-1-1);N=0;for k=1:100 N_point=10000;xy=(rand(2,N_point)-0.5)*2;d=sqrt(xy(1,:).2+xy(2,:).2);N(k)=length(find(d=1);endp1=sum(N)/(N_point*k)p2=pi*12/4pi0=p1*4p_xy=(rand(500,2)-0.5).*2;plot(p_xy(:,1),p_xy(:,2),.);数学建模专题之数学建模专题之Monte Carlo方法方法2023-1-2326q 在画有许多间距为在画有许多间
展开阅读全文