随机数产生原理.ppt
《随机数产生原理.ppt》由会员分享,可在线阅读,更多相关《随机数产生原理.ppt(100页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章第四章随机数产生原理随机数产生原理一、引言一、引言二、伪随机数产生原理二、伪随机数产生原理三、三、0,1均匀分布随机数的算法均匀分布随机数的算法四、其他分布随机数的产生四、其他分布随机数的产生五、正态分布随机数的产生五、正态分布随机数的产生六、六、MATLAB统计库中的随机数发生器统计库中的随机数发生器七、随机数的检验七、随机数的检验八、案例八、案例3九、习题九、习题一、引言一、引言n以以随随机机数数产产生生为为基基础础的的Monte-Carlo方方法法已已成成为为现现代代科科研研的的重重要要手手段段之之一一。其其意意义义早早以以超超出出了了概概率率论论与与数数理理统统计计的的范范畴畴。
2、广广泛泛应应用用于于计计算算方方法法、随随机机数数规规划划、管管理理科科学学、物物理理化化学学中中的的高分子结构的研究等领域。我们来看一些例子。高分子结构的研究等领域。我们来看一些例子。1、数值计算的研究、数值计算的研究数数值值计计算算的的研研究究可可以以说说是是一一切切Monte-Carlo应应用用的的基基础础,在在计计算算数数学学领领域域我我们们遇遇到到了了很很多多的的复复杂杂计计算算,一一个个典典型型的的例例子子是是计计算算积积分分。对对于于一一维维、二二维维的的问问题题早早已已获获得得解解决决。但但是是当当遇遇到到高高维维积积分分问问题题时时,我我们们传传统统的的数数值值方方法法都都由
3、由于于计计算算量量太太大大而而陷陷于于了了困困境境。但但是是高高维维积积分分问问题题又又偏偏偏偏是是物物理理、高高分分子子化化学学、运运筹学和最优化问题迫切而必须解决的问题。我们来看一个例子。筹学和最优化问题迫切而必须解决的问题。我们来看一个例子。这里这里这是一个众所周知的积分公式,我们当然也可以把它一般的这是一个众所周知的积分公式,我们当然也可以把它一般的看为是一个高维积分,如果从传统的数值计算方法来看待,看为是一个高维积分,如果从传统的数值计算方法来看待,则高维问题是随着维数的增加计算量成指数增加的,计算很则高维问题是随着维数的增加计算量成指数增加的,计算很快就失去控制。但是如果我们换一个
4、角度来看待这个问题,快就失去控制。但是如果我们换一个角度来看待这个问题,从概率论的角度,它实际是:从概率论的角度,它实际是:即是即是f(x)的均值,对于均值我们有一个很好的估计,即)的均值,对于均值我们有一个很好的估计,即【例【例4.1.1】用用Monte-Carlo对对积分积分解:将积分区域和值域看成是一个边长为一的正方形。利用均匀分解:将积分区域和值域看成是一个边长为一的正方形。利用均匀分布随机数将点撒在正方形中,计算小于函数的个数并除全部点数。布随机数将点撒在正方形中,计算小于函数的个数并除全部点数。这就是积分的近似值。这就是积分的近似值。%利用利用Monte-Carlo方法计算定积分方
5、法计算定积分x=rand(1,1000);x_2=x.2;JF=mean(x_2)%作作Monte-Carlo积分示意图积分示意图fori=1:1000 xx=rand(1,100);yy=rand(1,100);endx1=linspace(0,1,50);y1=x1.2;plot(xx,yy,.,x1,y1,linewidth,2)axisequalh=legend(x-y,x2);JF=0.3346面积计算结果为:面积计算结果为:s=0.3482【例【例4.1.2】利用利用Monte-Carlo方法计算定积分。方法计算定积分。解:抽两组随机数,求每组元素的平方代入给定的函数,然后求平解:
6、抽两组随机数,求每组元素的平方代入给定的函数,然后求平均值即得积分的近似值。均值即得积分的近似值。%Monte-Carlo方法积分二重积分并与数值方法的结果进行比较方法积分二重积分并与数值方法的结果进行比较Q=dblquad(sin(x.2+y.2),0,1,0,1)%数值求积分命令数值求积分命令x=rand(2,100000);%产生两组随机数产生两组随机数Sin_xy=sin(x(1,:).2+x(2,:).2);%代入函数代入函数JF_Sin_xy=mean(Sin_xy)%用用Monte-Carlo方法求积分值方法求积分值计算结果为:计算结果为:Q=0.5613JF_Sin_xy=0.
7、5612当抽样数很大时结果很接近。我们可以从当抽样数很大时结果很接近。我们可以从Monte-Carlo方法中看出,方法中看出,如果维数增加实际计算难度并不增加,因此是处理高维问题的有效如果维数增加实际计算难度并不增加,因此是处理高维问题的有效方法。方法。这这里里x是是积积分分定定义义域域中中的的均均匀匀分分布布随随机机数数,这这是是革革命命性性的的一一个个视视角角。从从这这个个视视角角,我我们们把把繁繁难难的的积积分分计计算算变变成成了了简简单单的的算算术术平平均均,而而大大量量的的抽抽样样计计算算又又是是计计算算机机的的拿拿手手好好戏戏,更更重重要要的的是是当当维维数数增增加加时时并并不不增
8、增加加计计算算难难度度,从从而而用用Monte-Carlo方方法法研研究究高高维维积积分分问问题题已已是当今计算数学界的热门课题。是当今计算数学界的热门课题。2 2、管理科学的系统仿真研究、管理科学的系统仿真研究管管理理科科学学中中的的系系统统仿仿真真研研究究,如如服服务务系系统统、库库存存系系统统等等。其其共共性性就就是是研研究究的的对对象象是是随随机机数数,如如顾顾客客到到达达时时间间一一般般是是一一个个服服从从指指数数分分布布的的随随机机数数,而而服服务务时时间间也也可可以以看看成成是是服服从从某某种种分分布布的的随随机机数数,当当一一个个系系统统是是多多队队多多服服务务体体系系时时,问
9、问题题就就变变的的相相当当复复杂杂了了。我我们们很很难难用用数数学学的的解解析析式式来来表表达达。这这时时Monte-Carlo方方法法也也是是有有利利的的武武器器。对对于于 这这 个个 领领 域域 的的 已已 有有 各各 种种 比比 较较 成成 熟熟 的的 专专 用用 软软 件件 如如 GPSS、SIMULATION等可以使用等可以使用。3.物理化学中的分子领域物理化学中的分子领域50年年代代科科学学家家已已经经在在高高分分子子领领域域使使用用Monte-Carlo方方法法了了。这这一一领领域域所所研研究究的的问问题题更更加加复复杂杂,计计算算量量非非常常之之大大。高高分分子子材材料料是是由
10、由几几乎乎是是无无穷穷的的高高分分子子链链组组成成,而而每每一一个个链链的的长长度度又又是是10的的好好几几次次方方。而而链链的的构构象象又又是是千千差差万万别别,而而且且是是随随机机游游动动的的。如如何何在在中中微微观观上上几几乎乎是是无无规规律律的的现现象象中中去去判判断断其其宏宏观观的的性性质质?用用数数学学的的解解析析式式来来说说明明这这样样的的现现象象是是苍苍白白无无力力的的。Monte-Carlo方方法法是是一一个个很很好好的的工工具具,它它使使得得科科学学家家用用Monte-Carlo方方法法去去探探索索高高分分子子运运动动的的规规律律。一一个个典典型型的的例例子子是是:对对于于
11、高高分分子子多多链链体体的的研研究究这这是是一一个个很很复复杂杂的的问问题题,直直到到标标度度理理论论和和重重正正化化群群理理论论方方法法的的引引入入,才才使使得得单单链链构构象象统统计问题得到了较好的解决。计问题得到了较好的解决。例:用计算机模拟高分子链例:用计算机模拟高分子链链的末端距链的末端距n末端距:空间一链的末端与末端距:空间一链的末端与始端的距离为末端距,由于始端的距离为末端距,由于我们将始端放在坐标原点,我们将始端放在坐标原点,所以末端距的所以末端距的计算公式为:计算公式为:n末端距末端距=(X2+Y2+Z2)1/2n这里这里X,Y,Z为链的末端点为链的末端点的坐标。的坐标。n显
12、然末端距随链的不同而不显然末端距随链的不同而不同,即为随机变量。同,即为随机变量。三根链的起点三根链的起点(0,0,0)蓝链的末端距蓝链的末端距绿链的末端距绿链的末端距红链的末端距红链的末端距二、二、伪随机数产生原理伪随机数产生原理n前前面面Monte-Carlo方方法法的的例例子子是是以以高高质质量量的的随随机机数数为为基基础础的的。通通过过完完全全的的随随机机抽抽样样或或调调查查可可以以产产生生随随机机序序列。列。n当当我我们们用用Monte-Carlo方方法法研研究究一一个个实实际际问问题题时时,我我们们需需要要快快速速地地获获得得大大量量的的随随机机数数。用用计计算算机机产产生生这这样
13、样的的随随机机数数是是非非常常方方便便的的,用用数数学学方方法法在在计计算算机机上上产产生生的随机数称为伪随机数。的随机数称为伪随机数。基本定理:基本定理:如果随机变量如果随机变量X的分布函数的分布函数F(x)连续,则)连续,则R=F(x)是)是0,1上的均匀分布的随机变量。上的均匀分布的随机变量。证:因为分布函数证:因为分布函数F(x)是在()是在(0,1)上取值单调递增的连续)上取值单调递增的连续函数,所以当函数,所以当X在(在(,x)内取值时,随机变量)内取值时,随机变量R则在(则在(0,F(x))上取值,且对应于()上取值,且对应于(0,1)上的一个)上的一个R值,至少有一个值,至少有
14、一个x满足,见图满足,见图以以表示随机变量表示随机变量R的分布函数,则有的分布函数,则有(4.2.1)=证毕证毕图图(4.2.2)基本定理给出了任一随机变量和均匀分布基本定理给出了任一随机变量和均匀分布R之间的关系。而有之间的关系。而有些随机变量可以通过分布函数的逆变换来获得,因此如果我们些随机变量可以通过分布函数的逆变换来获得,因此如果我们可以产生高质量的均匀分布,我们就可以通过变换获得高质量可以产生高质量的均匀分布,我们就可以通过变换获得高质量的其他分布。见公式的其他分布。见公式(4.2.3)(4.2.3)例例求指数分布的随机数。令求指数分布的随机数。令从从而而我我们们用用服服从从0,1上
15、上的的随随机机数数R,通通过过上上面面的的公公式式就就可可以以得得到到指数分布的随机数了。指数分布的随机数了。例例4.2.1产生产生1000个均匀分布随机数,利用变换产生个均匀分布随机数,利用变换产生=6的指数的指数分布并进行拟合优度检验。分布并进行拟合优度检验。clc,clearx=linspace(0,20,100);R=rand(1,1000);%产生产生1000个(个(0,1)均匀随机数)均匀随机数ex=-6*log(1-R);%变换为指数分布随机数变换为指数分布随机数ex=ex;m=mean(ex)v=var(ex)subplot(1,2,1),cdfplot(ex)subplot(
16、1,2,2),hist(ex)kstest(ex,exexpcdf(ex,6)%拟合优度检验拟合优度检验结果为:结果为:H=0,接受原假设,变换后的确为接受原假设,变换后的确为=6的指数分布的指数分布三、三、(0,1)均匀分布随机数的产生均匀分布随机数的产生n1、算法要求、算法要求n(1)产生的数值序列要具有均匀总体简产生的数值序列要具有均匀总体简单子样的一些概率统计特性,通常包括分布的单子样的一些概率统计特性,通常包括分布的均匀性,抽样的随机性,试验的独立性和前后均匀性,抽样的随机性,试验的独立性和前后的一致性。的一致性。n(2)产生的随机数要有足够长的周期。产生的随机数要有足够长的周期。n
17、(3)产生随机数速度快,占用内存小。产生随机数速度快,占用内存小。为了达到快速的要求,一般采用递推公式为了达到快速的要求,一般采用递推公式(4.3.1)目前最常用的方法是上述方法的一个特例:目前最常用的方法是上述方法的一个特例:混合同余法混合同余法(4.3.2)其中其中a,b,M 以及初值以及初值y都是正整数,容易看出都是正整数,容易看出x 满足满足0 x1。其中。其中modM运算定义为:任一整数运算定义为:任一整数y可唯一表示可唯一表示为公式为公式则则乘同余法乘同余法当当 b=0时,有时,有(4.3.4)加同余法加同余法以下形式的同余法称为加同余法以下形式的同余法称为加同余法(3.4.5)例
18、例历史上比较有名的称为历史上比较有名的称为“菲波那西菲波那西”数列为加同余法数列为加同余法的特例。的特例。(4.3.6)当当M=8时,取初值得时,取初值得“菲波那西菲波那西”数列。数列。0,1,1,2,3,5,8,13,21,34,55,89,144,253对上述数列取模得:对上述数列取模得:0,1,1,2,3,5,0,5,5,7,1,1(4.3.7)再除以模再除以模M我们可得到我们可得到(0,1)之间的序列之间的序列。我们知道对于一个来自均匀分布的随机序列,应该满足独立性、我们知道对于一个来自均匀分布的随机序列,应该满足独立性、均匀性等统计特性,但伪随机数往往有一些缺陷,例如均匀性等统计特性
19、,但伪随机数往往有一些缺陷,例如(4.3.7)序列到一定长度后,又开始重复下面的序列,这称为序列到一定长度后,又开始重复下面的序列,这称为周期性是一种明显的规律,与随机性矛盾。通常我们只能选用周期性是一种明显的规律,与随机性矛盾。通常我们只能选用一个周期内的序列作为我们的伪随机数。因此研究一种算法,一个周期内的序列作为我们的伪随机数。因此研究一种算法,使得其产生的随机序列的周期尽可能长,我们可以通过调节()使得其产生的随机序列的周期尽可能长,我们可以通过调节()的参数来实现。的参数来实现。因此如何来获得一个周期比较长的序列,就成了我们研究的一因此如何来获得一个周期比较长的序列,就成了我们研究的
20、一个内容:有关伪随机数序列的周期有如下的一些结论:个内容:有关伪随机数序列的周期有如下的一些结论:定理定理混合同余法产生序列达最大周期混合同余法产生序列达最大周期M的充要条件:的充要条件:(1)b与与M互素互素(2)对于对于M的任意素因子的任意素因子p,有,有(3)如果如果4是是M的因子,则的因子,则显然乘同余法产生的序列达不到周期显然乘同余法产生的序列达不到周期M(不满足(不满足(1)。当)。当取取(k为任意整数)时,因为为任意整数)时,因为M只有一个素因子只有一个素因子2,且且4是是M的因子,则由条件(的因子,则由条件(2)、()、(3)有)有,从而混合同余发生器达到最大周期的算法为:从而
21、混合同余发生器达到最大周期的算法为:(3.4.8)其中其中c,d为任意整数。混合同余发生器是否达到最大周期为任意整数。混合同余发生器是否达到最大周期M与与初始值无关。初始值无关。对于乘同余发生器,由同余运算的定义,知其由如下性质对于乘同余发生器,由同余运算的定义,知其由如下性质(1)如果如果则有:则有:(2)如果)如果则则其中(其中(c,M)是)是c,M的最大公约数。的最大公约数。利用这些性质可得到以下定理。利用这些性质可得到以下定理。定理定理对乘同余发生器,若对乘同余发生器,若,则使,则使成立得最小正整数成立得最小正整数V就是此发生器得周期。就是此发生器得周期。在数论中称在数论中称V 为为a
22、关于关于M的阶数,对于乘同余发生器,若种的阶数,对于乘同余发生器,若种子与子与M 互素,则其周期就是关于互素,则其周期就是关于M 的阶数。这样一来,寻找的阶数。这样一来,寻找达到最大周期的同余发生器的问题就转化为数论方面寻求达到最大周期的同余发生器的问题就转化为数论方面寻求M达达到最大阶数到最大阶数a的问题了。的问题了。Knuth对这一问题的研究作了总结。对这一问题的研究作了总结。从算法上我们知道公式是递推的,因此一般的随机发生器程从算法上我们知道公式是递推的,因此一般的随机发生器程序都要预先赋初值,这种初值为种(序都要预先赋初值,这种初值为种(Seed),有些统计软件),有些统计软件如如SP
23、SS要求用户给出要求用户给出Seed.以以均均匀匀分分布布(0,1)随随机机变变量量R变变换换成成的的随随机机变变量量。以以r,u,分分别别表表示示(0,1)均均匀匀分分布布,指指数数分分布布,N(0,1)标标准准正正态态分分布布。其他常见的分布如卡方分布、其他常见的分布如卡方分布、F分布等的抽样方法见表。分布等的抽样方法见表。四、四、其他分布随机数的产生其他分布随机数的产生n1、直接抽样法直接抽样法n由基本定理我们知道,对于有些随机变量可以建立由基本定理我们知道,对于有些随机变量可以建立与与R的函数关系,因此只需对的函数关系,因此只需对R进行抽样,利用函数的进行抽样,利用函数的映射关系我们就
24、可以方便地得到该随机变量的抽样了。映射关系我们就可以方便地得到该随机变量的抽样了。如前面的指数分布随机数。如前面的指数分布随机数。n2、变换抽样、变换抽样n产生随机变量的变换抽样方法,是讨论均匀分布的产生随机变量的变换抽样方法,是讨论均匀分布的不同函数分布,为随机变量抽样提供一些简单可行的算不同函数分布,为随机变量抽样提供一些简单可行的算法。在概率论中,从不同的角度出发,对随机变量函数法。在概率论中,从不同的角度出发,对随机变量函数进行了讨论,以下列出一些结果进行了讨论,以下列出一些结果。设随机变量设随机变量X具有密度函数具有密度函数,是对随,是对随机变量机变量X的变换,且的变换,且的逆函数存
25、在,记为的逆函数存在,记为有一阶连续导数,则随机变量的密度函数有一阶连续导数,则随机变量的密度函数,(4.4.1)例例R,1-R均为(均为(0,1)上的均匀分布随机变量,设随机向量)上的均匀分布随机变量,设随机向量(X,Y)具有二维联合密度。对于随机变量)具有二维联合密度。对于随机变量X,Y进行函数变进行函数变换换其中,函数其中,函数,的逆变换存在,记为的逆变换存在,记为且存在一阶偏导数,设且存在一阶偏导数,设J为为Jacobi变换变换则随机变量的二维联合密度为则随机变量的二维联合密度为(4.4.2)例例用变换抽样产生标准正态分布的随机变量用变换抽样产生标准正态分布的随机变量U随机变量随机变量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 随机数 产生 原理
限制150内