Matlab 层次分析法 求解权重矩阵 - Tob__yuhong

时间:2024-03-17 17:06:24

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

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