信息编码与密码学“实验一:离散随机变量的信息量的计算”实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
院 系: 理学院信息与计算科学系 班 级:
学 生 姓 名: 学 号: 课程名称: 信息编码与密码学 实验题目: 离散随机变量信息量的计算
指 导 教 师 :胡建平
朱振菊
2011年4月11日
一、 实验题目
离散随机变量信息量的计算
二、 实验目的
1(掌握离散随机变量的信息量的计算
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
;
2(理解离散随机变量信息量之间的关系。
三、 实验内容与要求
计算单个离散随机变量的熵;计算两个离散随机变量联合熵;计算给定一个随机变量后另外一个变量的条件熵;计算两个离散随机变量的互信息。实验的具体要求如下:
1. 针对实际问题所涉及的离散随机变量进行熵、联合熵和互信息的计算;
2. 验证熵,联合熵,条件熵,互信息之间的关系式;
3. 绘制出熵函数的图像。
四、 实现方法
问题:一批产品共有100件,其中一等品60件、二等品30件、三等品10件,从这品产品中又放回的人任意取三件,以X和Y分别表示取出的3件产品中一等品、二等品的件数。
将X、Y看做两个离散的随机变量,计算X、Y的熵、联合熵、条件熵、互信息。
步骤一:先写出X,Y的联合分布列:
1
? X Y 0 1 2 3
0 0.001 0.009 0.027 0.027 0.064
1 0.018 0.108 0.162 0 0.288
2 0.108 0.324 0 0 0.432
3 0.216 0 0 0 0.216
? 0.343 0.441 0.189 0.027 1
a1,,ppa,pH()H(1,.......,)log步骤二:利用公式分别计算,icp,1ii出X、Y的熵;
步骤三:作出H(,),,plogp,(1,p)log(1,p)的图像,图像记为熵函数;
步骤四:根据计算出他H(,,,),,(x,y)log(x,y)pp,,(,,,)(,,,)x,,y,,
们的联合熵;
H(,,,),H(,),H(,|,),H(,),H(,|,),根据本式步骤五:因为
可计算出条件熵;
,与,I(,;,)步骤六:因为的互信息为:
p(x,y)I(;)H[p(x,y)||p(x)p(y)]p(x,y)log,,,,,根据上式计算,,p(x)q(y)x,,y,,
出互信息,并作出图像。
五、 实验结果
2
X的熵函数 1.7717 Y的熵函数 1.6453 XY的联合熵函数 3.3498 H(X|Y) 1.7044 H(Y|X) 1.5781 互信息I(x;y) 0.95751
熵函数图像(二元)
3
熵函数图像(三元)
4
互信息图像
六、 源程序
清单
安全隐患排查清单下载最新工程量清单计量规则下载程序清单下载家私清单下载送货清单下载
1、计算X、Y的熵
%******************************************/ %计算离散随机变量的熵
%******************************************/ px=[0.064,0.288,0.432,0.216];%px py=[0.343,0.441,0.189,0.027];%py Hx=0.0;
Hy=0.0;
5
for i=1:4
Hx=Hx+px(i)*log2(1/px(i));
Ix(i)=log2(1/px(i)); end
for j=1:4
Iy(j)=log2(1/py(j));
Hy=Hy-py(j)*log2(py(j)); end
str1=['Hx的熵为:' num2str(Hx)] str2=['Hy的熵为:' num2str(Hy)] disp(str1);
disp(str2);
2、作出熵函数的图像
%************************* %显示熵函数图像(三元)
%************************ px=0:0.01:1;
py=0:0.01:1
H=-px.*log2(px)-py.*log2(py)-(1-px-py).*log2(1-px-py);
plot3(px,py,H,'r-')
title('三元熵函数')
6
xlabel('px');
ylabel('py');
grid on
%************************* %显示熵函数图像(二元)
%************************ p=0:0.01:1;
H=-p.*log2(p)-(1-p).*log2(1-p); plot(p,H,'m-')
title('二元熵函数')
xlabel('p');
ylabel('H');
grid on
3、计算离散随机变量的联合熵函数
%******************************************
%计算离散随机变量的联合熵函数
%******************************************
px=[0.064,0.288,0.432,0.216]; py=[0.343,0.441,0.189,0.027]; p3=px.*py;
Hx=0.0;
7
Hy=0.0;
H3=0.0;
for i=1:4
Hx=Hx+px(i)*log2(1/px(i)); end
for j=1:4
Hy=Hy+py(j)*log2(1/py(j));
for k=1:4
H3=H3+p3(k)*log2(1/p3(k));
end
end
str0=['X、Y的联合熵为:' num2str(H3)]; disp(str0);
4、计算离散随机变量的条件熵函数
%******************************************
%计算离散随机变量的条件熵函数
%******************************************
px=[0.064,0.288,0.432,0.216]; py=[0.343,0.441,0.189,0.027]; for i=1:4
for j=1:4
8
p(i,j)=px(i)*py(j);
pxy(i,j)=p(i,j)/px(i);
pyx(i,j)=p(i,j)/py(j);
end
end
Hxy=0.0;
Hyx=0.0;
for i=1:4
for j=1:4
Hxy=Hxy-p(i,j)*log2(pxy(i,j));
Hyx=Hyx-p(i,j)*log2(pyx(i,j));
end
end
str1=['条件熵H(x|y)' num2str(Hxy)];
str2=['条件熵H(x|y)' num2str(Hyx)];
disp(str1);
disp(str2);
5、计算互信息
%****************************************** %计算互信息
%******************************************
9
px=[0.064,0.288,0.432,0.216]; py=[0.343,0.441,0.189,0.027]; I=0
for i=1:4
K=px(i).*py(i)
for j=1:4
T=px(i).*py(j)
I=I+T.*log2(T./K);
end
end
str=['互信息I(x;y)为' num2str(I)]
disp(str)
6、绘制互信息图形
%**************************** %绘制互信息图像
%**************************** omega=(1:99)*0.01;
p=0.2;
P=[1-p, p;
p, 1-p];
for k=1:99
10
x=[omega(k), 1-omega(k)];
y=x*P;
IXY(k)=0;
for i=1:size(P,1)
for j=1:size(P,2)
pxy=P(i,j)*x(i);
IXY(k)=IXY(k)+pxy*log2(P(i,j)/y(j));
end
end
end
plot(omega, IXY);
grid on
title('互信息图像')
七、 思考及总结
本次实验利用书本上所推导出来的熵函数、联合熵函数、条件熵函数、互信息的相关公式。通过MATLAB进行编程,最终算出各自对应的数值。
通过本次实验,进一步加深了二维离散随机变量熵函数之间的联系,同时也可将二维随机变量推广到三维乃至多维,使其能够适更跟多的情况。
在编程方面,利用MATLAB能够更加快捷的计算并绘制出相关的图像,能够直观的了解到相关信息。
11