MATLAB系统建模与仿真实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统建模与仿真实验报告
报告一: 产生10中独立分布的随机数,并检验其一、二阶距的性质。
1、[0,1]区间的均匀分布
采用乘同余法产生均匀分布在(0,1)之间的随机数。乘同余法的递推公式为:
1(mod )n n x x M λ+=
一般情况下,323a λ=±,a 为整数,M 于计算机的字长有关,2m M =,m 为16或32,x 的初值为(1)21b 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); end u=x/M; end
调用函数,并检验产生随机数的数字特性。 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)));
00.10.20.30.40.50.60.7
0.80.910
50
100
150
200
250
0-1均匀分布直方图
均值为0.50227
方差为0.082933
2、标准正态分布
高斯分布的概率密度函数:
22
()2()x u P x σ-=
;
首先利用前面产生均匀分布随机数的方法生成两组均匀分布的随机数u1,u2
;利用公式:2)Z u π=,Z 服从高斯分布。MATLAB 实现代码如下:
u1=undistribution(3,2,32); u2=undistribution(2,3,32);
z=sqrt(-2*log(u1)).*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)));
-6-4-2024
68050
100150200250300350400
450标准正态分布直方图
均值为0.0081833
方差为1.0025
3、指数分布
指数分布的概率密度函数如下:
,0()0,x e x P x λλ-⎧≥=⎨⎩
其它 ;
首先利用前面产生均匀分布随机数的方法生成一组均匀分布的随机数u ;则数列1
ln y u λ
=-
,为均值为λ,方差为2λ的指数分布随机数列。MATLAB 实现
代码如下:
u=undistribution(3,2,32); lam=8;
y=-log(u)/lam; hist(y,150);
E=mean(y); D=var(y);
title('指数分布直方图')
text(0,-130,strcat('均值为',num2str(E))); text(2.3,-130,strcat('方差为',num2str(D)));
00.51 1.52 2.53
200
400
600
800
1000
1200
1400
指数分布直方图
均值为0.12474方差为0.017187
4、广义指数分布
广义指数分布的概率密度函数如下:
0()())p x I x s =-+,
设有两组高斯分布的数列x 、y ,
另1x x =其中s 为信噪比,则221z 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*u2); s=2;
x1=x+sqrt(2*s);
z=x1.^2+y.^2; hist(z,100) E=mean(z); D=var(z);
title('广义指数分布直方图');
text(0,-60,strcat('均值为',num2str(E))); text(63,-60,strcat('方差为',num2str(D)));
010
2030405060
70800
100200300400500600700
800广义指数分布直方图
均值为6.0285
方差为21.1718
5、瑞利分布
瑞利分布的概率密度函数为:
2
22exp(),0
()20,0x x x f x x σσ
⎧-≥⎪=⎨⎪<⎩
; 瑞利分布数组可以利用高斯分布数列来产生,设有高斯分布的数列x 、y ,
则z =服从瑞利分布。利用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); 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)));
012345
670
100200300400500600700
800瑞利分布直方图
均值为1.2496
方差为0.43442
6、广义瑞利分布
广义瑞利分布的概率密度函数如下:
220
222
+()exp -(),02a a p εεεεεσσσ=≥()I ;