第二章 随机变量与随机过程模拟
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
产生伪随机数的方法很多,一般来说应满 足以下几点要求:
1. 具有较好的随机性与均匀性; 2. 产生伪随机数的速度要快; 3. 占用计算机内存尽可能少; 4. 一批随机数的循环周期尽可能长。
一、统计实验法与伪随机数
目前在实际应用中多采用乘法线性同余法, 其递推公式为:
xi+1 =(a xi +b)mod m
一、统计实验法与伪随机数
目前计算机高级语言大多都具有产生伪随机数的标
准函数,专用仿真语言均设有伪随机数发生器,适 合大多数情况下的仿真需求。
计算机不会产生绝对随机的随机数,计算机只能产
生“伪随机数”。其实绝对随机的随机数只是一种 理想的随机数,即使计算机怎样发展,它也不会产 生一串绝对随机的随机数。计算机只能生成相对的 随机数,即伪随机数。
离散型随机变量的模拟
一般方法 二点分布随机变量的模拟 几何分布、二项分布、泊松分布……
二、离散型随机变量的模拟
简单事件模拟
设事件A有P(A)=p(0<p<1)。所谓对事件A模拟的 目的是要获取该事件A在一次实验中的结果:A发生
或A不发生。为实现上述目的,所构造的模拟模型可
设计为一个新的事件“U<=p”,记为事件B。利用 [0,1]均匀分布随机变量U之分布函数的下列特性
目前大多数仿真中都是应用计算机程序来产生
IIDU(0,1)均匀分布随机数,即采用某种确定的规则, 通过递推计算产生随机数序列。虽然它不是真正的 随机数,但由于其具有真正随机数的统计性质,因 此可以把它当作随机数来使用,这样的数列称为伪 随机数。
一、统计实验法与伪随机数
真正意义上的随机数(或者随机事件)在某
随机现象
数值计算 逻辑判断
一、统计实验法与伪随机数
统计实验法求解随机性模型有关问题基本思想:
如何取得我们关心的事件A或随机变量X的一 列样本。
步骤主要有:
1. 构造便于模拟的概率模型:
① 根据问题需要引入一些分布可以确定的与X有关的 随机变量;
② 通过数值计算与逻辑判断表述这些随机变量与X之 间的关系;
一、统计实验法与伪随机数
一般地,除IIDU(0,1)均匀分布外,伪随机数的生 成方法主要有以下3种:
(1) 直接法(Direct Method),根据分布函数的物 理意义生成。缺点是仅适用于某些具有特殊分布的随机 数,如二项式分布、泊松分布。
(2) 逆转法(Inversion Method),假设U服从[0,1] 区间上的均匀分布,令X=F-1(U),则X的累计分布函 数(CDF)为F。该方法原理简单、编程方便、适用性 广。
随机变量与随机过程模拟
主要内容
一.统计实验法与伪随机数 二.离散型随机变量的模拟 三.连续型随机变量的模拟 四.随机过程模拟
一、统计实验法与伪随机数
如何求解?
随机事件概率的计算 随机变量分布函数的求得
随机事件 随机变量分布函数
数量化 解 物理 逻辑性 析 实验
法法
计算机模拟方法
状态描述?
(统计实验法)
伪随机数并不是假随机数,这里的“伪”是有规律
的意思,就是计算机产生的伪随机数既是随机的又 是有规律的。怎样理解呢?产生的伪随机数有时遵 守一定的规律,有时不遵守任何规律;伪随机数有 一部分遵守一定的规律;另一部分不遵守任何规律。
二、离散型随机变量的模拟
运用统计实验法对随机行问题作模拟求解是,
式中a、x0、m分别称为乘子、种子和模, 他们的选取是否合适影响到伪随机数序列 的均匀、独立性与循环周期。
一、统计实验法与伪随机数
//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"); }
(3)接受拒绝法(Acceptance-Rejection Method): 假设希望生成的随机数的概率密度函数(PDF)为f,则 首先找到一个PDF为g的随机数发生器与常数c,使得 (x)≤cg(x),然后根据接收拒绝算法求解。由于算 法平均运算c次才能得到一个希望生成的随机数,因此c 的取值必须尽可能小。显然,该算法的缺点是较难确定 g与c。 因此,伪随机数生成器(PRNG)一般采用逆转 法,其基础是均匀分布,均匀分布PRNG的优劣决定了 整个随机数体系的优劣。
2. 用计算机产生给定分布随机变量的一列样本值;
3. 根据模拟模型的特性对这些样本值进行处理,从而获 得X的一列样本值。
一、统计实验法与伪随机数
运用统计分析法对随机模型实施模拟时需要获得具
有给定分布随机变量的一列独立样本值,通常称不 同分布随机变量的抽样实现值为不同分布的随机数, 其中IIDU(0,1)均匀分布随机数是最基本的随机数, 通过对它进行适当变换,就可以得到任意分布的其 他随机变量。
其模拟模型的建立一般来说应包含以下要素:
(1)模型与原问题应保持相同的概率特性; (2)模型中应明确随机变量与U[0,1]均匀分
布随机变量的内在联系;
(3)这种内在联系应通过计算机的两大功
能——数值计算和逻辑判断来表述。
二、离散型随机变量的模拟
随机事件的模拟
简单事件模拟 完备事件列模拟
次产生过程中是按照实验过程中表现的分布 概率随机产生的,其结果是不可预测的,是 不可见的。
计算机中的随机函数是按照一定算法模拟产
生的,其结果是确定的,是可见的。我们可 以这样认为这个可预见的结果其出现的概率 是100%。所以用计算机随机函数所产生的 “随机数”并不随机,是伪随机数。
一、统计实验法与伪随机数
1. 具有较好的随机性与均匀性; 2. 产生伪随机数的速度要快; 3. 占用计算机内存尽可能少; 4. 一批随机数的循环周期尽可能长。
一、统计实验法与伪随机数
目前在实际应用中多采用乘法线性同余法, 其递推公式为:
xi+1 =(a xi +b)mod m
一、统计实验法与伪随机数
目前计算机高级语言大多都具有产生伪随机数的标
准函数,专用仿真语言均设有伪随机数发生器,适 合大多数情况下的仿真需求。
计算机不会产生绝对随机的随机数,计算机只能产
生“伪随机数”。其实绝对随机的随机数只是一种 理想的随机数,即使计算机怎样发展,它也不会产 生一串绝对随机的随机数。计算机只能生成相对的 随机数,即伪随机数。
离散型随机变量的模拟
一般方法 二点分布随机变量的模拟 几何分布、二项分布、泊松分布……
二、离散型随机变量的模拟
简单事件模拟
设事件A有P(A)=p(0<p<1)。所谓对事件A模拟的 目的是要获取该事件A在一次实验中的结果:A发生
或A不发生。为实现上述目的,所构造的模拟模型可
设计为一个新的事件“U<=p”,记为事件B。利用 [0,1]均匀分布随机变量U之分布函数的下列特性
目前大多数仿真中都是应用计算机程序来产生
IIDU(0,1)均匀分布随机数,即采用某种确定的规则, 通过递推计算产生随机数序列。虽然它不是真正的 随机数,但由于其具有真正随机数的统计性质,因 此可以把它当作随机数来使用,这样的数列称为伪 随机数。
一、统计实验法与伪随机数
真正意义上的随机数(或者随机事件)在某
随机现象
数值计算 逻辑判断
一、统计实验法与伪随机数
统计实验法求解随机性模型有关问题基本思想:
如何取得我们关心的事件A或随机变量X的一 列样本。
步骤主要有:
1. 构造便于模拟的概率模型:
① 根据问题需要引入一些分布可以确定的与X有关的 随机变量;
② 通过数值计算与逻辑判断表述这些随机变量与X之 间的关系;
一、统计实验法与伪随机数
一般地,除IIDU(0,1)均匀分布外,伪随机数的生 成方法主要有以下3种:
(1) 直接法(Direct Method),根据分布函数的物 理意义生成。缺点是仅适用于某些具有特殊分布的随机 数,如二项式分布、泊松分布。
(2) 逆转法(Inversion Method),假设U服从[0,1] 区间上的均匀分布,令X=F-1(U),则X的累计分布函 数(CDF)为F。该方法原理简单、编程方便、适用性 广。
随机变量与随机过程模拟
主要内容
一.统计实验法与伪随机数 二.离散型随机变量的模拟 三.连续型随机变量的模拟 四.随机过程模拟
一、统计实验法与伪随机数
如何求解?
随机事件概率的计算 随机变量分布函数的求得
随机事件 随机变量分布函数
数量化 解 物理 逻辑性 析 实验
法法
计算机模拟方法
状态描述?
(统计实验法)
伪随机数并不是假随机数,这里的“伪”是有规律
的意思,就是计算机产生的伪随机数既是随机的又 是有规律的。怎样理解呢?产生的伪随机数有时遵 守一定的规律,有时不遵守任何规律;伪随机数有 一部分遵守一定的规律;另一部分不遵守任何规律。
二、离散型随机变量的模拟
运用统计实验法对随机行问题作模拟求解是,
式中a、x0、m分别称为乘子、种子和模, 他们的选取是否合适影响到伪随机数序列 的均匀、独立性与循环周期。
一、统计实验法与伪随机数
//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"); }
(3)接受拒绝法(Acceptance-Rejection Method): 假设希望生成的随机数的概率密度函数(PDF)为f,则 首先找到一个PDF为g的随机数发生器与常数c,使得 (x)≤cg(x),然后根据接收拒绝算法求解。由于算 法平均运算c次才能得到一个希望生成的随机数,因此c 的取值必须尽可能小。显然,该算法的缺点是较难确定 g与c。 因此,伪随机数生成器(PRNG)一般采用逆转 法,其基础是均匀分布,均匀分布PRNG的优劣决定了 整个随机数体系的优劣。
2. 用计算机产生给定分布随机变量的一列样本值;
3. 根据模拟模型的特性对这些样本值进行处理,从而获 得X的一列样本值。
一、统计实验法与伪随机数
运用统计分析法对随机模型实施模拟时需要获得具
有给定分布随机变量的一列独立样本值,通常称不 同分布随机变量的抽样实现值为不同分布的随机数, 其中IIDU(0,1)均匀分布随机数是最基本的随机数, 通过对它进行适当变换,就可以得到任意分布的其 他随机变量。
其模拟模型的建立一般来说应包含以下要素:
(1)模型与原问题应保持相同的概率特性; (2)模型中应明确随机变量与U[0,1]均匀分
布随机变量的内在联系;
(3)这种内在联系应通过计算机的两大功
能——数值计算和逻辑判断来表述。
二、离散型随机变量的模拟
随机事件的模拟
简单事件模拟 完备事件列模拟
次产生过程中是按照实验过程中表现的分布 概率随机产生的,其结果是不可预测的,是 不可见的。
计算机中的随机函数是按照一定算法模拟产
生的,其结果是确定的,是可见的。我们可 以这样认为这个可预见的结果其出现的概率 是100%。所以用计算机随机函数所产生的 “随机数”并不随机,是伪随机数。
一、统计实验法与伪随机数