%求特征根和特征向量
[V,D]=eig(A)
matlab程序:
A1=[0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1;
1,0,1,1,0,1,1,1,0,1,0,0,1,1,1,1;
0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1;
1,0,1,0,1,0,0,1,1,0,1,1,1,0,1,1;
0,1,1,0,0,1,0,1,1,0,0,1,1,1,1,1;
0,0,0,1,0,0,1,0,1,1,1,1,0,1,1,1;
0,0,0,1,1,0,0,0,0,1,1,0,1,1,1,0;
0,0,1,0,0,1,1,0,1,1,0,0,1,1,1,1;
0,1,0,0,0,0,1,0,0,1,1,1,1,0,1,1;
0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1;
0,1,0,0,1,0,0,1,0,1,0,1,0,0,0,1;
0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0;
0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,1;
0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1;
0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0;
0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0];
A2=[0,1,1,1,0,1,1,0,1,1,0,0,1,0,1,1;
0,0,1,1,1,0,1,1,0,0,1,1,1,1,1,1;
0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,1;
0,0,1,0,1,1,1,1,1,1,1,0,1,1,1,1;
1,0,1,0,0,0,1,1,0,1,1,1,1,1,1,1;
0,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1;
0,0,0,0,0,0,0,1,1,0,0,1,1,0,1,1;
1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1;
0,1,0,0,1,0,0,1,0,1,0,1,1,1,1,1;
0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,0;
1,0,1,0,0,0,1,0,1,1,0,1,1,0,0,0;
1,0,1,1,0,0,0,1,0,1,0,0,1,1,1,0;
0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0;
1,0,0,0,0,0,1,0,0,1,1,0,1,0,1,1;
0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,1;
0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0];
[m,n]=size(A1);
res=sum(A1')+sum(A2');
fprintf('序号 两轮总积分\n');
for i=1:n
fprintf('%2d %4d\n',i,res(i));
end
A=(A1+A2)/2;
res2=sum(A');
num=10;
Y=ones(n,1);
for i=1:num
Y=A*Y;
end
Y=Y/sum(Y);%归一化计算
[u,v]=eig(A);%u为特征向量,v为特征值
for i=1:n
z(i)=v(i,i);
end
[p,k]=max(z);%获得最大特征值及位置
w=u(:,k);%获得最大特征值对应特征向量
w=w/sum(w);
fprintf('序号 得分 特征向量\n');
for k=1:n
fprintf('%2d %-8.6f %-8.6f\n',k,Y(k),w(k));
end
本文来源:中国大学mooc西北工业大学数学建模课程