第七章 伪随机数生成

28

Upload: anastasia-sutton

Post on 03-Jan-2016

205 views

Category:

Documents


0 download

DESCRIPTION

第七章 伪随机数生成. 本章研究如何通过( 0, 1)区间上均匀分布的随机数,获得其它各种分布的随机变量的方法。 随机变量是模拟模型的输入变量,而且是以随机变量的样本输入模型的。模拟模型输入分析: 1. 是否随机变量? 2. 分布是否已知? 3. 参数是否已知? 4. 伪随机数产生 假定随机变量的分布是已知的。 问题:要找出从已知分布中产生随机样本的方法。. 常用随机数产生的方法. 逆变换法,函数变换法,组合法,取舍法,近似法. 逆变换法. 定理: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第七章 伪随机数生成
Page 2: 第七章 伪随机数生成

本章研究如何通过( 0, 1)区间上均匀分布的随机数,获得其它各种分布的随机变量的方法。

随机变量是模拟模型的输入变量,而且是以随机变量

的样本输入模型的。模拟模型输入分析: 1. 是否随机变量? 2. 分布是否已知?

3. 参数是否已知?4. 伪随机数产生

假定随机变量的分布是已知的。 问题:要找出从已知分布中产生随机样本的方法。

Page 3: 第七章 伪随机数生成

逆变换法,函数变换法,组合法,取舍法,近似法

Page 4: 第七章 伪随机数生成

定理: 若 X 是任意分布的随机变量, 其 CDF 为 F(x) =P {X ≤x} , 则 Y = F (x) 是在( 0,1 )区间内的均匀分布的

随机变量,并且它与 X 的分布特征无关。证明:

Fig.

Page 5: 第七章 伪随机数生成

1 确定随机变量 X 的 CDF , F(x) ;2 产生( 0,1 )随机数 u ; 令 u = F(x)3 求反函数 X= F-1(u) 则在任意分布函数中进行模拟采样可以通过( 0,

1 )之间均匀分布的模拟采样来达到。

Page 6: 第七章 伪随机数生成
Page 7: 第七章 伪随机数生成

1 1ln(1 ) ln( )x u u

Page 8: 第七章 伪随机数生成

( )1

( )

/ ( ) ( )

0 else

1 ( )0

x v

x v

x ve x v

f x

e x vF xx v

1/[ ln(1 )]x

Page 9: 第七章 伪随机数生成
Page 10: 第七章 伪随机数生成

以正态分布为例

Page 11: 第七章 伪随机数生成

先产生多个 0-1 均匀分布,再利用中心极限定理

Page 12: 第七章 伪随机数生成

有哪些要求?

Page 13: 第七章 伪随机数生成

§6.1 随机数及其产生

1 )兰德公司:从随机数库中随机抽取( 50 年代) 美国兰德公司在 1950年曾将 100万个在( 0 , 1 )区间内的实数存入计算机外存储器,以便在仿真过程中进行随机调用。

由于效率太低,并且不能保证均匀分布的性质,这种方法不久即被淘汰。

如何产生随机数

2 )科学家建议将计算机连接到物理效应设备(如噪声源)上获得随机数流 .

这种方法的随机性和均匀性最好,但产生过程太复杂,也未能得到推广。

3 )通过数学算法由计算机产生随机数。这种方法具有简单易行,占用内存少,运行速度快的优点,因此得到广泛的应用。

Page 14: 第七章 伪随机数生成

种子 迭代 均匀性? 独立性? 范围?

§6.1 随机数及计算机产生伪随机数其产生

Page 15: 第七章 伪随机数生成

§6.1 随机数及其产生– 0~1间隔均匀分布随机数( 1 )随机数值是 0 到 1 的范围内的实数,包括 0 ,或

者包括或者不包括 1 。( 2 )在所定义的区间内,要具有均匀性。即将区间

[0,1] 分隔为 n 个等长的子区间,则在每一个子区间得到的观察值的个数的期望值应该等于 N / n ,

( 3 )在所定义的区间内,要具有独立性。即每个观察值落在某一子区间的概率和前一观察值无关。

Page 16: 第七章 伪随机数生成

( 1 )较长的循环周期( 2 )再现性( 3 )产生伪随机数的算法过程应尽可能简单,以便减少所占用的内存和提高仿真效率。

Page 17: 第七章 伪随机数生成

§6.1 随机数及其产生

1 ) . 平方取中法5.均匀分布随机数生成算法举例

2 ) . 乘法取中法

3 ) . Fibonacci 序列法4 ) . 线性同余法。

Page 18: 第七章 伪随机数生成

由冯 ·纽曼在 40 年代中期提出

Page 19: 第七章 伪随机数生成

利用这个方法产生的伪随机数序列的重复周期通常较短。

对于较长的伪随机数序列,利用这种方法可能无法通过随机性的统计检验。

生成一定数目的随机数之后,往后产生的数可能都为 0 。这种现象的出现称为“退化为零”。

Page 20: 第七章 伪随机数生成

例 利用“平方取中法”产生两位数的随机数序列,种子数取为 x0=44 。

Page 21: 第七章 伪随机数生成

例 设在产生四位数的随机数过程中,得到了一个xi 值为 4500 ,即

Page 22: 第七章 伪随机数生成

X0=7229 X0’=2938

R=21238802 X1=2388

R=17262852 X2=2628

R=06275664 X3=2756

Page 23: 第七章 伪随机数生成
Page 24: 第七章 伪随机数生成

例 取 x0 =1 , x1 =3 , m=8 ,求由上述递推公式可以得到不同的随机数。

Page 25: 第七章 伪随机数生成

线性同余法在 1951 年由菜默尔首先提出,目前大多数随机数发生器都采用这种方法

初始值 x0 称为种子,常数 a 称为乘子,常数 c 称为增量,而常数 m 称为模数。

1 ( ) modn nx ax c m

/n nR x m

Page 26: 第七章 伪随机数生成

例 设 a=5 , c=3 , m=16 ,取 x0=7 ,利用线性同余法产生随机数序列。

Page 27: 第七章 伪随机数生成

一般来讲,存在重复性。合理地选择 a,c,x0 和 m ,可以使重复周期充分长

m : 取值尽量大,为 (2k-1)最好, k 最大字位数• a 和 c 的选取:当且仅当下列条件满足重复周期为 m (这

是最好的情况)。◦ c 与 m 互质◦ (a-1) 是每个能整除m 的质数的倍数。◦ 如果m 能被 4 整除,则 (a-1)也能被 4 整除。

Page 28: 第七章 伪随机数生成

对于乘同余法,由于 c=0 ,无论怎样选择 m ,都无法满足 c 与 m 互质的条件,因而不可能得到满周期

若选择 m=2k,则所产生的随机数序列的周期p≤m/4=2k-2 ,即在 0 至 m-1 之间的整数

至多只有四分之一可能成为 xn 的值,而且这四分之一的整数在 0 至 m-1 之间是如何分布的尚难确定。这与种子数 x0 的选取有关。