随机变量与随机过程模拟
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
j j k 0 k
(2)抽取伪随机数u并观察u在[0,1]区间中所落 之位置。若u落在子区间Ai=(Li-1,Li]内,则认为事件 Bi发生,从而可以认为事件Ai发生。
二、离散型随机变量的模拟 完备事件列的模拟过程和相应的抽样方法具 体过程如下:
A0,A1,...
给出P(Ai)=pi
某个Ai发生
随机变量与随机过程模拟
主要内容
一.统计实验法与伪随机数 二.离散型随机变量的模拟 三.连续型随机变量的模拟 四.随机过程模拟
一、统计实验法与伪随机数
如何求解? 随机事件概率的计算 随机变量分布函数的求得 数量化 解 析 法 物理 实验 法 逻辑性
随机事件 随机变量分布函数
计算机模拟方法 状态描述? (统计实验法)
( 1) Ai Aj (i j ) (2) P( Ai ) pi (3) (i 0,1, 2,...)
p
i 0
i
1
则称此事件序列构成一组互不相容事件的完备群 (简称完备事件)。
二、离散型随机变量的模拟
构造新的事件列B0 B1 ...,其中 Bi pk U pk
二、离散型随机变量的模拟 利用这种表述很容易进行数学处理来获得A 之样本。其思路和具体过程如下:
A A发生 A不发生 数学处理 判断:u<=p wk.baidu.com样 U u
给定p 取随机数u
构造模型 B=“U<=p”
u<=p否? Y A发生
N
A不发生
二、离散型随机变量的模拟 完备事件列模拟
设有互斥的随机事件A0 A1 ...有满足条件:
回顾
运用统计实验法对随机性问题作模拟求解时,
其模拟模型的建立一般来说应包含哪些要素? (1)模型与原问题应保持相同的概率特性; (2)模型中应明确随机变量与U[0,1]均匀分 布随机变量的内在联系; (3)这种内在联系应通过计算机的两大功 能——数值计算和逻辑判断来表述。
二、离散型随机变量的模拟 简单事件模拟的思路和流程图:
给定p k=1
给定p 取随机数u N
取随机数u N
u<=p否? Y X=1
u<=p否? Y
X=0
k=k+1
X=k
三、连续型随机变量的模拟 连续型随机变量的模拟方法: 逆变换法 函数变换法
舍选法
近似法
组合法
三、连续型随机变量的模拟 逆变换法:已知一个随机变量的概率分布 函数,可借助于U(0,1)随机数来产生具有已知 概率分布的随机数。用这种方法产生已知概率 分布随机数的过程中要用到概率分布函数的逆 函数,所以这种方法也称为逆变换法。 逆变换法基于以下定理: 若分布函数F(x)是连续的,且在0<F(x)<1 时单调递增,而U是在(0,1)上均匀分布的随机 变量,则随机变量X=F-1(U)具有分布函数F(x)。
建立与U(0,1)分布的关系?
二、离散型随机变量的模拟 两点分布随机变量的模拟 若构造模型
1, A发生 X 0, A不发生
给定p 取随机数u N
其中P(A)=p,则易 知P(X=1)=P(A)=p, P(X=0)=P( A )=1-p=q。 利用对事件A的模拟可得 一次实验中之结果信息: 若A发生,则认为X取1, 若A不发生,则认为X取0。
一、统计实验法与伪随机数
真正意义上的随机数(或者随机事件)在某
次产生过程中是按照实验过程中表现的分布 概率随机产生的,其结果是不可预测的,是 不可见的。 计算机中的随机函数是按照一定算法模拟产 生的,其结果是确定的,是可见的。我们可 以这样认为这个可预见的结果其出现的概率 是100%。所以用计算机随机函数所产生的 “随机数”并不随机,是伪随机数。
一、统计实验法与伪随机数
目前计算机高级语言大多都具有产生伪随机数的标
准函数,专用仿真语言均设有伪随机数发生器,适 合大多数情况下的仿真需求。 计算机不会产生绝对随机的随机数,计算机只能产 生“伪随机数”。其实绝对随机的随机数只是一种 理想的随机数,即使计算机怎样发展,它也不会产 生一串绝对随机的随机数。计算机只能生成相对的 随机数,即伪随机数。 伪随机数并不是假随机数,这里的“伪”是有规律 的意思,就是计算机产生的伪随机数既是随机的又 是有规律的。怎样理解呢?产生的伪随机数有时遵 守一定的规律,有时不遵守任何规律;伪随机数有 一部分遵守一定的规律;另一部分不遵守任何规律。
二、离散型随机变量的模拟
运用统计实验法对随机行问题作模拟求解是,
其模拟模型的建立一般来说应包含以下要素: (1)模型与原问题应保持相同的概率特性; (2)模型中应明确随机变量与U[0,1]均匀分 布随机变量的内在联系; (3)这种内在联系应通过计算机的两大功 能——数值计算和逻辑判断来表述。
u<=p否? Y X=1
X=0
二、离散型随机变量的模拟 几何分布随机变量的模拟 设随机变量X有几何分布,即有分布列 P(X=k)=qk-1p,k=1,2,„。对X进行模拟的目的 是希望得知在一次实验中X究竟取1,2,3„中的 哪一个正整数。 将X视为贝努力实验中事件A首次发生时之 实验序数,则当X=k时说明前k-1次实验A不发 生,而在第k次实验时A发生。利用贝努力实验 的独立重复性,有 P( X k ) P( AA...AA) qk 1 p
取随机数u
构造模型 B0,B1,... 抽样
数学处理
第0个区间
u落在哪一个 子区间内? 第1个区间 A1发生 第i个区间 Ai发生
U
ui
A1发生
二、离散型随机变量的模拟
设离散随机变量X有分布列
P( X xi ) pi 且 pi 1
i 0 n
(i 0,1, 2,..., n)
显然X在一次实验中必须且只能在x0,x1,„,xn中 取值,人们对X模拟的目的是希望获取一次实验的结 果,即其样本值究竟取哪个xi? 通过定义等价的完备事件列,可将问题抽象为:
x0 0 FU ( x) P (U x) x 0 x 1 1 1 x
考虑到0<p<1,故有P(B)=P(U<=p)=p=P(A)。
二、离散型随机变量的模拟 以上设计的模型包含了3个要素: (1)由于P(A)=P(B),模型保持了原问题的 概率特性; (2)模型包含了[0,1]均匀分布随机变量U, 从而便于抽样; (3)U与A的内在联系:P(A)=P(U<=p),此 联系是通过逻辑判断U<=p来实现的。
一、统计实验法与伪随机数 产生伪随机数的方法很多,一般来说应满 足以下几点要求: 具有较好的随机性与均匀性; 产生伪随机数的速度要快; 占用计算机内存尽可能少; 一批随机数的循环周期尽可能长。
1. 2. 3. 4.
一、统计实验法与伪随机数 目前在实际应用中多采用乘法线性同余法, 其递推公式为: xi+1 =(a xi +b)mod m 式中a、x0、m分别称为乘子、种子和模, 他们的选取是否合适影响到伪随机数序列 的均匀、独立性与循环周期。
二、离散型随机变量的模拟
x0 u p0 x p u p p 0 1 1 0 ... k 1 k X xk pi u pi i 0 i 0 ... n 1 x pi u 1 n i 0
根据u落在不同的子区间确定X的不同取值, 这就是离散型随机变量的一般模拟方法。
随机现象
数值计算
逻辑判断
一、统计实验法与伪随机数
统计实验法求解随机性模型有关问题基本思想:
如何取得我们关心的事件A或随机变量X的一 列样本。 步骤主要有:
1. 构造便于模拟的概率模型:
① 根据问题需要引入一些分布可以确定的与X有关的 随机变量;
② 通过数值计算与逻辑判断表述这些随机变量与X之 间的关系; 2. 用计算机产生给定分布随机变量的一列样本值; 3. 根据模拟模型的特性对这些样本值进行处理,从而获 得X的一列样本值。
A
A发生 A不发生 数学处理 判断:u<=p 抽样
给定p 取随机数u
构造模型 B=“U<=p”
u<=p否?
u
N
U
Y A发生 A不发生
二、离散型随机变量的模拟 两点分布随机变量的模拟 设随机变量X有两点分布:P(X=1)=p, P(X=0)=q,其中p+q=1。对X进行模拟的目的是 希望得知在一次实验中X究竟取0与1中的哪一 个值。 构造模型?
一、统计实验法与伪随机数
运用统计分析法对随机模型实施模拟时需要获得具
有给定分布随机变量的一列独立样本值,通常称不 同分布随机变量的抽样实现值为不同分布的随机数, 其中IIDU(0,1)均匀分布随机数是最基本的随机数, 通过对它进行适当变换,就可以得到任意分布的其 他随机变量。 目前大多数仿真中都是应用计算机程序来产生 IIDU(0,1)均匀分布随机数,即采用某种确定的规则, 通过递推计算产生随机数序列。虽然它不是真正的 随机数,但由于其具有真正随机数的统计性质,因 此可以把它当作随机数来使用,这样的数列称为伪 随机数。
i
i 1
二、离散型随机变量的模拟
由于P(Ai)=P(Bi),故知Bi保持了Ai的概率特性, 因此在一次实验中若事件Bi发生了,则可以很自然地 认为Ai事件也就发生了。至于要判断是哪个事件Bi发 生,可通过如下数学处理来进行:
(1)将[0,1]区间划分成若干小区间,各小区间 的分界点坐标依次为L0,L1,...,Ln, 使 L p , 于是小区间Ai=(Li-1,Li)之长度即为pi
一、统计实验法与伪随机数
//rand01.c #include static unsigned int RAND_SEED; unsigned int random(void) { RAND_SEED=(RAND_SEED*123+59)%65536; return(RAND_SEED); } void random_start(void) { int temp[2]; movedata(0x0040,0x006c,FP_SEG(temp),FP_OFF(temp),4); RAND_SEED=temp[0]; } main() { unsigned int i,n; random_start(); for(i=0;i<10;i++) printf("%u\t",random()); printf("\n"); }
二、离散型随机变量的模拟
随机事件的模拟
简单事件模拟 完备事件列模拟
离散型随机变量的模拟
一般方法 二点分布随机变量的模拟 几何分布、二项分布、泊松分布……
二、离散型随机变量的模拟 简单事件模拟
设事件A有P(A)=p(0<p<1)。所谓对事件A模拟的 目的是要获取该事件A在一次实验中的结果:A发生 或A不发生。为实现上述目的,所构造的模拟模型可 设计为一个新的事件“U<=p”,记为事件B。利用 [0,1]均匀分布随机变量U之分布函数的下列特性
一、统计实验法与伪随机数
一般地,除IIDU(0,1)均匀分布外,伪随机数的生 成方法主要有以下3种:
(1) 直接法(Direct Method),根据分布函数的物 理意义生成。缺点是仅适用于某些具有特殊分布的随机 数,如二项式分布、泊松分布。 (2) 逆转法(Inversion Method),假设U服从[0,1] 区间上的均匀分布,令X=F-1(U),则X的累计分布函 数(CDF)为F。该方法原理简单、编程方便、适用性 广。 (3)接受拒绝法(Acceptance-Rejection Method): 假设希望生成的随机数的概率密度函数(PDF)为f,则 首先找到一个PDF为g的随机数发生器与常数c,使得 (x)≤cg(x),然后根据接收拒绝算法求解。由于算 法平均运算c次才能得到一个希望生成的随机数,因此c 的取值必须尽可能小。显然,该算法的缺点是较难确定 g与c。 因此,伪随机数生成器(PRNG)一般采用逆转 法,其基础是均匀分布,均匀分布PRNG的优劣决定了 整个随机数体系的优劣。
k 0 k 0 i 1 i
这种构造形式的合理性可由如下等式看出:
P( Bi ) P( pk U pk )
k 0 k 0 i 1 i
P(U pk ) P(U pk )
k 0 k 0
i
i 1
pk- pk pi P( Ai )
k 0 k 0
(2)抽取伪随机数u并观察u在[0,1]区间中所落 之位置。若u落在子区间Ai=(Li-1,Li]内,则认为事件 Bi发生,从而可以认为事件Ai发生。
二、离散型随机变量的模拟 完备事件列的模拟过程和相应的抽样方法具 体过程如下:
A0,A1,...
给出P(Ai)=pi
某个Ai发生
随机变量与随机过程模拟
主要内容
一.统计实验法与伪随机数 二.离散型随机变量的模拟 三.连续型随机变量的模拟 四.随机过程模拟
一、统计实验法与伪随机数
如何求解? 随机事件概率的计算 随机变量分布函数的求得 数量化 解 析 法 物理 实验 法 逻辑性
随机事件 随机变量分布函数
计算机模拟方法 状态描述? (统计实验法)
( 1) Ai Aj (i j ) (2) P( Ai ) pi (3) (i 0,1, 2,...)
p
i 0
i
1
则称此事件序列构成一组互不相容事件的完备群 (简称完备事件)。
二、离散型随机变量的模拟
构造新的事件列B0 B1 ...,其中 Bi pk U pk
二、离散型随机变量的模拟 利用这种表述很容易进行数学处理来获得A 之样本。其思路和具体过程如下:
A A发生 A不发生 数学处理 判断:u<=p wk.baidu.com样 U u
给定p 取随机数u
构造模型 B=“U<=p”
u<=p否? Y A发生
N
A不发生
二、离散型随机变量的模拟 完备事件列模拟
设有互斥的随机事件A0 A1 ...有满足条件:
回顾
运用统计实验法对随机性问题作模拟求解时,
其模拟模型的建立一般来说应包含哪些要素? (1)模型与原问题应保持相同的概率特性; (2)模型中应明确随机变量与U[0,1]均匀分 布随机变量的内在联系; (3)这种内在联系应通过计算机的两大功 能——数值计算和逻辑判断来表述。
二、离散型随机变量的模拟 简单事件模拟的思路和流程图:
给定p k=1
给定p 取随机数u N
取随机数u N
u<=p否? Y X=1
u<=p否? Y
X=0
k=k+1
X=k
三、连续型随机变量的模拟 连续型随机变量的模拟方法: 逆变换法 函数变换法
舍选法
近似法
组合法
三、连续型随机变量的模拟 逆变换法:已知一个随机变量的概率分布 函数,可借助于U(0,1)随机数来产生具有已知 概率分布的随机数。用这种方法产生已知概率 分布随机数的过程中要用到概率分布函数的逆 函数,所以这种方法也称为逆变换法。 逆变换法基于以下定理: 若分布函数F(x)是连续的,且在0<F(x)<1 时单调递增,而U是在(0,1)上均匀分布的随机 变量,则随机变量X=F-1(U)具有分布函数F(x)。
建立与U(0,1)分布的关系?
二、离散型随机变量的模拟 两点分布随机变量的模拟 若构造模型
1, A发生 X 0, A不发生
给定p 取随机数u N
其中P(A)=p,则易 知P(X=1)=P(A)=p, P(X=0)=P( A )=1-p=q。 利用对事件A的模拟可得 一次实验中之结果信息: 若A发生,则认为X取1, 若A不发生,则认为X取0。
一、统计实验法与伪随机数
真正意义上的随机数(或者随机事件)在某
次产生过程中是按照实验过程中表现的分布 概率随机产生的,其结果是不可预测的,是 不可见的。 计算机中的随机函数是按照一定算法模拟产 生的,其结果是确定的,是可见的。我们可 以这样认为这个可预见的结果其出现的概率 是100%。所以用计算机随机函数所产生的 “随机数”并不随机,是伪随机数。
一、统计实验法与伪随机数
目前计算机高级语言大多都具有产生伪随机数的标
准函数,专用仿真语言均设有伪随机数发生器,适 合大多数情况下的仿真需求。 计算机不会产生绝对随机的随机数,计算机只能产 生“伪随机数”。其实绝对随机的随机数只是一种 理想的随机数,即使计算机怎样发展,它也不会产 生一串绝对随机的随机数。计算机只能生成相对的 随机数,即伪随机数。 伪随机数并不是假随机数,这里的“伪”是有规律 的意思,就是计算机产生的伪随机数既是随机的又 是有规律的。怎样理解呢?产生的伪随机数有时遵 守一定的规律,有时不遵守任何规律;伪随机数有 一部分遵守一定的规律;另一部分不遵守任何规律。
二、离散型随机变量的模拟
运用统计实验法对随机行问题作模拟求解是,
其模拟模型的建立一般来说应包含以下要素: (1)模型与原问题应保持相同的概率特性; (2)模型中应明确随机变量与U[0,1]均匀分 布随机变量的内在联系; (3)这种内在联系应通过计算机的两大功 能——数值计算和逻辑判断来表述。
u<=p否? Y X=1
X=0
二、离散型随机变量的模拟 几何分布随机变量的模拟 设随机变量X有几何分布,即有分布列 P(X=k)=qk-1p,k=1,2,„。对X进行模拟的目的 是希望得知在一次实验中X究竟取1,2,3„中的 哪一个正整数。 将X视为贝努力实验中事件A首次发生时之 实验序数,则当X=k时说明前k-1次实验A不发 生,而在第k次实验时A发生。利用贝努力实验 的独立重复性,有 P( X k ) P( AA...AA) qk 1 p
取随机数u
构造模型 B0,B1,... 抽样
数学处理
第0个区间
u落在哪一个 子区间内? 第1个区间 A1发生 第i个区间 Ai发生
U
ui
A1发生
二、离散型随机变量的模拟
设离散随机变量X有分布列
P( X xi ) pi 且 pi 1
i 0 n
(i 0,1, 2,..., n)
显然X在一次实验中必须且只能在x0,x1,„,xn中 取值,人们对X模拟的目的是希望获取一次实验的结 果,即其样本值究竟取哪个xi? 通过定义等价的完备事件列,可将问题抽象为:
x0 0 FU ( x) P (U x) x 0 x 1 1 1 x
考虑到0<p<1,故有P(B)=P(U<=p)=p=P(A)。
二、离散型随机变量的模拟 以上设计的模型包含了3个要素: (1)由于P(A)=P(B),模型保持了原问题的 概率特性; (2)模型包含了[0,1]均匀分布随机变量U, 从而便于抽样; (3)U与A的内在联系:P(A)=P(U<=p),此 联系是通过逻辑判断U<=p来实现的。
一、统计实验法与伪随机数 产生伪随机数的方法很多,一般来说应满 足以下几点要求: 具有较好的随机性与均匀性; 产生伪随机数的速度要快; 占用计算机内存尽可能少; 一批随机数的循环周期尽可能长。
1. 2. 3. 4.
一、统计实验法与伪随机数 目前在实际应用中多采用乘法线性同余法, 其递推公式为: xi+1 =(a xi +b)mod m 式中a、x0、m分别称为乘子、种子和模, 他们的选取是否合适影响到伪随机数序列 的均匀、独立性与循环周期。
二、离散型随机变量的模拟
x0 u p0 x p u p p 0 1 1 0 ... k 1 k X xk pi u pi i 0 i 0 ... n 1 x pi u 1 n i 0
根据u落在不同的子区间确定X的不同取值, 这就是离散型随机变量的一般模拟方法。
随机现象
数值计算
逻辑判断
一、统计实验法与伪随机数
统计实验法求解随机性模型有关问题基本思想:
如何取得我们关心的事件A或随机变量X的一 列样本。 步骤主要有:
1. 构造便于模拟的概率模型:
① 根据问题需要引入一些分布可以确定的与X有关的 随机变量;
② 通过数值计算与逻辑判断表述这些随机变量与X之 间的关系; 2. 用计算机产生给定分布随机变量的一列样本值; 3. 根据模拟模型的特性对这些样本值进行处理,从而获 得X的一列样本值。
A
A发生 A不发生 数学处理 判断:u<=p 抽样
给定p 取随机数u
构造模型 B=“U<=p”
u<=p否?
u
N
U
Y A发生 A不发生
二、离散型随机变量的模拟 两点分布随机变量的模拟 设随机变量X有两点分布:P(X=1)=p, P(X=0)=q,其中p+q=1。对X进行模拟的目的是 希望得知在一次实验中X究竟取0与1中的哪一 个值。 构造模型?
一、统计实验法与伪随机数
运用统计分析法对随机模型实施模拟时需要获得具
有给定分布随机变量的一列独立样本值,通常称不 同分布随机变量的抽样实现值为不同分布的随机数, 其中IIDU(0,1)均匀分布随机数是最基本的随机数, 通过对它进行适当变换,就可以得到任意分布的其 他随机变量。 目前大多数仿真中都是应用计算机程序来产生 IIDU(0,1)均匀分布随机数,即采用某种确定的规则, 通过递推计算产生随机数序列。虽然它不是真正的 随机数,但由于其具有真正随机数的统计性质,因 此可以把它当作随机数来使用,这样的数列称为伪 随机数。
i
i 1
二、离散型随机变量的模拟
由于P(Ai)=P(Bi),故知Bi保持了Ai的概率特性, 因此在一次实验中若事件Bi发生了,则可以很自然地 认为Ai事件也就发生了。至于要判断是哪个事件Bi发 生,可通过如下数学处理来进行:
(1)将[0,1]区间划分成若干小区间,各小区间 的分界点坐标依次为L0,L1,...,Ln, 使 L p , 于是小区间Ai=(Li-1,Li)之长度即为pi
一、统计实验法与伪随机数
//rand01.c #include static unsigned int RAND_SEED; unsigned int random(void) { RAND_SEED=(RAND_SEED*123+59)%65536; return(RAND_SEED); } void random_start(void) { int temp[2]; movedata(0x0040,0x006c,FP_SEG(temp),FP_OFF(temp),4); RAND_SEED=temp[0]; } main() { unsigned int i,n; random_start(); for(i=0;i<10;i++) printf("%u\t",random()); printf("\n"); }
二、离散型随机变量的模拟
随机事件的模拟
简单事件模拟 完备事件列模拟
离散型随机变量的模拟
一般方法 二点分布随机变量的模拟 几何分布、二项分布、泊松分布……
二、离散型随机变量的模拟 简单事件模拟
设事件A有P(A)=p(0<p<1)。所谓对事件A模拟的 目的是要获取该事件A在一次实验中的结果:A发生 或A不发生。为实现上述目的,所构造的模拟模型可 设计为一个新的事件“U<=p”,记为事件B。利用 [0,1]均匀分布随机变量U之分布函数的下列特性
一、统计实验法与伪随机数
一般地,除IIDU(0,1)均匀分布外,伪随机数的生 成方法主要有以下3种:
(1) 直接法(Direct Method),根据分布函数的物 理意义生成。缺点是仅适用于某些具有特殊分布的随机 数,如二项式分布、泊松分布。 (2) 逆转法(Inversion Method),假设U服从[0,1] 区间上的均匀分布,令X=F-1(U),则X的累计分布函 数(CDF)为F。该方法原理简单、编程方便、适用性 广。 (3)接受拒绝法(Acceptance-Rejection Method): 假设希望生成的随机数的概率密度函数(PDF)为f,则 首先找到一个PDF为g的随机数发生器与常数c,使得 (x)≤cg(x),然后根据接收拒绝算法求解。由于算 法平均运算c次才能得到一个希望生成的随机数,因此c 的取值必须尽可能小。显然,该算法的缺点是较难确定 g与c。 因此,伪随机数生成器(PRNG)一般采用逆转 法,其基础是均匀分布,均匀分布PRNG的优劣决定了 整个随机数体系的优劣。
k 0 k 0 i 1 i
这种构造形式的合理性可由如下等式看出:
P( Bi ) P( pk U pk )
k 0 k 0 i 1 i
P(U pk ) P(U pk )
k 0 k 0
i
i 1
pk- pk pi P( Ai )
k 0 k 0