程序
clear
close all
clc
tic
disp('please input Matrix A')
A=input('A=\n');
%A矩阵为需要分析的n阶方阵!
[n,n]=size(A);
x=ones(n,100);
y=ones(n,100);
m=zeros(1,100);
m(1)=max(x(:,1));
y(:,1)=x(:,1);
x(:,2)=A*y(:,1);
m(2)=max(x(:,2));
y(:,2)=x(:,2)/m(1);
p=0.0001;
i=2;
k=abs(m(2)-m(1));
while k>p;
i=i+1;
x(:,i)=A*y(:,i-1);
m(i)=max(x(:,i));
y(:,i)=x(:,i)/m(i);
k=abs(m(i)-m(i-1));
end
a=sum(y(:,i));
w=y(:,i)/a;
t=m(i);
disp('权重向量w=')
disp(w)
%fprintf('权重向量w=%f\n',w);
fprintf('最大特征根t=\n %f\n',t);
%以下为该方阵的一致性检验!
CI=(t-n)/(n-1);
RI=[0 0 .58 .90 1.12 1.24 1.32 1.41 1.45 1.49 1.51]; CR=CI/RI(n);
if CR<0.1;
disp('CI=')
disp(CI)
disp('RI=')
disp(RI(n))
disp('CR=')
disp(CR)
闽公网安备 35021102001881号 
热门文档