层次分析法

层次分析法代码

转载自:B站数学建模学习交流

clear;clc
disp('请输入判断矩阵A: ')
A=input('判断矩阵A=')
Sum_A=sum(A);
[n,n]=size(A);
SUM_A=repmat(Sum_A,n,1);
%算术平均法求权重
SUM_A;
Stand_A=A./SUM_A;
sum(Stand_A,2);
disp('算术平均法求权重的结果为:');
disp(sum(Stand_A,2)/n)
%几何平均法求权重
Prduct_A=prod(A,2);
Prduct_n_A=Prduct_A.^(1/n);
disp('几何平均法求权重的结果为:');
disp(Prduct_n_A./sum(Prduct_n_A))
%特征值法求权重
[V,D]=eig(A);
Max_eig=max(max(D));
D==Max_eig;
[r,c]=find(D==Max_eig,1);
V(:,c);
disp('特征值法求权重的结果为:');
disp(V(:,c)./sum(V(:,c)))
%计算一致性比例CR
CI=(Max_eig-n)/(n-1);
RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];
CR=CI/RI(n);
disp('一致性指标CI=');disp(CI);
disp('一致性比例CR=');disp(CR);
if CR<0.10
    disp('CR<0.10,该判断矩阵A的一致性可以接受!');
else
    disp('CR>=0.10,该判断矩阵A需要进行修改!');
end

你可能感兴趣的:(matlab,matlab)