1.建立层次分析结构并构造准则层对目标层判断矩阵A 2.求最大特征值并根据最大特征值进行判断矩阵的一致性检验 3.由最大特征值求判断矩阵A的特征矩阵,经标准化后得到判断矩阵A的权值矩阵 比较权值矩阵的各值得到准则层权值,既可以比较准则层的重要程度。 4.方案层的单排序权值也一样,只是把准则层对目标层判断矩阵A换成了方案层对准则层的判断矩阵C,一样可以得到重要程度。 5.层次总排序,得到总排序权值。即为 或 在上一程序中可依次得到准则层单排序权值B=[b1 b2… bn]; 方案层单排序权值C1=[c1 c2…,cn]; C2=[m1 m2…,mn]; Cn=[k1 k2…,kn]; 则总排序权值:W1=sum(B.*C1); W2=sum(B.*C2); W3=sum(B.*C3);
Matlab程序: % %AHP权重计算MATLAB程序 % %数据读入 clc; clear all; A=[1 1/5 3;5 1 7;1/3 1/7 1]; % %一致性检验和权向量计算 [n,n]=size(A); [v,d]=eig(A); r=d(1,1); CI=(r-n)/(n-1); RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.52 1.54 1.56 1.58 1.59]; CR=CI/RI(n); if(CR<0.10) CR_RESULT=‘通过’; else CR_RESULT=‘不通过’; end % %权向量计算 w=v(:,1)/sum(v(:,1)); w=w’; % %结果给出 disp(‘该判断矩阵权向量计算报告:’); disp([‘一致性指标:’ num2str(CI)]); disp([‘一致性比例:’ num2str(CR)]); disp([‘一致性检验结果:’ CR_RESULT]); disp([‘特征值:’ num2str®]); disp([‘特征向量:’ num2str(w)]);
计算总排序权值的程序:
参考网站:https://blog.csdn.net/qq_23860475/article/details/80660841
https://www.cnblogs.com/buzhizhitong/p/5844139.html
