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)]);

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2015-07-20 13:29  Tob__yuhong  阅读(2167)  评论(0编辑  收藏  举报

导航