当前位置:文档之家› 一维正态分布随机数序列的产生方法

一维正态分布随机数序列的产生方法

一维正态分布随机数序列的产生方法
一、文献综述
1.随机数的定义及产生方法
1).随机数的定义及性质
在连续型随机变量的分布中,最简单而且最基本的分布是单位均匀分布。

由该分布抽取的简单子样称,随机数序列,其中每一个体称为随机数。

单位均匀分布也称为[0,1]上的均匀分布。

由于随机数在蒙特卡罗方法中占有极其重要的位置,我们用专门的符号ξ表示。

由随机数序列的定义可知,ξ1,ξ2,…是相互独立且具有相同单位均匀分布的随机数序列。

也就是说,独立性、均匀性是随机数必备的两个特点。

随机数具有非常重要的性质:对于任意自然数s,由s个随机数组成的
s维空间上的点(ξn+1,ξn+2,…ξn+s)在s维空间的单位立方体Gs上
均匀分布,即对任意的ai,如下等式成立:
其中P(·)表示事件·发生的概率。

反之,如果随机变量序列ξ1, ξ2…对于任意自然数s,由s个元素所组成的s维空间上的点(ξn+1,…ξn+s)在Gs上均匀分布,则它们是随机数序列。

由于随机数在蒙特卡罗方法中所处的特殊地位,它们虽然也属于由具有已知分布的总体中产生简单子样的问题,但就产生方法而言,却有着本质上的差别。

2).随机数表
为了产生随机数,可以使用随机数表。

随机数表是由0,1,…,9十个数字组成,每个数字以0.1的等概率出现,数字之间相互独立。

这些数字序列叫作随机数字序列。

如果要得到n位有效数字的随机数,只需将表中每n
个相邻的随机数字合并在一起,且在最高位的前边加上小数点即可。

例如,某随机数表的第一行数字为7634258910…,要想得到三位有效数字的随机数依次为0.763,0.425,0.891。

因为随机数表需在计算机中占有很大内存,
而且也难以满足蒙特卡罗方法对随机数需要量非常大的要求,因此,该方法不适于在计算机上使用。

3).物理方法
用物理方法产生随机数的基本原理是:利用某些物理现象,在计算机上增加些特殊设备,可以在计算机上直接产生随机数。

这些特殊设备称为随机数发生器。

用来作为随机数发生器的物理源主要有两种:一种是根据放射性物质的放射性,另一种是利用计算机的固有噪声。

一般情况下,任意一个随机数在计算机内总是用二进制的数表示
的:
其中εi(i=1,2,…,m)或者为0,或者为1。

因此,利用物理方法在计算机上产生随机数,就是要产生只取0或1的随机数字序列,数字之间相互独立,每个数字取0或1的概率均为0.5。

用物理方法产生的随机数序列无法重复实现,不能进行程序复算,给验证结果带来很大困难。

而且,需要增加随机数发生器和电路联系等附加设备,费用昂贵。

因此,该方法也不适合在计算机上使用。

2、一维正态分布随机数序列的产生方法
正态分布在数理统计中具有基础性的作用,因此产生高质量的正态分布有重要的意义。

我们将介绍几种数值方法求正态分布:中心极限定理,Hasiting 有理逼近法,统计工具箱,反函数法,舍选法,R软件及一维正态随机数的检验。

二、相关知识
1、利用中心极限定理
中心极限定理:(一般n≥10),产生服从N(μ,σ2)的算法步骤:
(1)产生n个RND 随机数:r1,r2,…,rn;
(2)计算
(3)计算y=σx+μ,y是服从N(μ,σ2)分布的随机数。

原理分析:
设ζ1,ζ2,…,ζn是n个相互独立的随机变量,且ζi~
U(0,1),i=1,2,…,n,有
由中心极限定理知:
渐近服从正态分布N(0,l)。

注意:我们现在已经能产生[0,1]均匀分布的随机数了,那么我们可以利用这个定理来产生标准正态分布的随机数。

现在我们产生n个[0,1]均匀分布随机数,r1,r2,…,rn
我们有:
为方便起见,我们特别选n=12,则:
这样我们很方便地就把标准正态分布随机数计算出来了。

2、Hasiting有理逼近法
这是一种计算速度快,也能满足一定精度的算法。

我们可以构造分布函数反函数的近似逼近公式,来产生标准正态分布的随机数。

其计算公式为:
这里,
系数为:a0 = 2.515517,b1 = 1.432788,
a1 = 0.802853,b2 = 0.189269,
a2 = 0.010328,b3 = 0.001308。

3、利用统计工具箱
在MATLAB统计工具箱中为我们提供了大量的产生各种随机数发生器程序,我们只需要调用就可以产生我们想要的随机数。

4、反函数法
设连续型随机变量Y的概率函数为f(x),需产生给定分布的随机数。

算法:
(1)产生n个RND 随机数r1,r2,…,rn;
(2)从等式中所得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)}=G(F(z))=F(z)因G(x)是随机变量X的分布函数:
若Y的概率密度为f(y),由Y=F-1(X)可得:
对给出定的(0, 1)上均匀分布随机数ri,则具有给定分布的随机数yi可由方程
解出。

三、应用实例
1、MATLAB算法代码及生成随机数表格
function m = zhengtaifenbu(miu,sigma)
%UNTITLED2 Summary of this function goes here
%Detailed explanation goes here
n=zeros(1,1200);
m=n;
figure(1)
for i=1:1200
r=rand(1,12);
n(i)= (sum(r)-6);
end
m=sigma*n+miu;
subplot(1,2,1)
cdfplot(m)
subplot(1,2,2)
ksdensity(m);
End
2、用Box-Muller方法:
先假设。

随机抽出两个从均匀分布的数字和。

然后,那和都是正态分布的。

另外使用反函数,先随机抽出一个从均匀分布的数字,然后那是正态分布的。

3、Python实现:
importnumpy as np
fromscipy.special import erfinv
defboxmullersampling(mu=0, sigma=1, size=1):
u = np.random.uniform(size=size)
v = np.random.uniform(size=size)
z = np.sqrt(-2*np.log(u))*np.cos(2*np.pi*v)
returnmu+z*sigma
definverfsampling(mu=0, sigma=1, size=1):
z = np.sqrt(2)*erfinv(2*np.random.uniform(size=size)-1)
return mu+z*sigma
四、总结感受
一维正态分布随机数序列的产生可以产生高质量的正态分布,在数理统计中具有基础性的重要作用。

我觉得数学学习中归纳总结和拓展延伸很重要,我们应当学会举一反三。

从问题中总结规律,找到最优方法,从而达到快速解题的目的。

在大量练习中更要注意归纳总结,寻找一般方法,便于进行深入研究,在以后解决此类问题的过程中节省时间。

数学软件的使用在随机数的产生方法中尤为重要,可以帮助我们在数据较多的情况下利用这些数据产生更加准确的分布。

五、文献列表。

相关主题