概率论与数理统计小报告 正态随机数的产生方法
一种正态分布随机数的生成方法

C 语 言 提 供 的 随 机 函 数 rand () 生 成 的 是 0~32767 分 布 均 匀的整数。 在实际应用中, 往往需要其他数据类型、 其他取 值范围的随机数, 甚至是正态分布的随机数。 因此, 需要作 相应的加工变换。
另外, C 语言提供的随机函数是伪随机函数, 也就是说, 一旦确定了随机序列, 则后续的随机数是确定的。
图 2 加工后的随机数的分布统计图
图 2 的 两 条 曲 线 , 峰 值 高 的 为 mid=50,level=100、 峰 值 低 的 为 mid=50,level=150 的 统 计 结 果 ; 而 呈 现 横 线 的 则 是 rand () %101, 同样执行一千万次的统计结果。
大量运行结果显示, 用高尔顿原理加工的随机数的分布 达到了正态分布的效果。
下面的程序是依照高尔顿原理, 进行仿真: 用随机函数 确定小球每次碰到钉子是往左还是往右跳跃。
int fall (int mid, int level) // 高尔顿板仿真,把均匀分布 //的随机数加工为正态分布
{ int i,temp; temp=mid; if ((rand () /10) %2==1) {if (rand () %2==1) mid++; else mid--;} for (i=0;i<level;i++)
1 随机序列
每 个 随 机 序 列 是 由 语 句 srand (n) 来 确 定 的 , 其 中 n 是 用 户所选择的随机序列。 如果在调用随 机 函 数 rand () 之 前 不 声 明 选 择 的 随 机 序 列 , 则 系 统 自 动 默 认 为 srand (1)。 于 是 每 次 调 用 rand (), 都 会 得 到 相 同 的 随 机 数 序 列 。 为 了 使 得 每 次 运 行的随机序列不同, 可以根据系统时间确定随机序列, 使用 语句:
概率论与数理统计实践----正态分布

正态分布的性质及实际应用举例正态分布定义:定义1:设连续型随机变量的密度函数(也叫概率密度函数)为:式中,μ 为正态总体的平均值;σ 为正态总体的标准差; x 为正态总体中随机抽样的样本值。
其中μ 、σ 是常数且σ > 0,则称随机变量ξ 服从参数为μ 、σ 的正态分布,记作ξ ~ N(μ,σ).定义2:在(1)式中,如果μ = 0,且σ =1,这个分布被称为标准正态分布,这时分布简化为:(2)正态分布的分布函数定义3:分布函数是指随机变量X 小于或等于x 的概率,用密度函数表示为:标准正态分布的分布函数习惯上记为φ ,它仅仅是指μ = 0,σ =1时的值,表示为:正态分布的性质:正态分布的变量的频数分布由μ、σ完全决定。
集中性:正态曲线的高峰位于正中央,即均数所在的位置。
对称性:正态曲线以均数为中心,左右对称,曲线两端永远不与横轴相交。
均匀变动性:正态曲线由均数所在处开始,分别向左右两侧逐渐均匀下降。
正态分布有两个参数,即均数μ和标准差σ,可记作N(μ,σ):均数μ决定正态曲线的中心位置;标准差σ决定正态曲线的陡峭或扁平程度。
σ越小,曲线越陡峭;σ越大,曲线越扁平。
u变换:为了便于描述和应用,常将正态变量作数据转换。
μ是正态分布的位置参数,描述正态分布的集中趋势位置。
正态分布以X=μ为对称轴,左右完全对称。
正态分布的均数、中位数、众数相同,均等于μ。
σ描述正态分布资料数据分布的离散程度,σ越大,数据分布越分散,σ越小,数据分布越集中。
也称为是正态分布的形状参数,σ越大,曲线越扁平,反之,σ越小,曲线越瘦高。
应用综述 :1. 估计频数分布 一个服从正态分布的变量只要知道其均数与标准差就可根据公式即可估计任意取值范围内频数比例。
2. 制定参考值范围(1)正态分布法 适用于服从正态(或近似正态)分布指标以及可以通过转换后服从正态分布的指标。
(2)百分位数法 常用于偏态分布的指标。
表3-1中两种方法的单双侧界值都应熟练掌握。
一维正态分布随机数生成算法

一维正态分布随机数生成算法班级:###班姓名:### 学号:##########一、介绍:正态分布在数理统计中具有基础性的作用,因此产生高质量的正态分布有重要的意义。
本报告中通过利用MATLAB工具,来编译并且运行算法,通过本算法可以产生符合一维正态分布的随机数,从而达到本报告的作用,通过绘制正态分布的图形,说明算法的正确性。
正态分布的定义:若连续随机变量§的概率密度为然而,得到服从正态分布的随机数的基本思想是先得到服从均匀分布的随机数,再将服从均匀分布的随机数转变为服从正态分布。
二、算法过程:1.利用中心极限定理2、产生服从N(μ,σ2)的算法步骤:(1) 产生n 个RND 随机数:r 1,r 2,…,r n ;(2) (3) 计算 y =σx +μ ,y 是服从 N(μ,σ2) 分布的随机数。
3、原理分析:设ζ1,ζ2,…,ζn 是n 个相互独立的随机变量,且ζi ~U(0,1),i = 1,2, …,n, 由中心极限定理知 : ,渐近服从正态分布N(0, l )。
注意:我们现在已经能产生[0,1]均匀分布的随机数了,那么我们可以利用这个定理来产生标准正态分布的随机数。
现在我们产生n 个[0,1]均匀分布随机数, 我们有:为方便起见,我们特别选 n = 12,则 :这样我们很方便地就把标准正态分布随机数计算出来了。
;/)(1122∑=-=ni n ni r x 计算,121)()(21==i i D E ζζ,有∑=-=n i nn i 1122/)(ζηn r r r ,,,21 ⎪⎪⎭⎫⎝⎛-=∑=211121n i i r n n u ∑=-=1216i i r u三、算法代码及生成随机数表格及解释function m = zhengtaifenbu(miu,sigma)%UNTITLED2 Summary of this function goes here %Detailed explanation goes heren=zeros(1,1200);m=n;figure(1)for i=1:1200r=rand(1,12);n(i)= (sum(r)-6);endm=sigma*n+miu;subplot(1,2,1)cdfplot(m) ;subplot(1,2,2)ksdensity(m);End随机数表格:(*选取数据中的一部分加以说明)(利用产生的随机数绘制出来的平滑曲线)中心极限定理说明,无穷多个具有相同分布的随机变量之和是服从标准正态分布的。
产生正态分布随机数及M序列

1. 编制两种方法产生正态分布随机数的程序并进行验证分析; 编程思路:产生正态分布随机数的两种方法:(1) 统计近似抽样法:a.设{i y }是(0,1)均匀分布的随机数序列,则{}1()0.5y i i i i E y y p y dy μ===⎰1220()()1/12y i y i i y p y dy σμ=-=⎰b.根据中心极限定理,当N →∞时,112()2()~(0,1)/12NNi yi i i yNy k N y x k N N N μσ==--==∑∑c.如需产生均值为x μ,方差为2x σ的正态分布随机变量x ,只需如下计算:212~(,)/12Ni i x x x x N y x N N μσμσ=-=+∑,试验证明12N =时,x 的统计性质就比较理想了。
(2) 变换抽样法:设12,y y 是两个相互独立的(0,1)均匀分布的随机变量,则新变量1/21121/2212(2log )cos(2)(2log )sin(2)x y y x y y ππ⎧=-⎨=-⎩ 是相互独立的,服从(0,1)N 分布的随机变量。
利用统计近似抽样法和变换抽样法的定义及之前产生(0,1)均匀分布的随机数的基本方法如乘同余法、混合同余法等产生正态分布随机数。
调试过程遇到的问题:(1)在用统计近似抽样法产生正态分布随机数时,给定,μσ,然后用Matlab 自带函数检验结果,感觉数据老对不上?解决方法:自己设定的,μσ分别是均值,标准差,利用Matlab 自带函数mean(),var()计算出来的分别是均值,方差,总觉得方差老对不上,其实是自己理解问题,var()计算出来的方差数值肯定是自己设定的标准差的平方大小左右。
(2)Matlab 下标从1开始;做运算两个矩阵的尺寸大小得对应上,还有调用的值一定得有值。
程序运行结果分析得到的结论:(1)统计近似抽样法:50010001500200025003000350040004500-50510统计近似抽样法(1)-4-202468050100150200 050100150200250300350-4-20246统计近似抽样法(2)-3-2-101234567010203040统计近似抽样法中要用产生的(0,1)序列的12个数的和,但具体哪12个,不太清楚,图(1)是:z(1)用的是x(1)~x(12),z(2)用的是x(2)~x(13),以此类推。
正态随机序列的产生

0
50
100
150
200
250
300
350
400
450
500
本节小结: X=randn(m,n) 产生m行、n列的N(0,1) 产生m行、n列的N(,sigma2)
X=+sigma*randn(m,n)
xi 2 ln r1i cos 2r2i 产生相互正交 yi 2 ln r1i sin 2r2i 的N(0,1)序列
2.7-2 正态随机序列的产生
独立同分布正态随机序列的产生
相关正态随机序列的产生
1. 独立同分布正态随机序列的产生 X=randn(m,n) 产生m行、n列的N(0,1)
X=+sigma*randn(m,n) 产生m行、n列的N(,sigma2)
产生相互正交
的N(0,1)序列
xi 2 ln r1i cos 2r2i yi 2 ln r1i sin 2r2i
x1 u1
2
产生相关系数为的
本节小结:
x1
1a
2
产生相关函数为
u1
的正态随机序列
2 a|m| RX (m) 1 a2
| a | 1
K = AAT
可由矩阵分解函数chol( )(Cholesky分解)得到 R=Chol(K)----产生一个K的上三角矩阵K=RTR
3. 计算举例
例2.7-3 产生两个零均值的正态随机矢量
1 0.8
0.8 1
B
2
R=chol(B)=
1 0.8 0 0.6
1 0 X U 0.8 0.6
其中r1i和r2i为(0,1)均匀分布的随机数
概率论与数理统计小报告 正态随机数的产生方法

概率论与数理统计小报告(二)_________正态随机数的产生方法学院数理学院专业信息与计算科学班级姓名学号依据中心极限定理产生正态分布随机数摘要:由中心极限定理可知,当n很大时,具有期望μ,方差σ2的分布近似为标准正态分布,故可据此产生标准正态分布。
并利用Matlab自带的函数对结果进行检验。
关键字:正态分布中心极限定理随机数正态分布(Normal distribution)又名高斯分布(Gaussian distribution),是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。
若随机变量服从一个位置参数为、尺度参数为的概率分布,记为:则其概率密度函数为正态分布的数学期望值或期望值等于位置参数,决定了分布的位置;其方差的开平方或标准差等于clc,clearfor i=1:1000R=rand(1,12);X(i)=sum(R)-6;endX=X';m=mean(X)v=var(X)subplot(1,2,1),cdfplot(X) %绘制经验累计分布函数图,显示了一维向量X的累计概率分布F(x)的图形subplot(1,2,2),histfit(X) %绘制分组数据的柱状分布函数图,即频数图h=kstest(X, [X normcdf(X, 0,1)])% H = kstest(X)执行Kolmogorov-Smirnov检验标准正态分布比较数据向量x的值。
零假设是x为标准的正态分布;另一种假设是x不是标准正态分布。
在5%显著水平进行检验,若结果h为1,则说明零假设不成立,拒绝零假设。
否则,结果为0,零假设成立,即原分布为标准正态分布运行结果如下:h =0 (检验表明分布为标准正态分布)R = (产生的一组12个【0,1】上均匀分布的随机数)Columns 1 through 40.5700 0.4027 0.3702 0.0801Columns 5 through 80.3389 0.2411 0.8556 0.7063Columns 9 through 120.5685 0.0696 0.0455 0.3958下图为i=1000,即进行1000次抽样分布的结果。
蒙特卡罗法生成服从正态分布的随机数

《蒙特卡罗法生成服从正态分布的随机数》一、引言“蒙特卡罗法”这一词汇,源自于蒙特卡罗赌场,是一种通过随机抽样和统计模拟来解决问题的方法。
而生成服从正态分布的随机数,是在数理统计、金融工程、风险管理等领域中常常遇到的问题。
在本文中,我们将探讨如何利用蒙特卡罗法生成服从正态分布的随机数,从而可以更深入地理解这一方法并应用于实际问题中。
二、蒙特卡罗法的基本原理蒙特卡罗法是一种基于随机抽样的方法,通过对概率模型进行模拟实验来获取近似解。
对于生成服从正态分布的随机数,我们可以利用蒙特卡罗法来模拟正态分布的概率密度函数,从而得到符合正态分布的随机数。
在生成正态分布的随机数时,我们可以采用以下步骤:1. 生成服从均匀分布的随机数2. 利用反函数法将均匀分布的随机数转化为正态分布的随机数3. 进行模拟实验,不断调整参数,直至生成的随机数符合所需的正态分布三、蒙特卡罗法生成正态分布的随机数的具体步骤1. 生成服从均匀分布的随机数我们可以利用随机数发生器生成服从均匀分布的随机数。
均匀分布的概率密度函数为f(x) = 1,x∈[0,1]。
我们可以生成若干个0到1之间的随机数作为初始值。
2. 利用反函数法将均匀分布的随机数转化为正态分布的随机数利用反函数法,我们可以将服从均匀分布的随机数转化为服从正态分布的随机数。
正态分布的累积分布函数为Φ(x) = ∫(-∞,x) (1/√(2π) * exp(-t^2/2)dt,而其反函数可以通过查表或近似计算得到。
利用反函数法,我们可以将生成的均匀分布的随机数通过正态分布的反函数转化为符合正态分布的随机数。
3. 进行模拟实验,不断调整参数,直至生成的随机数符合所需的正态分布在生成的随机数不符合所需的正态分布时,我们可以不断地调整参数、增加模拟实验的次数,直至得到符合所需的正态分布的随机数。
四、总结与回顾通过蒙特卡罗法生成服从正态分布的随机数,我们可以发现这一方法的灵活性和强大性。
正态分布随机数的生成

正态分布随机数的⽣成正态分布随机数的⽣成与π的估计学院:数学学院专业:统计学班级: 06班姓名:⽩杨学号:10130605赵俊鹏 10130607尹鹏 101306101⽬录:(⼀)正态分布随机数的⽣成⽅法: (2)(1)逆变换法 (2)(2)筛选法 (2)(3)极坐标法 (4)(4)中⼼极限定理逼近法 (5)(⼆)圆周率π值的估计: (8)(1)蒙特卡洛⽅法 (8)(2)蒲丰投针法 (11)(3)积分法 (13)(4)条件期望法 (13)(5)对偶变量法 (14)(6)控制变量法 (15)(7)分层抽样法 (16)(⼀)正态分布随机数的⽣成⽅法:(1)逆变换法:function binonorm1() ticU=unifrnd(0,1); X=norminv(U); toc end>>binonorm1()时间已过 0.008417 秒。
-3-2-10123-3-2-1123Standard Normal QuantilesQ u a n t i l e s o f I n p u t S a m p l e100次模拟下的QQ 图(2)筛选法为⽣成标准正态随机变量Z ,注意到其绝对值Z 的概率密度函数为∞<<=-x e x f x 0,22)(2/2π⾸先利⽤筛选法⽣成具有上述密度函数的随机变量,密度g(x)采⽤均值为1的指数密度,即 ∞<<=-x e x g x 0,)(此时2/2/2)()(x x e x g x f -=π且其最⼤值在使得2/x 2x -达到最⼤值处取得。
由微分法可知最⼤值点为x=1.于是,取π/2)1()1()()(maxe gf xg x f c === 由于, }2)1(exp{}212exp{)()(22--=--=x x x x cg x f故⽣成Z 的算法如下:步骤1:⽣成参数为1的指数随机变量Y; 步骤2:⽣成⼀个(0,1)上的均匀分布随机数U ;步骤3:如果U<=exp{-(Y-1)^2/2},则令X=Y.否则转⾄步骤1.function binonorm2()ticY = exprnd(1); U = unifrnd(0,1);while (U>exp(-(Y-1)^2/2)) Y = exprnd(1); U = unifrnd(0,1); end X = Y; toc end>>binonorm2()时间已过 0.007354 秒。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
概率论与数理统计小报告(二)_________正态随机数的产生方法
学院数理学院
专业信息与计算科学
班级
姓名
学号
依据中心极限定理产生正态分布随机数
摘要:由中心极限定理可知,当n很大时,具有期望μ,方差σ2的分布近似为标准正态分布,故可据此产生标准正态分布。
并利用Matlab自带的函数对结果进行检验。
关键字:正态分布中心极限定理随机数
正态分布(Normal distribution)又名高斯分布(Gaussian distribution),是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。
若随机变量服从一个位置参数为、尺度参数为的概率分布,记为:
则其概率密度函数为
正态分布的数学期望值或期望值等于位置参数,决定了分布的位置;其方差的开平方或标准差等于
clc,clear
for i=1:1000
R=rand(1,12);
X(i)=sum(R)-6;
end
X=X';
m=mean(X)
v=var(X)
subplot(1,2,1),cdfplot(X) %绘制经验累计分布函数图,显示了一维向量X的累计概率分布F(x)的图形subplot(1,2,2),histfit(X) %绘制分组数据的柱状分布函数图,即频数图
h=kstest(X, [X normcdf(X, 0,1)])% H = kstest(X)执行Kolmogorov-Smirnov检验标准正态分布比较数据向量x的值。
零假设是x为标准的正态分布;另一种假设是x不是标准正态分布。
在5%显著水平进行检验,若结果h为1,则说明零假设不成立,拒绝零假设。
否则,结果为0,零假设成立,即原分布为标准正态分布
运行结果如下:
h =
0 (检验表明分布为标准正态分布)
R = (产生的一组12个【0,1】上均匀分布的随机数)
Columns 1 through 4
0.5700 0.4027 0.3702 0.0801
Columns 5 through 8
0.3389 0.2411 0.8556 0.7063
Columns 9 through 12
0.5685 0.0696 0.0455 0.3958
下图为i=1000,即进行1000次抽样分布的结果。
根据中心极限定理,【0,1】分布的极限分布为正态分布,下面做下检验:当i=10时,图像如下:
当i=100时,图像如下:
与正态分布有相似处,但差别还是比较大的。
当i=1000时,如下图,与正态分布就已经很接近了。
特别地,当i=10000时,如下图,与正态分布曲线已经很吻合了。
但是需注意:
这个问题中我们使用的函数为rand随机数发生器,其实matlab中的随机函数并不是真正意义上的随机函数,而是按照一定的递推规则产生的伪随机数。
但是在一定的可信度范围内,可以认为是真正的随机数。
参考文献:
[1] 范玉妹汪飞星王萍李娜编《概率论与数理统计》机械工业出版社2011年版
[2] 王青霞编著《概率论与随机过程:理论、历史及应用》清华大学出版社2012.03
[3] 张帼奋主编《概率论、数理统计与随机过程》浙江大学出版社2011.07
[4] 王正盛编著《Matlab与科学计算》国防工业出版社2011
[5] 李刚编著《Matlab函数速查手册》清华大学出版社2011
[6] Matlab帮助文档;
[7] 百度文库。
感想:
与上次写偏应用性的球队胜率计算类似,这次的论文是要求写随机数的产生方法。
通过多方查找资料以及对课本中关于中心极限定理的深入学习和理解,我终于完成了这篇论文。
这两次报告的写作,加深了我对书本知识的理解,而且在查找资料的过程中,我又不断学习着新知识,并且,知道了怎么去运用已学
知识。
掌握了一种理论,但要把它运用到实践中还需要相当多的尝试,并且,实现的方法不唯一。