7.2 随机数的产生对随机系统进行模拟,需要产生服从某种分布的一系列 随机数,?
定义 设随机变量 X(总体)服从某种随机分布,对其进行了 n次独立观察,得到一组 简单随机样本 X1,X2,…,Xn,满足
1) X1,X2,…,Xn相互独立;
2) 每一个 X1,X2,…,Xn都与总体 X 同分布,
利用某种方法得到一串 数列 r1,r2,…,rn
一.随机数的概念在一定的统计意义下可作为随机样本
X1,X2,…,Xn
的一组样本值,称 r1,r2,…,rn一组具有与 X相同分布的 随机数,
例 7.2.1 设随机变量 X~ B(1,0.5),模拟该随机变量 X的一组样本值,一种简单的方法是抛一枚均匀硬币,观察出现正反面的情况,
出现正面记为数值,1”,否则记为,0”得:
0,0,1,0,1,1,1,0,1,0,0,0,
0,1,1,0,1,0,…
可看成 总体 X的一系列样本值,或称产生了一系列 具有两点分布的随机数,
需要寻求一种 简便、经济、可靠,并能在计算机上实现的产生随机数的方法,
数学软件有产生常用分布随机数的功能对特殊分布需要数据量很大时不太有效二,均匀分布随机数的产生最常用、最基础 的随机数是在( 0,1)区间内均匀分布的随机数
(简记为 RND)
理解为:随机变量 X~ U(0,1)
的 一组样本值的模拟值一般采用某种数值计算方法产生随机数序列,
在计算机上运算来得到,
通常是利用递推公式:
),,,( 21 knnnn f
给定 k个初始值 ξ1,ξ2,…,ξ k,利用递推公式递推出一系列随机数 ξ 1,ξ 2,…,ξ n,…
乘同余法混合同余法常用方法具有较好的统计性质
1,乘同余法 递推公式为

Mxr
Mxx
nn
nn )( m o d1?
用 M 除 λxn后得到的余数记为 xn+1
其中 λ是乘因子,M为模数 (modulus),第一式是以 M为模数 的 同余式,
给定初值 x0 (称为 种子 ),递推计算出
r1,r2,…,
即在 (0,1)上均匀分布的随机数序列,
例 7.2.1 取 x0=1,λ=7,M=103,有
λx0=7× 1=7,x1=7,r1=7/1000=0.007
λx1=7× 7=49,x2=49,r2=49/1000=0.049
λx2=7× 49=343,x3=343,r3=343/1000=0.343
λx3=7× 343=2401,x4=401,r4=401/1000=0.401
λx4=7× 401=2807,x5=807,r5=807/1000=0.807
其余类推,
2,混合同 余法 递推公式为

Mxr
MCxx
nn
nn )( m o d1?
用模 M 去除
λxn+C的余数其中,C是非负整数,
例 7.2.2,选 λ=97,C=3,M=1000,得递推公式

1 0 0 0
)1 0 0 0( m o d3971
nn
nn
xr
xx
取定种子 x0=71,得
97x0+ 3=6890,x1=890,r1=0.890
97x1+ 3=86333,x2=333,r2=0.333
97x2+ 3=32304,x3=304,r3=0.304
97x3+ 3=29491,x4=491,r4=0.491
97x4+ 3=47830,x5=630,r5=0.630
余类推,接下来的随机数是:
0.113,0.964,0.511,0.570,0.293,0.424,
0.131,0.710,0.873,0.684,0.351,0.050,
0.853…
有下述问题:
1.数列 {rn}是有周期的,周期 L≤M( 模数) ;
因 0≤xn≤M,数列 {xn}最多有 M个相异值,
从而 {rn}也同样如此,
2,数列 {rn}本质上是实数列,给定初始值由递推公式计算出的一串确定的数列,
不能简单等同于真正意义的随机数,。解决方法与思路:
1,选择模拟参数
2,对数列进行统计检验从计算机中直接调用某种分布的随机数同样存在类似问题,
x。 =1,λ=513,M=236 ( L=234≈2× 1010)
1) 周期的长度取决于参数 x0,入,M的选择 ;
2) 通过适当选取参数可以改善随机数的统计性质,
几组供参考的参数值:
x。 =1,λ=7,M=1010 ( L=5× 107)
1,选择模拟参数在计算机上编程产生随机数还应注意浮点运算对周期的影响
x。 =1,λ=517,M=212 ( L=240≈1012)
2,对数列进行统计检验无论用哪一种方法产生的随机数序列 (实数列 ),都存在问题:
将其 看着是在 (0,1)上均匀分布的连续型随机变量 X的独立样本值,
能?
否?
对应的样本是否可以看成 X的简单随机样本:
1) X1,X2,…,Xn相互独立 ;
2) Xi ~ U(0,1),(i=1,2,…,n)
需判断是否具有较好的统计性质:
独立性 均匀性 进行统计检验是样本平均值和理论平均值的 差异性检验,
1.参数检验
2,分布均匀性检验均匀性检验又称 频率检验,用来检验用随机数(样本值)确定的经验频率和均匀分布理论频率是否有显著性差异,
常用的统计检验方法有,
Χ2 检验 和 累积频率检验 ( K- S检验 ),
一般数理统计书中能查到,
3,独立性检验检验随机数 r1,r2,…,rN中前后各数的统计相关性是否显著,
三,任意分布随机数的模拟
l.离散型随机数的模拟设随机变量 X的分布律为
,2,1,,0
1
)()0(
n
n
i
ipPP
n令将 {P( n)}作为区间 (0,1)的分点,
P(0) P(1) P(2) P(3)
0 1
……
),2,1(,}{ ipxXP ii
若随机变量 R~ U(0,1),有产生 X的随机数的 算法步骤,
(1) 产生一个 (0,1)区间上均匀分布随机数 r(RND);
(2) 若 P(n- 1)< r≤P(n),则令 X 取值为 xn.
例 7.2.3 离散型随机变量 X的分布律如下
X=x
P(x)
0 1 2
0.3 0.3 0.4
),2,1(
,}{ )1()()()1(


n
pPPPPP nnnnn
}{}{ )()1( nnn xXPRP令
),2,1(,}{ npxXP nn有设 r1,r2,…,rN是 RND随机数,令


i
i
i
i
r
r
r
x
6.0,2
6.03.0,1
3.00,0
x1,x2,…,xN 即具有 X的分布律的随机数,
从理论上讲,已解决了 产生具有任何离散型分布的随机数 的问题,
具体执行仍有困难,如 X的取值是无穷多个的情况,
可利用分布的自身特点,采用其他的模拟方法,
例 7.2.4 随机变量 X~ B(n,p),其分布律为随机变量 X是 n 次独立贝努里试验中,事件 A
发生的总次数,其中 p=P(A).
在计算机上模拟 n 重贝努里试验来产生二项分布的随机数,
当 p 较大而计算精度要求较高时算法步骤:
1) 产生 n个 RND r1,r2,…,rn;
),,2,1(,)1(}{ nkppCkXP knkkn
10 p
2) 统计 ri ( i=1,2,…,n) 中使得重复循环得到,n1,n2,…,nk即所求随机数列,
2,连续型随机数的模拟利用在 (0,1) 区间上均匀分布的随机数来模拟 具有给定分布的连续型随机数,
两种方法 反函数法 舍选法
0 1
p
练习题:如何模拟参数为 λ的泊松分布随机数?
ri≤ p
的个数 ni.,
1) 反函数法设连续型随机变量 Y的概率函数为 f(x),需产生给定分布的随机数,
1) 产生 n个 RND 随机数 r1,r2,…,rn;
算法步骤;)()2 iyi ydyyfr i 中解出从等式
所得 yi,i=1,2,…,n 即所求,
反函数法算法原理分析例 7.2.4 模拟服从参数为 λ的指数分布的随机数,
其概率密度函数为

.0,0
,0,)(
x
xexf x
iyi dyyfr )(代入公式
iyiy xi edxer 1
0

)1l n (1 ii ry可得若随机变量 ) X~ U(0,1) 1- X~ U(0,1)
(1- ri)与 ri 均为 RND 随机数模拟公式可改写为
ii ry ln1
见 P21穿越公路模型中两辆车之间距离的模拟问题:请考虑如何利用此公式模拟泊松流?
优点,一种普通而适用的方法;
缺点,当反函数不存在或难以求出时,不宜于使用,
2)舍选法基本思想,实质上是从许多 RND随机数中选出一部分,使之成为具有给定分布的随机数,
设随机变量 X的概率密度函数为 f(x),存在实数 a<b,使 P{a<X<b}=1,
算法步骤:
(1) 选取常数 λ,使 λf(x)< 1,x∈ (a,b);
(2) 产生两个 RND 随机数 r1,r2,令
y= a+ (b- a)ri ;
(3) 若 r2≤λf(y),则令 x=y,
否则剔除 r1和 r2,重返步骤 (2).
重复循环,产生的随机数 x1,x2,…,xN的分布由概率函数 f(x) 确定,
舍选法算法原理分析注
,1)( ba dxxf若不满足条件:
可选取有限区间 (a1,,,,b1),使得
1)(1
1
b
a dxxf
ε是很小的正数,
例如取 a1=μ- 3σ,b1=μ+ 3σ,有
0 0 3.011
1
2
2)(
2
2
1

dxe
b
a
x

在区间 (a1,b1)上应用舍选法,不会出现较大的系统误差,
3.正态随机数的模拟产生正态分布随机数的方法反函数法舍选法坐标变换法中心极限定理
1) 坐标变换法设 r1,r2 是 RND随机数,令



)2s i n ()ln2(
)2co s ()ln2(
2
2/1
12
2
2/1
11
rrx
rrx
则 x1,x2是相互独立的标准正态分布的随机数,
概率讲义中有证明
2) 利用中心极限定理产生服从 N(μ,σ2)的算法步骤:
(1) 产生 n 个 RND 随机数,r1,r2,…,rn,
一般 n≥10;/)()2(
1
122?

n
i
nn
irx计算若取 n=12,简化为计算

12
1
6
i
irx
x 是服从标准正态分布的随机数
(3) 计算 y=σx+μ.
y 是服从 N(μ,σ2) 分布的随机数,
原理分析设 ζ1,ζ2,…,ζn是 n个相互独立的随机变量,且 ζi~ U(0,1),i= 1,2,…,n,
,
12
1)()(
2
1
ii DE,有由中心极限定理知

n
i
nn
i
1
122
/)(
渐近服从正态分布 N(0,l ).