实验1随机数产生及直方图统计_第1页
实验1随机数产生及直方图统计_第2页
实验1随机数产生及直方图统计_第3页
实验1随机数产生及直方图统计_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.实验1 随机数产生及直方图统计一、实验目的(1)掌握在一般微型计算机上产主随机数的方法。(2)统计随机数的概率分布密度函数。二、实验内容1用计算机产生0,1均匀分布的(伪)随机数。2由0,1均匀分布随机数产生其它分布的随机数,例:正态N(0,l)分布的随机数。3用直方图统计随机数的分布密度。三、实验设备微型计算机及其高级程序语言编译环境,例C+、FORTRAN、PASCAL等,也可以应用工程计算工具软件如MATLAB等。四、实验原理1计算机产生均匀分布随机数若设R是0,1上均匀分布的随机变量, 则它们的密度函数为: 在计算机算法中,为实现方便,通常使用伪随机数(序列)来代替(真)随机数。伪随

2、机序列是有周期性的数值序列,当其周期N相对很大时,统计特性一定程度上逼近随机序列,故效果与(真)随机数相近。在本课程的以下部分,对伪随机数(序列)和真随机数(序列),称谓上不再加以严格区分。在计算机程序中,产生均匀分布伪随机数(序列)可以采用所谓“线性同余法”,有关资料可以自行查阅。不过,高级编程语言都有现成的产生均匀分布随机数的功能函数,如C语言中包含有随机函数RANDOM(N),用产生一个0N-1之间的符合统计要求的均匀分布的伪随机数(序列)。每调用一次该函数,得到均匀分布随机数的一次抽样,如语句RANDOM(1000),则变量就赋以一次抽样的随机数。在实验中,我们可以采用这种方法来获得均

3、匀分布的随机数列。2高斯分布随机数的获得实际研究当中,高斯(正态)分布是经常被使用到的数学模型,可以近似描述很多随机事件的统计特性。所以,如何产生高斯分布随机序列,是在本课程中必须掌握的内容。通常,我们可以采用非线性变换法,对比较容易产生的均匀分布随机序列进行变换,(近似)得到高斯分布随机序列。公式(1-2)和(1-3)中,若R1和R2是0,1区间两个均匀分布随机变量,理论上可以证明XC和XS是标准正态分布(均值为0,方差为1的高斯分布)的随机变量。 (1-2) (1-3)因为两变换式的正交性,XC和XS是统计独立的。所以,在实际应用中,可以单独或同时使用式(1-2)和(1-3)。当然,在一些

4、较新的工具软件中,也已提供了直接的库函数,来生成高斯分布随机数。比如在MATLAB中,randn函数可以直接生成高斯分布随机数(矩阵)。3直方图对于一个随机变量,假如我们知道它是正态的(或其它分布形式)我们可以从随机变量的抽样估计它的均值和方差,从而得到它的分布密度函数。如果预先对一个随机变量分布一无所知,要估计它的分布密度函数可借助于直方图统计方法:其方法介绍于下:图1 密度函数的取值量化设有图1所示密度函数fx(x)把随机变量X的取值量化,量化阶为2,例如对于以x=2为中心的量化阶内,如果足够小。有 当X 抽样X1 ,X2, , XN ,是独立且同分布时,则当N较大能用频率代替概率。所以可

5、以得到概率密度的估计值 k=1,N显然x2并不特殊,可以重复进行其它x值上的密度估计。这样我们就得到密度函数fx(x)的离散估计值。这就是直方图方法。这种直方图估计的准确度可以进行专门分析。分析它的方差可以知道,N 和的选择有一定的要求。显然,数据样点数N 越大越好,而区间密度选择与值相适应为好。有表1可供参考。表1 样点数与直方单元数500100020005000100002230395674N数据样点数;K随机变量取值范围量化的单元数。实验中要求用计算机对所产生的随机数用直方图估计其概率密度函数,井打印出分布函数的图形。为了便于编写直方图统计程序,下面给出一个C语言的例子,供参考。例:学生

6、考试成绩统计。要统计出得100分的学生有几个,得90分到99分之间的学生有几个,得80分到89分之间的学生有几个,得7079分之间的学生有几个,并且打印出分数分布图形其程序如下:#include "stdio.h"static int score100=65,57,71,75,80,90,91,88,78,82,77,86, 45,38,44, 46,83,82,79,85,70,68,83,59,98,92,100,97,85,73,80,77,-1;void main() int i,j;static int s11;for(i=0;i<100;i+) if(sc

7、orei=-1) break;j=int(scorei/10);sj+; for(i=0;i<=10;i+)if(i<10)printf("%d",10*i);printf("-");printf("%dt",10*i+9);elseprintf("%dt",10*i); for(j=0;j<si;j+)printf("*");printf("n"); 0-910-1920-2930-39 *40-49 *50-59 *60-69 *70-79 *80-89

8、 *90-99 *100 *程序中利用数组S11记录各类得分的人数,数组变量S0记录0到9分之间的人数,S1记录10到19分之间的人数,依此类推,S10记录得100分的人数. 学生成绩数据放在数组score100中(数组维数可根据需要选取,这里随意设定数组维数为100),成绩数据的最后一个数据-1是数据结束的标志。 如果学生的成绩scorei=83则scorei108.3,整后为8,那么80到89分的人数记录S8应该增加,即使得下标j=8数组变量的Sj的数值增加1;同理,如果成绩是79,语句j=int(scorei/10)和sj+使得标变量S7的值增加1,依此类推。程序最后打印出分数分布示意图。五、实验步骤及报告要求1预习实验指导书,弄懂实验原理,编写好上机程序。2记录程序调试中发生的故障及其排除。3整理统计计算的结果。4回答(六)中提出的问题。六、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论