欢迎来到天天文库
浏览记录
ID:52761212
大小:50.50 KB
页数:3页
时间:2020-03-30
《白噪声及正态随机数.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、正态随机数产生一:原理这个算法的主要理论依据是中心极限定理。由这个定理可知若有大量统计独立的随机变量的和,即:式中,每个随机变量对总的变量Y足够小时,则在一定条件下,当时,随机变量Y服从正态分布,其与每个随机变量的分布律无关。在这里,我们产生了很多随机变量,这些随机变量都是由rand()函数产生的随机数除以RAND_MAX产生的结果,当这些随机变量足够多时,近似认为随机变量Y服从正态分布。因为是由系统产生的随机数,这些随机数满足0-1分布,方差D=1/12,均值E=1/2,。标准正态的E=0,=1,当随即数足够多
2、时,其正态化的结果近似服从标准正态分布。在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统。rand()会返回一随机数值,范围在0至RAND_MAX间。返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,(其值至少为32767)我运
3、算的结果是一个不定的数。二:程序理论证明多个[0,1]间的均匀分布之和标准化后能很好的近似一个标准正态随机变量.部分程序段如下://rand()产生一个到RAND_MAX的均匀分布的随机变量.rand()/RAND_MAX即为[0,1]间的均匀分布随机变量.longWINAPIWndProc(HWNDhWnd,UINTiMessage,UINTwParam,LONGlParam){HDChDC;HBRUSHhBrush;HPENhPen;PAINTSTRUCTPtStr;/////////////////////
4、///////doublegauss();doublex[5000],b[5000]={0};inti,j;intk;srand((unsigned)time(NULL));for(j=0;j<5000;j++){x[j]=gauss();}doublegauss(){doublen=0;//使用前先初始随机函数种子:for(inti=0;i<12;i++){n+=(double)rand()/RAND_MAX;}n=(n-E)/sqrt((double)D);//标准化returnn;}三:程序的实现我们的程序
5、产生的一系列随机数,我们运用了API,将这些随机数以直方图的形式呈现出来,画图程序在源文件中。从图中已大致可以看出,这些数都是接近0的,且越接近0,数越多,这样就可以证明,中心极限定理的成立,即大量随机数在正态化后大致符合正态分布。由API绘图后结果如下
此文档下载收益归作者所有