MonteCarlo算法模拟.ppt
《MonteCarlo算法模拟.ppt》由会员分享,可在线阅读,更多相关《MonteCarlo算法模拟.ppt(41页珍藏版)》请在三一办公上搜索。
1、Monte Carlo 模拟,内容提纲,1.引言2.Monte Carlo模拟基本思想3.随机数生成函数4.应用实例举例5.排队论模拟6.Monte Carlo模拟求解规划问题,引言(Introduction),Monte Carlo方法:,蒙特卡罗方法,又称随机模拟方法,属于计算数学的一个分支,它是在上世纪四十年代中期为了适应当时原子能事业的发展而发展起来的。亦称统计模拟方法,statistical simulation method 利用随机数进行数值模拟的方法,Monte Carlo名字的由来:,Monte Carlo是摩纳哥(monaco)的首都,该城以赌博闻名,Nicholas Me
2、tropolis(1915-1999),Monte-Carlo,Monaco,Monte Carlo方法的基本思想,蒙特卡罗方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。源于美国在第二次世界大战研制原子弹的“曼哈顿计划”,该计划的主持人之一数学家冯诺伊曼用驰名世界的赌城摩纳哥的Monte Carlo来命名这种方法,为它蒙上了一层神秘色彩。蒙特卡罗方法的基本思想很早以前就被人们所发现和利用。早在17世纪,人们就知道用事件发生的“频率”来决定事件的“概率”。19世纪人们用蒲丰投针的方法来计算圆周率,上世纪40年代电子计算机的出现,特别是近年来高速电子计算机的出现,使得用数学方法在计
3、算机上大量、快速地模拟这样的试验成为可能。,蒲丰投针实验:法国科学家蒲丰(Buffon)在1777年提出的蒲丰投针实验是早期几何概率一个非常著名的例子。蒲丰投针实验的重要性并非是为了求得比其它方法更精确的值,而是它开创了使用随机数处理确定性数学问题的先河,是用偶然性方法去解决确定性计算的前导。由此可以领略到从“概率土壤”上开出的一朵瑰丽的鲜花-蒙特卡罗方法(MC)蒲丰投针实验可归结为下面的数学问题:平面上画有距离为a的一些平行线,向平面上任意投一根长为l(la)的针,假设针落在任意位置的可能性相同,试求针与平行线相交的概率P(从而求),蒲丰投针实验:如右图所示,以M表示针落下后的中点,以x表示
4、M到最近一条平行线的距离,以表示针与此线的交角:针落地的所有可能结果满足:其样本空间视作矩形区域,面积是:针与平行线相交的条件:它是样本空间子集A,面积是:syms l phi;int(l/2*sin(phi),phi,0,pi)%ans=l因此,针与平行线相交的概率为:从而有:,蒲丰投针实验的计算机模拟:format long;%设置15位显示精度a=1;l=0.6;%两平行线间的宽度和针长figure;axis(0,pi,0,a/2);%初始化绘图板set(gca,nextplot,add);%初始化绘图方式为叠加counter=0;n=2010;%初始化计数器和设定投针次数x=unifr
5、nd(0,a/2,1,n);phi=unifrnd(0,pi,1,n);%样本空间for i=1:n if x(i)l*sin(phi(i)/2%满足此条件表示针与线的相交 plot(phi(i),x(i),r.);counter=counter+1;%统计针与线相交的次数frame(counter)=getframe;%描点并取帧 endendfren=counter/n;pihat=2*l/(a*fren)%用频率近似计算figure(2)movie(frame,1)%播放帧动画1次,一些人进行了实验,其结果列于下表:,蒙特卡罗投点法是蒲丰投针实验的推广:在一个边长为a的正方形内随机投点,
6、该点落在此正方形的内切圆中的概率应为该内切圆与正方形的面积比值,即n=10000;a=2;m=0;for i=1:n x=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);,x,y,o,(a/2,a/2),基本思想,由上面的例子可以看出,当所求问题的解是某个事件的概率,或者是某个随机变量的数学期望,或者是与之有关的量时,通过某种试验的方法,得出该事件发生的频率,再通过它得到问题的解。这就是蒙特卡罗方法的基本思想。,蒙特卡罗方法的关键步骤在于随机数的产生,计算机产
7、生的随机数都不是真正的随机数(由算法确定的缘故),如果伪随机数能够通过一系列统计检验,我们也可以将其当作真正的随机数使用。,rand(seed,0.1);rand(1)每次运行程序产生的值是相同的,rand(state,sum(100*clock)*rand);rand(1)%每次重新启动matlab时,输出的随机数不一样,注意:产生一个参数为的指数分布的随机数应输入 exprnd(1/),产生mn阶参数为A1,A2,A3的指定分布name的随机数矩阵 random(name,A1,A2,A3,m,n)举例:产生24阶的均值为0方差为1的正态分布的随机数矩阵 random(Normal,0,1
8、,2,4)name的取值可以是(详情参见help random):norm or Normal/unif or Uniformpoiss or Poisson/beta or Betaexp or Exponential/gam or Gammageo or Geometric/unid or Discrete Uniform,非常见分布的随机数的产生,逆变换方法,Acceptance-Rejection 方法最早由 Von Neumann提出,现在已经广泛应用于各种随机数的生成。,基本思路:,通过一个容易生成的概率分布 g 和一个取舍准则生成另一个与 g 相近的概率分布 f。,为要模拟服从给
9、定分布的随机变量,用生成一个易于实现的不可约遍历链 作为随机样本,使其平稳分布为给定分布的方法,称为马氏链蒙特卡罗方法.,马氏链蒙特卡罗方法,1 连续型随机变量(以指数分布为例):,syms t x lambda;Fx=int(lambda*exp(-lambda*t),t,0,x)%分布函数syms r;Fxinv=finverse(Fx,x);%求反函数Fxinv=subs(Fxinv,x,r)%替换反函数变量x为rFxinv=inline(Fxinv)x=Fxinv(3,rand)%产生参数 lambda=3 指数分布的随机数%指数分布随机数产生函数已经提供 exprnd(1/3,1,1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MonteCarlo 算法 模拟
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5600203.html