280 likes | 536 Views
第七章 伪随机数生成. 本章研究如何通过( 0, 1)区间上均匀分布的随机数,获得其它各种分布的随机变量的方法。 随机变量是模拟模型的输入变量,而且是以随机变量的样本输入模型的。模拟模型输入分析: 1. 是否随机变量? 2. 分布是否已知? 3. 参数是否已知? 4. 伪随机数产生 假定随机变量的分布是已知的。 问题:要找出从已知分布中产生随机样本的方法。. 常用随机数产生的方法. 逆变换法,函数变换法,组合法,取舍法,近似法. 逆变换法. 定理:
E N D
本章研究如何通过(0,1)区间上均匀分布的随机数,获得其它各种分布的随机变量的方法。 随机变量是模拟模型的输入变量,而且是以随机变量的样本输入模型的。模拟模型输入分析: 1. 是否随机变量? 2. 分布是否已知? 3. 参数是否已知? 4. 伪随机数产生 假定随机变量的分布是已知的。 问题:要找出从已知分布中产生随机样本的方法。
常用随机数产生的方法 • 逆变换法,函数变换法,组合法,取舍法,近似法
逆变换法 定理: 若 X是任意分布的随机变量, 其CDF为 F(x) =P {X ≤x}, 则Y = F (x)是在(0,1)区间内的均匀分布的随机变量,并且它与X的分布特征无关。 证明: Fig.
反变换法步骤 1 确定随机变量X的CDF, F(x); 2 产生(0,1)随机数u; 令 u = F(x) 3 求反函数 X= F-1(u) 则在任意分布函数中进行模拟采样可以通过(0,1)之间均匀分布的模拟采样来达到。
5 函数变换法 以正态分布为例
6 卷积法 • 先产生多个0-1均匀分布,再利用中心极限定理
U(0,1)均匀分布随机数的产生 • 有哪些要求?
§6.1 随机数及其产生 如何产生随机数 1)兰德公司:从随机数库中随机抽取(50年代) 美国兰德公司在1950年曾将100万个在(0,1)区间内的实数存入计算机外存储器,以便在仿真过程中进行随机调用。 由于效率太低,并且不能保证均匀分布的性质,这种方法不久即被淘汰。 2)科学家建议将计算机连接到物理效应设备(如噪声源)上获得随机数流. 这种方法的随机性和均匀性最好,但产生过程太复杂,也未能得到推广。 3)通过数学算法由计算机产生随机数。 这种方法具有简单易行,占用内存少,运行速度快的优点,因此得到广泛的应用。
§6.1 随机数及计算机产生伪随机数 其产生 • 种子 • 迭代 • 均匀性? • 独立性? • 范围?
§6.1 随机数及其产生– 0~1间隔均匀分布随机数 (1)随机数值是0到1的范围内的实数,包括0,或者包括或者不包括1。 (2)在所定义的区间内,要具有均匀性。即将区间 [0,1] 分隔为n个等长的子区间,则在每一个子区间得到的观察值的个数的期望值应该等于N / n, (3)在所定义的区间内,要具有独立性。即每个观察值落在某一子区间的概率和前一观察值无关。
伪随机数发生器的要求 (1)较长的循环周期 (2)再现性 (3)产生伪随机数的算法过程应尽可能简单,以便减少所占用的内存和提高仿真效率。
§6.1 随机数及其产生 5.均匀分布随机数生成算法举例 1). 平方取中法 2). 乘法取中法 3). Fibonacci序列法 4). 线性同余法。
平方取中法 • 由冯·纽曼在40年代中期提出
缺点 • 利用这个方法产生的伪随机数序列的重复周期通常较短。 • 对于较长的伪随机数序列,利用这种方法可能无法通过随机性的统计检验。 • 生成一定数目的随机数之后,往后产生的数可能都为0。这种现象的出现称为“退化为零”。
退化为零 • 例利用“平方取中法”产生两位数的随机数序列,种子数取为x0=44。
退化为恒值 • 例设在产生四位数的随机数过程中,得到了一个xi 值为4500,即
斐波那契序列法 例取x0 =1,x1 =3,m=8,求由上述递推公式可以得到不同的随机数。
线性同余法 • 线性同余法在1951 年由菜默尔首先提出,目前大多数随机数发生器都采用这种方法 • 初始值x0 称为种子,常数a 称为乘子,常数c 称为增量,而常数m 称为模数。
例设a=5,c=3,m=16,取x0=7,利用线性同余法产生随机数序列。例设a=5,c=3,m=16,取x0=7,利用线性同余法产生随机数序列。
一般来讲,存在重复性。合理地选择a,c,x0 和m,可以使重复周期充分长 • m:取值尽量大,为(2k-1)最好,k最大字位数 • a 和c 的选取:当且仅当下列条件满足重复周期为m(这是最好的情况)。 • c 与m 互质 • (a-1)是每个能整除m的质数的倍数。 • 如果m能被4整除,则(a-1)也能被4整除。
乘同余法 • 对于乘同余法,由于c=0,无论怎样选择m,都无法满足c 与m 互质的条件,因而不可能得到满周期 • 若选择m=2k,则所产生的随机数序列的周期p≤m/4=2k-2,即在0 至m-1 之间的整数 • 至多只有四分之一可能成为xn的值,而且这四分之一的整数在0 至m-1 之间是如何分布的尚难确定。这与种子数x0的选取有关。