层次分析法的基本步骤是确定准则层和方案层的权重,然后方案层和准则层的权重对应相乘相加,最终得到每个方案的评价分数,根据评价分数进行方案的选择,,具体步骤可以参见https://wenku.baidu.com/view/e34b51e99f3143323968011ca300a6c30c22f108.html
MATLAB程序
a=[1,1/2,4,3,3;2,1,7,5,5;1/4,1/7,1,1/2,1/3;1/3,1/5,2,1,1;1/3,1/5,3,1,1];
%[1,9,7,5;1/9,1,1/3,1/5;1/7,3,1,1/3;1/5,5,3,1];%任意待检验的矩阵
[m,n]=size(a);
for i=1:n
b(i)=sum(a(1:m,i));%列求和
end
for i=1:m
for j=1:n
c(i,j)=a(i,j)/b(j);
end
end
for k=1:m
d(k)=sum(c(k,1:n));%行求和
end
mo=sum(d(1:n));
for k=1:m
w(k)=d(k)/mo;%权重
end
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];
[e,v]=eig(a);
eigenvalue=diag(v);
lamda=eigenvalue(1);
y_lamda=e(:,1);
CI=(lamda-n)/(n-1);
CR=CI/RI(n);
if CR<0.1
disp('此矩阵能通过一致性检验');
disp('CI=');disp(CI);
disp('CR=');disp(CR);
else
disp('矩阵不能通过一致性检验');
end
%在准则层下,A1A2An的权重为a1,a2,an;
%方案B1的权重为ww11,ww12,wwn;
%方案B2的权重为ww21,ww22,ww23;
%方案B3的权重为ww31,ww32,ww33;
%各个方案的最终得分
% for i=1:n
% defen(i)=sum(w(i)*ww(i,1:n));
% end