产生正态分布随机数及M序列0001_第1页
产生正态分布随机数及M序列0001_第2页
产生正态分布随机数及M序列0001_第3页
产生正态分布随机数及M序列0001_第4页
产生正态分布随机数及M序列0001_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、1,编制两种方法产生正态分布随机数的程序并进行验证分析;编程思路:产生正态分布随机数的两种方法:(1)统计近似抽样法:aM yJ是(0,1)均匀分布的随机数序列,则. iy =E1yJ = 0yiP(yi)dy =0.521,2-二y = 0(yi -y) P(yi)dyi =1/12b.根据中心极限定理,当Nv yi(k) - Ny x(k)32NNt组时,.N n-N(0,1),N /122c,如需产生均值为 K,方差为Ox的正态分布随机变量 X,只需如下计算:J Nyi -Tx=也一2N(x ax2),试验证明N =12时,x的统计性质就 x xx, x.N /12比较理想了。(2) 变

2、换抽样法:设y1,y2是两个相互独立的(0,1)均匀分布的随机变量,则新变量1/2x1 = (-2log y1) cos(2二 y2)1 11 1/2是相互独立的,服从N (0,1)分布的随机变x2 =(-2log y) sin(2二 y2)量。0,1)均匀分布的随机数的基本利用统计近似抽样法和变换抽样法的定义及之前产生( 方法如乘同余法、混合同余法等产生正态分布随机数。调试过程遇到的问题:(1)在用统计近似抽样法产生正态分布随机数时,给定 N,。,然后用 Matlab自带函数检验结果,感觉数据老对不上?解决方法:自己设定的出仃分别是均值,标准差,利用 Matlab自带函数mean(),var

3、()计算出来的分别是均值,方差,总觉得方差老对不上,其 实是自己理解问题,var()计算出来的方差数值肯定是自己设定的标准差 的平方大小左右。(2) Matlab下标从1开始;做运算两个矩阵的尺寸大小得对应上,还有调用的值一定得有值。程序运行结果分析得到的结论:(1)统计近似抽样法:10统计近触蝌法(1)50-52000-40 500 1 000150020002500300035004000450015010050-20246做6-2-411111J050100150200250300350403020102 345 670-3 -2 -101统计近似抽样法中要用产生的(0,1)序列的12个

4、数的和,但具体哪 12个,不太清楚,图(1) 是:z(1)用的是x(1)x(12),z(2)用的是x(2卜x(13),以此类推。图(2)是把原来的(0,1)序列x矩阵重新排列,成 12的倍数,12行或者12列都行,按列和或者行和相加代入运算。设定的N =2,仃=1.5 , Matlab 计算结果:图一 1 =1.9430产=1.5039 ;图二 N =1.9361,。=1.4854相比之下,第一种方法更接近理论值,当然这也与样本的大小多少脱离不了关系,图一正态分布随机数序列矩阵大小1*4096,图二正态分布随机数序列矩阵大小1*343.当然,不管哪种方法,计算出来的均值方差都与理论值接近,也少

5、不了误差。可见,利用统计近似抽样方法可以产生正态分布随机数。(2)变换抽样法:驷邮袪(1)刎邮钻利用课本上给的参考数值,得出N(0,1)正态分布随机数。图一 N = 0.00028113,。=0.9924 ;图二R =-0.010419,。=0.9955 ,可见均值,标准差计算数值与给定理论值还是比较接近的。所以,变换抽样法也可以产生正态分布随机数。当然,以上方法都采用了混合同余法生成(0,1)均匀分布的随机数序列,误差大小也与所取的M, A, C有关。2 .用下式产生伪随机数X 1 =(2n 1)为 c)(mod2p) , 2 < n < p 1,c 为奇数。编程思路:混合同余法

6、:混合同余法产生伪随机数的递推同余式为:y =(Ay-+C)(mod M )其中 M = 2k, k a 2, A = 2n +1 , C 为正整数,初值 y0 为非负数,则x =yjM是周期为2k的随机数。利用混合同余法定义,选取合适参数,来产生随机数。程序运行结果分析得到的结论:并计算得N= 0.4959,仃=0.2891。均值理论值为 0.5彳艮接近,均方差理论值为0.3333,相对于均值来讲误差大些。3 . (1)用Xi =为上x _9产生M序列;(2)以此M序列为基础产生逆 M序列;(3)并将逆M序列的幅值变为-a, +a。编程思路:一段无限长二元序列Xi, X2,| Xp,Xp书,

7、|各元素之间满足Xi =aiXi JL©a2|® apXi_p ,阚包,川,ap取 0 或 1, ap=i,适当选择 ai,a2,|,ap可以使序列以(2p1)bit的最长周期循环。可以用线性反馈移位 寄存器产生 M序列,然后与周期为 2bit的序列相异或得到逆 M序列,再改变 幅值即可。调试过程遇到的问题:(1)因为给的式子是Xi=XuCXij,所以写for循环时得从10开始; (2) M序列应赋9个初值,且算0,1个数时得写到循环里面。程序运行结果分析得到的结论:10.80.60.40.20M序列010203040506070809010042 0-2-40102030405060708090100逆M序列程序中检验了一个周期(Np =(2p 1)M序列中逻辑“ 0”和“1”出现的次数,一个周期(2Np)逆M序列中逻辑“0”和“1”出现的次数。结果为M序列中count0=255 , count1=256, 满足

温馨提示

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

评论

0/150

提交评论