随机数序列的产生方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
随机变量η的抽样序列 ,…称为随机数列.
如果随机变量η是均匀分布的,则η的抽样序列 ,…称为均匀随机数列;如果随机变量η是正态分布的随机变量则称其抽样序列为正态随机数列.
比如在掷一枚骰子的随机试验中出现的点数x是一个随机变量,该随机变量就服从离散型均匀分布,x取值为1,2,3,4,5,6,取每个数的概率相等均为1/6.如何得到x的随机数?通过重复进行掷骰子的试验得到的一组观测结果 就是x的随机数.要产生取值为0,1,2,…,9的离散型均匀分布的随机数,通常的操作方法是把10个完全相同的乒乓球分别标上0,1,2,…,9,然后放在一个不透明的袋中,搅拦均匀后从中摸出一球记号码 后放回袋中,接着仍将袋中的球搅拌均匀后从袋中再摸出一球记下号码 后再放回袋中,依次下去,就得到随机序列 .通常称类似这种摸球的方法产生的随机数为真正的随机数.但是,当我们需要大量的随机数时,这种实际操作方法需要花费大量的时间,通常不能满足模拟试验的需要,比如教师不可能在课堂上做10000次掷硬币的试验,来观察出现正面的频率.计算机可以帮助人们在很短时间产生大量的随机数以满足模拟的需要,那么计算机产生的随机数是用类似摸球方法产生的吗?不是.计算机是用某种数学方法产生的随机数,实际上是按照一定的计算方法得到的一串数,它们具有类似随机数的性质,但是它们是依照确定算法产生的,便不可能是真正的随机数,所以称计算机产生的随机数为伪随机数.在模拟计算中通常使用伪随机数.对这些伪随机数,只要通过统计检验符合一些统计要求,如均匀性、随机性等,就可以作为真正的随机数来使用,我们将称这样产生的伪随机数为随机数.
(2)产生两个RND随机数r1、r2,令y= a+(b-a)r1;
(3)若r2≤λf(y),则令x=y,否则剔除r1和r2,重返步骤(2).
(4)重复循环,产生的随机数x1,x2,…,xN的分布由概率函数f(x)确定.
舍选法原理分析:
设P{a<Z<b}=1,Z的概率密度为f(z),
(A).选常数λ,使λf(z)≤1,z∈(a,b);
在查阅关于随机数的产生的文献中,我发现理解随机数的产生让我更加了解了这一门课程的精髓,对概率的理解更加透彻了,有时自己也能理解有些数字或概率图像的拟合不上的时候自己也能稍微明白一些原理来,同样的,也可以理解一些随机数的局限性有助于我们筛选一些产生随机数的方法,对今后学习概率论的知识有很大帮助。
如果一个随机数序列服从一维正态分布,那么它有有如下的概率密度函数:
其中μ,σ(>0)为常数,它们分别为数学期望和均方差,可以看出,在μ附近的概率密度大,远离μ的地方概率密度小,我们要产生的随机数要服从这种分布,就是要使产生的随机数在μ附近的概率要大,远离μ处小,怎样保证这一点呢,可以采用如下的方法:大矩形中随机产生点,这些点是平均分布的,如果产生的点落在概率密度曲线的下方,则认为产生的点是符合要求的,将它们保留,如果在概率密度曲线的上方,则认为这些点不合格,将它们去处.如果随机产生了一大批在整个矩形中均匀分布的点,那么被保留下来的点的横坐标就服从了正态分布.可以设想,由于在μ处的f(x)的值比较大,理所当然的在μ附近的点个数要多,远离μ处的少,这从面积上就可以看出来.我们要产生的随机数就是这里的横坐标.
1.反函数法
设连续型随机变量Y的概率函数为f(x),需产生给定分布的随机数.
步骤wk.baidu.com1)产生n个RND随机数r1,r2,…,rn;
所得yi , i=1,2,…,n即所求.
基本原理:
设随机变量Y的分布函数F(y)是连续函数,而且随机变量X~U(0,1),令Z=F-1(X),则Z与Y有相同分布。
证明: FZ(z)= P{F-1(X)≤z}= P{X≤F(z)}
在计算机上用数学方法产生随机数的一般要求如下:
1)产生的随机数列要有均匀性、抽样的随机性、试验的独立性和前后的一致性.
2)产生的随机数列要有足够长的周期,以满足模拟实际问题的要求.
3)产生随机数的速度要快,占用的内存少.
计算机产生随机数的方法内容是丰富的,在这里我们介绍几种方法,计算机通常是先产生[0,1]区间上均匀分布的随机数,然后再产生其他分布的随机数.
二、一维均匀分布随机数的产生
一般采用某种数值计算方法产生随机数序列,在计算机上运算来得到.
通常是利用递推公式:
三、非均匀分布随机数的产生
3.1一般通用方法
数学软件有产生常用分布随机数的功能,但是对特殊分布需要数据量很大时不太有效,需要寻求一种简便、经济、可靠,并能在计算机上实现的产生随机数的方法.
利用在(0 , 1)区间上均匀分布的随机数来模拟具有给定分布的连续型随机数.
=G(F(z)) = F(z)
因G(x)是随机变量X的分布函数:
若Y的概率密度为f(y),由Y=F-1(X)可得:
对给定的(0, 1)上均匀分布随机数ri,则具有给定分布的随机数yi可由方程
解出
例模拟服从参数为λ的指数分布的随机数,其概率密度函数为
若随机变量X~U(0, 1)1-X~U(0, 1)
(1-ri)与ri均为在(0,1)区间内均匀分布的随机数
有了以上基础,也就用同样的方法,只要知道概率密度函数,也就不难产生任意分布的随机数,方法都是先产生一个点,然后进行取舍,落在概率密度曲线下方的点就满足要求,取其横坐标就是所要获取的随机数
参考文献:
[1]肖云茹.概率统计计算方法[M].天津:南开大学出版社,1994.
[2]程兴新.曹敏.统计计算方法EM3.北京:北京大学出版社,1989.
(B).随机变量X1,X2相互独立Xi~U(0, 1),令Y1=a+(b-a)X1~U(a, b);
(C).若X2≤λf(Y1),则令X = Y1,否则剔除X1,X2重复到(2)。
则随机变量X的分布与Z相同。
3.2正态分布的随机数的产生
下面提出了一种已知概率密度函数的分布的随机数的产生方法,以典型的正态分布为例来说名任意分布的随机数的产生方法.
模拟公式可改写为:
优点:一种普通而适用的方法;
缺点:当反函数不存在或难以求出时,不适合使用。
2.舍选法
基本思想:实质上是从许多RND随机数中选出一部分,使之成为具有给定分布的随机数.
设随机变量X的概率密度函数为f(x),存在实数a<b,使P{a<X<b}=1。
步骤:
(1)选取常数λ,使λf(x)<1,x∈(a, b);
[3]王永德等.随机信号分析基础.北京:电子工业出版社,2 0 0 3.
[4]皇甫堪等.现代数字信号处理.国防科技大学电子科学与工程学院内部印刷,2 0 0 2.
[5]杨自强,魏公毅.产生伪随机数的若干新方法.数值计算机应用, 2001,3:210~216.
体会感悟
通过简单的学习,我掌握到,概率统计是真正把实际为题转化为数学问题的学问, 因为它解决的并不是单纯的数学问题,而且不是给你一个命题让你去解决,是让你去构思命题,进而构建模型来想法设法解决实际问题。在实际应用中,就更加需要去想、去假设,对问题需要有更深层次的思考,因此使概率论和数理统计这门课学起来比微积分和线性代数更加吃力,但也比它们更加实用,更贴近实际。
随机数的产生
摘要
本文研究了连续型随机数列的产生,先给出了均匀分布的随机数的产生算法,在通过均匀分布的随机数变换得到其他连续型随机数的产生算法.我们给出了产生均匀分布随机数的算法,然后探讨了同余法的理论原理.通过均匀随机数产生其他分布的随机数,我们列举了几种通用算法,并讨论各个算法的优缺点。
正文
一、随机数与伪随机数
如果随机变量η是均匀分布的,则η的抽样序列 ,…称为均匀随机数列;如果随机变量η是正态分布的随机变量则称其抽样序列为正态随机数列.
比如在掷一枚骰子的随机试验中出现的点数x是一个随机变量,该随机变量就服从离散型均匀分布,x取值为1,2,3,4,5,6,取每个数的概率相等均为1/6.如何得到x的随机数?通过重复进行掷骰子的试验得到的一组观测结果 就是x的随机数.要产生取值为0,1,2,…,9的离散型均匀分布的随机数,通常的操作方法是把10个完全相同的乒乓球分别标上0,1,2,…,9,然后放在一个不透明的袋中,搅拦均匀后从中摸出一球记号码 后放回袋中,接着仍将袋中的球搅拌均匀后从袋中再摸出一球记下号码 后再放回袋中,依次下去,就得到随机序列 .通常称类似这种摸球的方法产生的随机数为真正的随机数.但是,当我们需要大量的随机数时,这种实际操作方法需要花费大量的时间,通常不能满足模拟试验的需要,比如教师不可能在课堂上做10000次掷硬币的试验,来观察出现正面的频率.计算机可以帮助人们在很短时间产生大量的随机数以满足模拟的需要,那么计算机产生的随机数是用类似摸球方法产生的吗?不是.计算机是用某种数学方法产生的随机数,实际上是按照一定的计算方法得到的一串数,它们具有类似随机数的性质,但是它们是依照确定算法产生的,便不可能是真正的随机数,所以称计算机产生的随机数为伪随机数.在模拟计算中通常使用伪随机数.对这些伪随机数,只要通过统计检验符合一些统计要求,如均匀性、随机性等,就可以作为真正的随机数来使用,我们将称这样产生的伪随机数为随机数.
(2)产生两个RND随机数r1、r2,令y= a+(b-a)r1;
(3)若r2≤λf(y),则令x=y,否则剔除r1和r2,重返步骤(2).
(4)重复循环,产生的随机数x1,x2,…,xN的分布由概率函数f(x)确定.
舍选法原理分析:
设P{a<Z<b}=1,Z的概率密度为f(z),
(A).选常数λ,使λf(z)≤1,z∈(a,b);
在查阅关于随机数的产生的文献中,我发现理解随机数的产生让我更加了解了这一门课程的精髓,对概率的理解更加透彻了,有时自己也能理解有些数字或概率图像的拟合不上的时候自己也能稍微明白一些原理来,同样的,也可以理解一些随机数的局限性有助于我们筛选一些产生随机数的方法,对今后学习概率论的知识有很大帮助。
如果一个随机数序列服从一维正态分布,那么它有有如下的概率密度函数:
其中μ,σ(>0)为常数,它们分别为数学期望和均方差,可以看出,在μ附近的概率密度大,远离μ的地方概率密度小,我们要产生的随机数要服从这种分布,就是要使产生的随机数在μ附近的概率要大,远离μ处小,怎样保证这一点呢,可以采用如下的方法:大矩形中随机产生点,这些点是平均分布的,如果产生的点落在概率密度曲线的下方,则认为产生的点是符合要求的,将它们保留,如果在概率密度曲线的上方,则认为这些点不合格,将它们去处.如果随机产生了一大批在整个矩形中均匀分布的点,那么被保留下来的点的横坐标就服从了正态分布.可以设想,由于在μ处的f(x)的值比较大,理所当然的在μ附近的点个数要多,远离μ处的少,这从面积上就可以看出来.我们要产生的随机数就是这里的横坐标.
1.反函数法
设连续型随机变量Y的概率函数为f(x),需产生给定分布的随机数.
步骤wk.baidu.com1)产生n个RND随机数r1,r2,…,rn;
所得yi , i=1,2,…,n即所求.
基本原理:
设随机变量Y的分布函数F(y)是连续函数,而且随机变量X~U(0,1),令Z=F-1(X),则Z与Y有相同分布。
证明: FZ(z)= P{F-1(X)≤z}= P{X≤F(z)}
在计算机上用数学方法产生随机数的一般要求如下:
1)产生的随机数列要有均匀性、抽样的随机性、试验的独立性和前后的一致性.
2)产生的随机数列要有足够长的周期,以满足模拟实际问题的要求.
3)产生随机数的速度要快,占用的内存少.
计算机产生随机数的方法内容是丰富的,在这里我们介绍几种方法,计算机通常是先产生[0,1]区间上均匀分布的随机数,然后再产生其他分布的随机数.
二、一维均匀分布随机数的产生
一般采用某种数值计算方法产生随机数序列,在计算机上运算来得到.
通常是利用递推公式:
三、非均匀分布随机数的产生
3.1一般通用方法
数学软件有产生常用分布随机数的功能,但是对特殊分布需要数据量很大时不太有效,需要寻求一种简便、经济、可靠,并能在计算机上实现的产生随机数的方法.
利用在(0 , 1)区间上均匀分布的随机数来模拟具有给定分布的连续型随机数.
=G(F(z)) = F(z)
因G(x)是随机变量X的分布函数:
若Y的概率密度为f(y),由Y=F-1(X)可得:
对给定的(0, 1)上均匀分布随机数ri,则具有给定分布的随机数yi可由方程
解出
例模拟服从参数为λ的指数分布的随机数,其概率密度函数为
若随机变量X~U(0, 1)1-X~U(0, 1)
(1-ri)与ri均为在(0,1)区间内均匀分布的随机数
有了以上基础,也就用同样的方法,只要知道概率密度函数,也就不难产生任意分布的随机数,方法都是先产生一个点,然后进行取舍,落在概率密度曲线下方的点就满足要求,取其横坐标就是所要获取的随机数
参考文献:
[1]肖云茹.概率统计计算方法[M].天津:南开大学出版社,1994.
[2]程兴新.曹敏.统计计算方法EM3.北京:北京大学出版社,1989.
(B).随机变量X1,X2相互独立Xi~U(0, 1),令Y1=a+(b-a)X1~U(a, b);
(C).若X2≤λf(Y1),则令X = Y1,否则剔除X1,X2重复到(2)。
则随机变量X的分布与Z相同。
3.2正态分布的随机数的产生
下面提出了一种已知概率密度函数的分布的随机数的产生方法,以典型的正态分布为例来说名任意分布的随机数的产生方法.
模拟公式可改写为:
优点:一种普通而适用的方法;
缺点:当反函数不存在或难以求出时,不适合使用。
2.舍选法
基本思想:实质上是从许多RND随机数中选出一部分,使之成为具有给定分布的随机数.
设随机变量X的概率密度函数为f(x),存在实数a<b,使P{a<X<b}=1。
步骤:
(1)选取常数λ,使λf(x)<1,x∈(a, b);
[3]王永德等.随机信号分析基础.北京:电子工业出版社,2 0 0 3.
[4]皇甫堪等.现代数字信号处理.国防科技大学电子科学与工程学院内部印刷,2 0 0 2.
[5]杨自强,魏公毅.产生伪随机数的若干新方法.数值计算机应用, 2001,3:210~216.
体会感悟
通过简单的学习,我掌握到,概率统计是真正把实际为题转化为数学问题的学问, 因为它解决的并不是单纯的数学问题,而且不是给你一个命题让你去解决,是让你去构思命题,进而构建模型来想法设法解决实际问题。在实际应用中,就更加需要去想、去假设,对问题需要有更深层次的思考,因此使概率论和数理统计这门课学起来比微积分和线性代数更加吃力,但也比它们更加实用,更贴近实际。
随机数的产生
摘要
本文研究了连续型随机数列的产生,先给出了均匀分布的随机数的产生算法,在通过均匀分布的随机数变换得到其他连续型随机数的产生算法.我们给出了产生均匀分布随机数的算法,然后探讨了同余法的理论原理.通过均匀随机数产生其他分布的随机数,我们列举了几种通用算法,并讨论各个算法的优缺点。
正文
一、随机数与伪随机数