用MATLAB进行层次分析法时计算权向量的代码。

层次分析法从基本应用的角度上来说,可以认为成一种进行决策分析的方法。它适用于那些缺乏定量数据的决策场景。通过将一个复杂目标进行分层,最后达到评判最优方案的目的。

层次分析法将一个复杂目标分为三层:

A.目标层:这一层一般只有一个元素,就是最后要实现的目标,因而叫做目标层。

B.准则层:这一层的元素,一般是实现上一层目标要考虑到的多个因素。比如我们的目标层是买一套合适的房子,那准则层就可以是价格,地理位置,面积,风景等等。准则层下面还可以有多个子准则层,即以准则层的每一个元素为目标再细分出的几个子元素。

C.方案层:由待决策的几个方案构成。

在层次分析法中得到判别矩阵后往往需要进行一致性检验及计算权向量。

不再多说,直接上matlab代码。

%%AHP权重计算
%%数据读入
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('一致性指标:');disp(num2str(CI));
disp('一致性比例:');disp(num2str(CR));
disp('一致性检验结果:');disp(CR_Result);
disp('特征值:');disp(num2str(r));

disp('权向量:');disp(num2str(w));

这是一段相当简单的代码。作用是输入两两判别矩阵,输出该矩阵是否通过一致性检验,以及最后得到的权向量。

矩阵A即为待输入的判别矩阵。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值