菜鸟的数学建模之路(六):层次分析法

  1. 层次分析法(AHP):一种层次权重决策分析方法,日常生活中比如:冰箱品牌的选购(考虑到价格,性能,售后等因素);旅游景点的选择(交通,居住环境,饮食等)。
  2. 解题步骤:
    (1).建立层次结构模型
    (2).构造判断(成对比较)矩阵
    (3).一致性检验
  3. 案例:
    在这里插入图片描述
    构造判断(成对比较)矩阵
    标度表:主要用于构造判断矩阵
    在这里插入图片描述
    注意:构造判断矩阵时,不同元素之间的重要程度一般主观判断,即自己凭主观做出判断,不过在真正的数学建模上建议还是这样说“经过查找资料得出判断矩阵”,尽管是自己主观给出的判断,但是比赛的话,表面功夫还是要做足的。(不同元素之间的重要性的比用1-9之间的数值标出,参考标度表,主要是两两比较,给出两者的重要程度的比值)

在这里插入图片描述(C1:C1 = 1:1说明重要程度一样,C1:C2 = 1:1/2说明C1比C2重要一点,C1:C3 = 1:4说明C3比C1较重要,以此类推,所有的重要程度由自己主观判断,如果有专门的数据说明重要程度就更好了,一般套路:经过文献的调研,可以得到以下判断矩阵)
完整的判断矩阵的构建如下:
在这里插入图片描述
在这里插入图片描述
注意:A为相对于Z,A1-A5的重要程度的判断矩阵
B1为相对于A1,B1-B3的重要程度的判断矩阵
B2为相对于A2,B1-B3的重要程度的判断矩阵
B3为相对于A3,B1-B3的重要程度的判断矩阵
B4为相对于A4,B1-B3的重要程度的判断矩阵
B5为相对于A5,B1-B3的重要程度的判断矩阵
经过matlab计算得到6个判断矩阵的权重值:
在这里插入图片描述

在这里插入图片描述

4.代码

% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 
%层次分析法matlab实现:
% 运行代码
% (1)输入:判断矩阵A(n阶)
% (2)输出:该判断矩阵的相关权重,并给出该矩阵一致性检验是否通过,并且输出CI,CR
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% 以下为判断矩阵,执行代码后分别输入:
% A = [2 1 7 5 5
% 1/4 1/7 1 1/2 1/3
% 1/3 1/5 2 1 1
% 1/3 1/5 3 1 1];
% 
% B1 = [1 2 5
% 1/2 1 2
% 1/5 1/2 1]
% 
% B2 = [1 1/3 1/8
% 3 1 1/3
% 8 3 1]
% 
% B3 = [1 1 3
% 1/3 1 3
% 1/4 1 1]
% 
% B4 = [1 3 4
% 1/3 1 1
% 1/4 1 1]
% 
% B5 = [1 1 1/4
% 1 1 1/4
% 4 4 1]

%层次分析法(AHP)
clc,clear
disp('请输入判断矩阵A(n阶)');
A = input('A=');
[n,n] = size(A);
x = ones(n,100);
y = ones(n,100);
m = zeros(1,100);
m(1) = max(x(:,1));
y(:,1) = x(:,1);
x(:,2) = A*y(:,1);
m(2) = max(x(:,2));
y(:,2) = x(:,2)/m(2);
p=0.0001; i=2; k=abs(m(2)-m(1));
while k>p
    i=i+1;
    x(:,i) = A*y(:,i-1);
    m(i) = max(x(:,i));
    y(:,i) = x(:,i)/m(i);
    k=abs(m(i)-m(i-1));
end
a = sum(y(:,i));
w = y(:,i)/a;
t = m(i);
disp(w);
%一致性检验
CI = (t-n)/(n-1);
RI = [0 0 0.52 0.89 1.12 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];
CR = CI/RI(n);
if CR<0.10
    disp('此矩阵一致性可以接受!');
    disp('CI=');disp(CI);
    disp('CR=');disp(CR);
end

结果(运行6次,分多次输入各个判断矩阵):
在这里插入图片描述
以上就是全部内容,如有错误的地方望指出。

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值