《第4讲随机数的生成及随机变量抽样》由会员分享,可在线阅读,更多相关《第4讲随机数的生成及随机变量抽样(52页珍藏版)》请在金锄头文库上搜索。
1、实验目的实验目的实验内容实验内容学习学习主要的随机变量抽样方法主要的随机变量抽样方法1 1、均匀分布均匀分布U(0,1)的随机数的产生的随机数的产生2 2、其他各种分布的随机数的产生方法其他各种分布的随机数的产生方法3 3、随机数生成实例、随机数生成实例4 4、实验作业、实验作业随机数的生成及随机变量抽样2021/3/101随机数的生成随机数的生成 随机数的产生是实现MC计算的先决条件。而大多数概率分布的随机数的产生都是基于均匀分布U(0,1)的随机数。首先,介绍服从均匀分布U(0,1)的随机数的产生方法。其次,介绍服从其他各种分布的随机数的产生方法。以及服从正态分布的随机数的产生方法。最后,
2、关于随机数的几点注。2021/3/102一、一、均匀分布均匀分布U(0,1)的随机数的产生的随机数的产生 产生均匀分布的标准算法在很多高级计算机语言的书都可以看到。算法简单,容易实现。使用者可以自己手动编程实现。Matlab中也提供给我们用于产生均匀分布的各种函数。我们的重点是怎样通过均匀分布产生服从其他分布的随机数。因此,直接使用Matlab提供的可靠安全的标准函数,当然不用费事了。2021/3/103IMSL库中的函数使用库中的函数使用RNSET: 种子的设定 CALL RNSET (ISEED)RNOPT:产生器的类型的设定 CALL RNOPT (IOPT) RNUN/DRNUN: 产
3、生均匀分布的随机数 CALL RNUN (NR, R) 2021/3/104例例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
4、)+10;cdfplot(Randnum);pauseRandnum=unidrnd(500,1,10000)+500;cdfplot(Randnum)cdfplot(x)2021/3/1052021/3/106解解:由密度函数知由密度函数知例例2设总体设总体X的密度函数为的密度函数为其中其中0,生成生成1行行10000列的随机数列的随机数.具有均值为具有均值为的指数分布的指数分布Randnum=exprnd(2,1,10000)+5并画经验分布函数曲线。并画经验分布函数曲线。cdfplot(Randnum)2021/3/1072021/3/108二、其他各种分布的随机数的产生二、其他各种分布
5、的随机数的产生基本方法有如下三种: 逆变换法 合成法 筛选法 2021/3/109逆变换法逆变换法设随机变量 的分布函数为 ,定义定理定理 设随机变量 服从 上的均匀分布,则 的分布函数为 。因此,要产生来自 的随机数,只要先产生来自的随机数,然后计算 即可。其步骤为2021/3/1010为常数例例3设密度函数为并画经验分布函数曲线。并画经验分布函数曲线。2021/3/1011例例4设X分布函数为F(X)生成生成n=20的的1行行10000列随机数,并画经验分布列随机数,并画经验分布函数曲线。函数曲线。2021/3/1012n=20Randnum=1-(1-unifrnd(0,1,1,1000
6、0).(1/n);cdfplot(Randnum)2021/3/1013为常数例例5设密度函数为并画经验分布函数曲线。并画经验分布函数曲线。2021/3/1014合成法合成法合成法的应用最早见于Butlter的书中。构思如下:如果 的密度函数 难于抽样,而 关于 的条件密度函数 以及 的密度函数 均易于抽样,则 的随机数可如下产生:可以证明由此得到 的服从 。2021/3/1015筛选抽样筛选抽样假设我们要从 抽样,如果可以将 表示成 ,其中 是一个密度函数且易于抽样,而 , 是常数,则 的抽样可如下进行:定理定理设的密度函数 ,且 ,其中 , , 是一个密度函数。令 和 分别服从 和 ,则在
7、 的条件下, 的条件密度为2021/3/1016三、生成标准正态分布的随机数三、生成标准正态分布的随机数 的随机数产生方法很多。简要介绍三种。法法1、变换法(Box和Muller1958)设 , 是独立同分布的 变量,令 则 与 独立,均服从标准正态分布。法法2、 结合合成法与筛选法。(略)法法3 3、 近似方法(利用中心极限定理)即用 个 变量产生一个 变量。其中 是抽自 的随机数,可近似为一个变量。2021/3/1017例例6生成单位圆上均匀分布的生成单位圆上均匀分布的1行行10000列随机数,列随机数,并画经验分布函数曲线。并画经验分布函数曲线。Randnum=unifrnd(0,2*p
8、i,1,10000);xRandnum=cos(Randnum)Y,II=sort(xRandnum)yRandnum=sin(Randnum)plot(xRandnum(II),yRandnum(II),.)2021/3/10182021/3/1019例例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(
9、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),.)
10、2021/3/10202021/3/1021离散型随机变量的生成离散型随机变量的生成离散型随机变量X,它的取值是非光滑连续的值,它只能间断地即离散地取值x1,x2,x3,xn,且规定x1x2x3xn。其概率密度函数为 p(xi)=pX= xi概率分布函数为例例1010 对某车间每天需求某种零件的数量历史数据中统计获得表1的结果。生成1行1000列零件需求的随机数。并画经验分布函数曲线。并画经验分布函数曲线。 表1 某零件每天需求量 X2021/3/1022需求量x(件)概率P(x)累积概率F(x)可分配的随机数范围X1=100.10F(X1)=0.10(.00-.10X2=200.20F(X2
11、)=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。2021/3/1023mm=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(
12、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)2021/3/10242021/3/1025三角分布(a,m,b)的随机变量其密度函数为其分布函数为 2021/3/10262021/3/1027在用MonteCarlo等方法解应用问题时,随机向量的抽样也是经常用到的.若随机向量各分量相互独立,则它等价于多个一元随机变量的抽样。随机向量的抽样方法2021/
13、3/1028例例8生成单位正方形内均匀分布的生成单位正方形内均匀分布的1行行10000列随机列随机数,并画散点图。数,并画散点图。mm=10000xRandnum=unifrnd(0,1,1,mm);yRandnum=unifrnd(0,1,1,mm);plot(xRandnum,yRandnum,.)2021/3/10292021/3/10302021/3/1031mm=100000xRandnum=unifrnd(0,1,1,mm);yRandnum=unifrnd(0,1,1,mm);Y,JJ=sort(xRandnum)plot(xRandnum(JJ),yRandnum(JJ),.)
14、2021/3/1032例例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
15、;endjj=jj+1;endplot(xRandnum,yRandnum,.)2021/3/10332021/3/1034关于随机数的几点注关于随机数的几点注注注1 1 由于均匀分布的随机数的产生总是采用某个确定的模型进行的,从理论上讲,总会有周期现象出现的。初值确定后,所有随机数也随之确定,并不满足真正随机数的要求。因此通常把由数学方法产生的随机数成为伪随机数。注注2 2应对所产生的伪随机数作各种统计检验,如独立性检验,分布检验,功率谱检验等等。 但其周期又相当长,在实际应用中几乎不可能出现。因此,这种由计算机产生的伪随机数可以当作真正的随机数来处理。2021/3/10352.设设密度函数
16、为密度函数为1.1.生成单位球内均匀分布的生成单位球内均匀分布的1 1行行1000010000列随机数,并列随机数,并画散点图。画散点图。作业作业:为常数并画经验分布函数曲线。并画经验分布函数曲线。2021/3/10363.3.生成三角分布生成三角分布(0,1,2)(0,1,2)的的1 1行行1000010000列随机数,并列随机数,并画散点图。画散点图。作业作业:并画经验分布函数曲线。并画经验分布函数曲线。2021/3/10375.2随机数与随机变量的生成随机数与随机变量的生成 5.2.1随机数的生成随机数的生成在系统模拟中只要有随机变量,则在模拟运行的每一步中都要对随机变量确定一个具体的值
17、。我们将会遇到各种概率分布的随机变量,但其中最简单或最基本的随机变量是在(0,1)区间上均匀分布的随机变量。服从某一分布的随机变量都可以通过对(0,1)均匀分布的随机变量进行适当转换而得到。(0,1)均匀分布的随机变量的取值也是在(0,1)区间上均匀分布的随机数ui序列(流)的独立采样,其密度函数是ui的数学期望和方差分别为2021/3/1038因此,若能获得(0,1)均匀分布的随机数,也就能通过对其适当的转换而获得某一规定分布的随机变量的取值,这就是随机变量的生成。为此,首先要掌握(0,1)区间上均匀分布随机数的生成方法。均匀分布随机数必须具备均匀性和独立性的要求;要生成符合上述要求的随机数
18、流,现在多用数学算法来产生,一般是采用递推算法,确定一个初始值(种子数)以后,逐次递推算得随机数流。数学算法获得的随机数、常称之为伪随机数(PseudoRandomNumber)序列。数学方法计算产生的随机数流必须满足下列要求:(1)尽可能在(0,1)区间均匀分布;(2)具有统计上的独立性;(3)产生的随机数流能够重复出现,即给以相同的初值(种子数)能获得相同的随机数流;(4)有足够长的周期,即在出现周期性重复之前,能生成足够多个的随机数;(5)算法占用计算机内存较少而计算生成速度较快。目前广泛应用的算法是线性同余法(LinearcongruentialMethod),其中又分为:1混合线性同
19、余法。它是由Lehmer于1951年提出的,其算式为2021/3/1039xi+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)2021/3/1040可参考选用的数据有:(1)a=16807,m=2147483647,x0=123457;(2)a=655393,m=33554432。5.2.2
20、随机数流的检验随机数流的检验一、均匀分布性检验一、均匀分布性检验1参数检验。检验ui的数字特征,如均值、方差的估计值和其理论值的差异是否显著。设有u1,u2,,un随机数流,则它们的若ui序列在(0,1)上均匀分布,可假设:u的期望和方差分别为2021/3/10412的期望和方差分别为则上列假设(810)与(811)应该成立。据此,可对n个ui计算下列统计量若取显著性水平a=005,当|V1|196时。则可认为假设(810)式成立;当|V2|196时,则可认为假设(811)式成立。因而可以接受此假设,检验通过;否则拒绝接受。2均匀性检验。它是检验所生成的随机数落在(0,1)各子区间的频率的均匀
21、程度,是否与理论上的均匀分布频率有显著性差异。此处介绍常用方法之一,x2检验方法如下:将(0,1)区间划分为相等的k个子区间,假如落在第i个(il,2,3,k)子区间的随机数有ni个;而在理论上第i个子区间的随机数个数为mi=Nk,其中N为随机数流总个数(拟检验的)。由此,可计算x2统计量2021/3/1042再按k-1为自由度、显著性水平取005,查得2(a)表值。当算得统计量x22(a)时,可认为在显著性水平a下能接受为均匀分布假设。二、独立性检验二、独立性检验独立性检验是检验随机数流中前后各数之间是否存在相关性。常用的方法是进行自相关检验。此外,还有PokerTest和Run检验,一般应
22、用较少。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.0
23、049P0.00250.2250.0011P0.0025,置X=63近近似似计计算算法法。正态分布随机变量也是一种常见的随机变量。由于其分布函数无法积分得到显式,故不能应用逆变换法。可采用如下近似法,也可采用函数变换法。2021/3/1050Z是均值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,052
24、2,0014,0303按(834)式,2021/3/10515.3随机系统模拟常规操作方法随机系统模拟常规操作方法5.3.1时间步长法时间步长法时间步长法的模拟操作过程如图91所示。从图91提示,对时间步长法应注意下述几个要点:(l)首先应进行被模拟系统的系统分析,明确模拟目的,确定系统状态变量和决策变量,包括随机变量,建立模拟数学模型,搜集和确定有关参数、常数等数据,以及随机变量生成算法。(2)建立模拟时钟,即确定一个称作“时钟”的变量T,其初值T。一般定为T0=0,以便对模拟过程进行计时。(3)设定模拟总时间长度,它与时间步长t的确定有关。(4)确定固定的时间步长t值。时间步长t愈小,则愈能较真实地考察、记录到系统的变化过程,但模拟工作量较大,占用机时较多;时间步长t愈大,则可能会遗漏一些系统的演变环节,造成模拟过程和结果的失真。(5)确定模拟开始的系统初始状态及其有关参数值。(6)建立随机数生成算法的子程序,确定其种子数。(7)设计输出模拟结果的要求和方式。(8)用一般高级语言编写模拟程序并调试。2021/3/1052