资源描述
实验目试验内容试验内容学习学习主要随机变量抽样方法主要随机变量抽样方法1 1、均匀分布均匀分布U(0,1)随机数产生随机数产生2 2、其它各种分布随机数产生方法其它各种分布随机数产生方法3 3、随机数生成实例、随机数生成实例4 4、试验作业、试验作业随机数生成及随机变量抽样第1页随机数生成随机数生成 随机数产生是实现MC计算先决条件。而大多数概率分布随机数产生都是基于均匀分布U(0,1)随机数。首先,介绍服从均匀分布U(0,1)随机数产生方法。其次,介绍服从其它各种分布随机数产生方法。以及服从正态分布随机数产生方法。最终,关于随机数几点注。第2页一、一、均匀分布均匀分布U(0,1)随机数产生随机数产生 产生均匀分布标准算法在很多高级计算机语言书都能够看到。算法简单,轻易实现。使用者能够自己手动编程实现。Matlab中也提供给我们用于产生均匀分布各种函数。我们重点是怎样经过均匀分布产生服从其它分布随机数。所以,直接使用Matlab提供可靠安全标准函数,当然不用费事了。第3页IMSL库中函数使用库中函数使用RNSET:种子设定 CALL RNSET(ISEED)RNOPT:产生器类型设定 CALL RNOPT(IOPT)RNUN/DRNUN:产生均匀分布随机数 CALL RNUN(NR,R)第4页例例1 1生成生成1 1行行10001000列列110110上离散均匀分布随机数;上离散均匀分布随机数;生成生成1 1行行10001000列列21302130上离散均匀分布随机数;上离散均匀分布随机数;生生成成1 1行行10001000列列50110005011000上上离离散散均均匀匀分分布布随随机机数数。并画经验分布函数曲线。并画经验分布函数曲线。Randnum=unidrnd(10,1,10000);cdfplot(Randnum);pauseRandnum=unidrnd(10,1,10000)+10;cdfplot(Randnum);pauseRandnum=unidrnd(500,1,10000)+500;cdfplot(Randnum)cdfplot(x)第5页第6页解解:由密度函数知由密度函数知例例2设总体设总体X密度函数为密度函数为其中其中0,生成生成1行行10000列随机数列随机数.含有均值为含有均值为指数分布指数分布Randnum=exprnd(2,1,10000)+5并画经验分布函数曲线。并画经验分布函数曲线。cdfplot(Randnum)第7页第8页二、其它各种分布随机数产生二、其它各种分布随机数产生基本方法有以下三种:逆变换法 合成法 筛选法 第9页逆变换法逆变换法设随机变量 分布函数为,定义定理定理 设随机变量 服从 上均匀分布,则 分布函数为 。所以,要产生来自 随机数,只要先产生来自随机数,然后计算 即可。其步骤为第10页为常数例例3设密度函数为并画经验分布函数曲线。并画经验分布函数曲线。第11页例例4设X分布函数为F(X)生成生成n=201行行10000列随机数,并画经验分布函列随机数,并画经验分布函数曲线。数曲线。第12页n=20Randnum=1-(1-unifrnd(0,1,1,10000).(1/n);cdfplot(Randnum)第13页为常数例例5设密度函数为并画经验分布函数曲线。并画经验分布函数曲线。第14页合成法合成法合成法应用最早见于Butlter书中。构思以下:假如 密度函数 难于抽样,而 关于 条件密度函数 以及 密度函数 均易于抽样,则 随机数能够下产生:能够证实由此得到 服从 。第15页筛选抽样筛选抽样假设我们要从 抽样,假如能够将 表示成 ,其中 是一个密度函数且易于抽样,而 ,是常数,则 抽样能够下进行:定理定理设密度函数 ,且 ,其中 ,是一个密度函数。令 和 分别服从 和 ,则在 条件下,条件密度为第16页三、生成标准正态分布随机数三、生成标准正态分布随机数 随机数产生方法很多。简明介绍三种。法法1、变换法(Box和Muller1958)设 ,是独立同分布 变量,令 则 与 独立,均服从标准正态分布。法法2、结合合成法与筛选法。(略)法法3 3、近似方法(利用中心极限定理)即用 个 变量产生一个 变量。其中 是抽自 随机数,可近似为一个变量。第17页例例6生成单位圆上均匀分布生成单位圆上均匀分布1行行10000列随机数,并列随机数,并画经验分布函数曲线。画经验分布函数曲线。Randnum=unifrnd(0,2*pi,1,10000);xRandnum=cos(Randnum)Y,II=sort(xRandnum)yRandnum=sin(Randnum)plot(xRandnum(II),yRandnum(II),.)第18页第19页例例7 生成单位正方形上均匀分布生成单位正方形上均匀分布1行行10000列随机列随机数,并画散点图。数,并画散点图。mm=10000;Randnum=unifrnd(0,4,1,mm);xRandnum=zeros(1,mm);yRandnum=zeros(1,mm);forii=1:mmifRandnum(1,ii)=1xRandnum(1,ii)=0;yRandnum(1,ii)=Randnum(1,ii);elseifRandnum(1,ii)=2xRandnum(1,ii)=Randnum(1,ii)-1;yRandnum(1,ii)=1;elseifRandnum(1,ii)=3xRandnum(1,ii)=1;yRandnum(1,ii)=1-(Randnum(1,ii)-2);elsexRandnum(1,ii)=1-(Randnum(1,ii)-3);yRandnum(1,ii)=0;endendendendY,JJ=sort(xRandnum);plot(xRandnum(JJ),yRandnum(JJ),.)第20页第21页离散型随机变量生成离散型随机变量生成离散型随机变量X,它取值是非光滑连续值,它只能间断地即离散地取值x1,x2,x3,xn,且要求x1x2x3xn。其概率密度函数为 p(xi)=pX=xi概率分布函数为例例1010 对某车间天天需求某种零件数量历史数据中统计取得表1结果。生成1行1000列零件需求随机数。并画经验分布函数曲线。并画经验分布函数曲线。表1 某零件天天需求量 X第22页需求量x(件)概率P(x)累积概率F(x)可分配随机数范围X1=100.10F(X1)=0.10(.00-.10X2=200.20F(X2)=0.30(.10-.30X3=300.40F(X3)=0.70(.30-.70X4=400.25F(X4)=0.95(.70-.95X5=500.05F(X5)=1.00(.951)随机变量生成算法为产生一个u(0,1),并令i=0;令i=i+1;若uF(xi),转回到第步,不然转至;输出得 Xxi。第23页mm=10000;Randnum=unifrnd(0,1,1,mm);xRandnum=zeros(1,mm);forii=1:mmifRandnum(1,ii)=0.1xRandnum(1,ii)=10;elseifRandnum(1,ii)=0.3xRandnum(1,ii)=20;elseifRandnum(1,ii)=0.7xRandnum(1,ii)=30;elseifRandnum(1,ii)=0.95xRandnum(1,ii)=40;elsexRandnum(1,ii)=50;endendendendendcdfplot(xRandnum)第24页第25页三角分布(a,m,b)随机变量其密度函数为其分布函数为 第26页第27页在用MonteCarlo等方法解应用问题时,随机向量抽样也是经惯用到.若随机向量各分量相互独立,则它等价于多个一元随机变量抽样。随机向量抽样方法第28页例例8生成单位正方形内均匀分布生成单位正方形内均匀分布1行行10000列随机数,列随机数,并画散点图。并画散点图。mm=10000 xRandnum=unifrnd(0,1,1,mm);yRandnum=unifrnd(0,1,1,mm);plot(xRandnum,yRandnum,.)第29页第30页第31页mm=100000 xRandnum=unifrnd(0,1,1,mm);yRandnum=unifrnd(0,1,1,mm);Y,JJ=sort(xRandnum)plot(xRandnum(JJ),yRandnum(JJ),.)第32页例例9 生成单位圆内均匀分布生成单位圆内均匀分布1行行10000列随机数,列随机数,并并画散点图。画散点图。mm=10000;Randnum1=unifrnd(-1,1,1,2*mm);Randnum2=unifrnd(-1,1,1,2*mm);xRandnum=zeros(1,mm);yRandnum=zeros(1,mm);s=Randnum1.2+Randnum2.2;ii=1;jj=1;whileiimmifs(1,jj)=1;xRandnum(1,ii)=Randnum1(1,jj);yRandnum(1,ii)=Randnum2(1,jj);ii=ii+1;endjj=jj+1;endplot(xRandnum,yRandnum,.)第33页第34页关于随机数几点注关于随机数几点注注注1 1 因为均匀分布随机数产生总是采取某个确定模型进行,从理论上讲,总会有周期现象出现。初值确定后,全部随机数也随之确定,并不满足真正随机数要求。所以通常把由数学方法产生随机数成为伪随机数。注注2 2应对所产生伪随机数作各种统计检验,如独立性检验,分布检验,功率谱检验等等。但其周期又相当长,在实际应用中几乎不可能出现。所以,这种由计算机产生伪随机数能够看成真正随机数来处理。第35页2.设设密度函数为密度函数为1.1.生成单位球内均匀分布生成单位球内均匀分布1 1行行1000010000列随机数,并画列随机数,并画散点图。散点图。作业作业:为常数并画经验分布函数曲线。并画经验分布函数曲线。第36页3.3.生成三角分布生成三角分布(0,1,2)1(0,1,2)1行行1000010000列随机数,并画列随机数,并画散点图。散点图。作业作业:并画经验分布函数曲线。并画经验分布函数曲线。第37页5.2随机数与随机变量生成随机数与随机变量生成 5.2.1随机数生成随机数生成在系统模拟中只要有随机变量,则在模拟运行每一步中都要对随机变量确定一个详细值。我们将会碰到各种概率分布随机变量,但其中最简单或最基本随机变量是在(0,1)区间上均匀分布随机变量。服从某一分布随机变量都能够经过对(0,1)均匀分布随机变量进行适当转换而得到。(0,1)均匀分布随机变量取值也是在(0,1)区间上均匀分布随机数ui序列(流)独立采样,其密度函数是ui数学期望和方差分别为第38页所以,若能取得(0,1)均匀分布随机数,也就能经过对其适当转换而取得某一要求分布随机变量取值,这就是随机变量生成。为此,首先要掌握(0,1)区间上均匀分布随机数生成方法。均匀分布随机数必须具备均匀性和独立性要求;要生成符合上述要求随机数流,现在多用数学算法来产生,普通是采取递推算法,确定一个初始值(种子数)以后,逐次递推算得随机数流。数学算法取得随机数、常称之为伪随机数(PseudoRandomNumber)序列。数学方法计算产生随机数流必须满足以下要求:(1)尽可能在(0,1)区间均匀分布;(2)含有统计上独立性;(3)产生随机数流能够重复出现,即给以相同初值(种子数)能取得相同随机数流;(4)有足够长周期,即在出现周期性重复之前,能生成足够多个随机数;(5)算法占用计算机内存较少而计算生成速度较快。当前广泛应用算法是线性同余法(LinearcongruentialMethod),其中又分为:1混合线性同余法。它是由Lehmer于1951年提出,其算式为第39页xi+1=(axi+c)modmui+1=xi+1/m式中a乘数(常数);C增量(常数);x0种子数;m模数。a,c,m和x0选取对随机数流统计特征和周期长度有极大影响。上述第一式含义是式中表示取整数,a,c,m皆为整常数。2、乘法线性同余法。若混合线性同余法中c=0,则为乘法线性同余法,其算式为xi+1=aximodmui+1=xi+1/m(5.7)第40页可参考选取数据有:(1)a=16807,m=2147483647,x0=123457;(2)a=655393,m=33554432。5.2.2随机数流检验随机数流检验一、均匀分布性检验一、均匀分布性检验1参数检验。检验ui数字特征,如均值、方差预计值和其理论值差异是否显著。设有u1,u2,,un随机数流,则它们若ui序列在(0,1)上均匀分布,可假设:u期望和方差分别为第41页2期望和方差分别为则上列假设(810)与(811)应该成立。据此,可对n个ui计算以下统计量若取显著性水平a=005,当|V1|196时。则可认为假设(810)式成立;当|V2|196时,则可认为假设(811)式成立。因而能够接收此假设,检验经过;不然拒绝接收。2均匀性检验。它是检验所生成随机数落在(0,1)各子区间频率均匀程度,是否与理论上均匀分布频率有显著性差异。此处介绍惯用方法之一,x2检验方法以下:将(0,1)区间划分为相等k个子区间,假如落在第i个(il,2,3,k)子区间随机数有ni个;而在理论上第i个子区间随机数个数为mi=Nk,其中N为随机数流总个数(拟检验)。由此,可计算x2统计量第42页再按k-1为自由度、显著性水平取005,查得2(a)表值。当算得统计量x22(a)时,可认为在显著性水平a下能接收为均匀分布假设。二、独立性检验二、独立性检验独立性检验是检验随机数流中前后各数之间是否存在相关性。惯用方法是进行自相关检验。另外,还有PokerTest和Run检验,普通应用较少。5.2.3随机变量生成随机变量生成一、离散型随机变量生成一、离散型随机变量生成离散型随机变量X,它取值是非光滑连续值,它只能间断地即离散地取值x1,x2,x3,xn,且要求x1x2x30.002510.1720.076P0.002520.4230.032P0.002530.8190.026P0.002540.2550.0066P0.002550.7490.0049P0.00250.2250.0011P0.002510.1720.076P0.002520.4230.032P0.002530.8190.026P0.002540.2550.0066P0.002550.7490.0049P0.00250.2250.0011P0.0025,置X=63近近似似计计算算法法。正态分布随机变量也是一个常见随机变量。因为其分布函数无法积分得到显式,故不能应用逆变换法。可采取以下近似法,也可采取函数变换法。第50页Z是均值u=0,方差为2=1近似正态分布;伴随n值增大,近似程度则愈大。实践表明,当取n=12时,近似性已能满意,则有若要产生均值为u,方差为2正态分布随机变量X,则例题:要产生u=73分钟,2=11.7分2正态分布随机变量x,则先相继产生12个u,比如为0390,0977,0492,0323,0434,09940886,0919,0153,0522,0014,0303按(834)式,第51页5.3随机系统模拟常规操作方法随机系统模拟常规操作方法5.3.1时间步长法时间步长法时间步长法模拟操作过程如图91所表示。从图91提醒,对时间步长法应注意下述几个关键点:(l)首先应进行被模拟系统系统分析,明确模拟目标,确定系统状态变量和决议变量,包含随机变量,建立模拟数学模型,搜集和确定相关参数、常数等数据,以及随机变量生成算法。(2)建立模拟时钟,即确定一个称作“时钟”变量T,其初值T。普通定为T0=0,方便对模拟过程进行计时。(3)设定模拟总时间长度,它与时间步长t确实定相关。(4)确定固定时间步长t值。时间步长t愈小,则愈能较真实地考查、统计到系统改变过程,但模拟工作量较大,占用机时较多;时间步长t愈大,则可能会遗漏一些系统演变步骤,造成模拟过程和结果失真。(5)确定模拟开始系统初始状态及其相关参数值。(6)建立随机数生成算法子程序,确定其种子数。(7)设计输出模拟结果要求和方式。(8)用普通高级语言编写模拟程序并调试。第52页
展开阅读全文