资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,随机数的产生及蒙特卡洛随机模拟方法,实验目的,实验内容,学习,随机数的产生及蒙特卡洛随机模拟方法,的基本过程与方法。,1,、数学模拟的方法。,4,、实验作业。,3,、蒙特卡洛随机模拟实例。,2,、产生随机数的计算机命令。,数学模拟的方法,在实际问题中,面对一些带随机因素的复杂系统,用分析方法建模常常需要作许多简化假设,与面临的实际问题可能相差甚远,以致解答根本无法应用。,这时,计算机模拟几乎成为唯一的选择。,在一定的假设条件下,运用数学运算模拟系统的运行,称为数学模拟。现代的数学模拟都是在计算机上进行的,称为计算机模拟。,计算机模拟可以反复进行,改变系统的结构和系数都比较容易。,蒙特卡洛(,Monte Carlo,)方法是一种应用随机数来进行计算机模拟的方法此方法对研究的系统进行随机观察抽样,通过对样本值的统计分析,求得所研究系统的某些参数,用蒙特卡洛方法进行计算机模拟的步骤,:,1,设计一个逻辑框图,即模拟模型这个框图要正确反映系统各部分运行时的逻辑关系。,2,模拟随机现象可通过具有各种概率分布的模拟随机数来模拟随机现象,一、产生模拟随机数的计算机命令,在,Matlab,软件中,可以直接产生满足各种分布的随机数,命令如下:,1,产生,m,*,n,阶,(a,,,b),均匀分布,U,(,a,,,b,)的随机数矩阵:,unifrnd(a,b,m,n);,产生一个,a,,,b,均匀分布的随机数:,unifrnd(a,b),当只知道一个随机变量取值在(,a,,,b,)内,但不知道(也没理由假设)它在何处取值的概率大,在何处取值的概率小,就只好用,U,(,a,,,b,)来模拟它。,2,产生,mm*nn,阶离散均匀分布的随机数矩阵:,R=unidrnd(N),R=unidrnd(N,mm,nn),当研究对象视为大量相互独立的随机变量之和,且其中每一种变量对总和的影响都很小时,可以认为该对象服从正态分布。,若连续型随机变量,X,的概率密度函数为,其中,0,为常数,则称,X,服从参数为 的指数分布。,指数分布的期望值为,排队服务系统中顾客到达间隔、质量与可靠性中电子元件的寿命通常服从指数分布。,例,顾客到达某商店的间隔时间服从参数为,10(,分钟,),的指数分布,(,指数分布的均值为,10),-,指两个顾客到达商店的平均间隔时间是,10,分钟,.,即平均,10,分钟到达,1,个顾客,.,顾客到达的间隔时间可用,exprnd(10),模拟。,设离散型随机变量,X,的所有可能取值为,0,1,2,且取各个值的概率为,其中,0,为常数,则称,X,服从参数为 的,泊,松分布,。,泊,松分布在排队系统、产品检验、天文、物理等领域有广泛应用。,泊,松分布的期望值为,6,产生,1,个参数为,n,p,的二项分布的随机数,binornd(n,p),,,产生,m,n,个参数为,n,p,的二项分布的随机数,binornd(n,p,m,n),。,掷一枚均匀硬币,正面朝上的次数,X,服从参数为,,p,的二项分布,XB(1,p),总结:常见分布的随机数产生语句,补充:随机数的产生命令,MATLAB可以直接产生满足各种分布的随机数,具体,命令如下,:,产生,mn,阶,0,1,上均匀分布的随机数矩阵,rand(m,n),产生一个,0,1,上均匀分布的随机数,rand,产生,m,n,阶,a,b,上均匀分布的随机数矩阵,unifrnd(a,b,m,n),产生一个,a,b,上,均匀分布的随机数,unifrnd,(,a,b),产生一个,1:n,的随机排列,(,元素均出现且不重复,),p=randperm(n),注意,:randperm(6),与,unifrnd(1,6,1,6),的区别,产生mn阶,均值为,mu,方差为,sigma,的正态,分布的随机数矩阵,normrnd(mu,sigma,m,n),产生一个均值为,mu,方差为,sigma,的正态分布的随机数,normrnd(mu,sigma),产生,mn,阶期望值为,mu(mu=1/,),的指数分布的随机数矩阵,exprnd(mu,m,n),产生一个期望值为,mu,的指数分布的随机数,exprnd(mu),注意,:,产生一个参数为,的指数分布的随机数应输入,exprnd(1/,),产生mn阶,参数为,A1,A2,A3,的指定分布,name,的,随机数矩阵,random(name,A1,A2,A3,m,n),产生一个参数为为,A1,A2,A3,的指定分布,name,的随机数,random(name,A1,A2,A3),举例,:,产生,2,4阶的均值为,0,方差为,1,的正态分布的随机数矩阵,random(Normal,0,1,2,4),name,的取值可以是,(,详情参见,help random),:,norm or Normal/unif or Uniform,poiss or Poisson/beta or Beta,exp or Exponential/gam or Gamma,geo or Geometric/unid or Discrete Uniform,二、频率的稳定性模拟,1.,事件的频率,在一组不变的条件下,重复作,n,次试验,记,m,是,n,次试验中事件,A,发生的次数。,频率,f=m/n,2.,频率的稳定性,掷一枚均匀硬币,记录掷硬币试验中频率,P*,的波动情况。,function,liti1(p,mm),pro=zeros(1,mm);,randnum=binornd(1,p,1,mm),a=0;,for i=1:mm,a=a+randnum(1,i);,pro(i)=a/i;,end,pro=pro,num=1:mm;,plot(num,pro),在,Matlab,中编辑,.m,文件输入以下命令:,在,Matlab,命令行中输入以下命令:,liti1(0.5,1000),在,Matlab,命令行中输入以下命令:,liti1(0.5,10000),练习,掷一枚不均匀硬币,正面出现概率为,0.3,,记录前,1000,次掷硬币试验中正面频率的波动情况,并画图。,在,Matlab,命令行中输入以下命令:,liti1(0.3,1000),例,2,掷,两枚不均匀硬币,每枚正面出现概率为,0.4,,记录前,1000,次掷硬币试验中两枚都为正面频率的波动情况,并画图。,在,Matlab,中编辑,.m,文件输入以下命令:,function,liti2(p,mm),pro=zeros(1,mm);,randnum=binornd(1,p,2,mm),;,a=0;,for i=1:mm,a=a+randnum(1,i)*randnum(2,i);pro(i)=a/i;,end,pro=pro,,,num=1:mm;plot(num,pro),liti2(0.4,100),liti2(0.4,10000),二、几何概率模拟,1.,定义,向任一可度量区域,G,内投一点,如果所投的点落在,G,中任意可度量区域,g,内的可能性与,g,的度量成正比,而与,g,的位置和形状无关,则称这个随机试验为几何型随机试验。或简称为几何概型。,2.,概率计算,P,(,A,)=,A,的度量,/,S,的度量,例,5,两人约定于,12,点到,1,点到某地会面,先到者等,20,分钟后离去,试求两人能会面的概率?,解:设,x,y,分别为甲、乙到达时刻,(,分钟,),令,A,=,两人能会面,=(x,y)|x-y|,20,,,x,60,y,60,P(A)=A,的面积,/S,的面积,=,(,60,2,-40,2,),/60,2,=5/9=0.5556,function proguji=liti5(mm)%mm,是随机实验次数,frq=0;,randnum1=unifrnd(0,60,mm,1);,randnum2=unifrnd(0,60,mm,1);,randnum=randnum1-randnum2;,proguji=0;,for ii=1:mm,if abs(randnum(ii,1)=20,frq=frq+1;,end,end,proguji=frq/mm,liti5(10000),proguji=0.5557,三、,蒲丰投针实验,:,法国科学家蒲丰,(Buffon),在,1777,年提出,的蒲丰投针实验是早期几何概率一个非常,著名的例子。,蒲丰投针实验,的重要性并非,是为了求得比其它方法更精确的,值,而,是它开创了使用随机数处理确定性数学问题的先河,,是用偶然性方法去解决确定性计算的前导,,由此,可以,领略到从“概率土壤”上开出的一朵瑰丽的鲜花,蒙特卡罗,方法,(,MC),蒲丰投针实验可归结为下面的数学问题:平面上画有距离为,a,的一些平行线,向平面上任意投一根长为,l(la),的针,假设针落在任意位置的可能性相同,试求针与平行线相交的概率,P(,从而求,),蒲丰投针实验,:,如右图所示,以,M,表示针落下后的中点,,以,x,表示,M,到最近一条,平行线的距离,以,表示针与此线的交角:,针落地的所有可能结果满足:,其样本空间视作矩形区域,面积是,:,针与平行线相交的条件:,它是样本空间,子集,A,,面积是:,积分计算,syms l phi;int(l/2*sin(phi),phi,0,pi);%ans=l,因此,针与平行线相交的概率为:,从而有:特别当 时,p,为统计频率,蒲丰投针实验,的计算机模拟:,format long;,a=1;,l=0.6;,%,显示精度,线,宽,和,针长,figure;axis(0,pi,0,a/2);%,初始化绘图板,set(gca,nextplot,a,dd,);,%,初始化绘图方式为叠加,counter=0;,n=,2010,;,%,初始化计数器和设定,投针次数,x=unifrnd(0,a/2,1,n);,p,hi,=unifrnd(0,pi,1,n);,%,样本空间,for i=1:n,if x(i)l*sin(,p,hi,(i)/2,%满足此条件表示针与线的相交,plot(phi(i),x(i),r.),;,frame(i)=getframe;%,描点并取帧,title(Current Point,num2str(i),Total,num2str(n);,counter=counter+1;,%,统计针与线相交的次数,end,end,fren=counter/n;,pihat=2*l/(a*fren),%,用,频率,近似计算,%movie(frame,1)%,播放帧动画,1,次,蒲丰投针实验计算圆周率,蒙特卡罗投点法是,蒲丰投针实验,的推广:,在一个边长为,a,的正方形内随机投点,该点落在此正方形的内切圆中的概率应为该内切圆与正方形的面积比值,即,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;,end,end,disp(,投点法近似计算的,为,:,num2str(4*m/n);,x,y,o,(a/2,a/2),x,y,o,例,在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点,经过长期观察发现,我方指挥所对敌方目标的指示有,50,是准确的,而我方火力单位,在指示正确时,有,1/3,的概率能毁伤敌人一门火炮,有,1/6,的概率能全部消灭敌人,现在希望能用某种方式把我方将要对敌人实施的,1,次打击结果显现出来,利用频率稳定性,确定有效射击,(,毁伤一门炮或全部消灭,),的概率,.,五、复杂概率模拟(选学),分析,:,这是一个复杂概率问题,可以通过理论计算得到相应的概率,.,为了直观地显示我方射击的过程,现采用模拟的方式。,需要模拟
展开阅读全文