最近闲来无事,写点关于matlab在矩阵计算应用中的实例和大家分享分享
目的:计算正互反矩阵的特征值及特征向量
其实我们可以应用matlab自带的库函数eig很轻松的计算出某个矩阵的特征值和特征向量,具体用法如下:
例如:
则可以由[W,X]=eig(A)直接求出A的特征值和特征向量。
下面采用和法编程近似计算矩阵的特征值及特征向量:
代码:
A=[1 2 6;1/2 1 4;1/6 1/4 1];
B=zeros(3,3);
w1=zeros(3,1);
w2=zeros(3,1);
w3=zeros(3,1);
for j=1:3
w1(j,1)=A(j,1)/sum(A(:,1));
end
for j=1:3
w2(j,1)=A(j,2)/sum(A(:,2));
end
for j=1:3
w3(j,1)=A(j,3)/sum(A(:,3));;
end
B(:,1)=w1;
B(:,2)=w2;
B(:,3)=w3;
C=zeros(1,3);
for k=1:3;
C(1,1)=C(1,1)+B(1,k);
end
for k=1:3;
C(1,2)=C(1,2)+B(2,k);
end
for k=1:3;
C(1,3)=C(1,3)+B(3,k);
end
C=C';
W=zeros(3,1);
for j=1:3
W(j,1)=C(j,1)/sum(C);
end
W %特征向量
result=0;
N=zeros(3,1);
M=A*W;
for k=1:3
N(k,1)=M(k,1)/W(k,1);
end
X=sum(N)/3 %特征根
这种方法在某些时候还是特别好使的