随机变量产生的原理.docx
《随机变量产生的原理.docx》由会员分享,可在线阅读,更多相关《随机变量产生的原理.docx(14页珍藏版)》请在冰豆网上搜索。
随机变量产生的原理
随机变量产生的原理
12.3随机变量产生的原理
仿真对产生随机变量的方法的要求:
准确性:
即由这种方法产生的随机变量应准确地具有所要求的分布;
快速性:
离散事件仿真一次运行往往需要产生几万甚至几十万个随机变量。
介绍四类最常用的产生随机变量的方法:
反变换法,组合法,卷积法及舍选法。
1、反变换法----以概率积分变换定理为基础
(1)连续随机变量的反变换法:
uFx()设随机变量x的分布函数为,先产生在[0,1区]间上均匀分布的独立随机变量,由反分
1Fu()布函数得到的值即为所需要的随机变量x:
1xFu,()
原理说明:
Fx(),随机变量概率分布函数的取值范围为[0,1];
Fx(),以在[0,1]上均匀分布的独立随机变量作为的取值规
律;图12.1连续分布函数的反变换法原理
1
Fx,,落在内的样本个数的概率就是;
,Fx/,x,从而随机变量x在区间内出现的概率密度函数的平均值为;
dFdx/,x,当趋于0时,其概率密度函数就等于,即符合原来给定的密度分布函数,满足正确
性要求。
例12.1设随机变量x是[a,b]上均匀分布的随机变量,即:
0xa,,1,,xa,,axb,,Fx(),axb,,fx(),,,ba,xfx()概率密度函数:
由可得到的分布函数:
ba,,,0其它,1xb,,
u,用随机数发生器产生U(0,1)随机变量
xa,uFx,,()()axb,,,令ba,
xabau,,,(),可得:
(2)离散随机变量的反变换法:
px()px()xxx,,,?
xpx()设离散随机变量分别以概率,,…,取值,其中n212n1
2
n
px(),101,,px()i,,且。
ii,1
px()px()px(),将[0,1]区间按,,…,的值分成n个子区间;12n
产生在[0,1]区间上均匀分布的独立的随机数u;,根据u的值落在何区间,相应区间对应的随机变量就是
x所需要的随机变量。
i
实现办法:
x,先要将按从小到大的顺序进行排序,即i
图12.2离散分布的反变换法
xxx,,,?
12n
得到分布函数子区间的分界点
n,1n,,
((),()()],,(),()pxpxpxpxpx,?
,0,()px112ii,,,,,1,,i,1i,1,,
xx,u~U(0,1)upx,(),由随机数发生器产生的,若,则令,若11
pxupxpx()()(),,,xx,,,?
,则令依次下去。
1122
写成一般形式:
3
I,1I
pxupx()(),,jj,,xx,令Ij,0j,0
速度:
主要决定于区间搜索方法。
2组合法
反变换法是最直观的方法,但却不一定是最有效的方法。
FxpFx()(),jj,设随机变量x的分布函数F(x):
i,1
pFx,1,()p,0jj,其中,且是其它类型的分布函数。
j
i,0
fxpfx()(),fx()xjj,或者随机变量的密度函数:
j,1
Fx()pfx()其中的定义与前面的相同,是其它种类型的密度函数,与它相应的分布函数为。
jjj
当一个分布函数可以表示成若干个其它分布函数之和,而这些分布函数较原来的分布函数更易
于取样时,则宜采用组合法。
4
组合法产生随机变量的步骤:
PJjp{},,j,12,,?
(1)产生一个随机整数J,满足,()(确定分布函数)j
xFx()
(2)产生具有分布函数的随机变量(以该分布函数产生随机变量)jj
xx,(3)令j
xxf(x),0.5e例12.4设密度函数为,产生服从该分布的随机变量。
fx()fx()分析的特点,可以看到,它以纵轴为对称轴分为两部分。
将写成如下形式:
xxfxeIxeIx().().(),,0505(,)[,),,00,f(x)
x,,[,)10x,,,(,)10,,Ix(),Ix(),,,其中:
0.5其它00其它(,)0,(,),,0,,
x,xfxeIx()(),fxeIx()(),p,05.p,05.12令()()21(,),,[,)00,
2
fxpfx()(),ji,从而
i,1
用组合法产生随机变量x的方法如下:
5
uu
(1)由U(0,1)产生随机变量及21
xu,lnfx()u,05.x
(2)若,则由的分布函数产生,即可由反变换法易于得到211
xu,,lnfx()u,05.x(3)若,则由的分布函数产生,即可由反变换法易于得到221
3卷积法
YYY,,,?
设随机变量x可表示为若干个独立同分布的随机变量之和,即:
12m
xYYY,,,,?
12m
m
YYi,则x的分布函数与的分布函数相同,此时称x的分布为分布的m重卷积。
ii,1
YYY,,,?
卷积法:
为了产生x,可先独立地从相应分布函数产生随机变量,然后求和得到x12m,m,m例试产生均值为的维厄兰分布Erlang(,)的随机变量x
mm,1,x
f(x),exp(,x/,)
(m,1)!
x1,/m,,mmmfx,e()Erlang(,)的随机变量可表示为个均值为/的独立的指数随机变量之和。
/m,
6
x采用卷积法产生,其步骤如下;
um
(1)独立地产生个U(0,1)随机数i
Y,,lnu(,,,)im,12?
Y
(2)用反变换法分别产生:
iii
m
m
xYYYY,,,,,?
im12,(3)令
i,1
改进:
考虑到对数运算速度较慢,将上述第
(2)(3)两步改进为:
mm,uuuu,?
x,,lnuim12i,,
(2)计算(3)令mi,1i,1
4舍选法
直接法:
直接面向分布函数,以反变换法为基础。
舍选法:
当反变换法难于使用时(例如随机变量的分布函数不存在封闭形式)。
xxf(x)f(x)基本思想:
设随机变量的密度函数为,的最大值为C,的取值范围为[0,1]。
7
uu,若独立地产生两个[0,1]区间内均匀分布的随机变量,12
Cuufu()则是在[0,C]区间内均匀分布的随机变量,若以求122的值,若:
Cu,f(u)12
uxu,x成立,则选取为所需要的随机变量,即,否则舍22
u弃。
2
舍选法的解释:
Cufx()up,p在1×C这块矩形面积上任投一点的纵坐标为,横坐标为。
若该点位于曲图12.4舍选法图示1211
线下面,则认为抽样成功。
f(x)f(x)下的面积可视为在(0,1)区间对的积分,若x取值仅在(0,1)区间,则该积
f(x)u分值可视为分布函数值,在该区间的成功抽样可视为对对应的分布函数抽样,就是所需产2
1生的随机变量。
Cufu,()显然,满足的概率为12
11f(x)
PCufudxdyC,,,,{()}/
(1),,1200C
8
f(x)fx()解释:
下的面积值其值为1,总面积的值为C,那么成功的概率就是下的面积除以总
C面积,即等于1/C。
u,a,u(b,a)如果随机变量x的取值不在[0,1]区间,而是在[a,b]区间,则可令:
。
22一般情形,
根据f(x)的特征规定一个函数t(x)(前面实际上是一个常数C),对t(x)的要求是:
txfx()(),
(1)
txdxC(),,,
(2),,,
(3)易于从t(x)进行反变换
,11rxdx()(),,txdx1rx()(),tx,令,则,,,,,,CC
将r(x)看作是一个密度函数,并用r(x)代替f(x)取样,以得到所需要的随机变量。
由于r(x)
并不是要求的f(x),这就是产生选取与舍弃问题。
通用算法表达:
9
u
(1)产生,U(0,1);1
urx()
(2)由独立地产生随机变量;2
ufutu,()/()(3)检验如下不等式:
;122
xu,(4)若不等式成立,则令;2
(5)否则返回第一步。
x,例随机变量的密度函数为如下分布:
32,60101xxx(),,,fx(),,其它0,
若采用反变换法,则必须求解多项式的根,效率很低。
fx()tx()txfx()(),采用舍选法首先要选择,因要求,故先求极值:
32xdfdx/,0f令,得=0.6,(0.6)=2.0736。
f(x),60x(1,x)图12.5舍选
tx()应是以x为自变量的函数,且应易于求反变换。
法
tx()令为一常数,可取:
10
2073601.,,x,
tx(),,txfx()(),满足0其它,
1101,,x1,rx()(),txrx(),txdxdxC()..,,,2073620736,从而令:
即,,00,,0C,
rx()x所以为[0,1]区间均匀分布的密度函数,从而用舍选法产生的算法如下:
u~
(1)产生U(0,1)1
u~urx()
(2)由独立地产生,即U(0,1)22
32xu,uuu,,60120736()/.(3)检验,若满足,则令;2122
(4)否则返回第一步。
舍选法要点:
urx()1)易于从中产生:
常用如均匀,指数,正态分布等2
2)在第3步中舍弃的概率要小。
txdxC()(),舍弃的概率为1-1/C,则要求接近1。
,,
11
12.5典型随机变量的产生1连续随机变量的产生
1).正态分布:
分布函数没有直接的封闭形式
转换法:
若将其转换到极坐标系,则可以得到其封闭形式,再采用反变换法。
221,,()/xx212fxxe(,),xx,12设是两个独立的N(0,1)随机变量,则其联合密度函数是:
12,2
x,,,cos,1
ffxxJ(,)(,)||,,,,将其转换成极坐标形式:
则12x,sin,,2,
xx,,11
cossin,,,,,,,,||J,,,||J,其中为雅可比行列式,即xxsincos,,,,,22
,,,2,,,12feff(,)()(),,,,,,,,,从而可得2,
12
ff(),(),,,,,其分别为随机变量的密度函数:
它们相应的分布函数为:
222,,,,,,,,,222,fe(),,,,Fede(),,,,,,1,,,,,,,,1,11,,f(),,Fd(),,,,,,,,,2,0,22,,,采用反变换法,:
uu,,独立地产生两个[0,1]区间上均匀分布的随机数;12
,,,,2u,2u,,11,,
,F(),F(),,分别对及进行反变换,可得:
21,2lnu,,ln(,u),,,,22,,
12/,xuu,,(ln)cos22,,121
xx,,,,,根据与之间的变换关系,可得:
12/12,xuu,,(ln)sin22,222,
上述反变换法,方法直观,易于理解,但要进行三角函数及对数函数运算,因而计算速度较慢。
舍选法原理:
uu,
(1)独立产生两个U(0,1)随机变量12
13
22Vu,,21WVV,,Vu,,21
(2)令,,111122
(3)若W>1,舍弃,返回第一步
12/,xVWW,,(ln)/2,,,11
12/(4)否则,令xVWW,,2ln)/,,,22,
1,,02146.舍弃概率为。
4
2xxN(,),,如果要求产生一般随机变量,可先产生N(0,1)随机变量,然后进行如下线性变换:
x,,,,x
2).分布
,,,1,x/,,,xe,0,,x,,1,t(),fx,(,),tedt,(),,密度函数为:
其中,0,0其它,
充分利用分布的特性:
x~(,),,,,xx,,,,()0,x~,(,,1),(,,1),若,则当时,,所以只需讨论如何产生。
14
x,xfxe(),,(1,1)为指数分布,可以直接用反变换法产生,
(,,1),,10,,,1,对可分如下两种情况,即及。
tx()0,,,1
(1)时的舍选法:
可选择为如下形式:
0x,0,
,1,x,t(x),0,x,1,,,(),,xe,x1,,,(,),
1,,,x1,,xeC,t(x)dx,dx,dx,b/(,,(,))b,(e,,)/e可得到,其中,则,,,001,(),(),,
0x0,
,,x1,1/,,,0x1,,(bu)u,,1,,,,bx,,1b,R(x),x,R(u),,xr(x),0,x,1,,e,b(1u),,b,ln,其它1,x,1,,x,,,b,e,,x1,
b,
15
算法如下:
u~
(1)产生U(0,1)1
Pbu,u~P,1
(2)独立产生U(0,1),令,若,则去第(4)步22
Y1/,ue,xY,Y,P(3)令,若,则选取,且令,否则舍弃,返回第
(1)步1
,1u,YY,,ln[(b,P)/,]xY,(4)令,若,则选取,且令,否则舍弃,返回第
(1)步1
,1
(2)时的舍选法:
1/2,,,,,,(2,,1),,,txCrx()(),,,C,4,e/,,(,)设,,且,则:
2,,1,,xx,,1/,0x,,x,0,u,,,,122,Rx(),rx(),,Ru(),,,x,,,(),x,其中,,1,u,,其它00其它,,
u~u~算法如下:
(1)独立产生U(0,1),U(0,1)12
1/2,,V,(2,,1)lnu/(1,u)
(2)令22
2VVln(u,u),,,ln4,2,,1)V,,ex,,e12(3)若,则选取,令
(4)否则,舍弃,返回第
(1)步。
16
(,,,)3).分布12
11,,,,i2,
(1),xx0,,11x,,,1,,112(),fx,(,),,BB(,,,),t(1,t)dt密度函数为:
其中1212,0,0其它,
利用该分布的特征:
x,(,,,),(,,,)1,x,若是随机变量,则就是随机变量。
2112
YYY~,(,,1)Y~,(,,1),,0,,,0,对于任意,若,,且与是独立的,则12112212
Y/(Y,Y)~,(,,,)11212
2离散随机变量的产生――最基本方法是反变换法1).离散均匀分布DU(i,j)随机变量x取值为[i,j]区间上的整数值
0x,i1,xiij,,{,,,}1?
,x,i,1,,,px()ji,,1,F(x),i,x,j,j,i,1,,0其它,,1x,j,
17
x其中表示小于或等于x的最大整数。
方法很简单:
,,
u~
(1)产生U(0,1)
x,i,(j,i,1)u
(2)令,,
2).几何分布
x,1,,F(x),1,(1,p)Fx(),反变换法由其分布函数:
对进行反变换:
x,ln(1,u)/ln(1,p)u~?
产生U(0,1)?
令,,
ppln()1,pln()1,p缺点:
当接近0时,也接近0;若接近1,则是一个很大的负数。
精度不易保证,一般要采用双精度运算。
基于几何分布的定义
几何分布的定义:
在独立的伯努里试验序列中,每次试验成功的概率为p,则第一次成功之前失败的次数为几何分布。
产生伯努里随机变量的算法是:
up,u~
(1)独立产生U(0,1)
(2)若,则Y=1,否则Y=0。
18
YY,,?
xiY,,,min{:
}11设是独立进行伯努里试验的随机变量序列,且令,则x服从几何分12
布,算法为:
up,u~ii,,1x,i,1i,1?
令?
独立产生U(0,1)?
若,则,否则,返回第?
步。
3).二项分布
pt设每次伯努里试验成功的概率为,在次独立的试验中成功的总次数服从二项分布,其质量及分布函数为:
0,0x,
x,,,tt,,,,,xtx,it,ippxt(){,,,}101,,?
,,(),,,(1,)0,,Fxppxt,,px(),x,,,,,1i,i,,,,0其它,
1其它,
t,,,,txtx!
/[!
()!
],,其中x,,
反变换比较麻烦,可由二项分布的定义找到该分布与伯努里分布的关系,即可用卷积法产生该分布的随机变量:
19
t
xY,YYY,,,?
i,t
(1)独立产生个伯努里随机变量
(2)令12ti,14).泊松分布
,x,e,,x,{,,}01?
px(),,x!
泊松分布的密度函数为:
不难看到:
0其它,
,i,,i,1ee,,,,p(i),,,p(i,1)
i!
i(i,1)!
i
FFFpi,,()其分布函数可表示成:
iii,1
算法如下:
,u~pe,i,1F,0i,0
(1)令,
(2)产生U(0,1)ii
p,pii,1FFp,,1i,iii,,11(3)令,
FuF,,iii,,11xi,,1ii,,1(4)若,则,否则,,并返回到第(3)步。
20
习题
试编程分别产生符合下列分布的随机数变量:
正态分布:
均值,3.5,方差,5.8
,4.0,,0.3,,分布:
,
泊松分布:
均值,4.2
21