最近閑來無事,寫點關於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 %特征根
這種方法在某些時候還是特別好使的