Matlab 层次分析法 求解权重矩阵
注:应用程序时,只需要将评判矩阵,也就是判断矩阵,输入到程序中即可,即修改A矩阵,其他地方都不需要修改。
首先进行对矩阵一致性的判断,只有通过一致性检验的矩阵,得到的权重才更可靠,涉及较少变量(如2个变量)直接手算。
Matlab代码如下:
% %AHP权重计算MATLAB程序 % %数据读入 clc; clear all; A=[1 2 6;1/2 1 4;1/6 1/4 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(r)]); disp([\'特征向量:\' num2str(w)]);
版权声明:本文为博主原创文章,未经博主允许不得转载。