作业一:
均匀分布:
N=10000;
x=2*rand(1,N)+1; %产生10000个[1,3]上均匀分布的随机数
z=linspace(0,4,1000);
y=hist(x,z);%统计直方图
subplot(1,2,1),plot(z,y./N);title('统计分布')
m=mean(x);
v=var(x); %均值 %方差
Y=0*(z>3)+1/2*(z=1)+0*(z
subplot(1,2,2),plot(z,Y.*0.004);title('理论分布');
axis([0,4,0,0.004]);
figure
plot(z,y./10000,'b',z,Y.*0.004,'r');
legend('统计概率',' 理论概率');
3.5
-3统计分布
4
3.5
3
2.5-3理论分布32.5
2
2
1.5
1.5
11
0.5
00.[1**********]4
3.5
-3
3
2.5
2
1.5
1
0.5
000.511.522.533.54
高斯分布
代码:
N=10000;%取样点数
x =5+ sqrt(3).*randn(1,N);%均值为5,方差为3的高斯序列
m=mean(x);%均值
v=var(x);%方差
M=1000;
X=linspace(-5,15,M);
y=hist(x,X);%频数直方图
subplot(1,2,1)
plot(X,y./N),title('统计分布');
subplot(1,2,2)
Y=exp(-(X-m).^2/(2*v))/sqrt(2*pi*v); %高斯分布的PDF 函数
plot(X, Y.*0.02),title('理论分布');
figure
plot(X,y./N,'b')
hold on
plot(X, Y.*0.02,'r','LineWidth',2)
legend('统计分布',' 理论分布');
figure
c=xcorr(x,'unbiased'); %求自相关函数
plot(c);title('自相关函数')
-3统计分布
7
6
5
4
3
2
1
0-5051015论分布5-3理4.5
43.532.521.510.50-5051015
7x 10-3
6
5
4
3
2
1
0-5051015
自相关函数
36
34
32
30
28
26
2400.20.40.60.811.21.41.61.8
x 1024
该取样的实际方差为:3.008,均值为5.012。理论的方差为3,均值为5.
分析与思考:
1. 实际统计时会出现很大的跳变波动,这是因为统计的数量不够大,如果数量足够大,则结果会更加接近。例如将取样随机数由一万点该为一百万,则:
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0-5051015x 10
-3统计分布54.543.532.521.510.5x 10
-3理论分布0-5051015
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5-30-5051015
2.hist()函数得到的是频数直方图,所以要除以总的数目才得到概率;而pdf 是概率密度函数,所以要乘以统计的间隔才能到概率。二者必须统一表示为概率时才能在同一坐标轴下比较。
作业二:
代码:
EC='A':'Z';
pdf=[8.19,1.47,3.83,3.91,12.25,2.26,1.71,4.57,7.10,0.14,0.41,3.77,3.34,... 7.06,7.26,2.89,0.09,6.85,6.36,9.41,2.58,1.09,1.59,0.21,1.58,0.08]; %理论概率
N=1000000;%取随机数的量
P=randsample(EC,N,true,pdf);
k(1,26)=0;
p(1,26)=0;
for ii=1:26
k(ii)=size(find(P==EC(ii)),2);%统计频数
p(ii)=k(ii)/N;%统计概率
end;
plot(pdf/100,'r','LineWidth',2);
hold on
plot(p,'b');
grid on;
legend('理论概率',' 统计概率'); title('取一百万个随机数');
结果:
取一百万个随机数
0.14
0.12
0.1
0.08
0.06
0.04
0.02
[1**********]30
分析和思考:统计一百万点是足够大的,所以看到曲线基本是完全重合的。如果统计的数量不够大,两条曲线会出现偏差。
取一万个随机数的结果:
取一万个随机数
0.14
0.12
0.1
0.08
0.06
0.04
0.02
[1**********]30
取一千个随机数的结果:
取一千个随机数
0.14
0.12
0.1
0.08
0.06
0.04
0.02
[1**********]30