一维正态分布随机数序列的产生方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中所得 yi,i=1,2, …,n 即所求.
3
设随机变量 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 的分布函数:
用物理方法产生随机数的基本原理是:利用某些物理现象,在计算机上 增加些特殊设备,可以在计算机上直接产生随机数。这些特殊设备称为随机 数发生器。用来作为随机数发生器的物理源主要有两种:一种是根据放射性 物质的放射性,另一种是利用计算机的固有噪声。一般情况下,任意一个随 机数在计算机内总是用二进制的数表示
的: 其中εi(i=1,2,…,m)或者为 0,或者为 1。 因此,利用物理方法在计算机上产生随机数,就是要产生只取 0 或 1 的
随机数字序列,数字之间相互独立,每个数字取 0 或 1 的概率均为 0.5。用 物理方法产生的随机数序列无法重复实现,不能进行程序复算,给验证结果 带来很大困难。而且,需要增加随机数发生器和电路联系等附加设备,费用 昂贵。因此,该方法也不适合在计算机上使用。 2、一维正态分布随机数序列的产生方法
一维正态分布随机数序列的产生方法
一、 文献综述 1.随机数的定义及产生方法 1).随机数的定义及性质
在连续型随机变量的分பைடு நூலகம்中,最简单而且最基本的分布是单位均匀分布。 由该分布抽取的简单子样称,随机数序列,其中每一个体称为随机数。
单位均匀分布也称为[0,1]上的均匀分布。 由于随机数在蒙特卡罗方法中占有极其重要的位置,我们用专门的符号 ξ表示。由随机数序列的定义可知,ξ1,ξ2,…是相互独立且具有相同单 位均匀分布的随机数序列。也就是说,独立性、均匀性是随机数必备的两个 特点。 随机数具有非常重要的性质:对于任意自然数 s,由 s 个随机数组成的 s 维空间上的点(ξn+1,ξn+2,…ξn+s)在 s 维空间的单位立方体 Gs 上 均匀分布,即对任意的 ai, 如下等式成立:
若 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
5
五、 文献列表 作者 陆兴平 滕建辅 梁静毅 滕颖 吴立新 王勇 王岩红 潘路 韩传久 孙晓雅
书名 国防科学技术大学 天津商业大学学报
年份 2004 2008
页码 2 2
计算机系统应用
2011 2
桂林电子工业学院学报 2003 4
大连大学学报
2006 8
6
为了产生随机数,可以使用随机数表。随机数表是由 0,1,…,9 十个 数字组成,每个数字以 0.1 的等概率出现,数字之间相互独立。这些数字序 列叫作随机数字序列。如果要得到 n 位有效数字的随机数,只需将表中每 n 个相邻的随机数字合并在一起,且在最高位的前边加上小数点即可。例如, 某随机数表的第一行数字为 7634258910…,要想得到三位有效数字的随机数 依次为 0.763,0.425,0.891。因为随机数表需在计算机中占有很大内存, 而且也难以满足蒙特卡罗方法对随机数需要量非常大的要求,因此,该方法 不适于在计算机上使用。 3).物理方法
(3)计算 y=σx+μ,y 是服从 N(μ,σ2)分布的随机数。 原理分析: 设ζ1,ζ2,…,ζn 是 n 个相互独立的随机变量,且ζi~ U(0,1),i=1,2,…,n,有
由中心极限定理知:
2
渐近服从正态分布 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。
4
2、用 Box-Muller 方法:
先假设
。随机抽出两个从
均匀分布的数字 和 。
然后
,
那和都
是正态分布的。另外使用反函数,先随机抽出一个从 均匀分布的数
字 ,然后
那 是正态分布的。
3、Python 实现: import numpy as np from scipy.special import erfinv def boxmullersampling(mu=0, sigma=1, size=1):
正态分布在数理统计中具有基础性的作用,因此产生高质量的正态分布 有重要的意义。我们将介绍几种数值方法求正态分布:中心极限定理, Hasiting 有理逼近法,统计工具箱,反函数法,舍选法,R 软件及一维正 态随机数的检验。 二、 相关知识 1、利用中心极限定理
中心极限定理:(一般 n≥10),产生服从 N(μ,σ2)的算法步骤: (1)产生 n 个 RND 随机数:r1,r2,…,rn; (2)计算
3、利用统计工具箱 在 MATLAB 统计工具箱中为我们提供了大量的产生各种随机数发生器程
序,我们只需要调用就可以产生我们想要的随机数。 4、反函数法
设连续型随机变量 Y 的概率函数为 f(x),需产生给定分布的随机数。 算法: (1)产生 n 个 RND 随机数 r1,r2,…,rn;
(2)从等式 基本原理:
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) return mu+z*sigma def inverfsampling(mu=0, sigma=1, size=1): z = np.sqrt(2)*erfinv(2*np.random.uniform(size=size)-1) return mu+z*sigma 四、 总结感受 一维正态分布随机数序列的产生可以产生高质量的正态分布,在数理统 计中具有基础性的重要作用。我觉得数学学习中归纳总结和拓展延伸很重要, 我们应当学会举一反三。从问题中总结规律,找到最优方法,从而达到快速 解题的目的。在大量练习中更要注意归纳总结,寻找一般方法,便于进行深 入研究,在以后解决此类问题的过程中节省时间。 数学软件的使用在随机数的产生方法中尤为重要,可以帮助我们在数据 较多的情况下利用这些数据产生更加准确的分布。
其中 P(·)表示事件·发生的概率。反之,如果随机变量序列ξ1, ξ2… 对于任意自然数 s,由 s 个元素所组成的 s 维空间上的点(ξn+1,…ξn+s) 在 Gs 上均匀分布,则它们是随机数序列。
由于随机数在蒙特卡罗方法中所处的特殊地位,它们虽然也属于由具有 已知分布的总体中产生简单子样的问题,但就产生方法而言,却有着本质上 的差别。 2).随机数表