《蒙特卡罗方法在随机数中的应用.ppt》由会员分享,可在线阅读,更多相关《蒙特卡罗方法在随机数中的应用.ppt(33页珍藏版)》请在金锄头文库上搜索。
1、第二章第二章 随机数随机数1.随机数的定义及产生方法随机数的定义及产生方法 2.伪随机数伪随机数3.产生伪随机数的乘同余方法产生伪随机数的乘同余方法4.产生伪随机数的乘加同余方法产生伪随机数的乘加同余方法5.产生伪随机数的其他方法产生伪随机数的其他方法6.伪随机数序列的均匀性和独立性伪随机数序列的均匀性和独立性作作 业业第二章第二章 随机数随机数 由具有已知分布的总体中抽取简单子样,由具有已知分布的总体中抽取简单子样,在蒙特卡罗方法中占有非常重要的地位。总体在蒙特卡罗方法中占有非常重要的地位。总体和子样的关系,属于一般和个别的关系,或者和子样的关系,属于一般和个别的关系,或者说属于共性和个性的
2、关系。由具有已知分布的说属于共性和个性的关系。由具有已知分布的总体中产生简单子样,就是由简单子样中若干总体中产生简单子样,就是由简单子样中若干个性近似地反映总体的共性。个性近似地反映总体的共性。 随机数是实现由已知分布抽样的基本量,随机数是实现由已知分布抽样的基本量,在由已知分布的抽样过程中,将随机数作为已在由已知分布的抽样过程中,将随机数作为已知量,用适当的数学方法可以由它产生具有任知量,用适当的数学方法可以由它产生具有任意已知分布的简单子样。意已知分布的简单子样。 什么是随机数?什么是随机数?单个的数字不是随机数单个的数字不是随机数是指一个数列,其中的每一个体称为随机数,其值与数列中是指一
3、个数列,其中的每一个体称为随机数,其值与数列中的其它数无关;的其它数无关;在一个均匀分布的随机数中,每一个体出现的概率是均等的;在一个均匀分布的随机数中,每一个体出现的概率是均等的;v例如:在例如:在0,1区间上均匀分布的随机数序列中,区间上均匀分布的随机数序列中,0.00001与与0.5出现的机会均等出现的机会均等随机数应具有的基本特性随机数应具有的基本特性考虑一个对高能粒子反应过程的模拟:需用随机数确定:考虑一个对高能粒子反应过程的模拟:需用随机数确定:v出射粒子的属性:能量、方向、出射粒子的属性:能量、方向、v粒子与介质的相互作用粒子与介质的相互作用对这一过程的模拟应满足以下要求(相空间
4、产生过程):对这一过程的模拟应满足以下要求(相空间产生过程):v出射粒子的属性应是互不相关的,即每一粒子的属出射粒子的属性应是互不相关的,即每一粒子的属性的确定独立于其它的粒子的属性的确定;性的确定独立于其它的粒子的属性的确定;v粒子的属性的分布应满足物理所要求的理论分布;粒子的属性的分布应满足物理所要求的理论分布;所模拟的物理过程要求随机数应具有下列特性:所模拟的物理过程要求随机数应具有下列特性:v随机数序列应是独立的、互不相关的随机数序列应是独立的、互不相关的(uncorrelated):即序列中的任一子序列应与其它的子序列无关;即序列中的任一子序列应与其它的子序列无关;v长的周期长的周期
5、(long period):实际应用中,随机数都是用数学方法计算出来的,这些实际应用中,随机数都是用数学方法计算出来的,这些算法具有周期性,即当序列达到一定长度后会重复;算法具有周期性,即当序列达到一定长度后会重复;v均匀分布的随机数应满足均匀性均匀分布的随机数应满足均匀性(Uniformity):随机数序列应是均匀的、无偏的,即:如果两个子区间随机数序列应是均匀的、无偏的,即:如果两个子区间的的“面积面积”相等,则落于这两个子区间内的随机数的个相等,则落于这两个子区间内的随机数的个数影相等。数影相等。例如:对例如:对0,1)区间均匀分布的随机数,如果产生区间均匀分布的随机数,如果产生了足够多
6、的随机数,而有一半的随机数落于了足够多的随机数,而有一半的随机数落于区间区间0,0.1不满足均匀性不满足均匀性如果均匀性不满足,则会出现序列中的多组随机数相如果均匀性不满足,则会出现序列中的多组随机数相关的情况关的情况均匀性与互不相关的特性是有联系的均匀性与互不相关的特性是有联系的v有效性(有效性(Efficiency):模拟结果可靠模拟结果可靠 模拟产生的样本容量大模拟产生的样本容量大所需的随机数的数量大所需的随机数的数量大随机数的产生必须快速、有效,最好能随机数的产生必须快速、有效,最好能够进行并行计算。够进行并行计算。1.随机数的定义及产生方法随机数的定义及产生方法1)随机数的定义及性质
7、2)随机数表3)物理方法1)随机数的定义及性质 在连续型随机变量的分布中,最简单而且最基本在连续型随机变量的分布中,最简单而且最基本的分布是单位均匀分布。由该分布抽取的简单子样称,的分布是单位均匀分布。由该分布抽取的简单子样称,随机数序列,其中每一个体称为随机数。随机数序列,其中每一个体称为随机数。 单位均匀分布也称为单位均匀分布也称为0 0,1 1上的均匀分布,其上的均匀分布,其分布密度函数为:分布密度函数为: 分布函数为分布函数为 : 由于随机数在蒙特卡罗方法中占有极其重要的位置,我们用专门的符号表示。由随机数序列随机数序列的定义可知,1,2,是相互独立且具有相同单位均匀分是相互独立且具有
8、相同单位均匀分布的随机数序列布的随机数序列。也就是说,独立性独立性、均匀性均匀性是随机是随机数必备的两个特点。数必备的两个特点。 随机数具有非常重要的性质非常重要的性质:对于任意自然数s,由s个随机数组成的s维空间上的点(n+1,n+2,n+s)在s维空间的单位立方体Gs上均匀分布,即对任意的ai, 下等式成立: 其中P()表示事件发生的概率。反之,如果随机变量序列1, 2对于任意自然数s,由s个元素所组成的s维空间上的点(n+1,n+s)在Gs上均匀分布,则它们是随机数序列。 由于随机数在蒙特卡罗方法中所处的特殊地位,它们虽然也属于由具有已知分布的总体中产生简单子样的问题,但就产生方法而言,
9、却有着本质上的差别。 2)随机数表 为了产生随机数,可以使用随机数表。随机数表是由0,1,9十个数字组成,每个数字以0.1的等概率出现,数字之间相互独立。这些数字序列叫作随机数字序列。如果要得到n位有效数字的随机数,只需将表中每n个相邻的随机数字合并在一起,且在最高位的前边加上小数点即可。例如,某随机数表的第一行数字为7634258910,要想得到三位有效数字的随机数依次为0.763,0.425,0.891。 因为随机数表需在计算机中占有很大内存,而且也难以满足蒙特卡罗方法对随机数需要量非常大的要求,因此,该方法不适于在计算机上使用。3)物理方法 用物理方法产生随机数的基本原理是:利用某些物理
10、现象,在计算机上增加些特殊设备,可以在计算机上直接产生随机数。这些特殊设备称为随机数发生器。用来作为随机数发生器的物理源主要有两种:一种是根据放射性物质的放射性,另一种是利用计算机的固有噪声。 一般情况下,任意一个随机数在计算机内总是用二进制的数表示的: 其中i(i=1,2,m)或者为0,或者为1。 因此,利用物理方法在计算机上产生随机数,就是要产生只取0或1的随机数字序列,数字之间相互独立,每个数字取0或1的概率均为0.5。 用物理方法产生的随机数序列无法重复实现,不能进行程序复算,给验证结果带来很大困难。而且,需要增加随机数发生器和电路联系等附加设备,费用昂贵。因此,该方法也不适合在计算机
11、上使用。2.伪随机数伪随机数1)伪随机数2)伪随机数存在的两个问题3)伪随机数的周期和最大容量 1)伪随机数 在计算机上产生随机数最实用、最常见的方法是数学方法,即用如下递推公式: 产生随机数序列。对于给定的初始值1,2,k,确定n+k,=1,2,。经常使用的是k=1的情况,其递推公式为: 对于给定的初始值1,确定n+1,=, 2)伪随机数存在的两个问题 用数学方法产生的随机数,存在两个问题:a)递推公式和初始值1,2,k确定后,整个随机数序列便被唯一确定。不满足随机数相互独立的要求。b)由于随机数序列是由递推公式确定的,而在计算机上所能表示的0,1上的数又是有限的,因此,这种方法产生的随机数
12、序列就不可能不出现无限重复。一旦出现这样的n,n (n n ),使得下面等式成立: 随机数序列便出现了周期性的循环现象。对于k=1的情况,只要有一个随机数重复,其后面的随机数全部重复,这与随机数的要求是不相符的。 由于这两个问题的存在,常称用数学方法产生的随机数为伪随机数。对于以上存在的两个问题,作如下具体分析。 关于第一个问题,不能从本质上加以改变,但只要递推公式选得比较好,随机数间的相互独立性是可以近似满足的。至于第二个问题,则不是本质的。因为用蒙特卡罗方法解任何具体问题时,所使用的随机数的个数总是有限的,只要所用随机数的个数不超过伪随机数序列出现循环现象时的长度就可以了。 用数学方法产生
13、的伪随机数容易在计算机上得到,可以进行复算,而且不受计算机型号的限制。因此,这种方法虽然存在着一些问题,但仍然被广泛地在计算机上使用,是在计算机上产生伪随机数的主要方法。 3)伪随机数的周期和最大容量 发生周期性循环现象的伪随机数的个数称为伪随机数的周期。对于前面介绍的情况,伪随机数的周期为nn。 从伪随机数序列的初始值开始,到出现循环现象为止,所产生的伪随机数的个数称为伪随机数的最大容量。前面的例子中,伪随机数的最大容量为n 。3.产生伪随机数的乘同余方法产生伪随机数的乘同余方法 乘同余方法是由Lehmer在1951年提出来的,它的一般形式是:对于任一初始值x1,伪随机数序列由下面递推公式确
14、定: 其中a为常数。 (mod为取模运算axaxk k除以除以M M后的余数后的余数)1)乘同余方法的最大容量的上界 对于任意正整数M,根据数论中的标准分解定理,总可以分解成如下形式: 其中P0=2,P1, Pr表示不同的奇素数,0表示非负整数,1,r表示正整数。a无论取什么值,乘同余方法的最大容量的上界为: 的最小公倍数。其中:2)关于a与x1的取值 如果a与x1满足如下条件: 对于 , x1与M互素,则乘同余方法产生的伪随机数序列的最大容量达到最大可能值(M)。 3)乘同余方法在计算机上的使用 为了便于在计算机上使用,通常取 :=2s 其中s为计算机中二进制数的最大可能有效位数x1= 奇数
15、 a = 52k+1 其中k为使52k+1在计算机上所能容纳的最大整数,即a为计算机上所能容纳的5的最大奇次幂。一般地,s=32时,a=513;s=48,a=515等。伪随机数序列的最大容量(M)=2s-2 。 乘同余方法是使用的最多、最广的方法,在计算机上被广泛地使用。4.产生伪随机数的乘加同余方法产生伪随机数的乘加同余方法 产生伪随机数的乘加同余方法是由Rotenberg于1960年提出来的,由于这个方法有很多优点,已成为仅次于乘同余方法产生伪随机数的另一主要方法。 乘加同余方法的一般形式是,对任意初始值x1,伪随机数序列由下面递推公式确定: 其中a和c为常数。 1)乘加同余方法的最大容量
16、 关于乘加同余方法的最大容量问题,有如下结论:如果对于正整数M的所有素数因子P,下式均成立: 当M为4的倍数时,还有下式成立: c与M互素,则乘加同余方法所产生的伪随机数序列的最大容量达到最大可能值M。 2) M,x1,a,c的取值 为了便于在计算机上使用,通常取M = 2s 其中s为计算机中二进制数的最大可能有效位数。a = 2b + 1(b2)c = 1 这样在计算中可以使用移位和指令加法,提高计算速度。 5.产生伪随机数的其他方法产生伪随机数的其他方法1)取中方法2)加同余方法 6.伪随机数序列的均匀性和独立性伪随机数序列的均匀性和独立性 判断伪随机数序列是否满足均匀和相互独立的要求,要
17、靠统计检验的方法实现。对于伪随机数的统计检验,一般包括两大类:均匀性检验和独立性检验。 六十年代初,人们开始用定性的方法研究伪随机数序列的均匀性和独立性问题,简要叙述如下。1)伪随机数的均匀性 这里只考虑伪随机数序列1,2,n全体作为子样时的均匀性问题。其中n为伪随机数序列的最大容量。 对 于 任 意 的 0x1, 令 Nn(x)表 示 伪 随 机 数 序 列1,2,n中适合不等式i x i=1,2,n 的个数,则 标志伪随机数序列1,2,n的均匀程度,称为均匀偏度。 将伪随机数序列1,2,n从小至大重新排列 并令 ,则由(n)的定义,容易证明 很明显,对于固定的,(n)的值越小越好。它是描述
18、伪随机数序列均匀程度的基本量。对于任意随机数序列,均有如下不等式成立: 当 时,所对应的伪随机数序列为最佳分布。 可以证明,伪随机数序列为最佳分布的充要条件是它取遍序列 的所有值。 对于计算机上使用的乘同余方法,按照前面介绍的方法选取a、x1时,所产生的伪随机数序列的均匀偏度 对于乘加同余方法 对于部分伪随机数的均匀性问题通常用统计检验方法检验。 2)伪随机数的独立性 对于任意 ,令 表示(1,2), (2,3), (n,n+1)中适合不等式 的个数,根据随机变量间相互独立的定义和频率近似概率的方法,令 则(n)标志伪随机数序列1,2,n的独立程度,简称为独立偏度。对于固定的n,(n)的值越接近于零,伪随机数序列的独立性越好。 对于乘同余方法, 对于乘加同余方法, 因此,这两种方法的独立性都是很好的。 同伪随机数的均匀性问题一样,伪随机数序列的独立性问题也是对它的全体讨论的。若只考虑伪随机数的一部分,在通常情况下给出(i)是相当因难的。因此,伪随机数序列的独立性问题的统计检验方法同样是非常重要的。 作作 业业 1)证明1是随机数。2)证明 与 同分布 。