欢迎来到天天文库
浏览记录
ID:45067564
大小:683.50 KB
页数:41页
时间:2019-11-09
《MonteCarlo算法模拟》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MonteCarlo模拟内容提纲1.引言2.MonteCarlo模拟基本思想3.随机数生成函数4.应用实例举例5.排队论模拟6.MonteCarlo模拟求解规划问题引言(Introduction)MonteCarlo方法:蒙特卡罗方法,又称随机模拟方法,属于计算数学的一个分支,它是在上世纪四十年代中期为了适应当时原子能事业的发展而发展起来的。亦称统计模拟方法,statisticalsimulationmethod利用随机数进行数值模拟的方法MonteCarlo名字的由来:MonteCarlo是摩纳哥(mona
2、co)的首都,该城以赌博闻名NicholasMetropolis(1915-1999)Monte-Carlo,MonacoMonteCarlo方法的基本思想蒙特卡罗方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。源于美国在第二次世界大战研制原子弹的“曼哈顿计划”,该计划的主持人之一数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的MonteCarlo—来命名这种方法,为它蒙上了一层神秘色彩。蒙特卡罗方法的基本思想很早以前就被人们所发现和利用。早在17世纪,人们就知道用事件发生的“频率”来决定事件的“概率”
3、。19世纪人们用蒲丰投针的方法来计算圆周率π,上世纪40年代电子计算机的出现,特别是近年来高速电子计算机的出现,使得用数学方法在计算机上大量、快速地模拟这样的试验成为可能。蒲丰投针实验:法国科学家蒲丰(Buffon)在1777年提出的蒲丰投针实验是早期几何概率一个非常著名的例子。蒲丰投针实验的重要性并非是为了求得比其它方法更精确的π值,而是它开创了使用随机数处理确定性数学问题的先河,是用偶然性方法去解决确定性计算的前导。由此可以领略到从“概率土壤”上开出的一朵瑰丽的鲜花-蒙特卡罗方法(MC)蒲丰投针实验可归结为
4、下面的数学问题:平面上画有距离为a的一些平行线,向平面上任意投一根长为l(l5、计算机模拟:formatlong;%设置15位显示精度a=1;l=0.6;%两平行线间的宽度和针长figure;axis([0,pi,0,a/2]);%初始化绘图板set(gca,'nextplot','add');%初始化绘图方式为叠加counter=0;n=2010;%初始化计数器和设定投针次数x=unifrnd(0,a/2,1,n);phi=unifrnd(0,pi,1,n);%样本空间Ωfori=1:nifx(i)6、),‘r.’);counter=counter+1;%统计针与线相交的次数frame(counter)=getframe;%描点并取帧endendfren=counter/n;pihat=2*l/(a*fren)%用频率近似计算πfigure(2)movie(frame,1)%播放帧动画1次一些人进行了实验,其结果列于下表:实验者年份投计次数π的实验值沃尔弗(Wolf)185050003.1596斯密思(Smith)185532043.1553福克斯(Fox)189411203.1419拉查里尼(Lazzari7、ni)190134083.1415929蒙特卡罗投点法是蒲丰投针实验的推广:在一个边长为a的正方形内随机投点,该点落在此正方形的内切圆中的概率应为该内切圆与正方形的面积比值,即n=10000;a=2;m=0;fori=1:nx=rand(1)*a;y=rand(1)*a;if((x-a/2)^2+(y-a/2)^2<=(a/2)^2)m=m+1;endenddisp(['投点法近似计算的π为:',num2str(4*m/n)]);xyo(a/2,a/2)基本思想由上面的例子可以看出,当所求问题的解是某个事件的概8、率,或者是某个随机变量的数学期望,或者是与之有关的量时,通过某种试验的方法,得出该事件发生的频率,再通过它得到问题的解。这就是蒙特卡罗方法的基本思想。蒙特卡罗方法的关键步骤在于随机数的产生,计算机产生的随机数都不是真正的随机数(由算法确定的缘故),如果伪随机数能够通过一系列统计检验,我们也可以将其当作真正的随机数使用。rand('seed',0.1);rand(1)%每次运行程序产生的
5、计算机模拟:formatlong;%设置15位显示精度a=1;l=0.6;%两平行线间的宽度和针长figure;axis([0,pi,0,a/2]);%初始化绘图板set(gca,'nextplot','add');%初始化绘图方式为叠加counter=0;n=2010;%初始化计数器和设定投针次数x=unifrnd(0,a/2,1,n);phi=unifrnd(0,pi,1,n);%样本空间Ωfori=1:nifx(i)6、),‘r.’);counter=counter+1;%统计针与线相交的次数frame(counter)=getframe;%描点并取帧endendfren=counter/n;pihat=2*l/(a*fren)%用频率近似计算πfigure(2)movie(frame,1)%播放帧动画1次一些人进行了实验,其结果列于下表:实验者年份投计次数π的实验值沃尔弗(Wolf)185050003.1596斯密思(Smith)185532043.1553福克斯(Fox)189411203.1419拉查里尼(Lazzari7、ni)190134083.1415929蒙特卡罗投点法是蒲丰投针实验的推广:在一个边长为a的正方形内随机投点,该点落在此正方形的内切圆中的概率应为该内切圆与正方形的面积比值,即n=10000;a=2;m=0;fori=1:nx=rand(1)*a;y=rand(1)*a;if((x-a/2)^2+(y-a/2)^2<=(a/2)^2)m=m+1;endenddisp(['投点法近似计算的π为:',num2str(4*m/n)]);xyo(a/2,a/2)基本思想由上面的例子可以看出,当所求问题的解是某个事件的概8、率,或者是某个随机变量的数学期望,或者是与之有关的量时,通过某种试验的方法,得出该事件发生的频率,再通过它得到问题的解。这就是蒙特卡罗方法的基本思想。蒙特卡罗方法的关键步骤在于随机数的产生,计算机产生的随机数都不是真正的随机数(由算法确定的缘故),如果伪随机数能够通过一系列统计检验,我们也可以将其当作真正的随机数使用。rand('seed',0.1);rand(1)%每次运行程序产生的
6、),‘r.’);counter=counter+1;%统计针与线相交的次数frame(counter)=getframe;%描点并取帧endendfren=counter/n;pihat=2*l/(a*fren)%用频率近似计算πfigure(2)movie(frame,1)%播放帧动画1次一些人进行了实验,其结果列于下表:实验者年份投计次数π的实验值沃尔弗(Wolf)185050003.1596斯密思(Smith)185532043.1553福克斯(Fox)189411203.1419拉查里尼(Lazzari
7、ni)190134083.1415929蒙特卡罗投点法是蒲丰投针实验的推广:在一个边长为a的正方形内随机投点,该点落在此正方形的内切圆中的概率应为该内切圆与正方形的面积比值,即n=10000;a=2;m=0;fori=1:nx=rand(1)*a;y=rand(1)*a;if((x-a/2)^2+(y-a/2)^2<=(a/2)^2)m=m+1;endenddisp(['投点法近似计算的π为:',num2str(4*m/n)]);xyo(a/2,a/2)基本思想由上面的例子可以看出,当所求问题的解是某个事件的概
8、率,或者是某个随机变量的数学期望,或者是与之有关的量时,通过某种试验的方法,得出该事件发生的频率,再通过它得到问题的解。这就是蒙特卡罗方法的基本思想。蒙特卡罗方法的关键步骤在于随机数的产生,计算机产生的随机数都不是真正的随机数(由算法确定的缘故),如果伪随机数能够通过一系列统计检验,我们也可以将其当作真正的随机数使用。rand('seed',0.1);rand(1)%每次运行程序产生的
此文档下载收益归作者所有