1、MATLAB系统建模与仿真实验系统建模与仿真实验报告报告一: 产生10中独立分布的随机数,并检验其一、二阶距的性质。1、0,1区间的均匀分布采用乘同余法产生均匀分布在(0,1)之间的随机数。乘同余法的递推公式为:一般情况下,a为整数,M于计算机的字长有关,,m为16或32,x的初值为。利用MATLAB实现,代码如下:function u=undistribution(a,b,m);%乘同余法lam=8*a-3;M=pow2(m);x(1)=pow2(b)+1;for i=2:10000; y=lam*x(i-1); x(i)=mod(y,M);endu=x/M;end调用函数,并检验产生随机数
2、的数字特性。y=undistribution(3,2,32);hist(y,50);E=mean(y);D=var(y);title(0-1均匀分布直方图);text(0,-20,strcat(均值为,num2str(E);text(0.77,-20,strcat(均值为,num2str(D);2、标准正态分布高斯分布的概率密度函数:;首先利用前面产生均匀分布随机数的方法生成两组均匀分布的随机数u1,u2;利用公式:,Z服从高斯分布。MATLAB实现代码如下:u1=undistribution(3,2,32);u2=undistribution(2,3,32);z=sqrt(-2*log(u1
3、).*cos(2*pi*u2);hist(z,100);E=mean(z);D=var(z);title(标准正态分布直方图)text(-6,-40,strcat(均值为,num2str(E);text(6,-40,strcat(方差为,num2str(D);3、指数分布指数分布的概率密度函数如下: ;首先利用前面产生均匀分布随机数的方法生成一组均匀分布的随机数u;则数列,为均值为,方差为的指数分布随机数列。MATLAB实现代码如下:u=undistribution(3,2,32);lam=8;y=-log(u)/lam;hist(y,150);E=mean(y);D=var(y);title
4、(指数分布直方图)text(0,-130,strcat(均值为,num2str(E);text(2.3,-130,strcat(方差为,num2str(D);4、广义指数分布广义指数分布的概率密度函数如下:,设有两组高斯分布的数列x、y,另,其中s为信噪比,则服从广义指数分布。MATLAB实现代码入下:u1=undistribution(3,2,32);u2=undistribution(2,3,32);x=sqrt(-2*log(u1).*cos(2*pi*u2);y=sqrt(-2*log(u1).*sin(2*pi*u2);s=2;x1=x+sqrt(2*s);z=x1.2+y.2;hi
5、st(z,100)E=mean(z);D=var(z);title(广义指数分布直方图);text(0,-60,strcat(均值为,num2str(E);text(63,-60,strcat(方差为,num2str(D);5、瑞利分布瑞利分布的概率密度函数为: ;瑞利分布数组可以利用高斯分布数列来产生,设有高斯分布的数列x、y,则服从瑞利分布。利用MATLAB实现代码如下:u1=undistribution(3,2,32);u2=undistribution(2,3,32);x=sqrt(-2*log(u1).*cos(2*pi*u2);y=sqrt(-2*log(u1).*sin(2*pi
6、*u2);z=sqrt(x.2+y.2);hist(z,50)E=mean(z);D=var(z);title(瑞利分布直方图);text(0,-65,strcat(均值为,num2str(E);text(5.5,-65,strcat(方差为,num2str(D);6、广义瑞利分布广义瑞利分布的概率密度函数如下:;同样,可以利用产生瑞利分布的方法来生产广义瑞利分布数列。设有高斯分布数列x、y,则服从广义瑞利分布,其中a为常数。MATLAB实现代码如下:u1=undistribution(3,2,32);u2=undistribution(2,3,32);x=sqrt(-2*log(u1).*c
7、os(2*pi*u2);y=sqrt(-2*log(u1).*sin(2*pi*u2);a=2;x1=x+a;z=sqrt(x1.2+y.2);hist(z,100)E=mean(z);D=var(z);title(广义瑞利分布直方图);text(0,-30,strcat(均值为,num2str(E);text(7.4,-30,strcat(方差为,num2str(D);7、韦布尔分布韦布尔分布的概率密度函数如下:;其中,则服从韦布尔分布,其中是服从N(0,1)的正态分布。MATLAB实现代码如下:u1=undistribution(3,2,32);u2=undistribution(2,3,
8、32);x=sqrt(-2*log(u1).*cos(2*pi*u2);E=mean(x);D=var(x);y=(x-E)/sqrt(D);%将高斯数列x转为为服从N(0,1)的高斯分布数列yE1=mean(y);D1=var(y);xn=3;a=3;b=2;z=xn+b*(-log(y).(1/a);hist(z,100);E=mean(z);D=var(z);title();text(3,-60,strcat(,num2str(E);text(6.6,-60,strcat(,num2str(D);8、对数正态分布对数正态分布概率密度函数如下:。要生成具有对数正态分布的随机数列,只需对高斯
9、分布的数列进行指数变换。MATLAB实现代码如下:u1=undistribution(3,2,32);u2=undistribution(3,2,16);x=sqrt(-2*log(u1).*cos(2*pi*u2);z=exp(x);hist(z,2000);axis(0,15,0,3000)E=mean(z);D=var(z);title(对数正态分布直方图)text(0,-300,strcat(均值为,num2str(E);text(12,-300,strcat(方差为,num2str(D);9、Swerling 型分布:设有两组高斯分布的数列x、y,则就是Swerling 型分布随机数
10、,其中r可以取全1数列。MATLAB实现代码如下:u1=undistribution(3,2,32);u2=undistribution(2,3,32);x=sqrt(-2*log(u1).*cos(2*pi*u2);y=sqrt(-2*log(u1).*sin(2*pi*u2);r=ones(1,10000);z=(r/2).*(x.2+y.2);hist(z,100)E=mean(z);D=var(z);title(SwerlingII分布直方图);text(0,-150,strcat(均值为,num2str(E);text(20,-150,strcat(方差为,num2str(D);10
11、、2分布分布的概率密度函数如下:首先生成n组服从标准正态分布的随机数组,则服从分布。MATLAB实现代码如下:u1=undistribution(3,2,32);u2=undistribution(2,3,32);u3=undistribution(5,4,32);u4=undistribution(4,5,32);g1=sqrt(-2*log(u1).*cos(2*pi*u2);g2=sqrt(-2*log(u1).*sin(2*pi*u2);g3=sqrt(-2*log(u3).*cos(2*pi*u4);g4=sqrt(-2*log(u3).*sin(2*pi*u4);x(1,1:10000)=g1;x(2,1:10000)=g2;x(3,1:10000)=g3;x(4,1:10000)=g4;for i=1:10000 z(i)=x(1,i)2+x(2,i)2+x(3,i)2+x(4,i)2;endhist(z,100)E=mean(z);D=var(z);title(x2分布直方图);text(0,-130,strcat(均值为,num2str(E);text(65,-130,strcat(方差为,num2str(D);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1