数学建模层次分析法例题及答案_数学建模---层次分析法(AHP)源代码

这篇博客介绍了数学建模中的层次分析法(AHP),它属于多目标决策分析方法。文章内容涵盖时间序列预测、灰色预测、随机性决策分析等,并详细阐述了AHP的算法步骤,包括建立层次结构模型、判断矩阵、一致性检验以及层次总排序。此外,还提及了AHP算法对于不同矩阵数目的适应性问题。
摘要由CSDN通过智能技术生成

9a5db59322efdf8ff9a558f27e141c01.png

预测与决策分析分为:

  • 时间序列预测方法、灰色预测方法
  • 随机性决策分析方法、多目标决策

而层次分析法(AHP)属于多目标决策中的一种具体方法。

日常生活中经常会遇到多种方案的选择,假如我要购买一款手机,市面可以选择的N款手机,而手机的参数共有M个,这就需要综合这N种手机的M中参数优劣来选择,同时这些参数之间的比较无法简单定量地来表达,这个时候就需要将半定性、半定量问题转化呈定量计算问题

算法步骤(略):

  1. 建立系统的层次结构模型,目标层、准则层、方案层
  2. 构建成对比较判断矩阵
  3. 计算相对权重向量,并进行一致性检验
  4. 层次总排序,并进行层次总排序的一致性检验
function[bw,CI_RI,W,CI_RI_B,t]=XCLAHP(A,a1,a2,a3,a4,a5)
%针对五个准则矩阵的层次分析法,A输入判断矩阵,a1~a5输入准则层矩阵
RI=[0 0 0.58 0.96 1.12 1.24 1.32 1.41 1.45];
%计算准则层的lamada和一致性检验
sum_A=sum(A,2);
size_A=size(A,1);
bw=zeros(1,size_A);
for i=1:size_A
    bw(i)=sum_A(i)./sum(sum_A);
end
bw=bw';
lamada_A=sum((A*bw)./bw)/size_A
CI_RI=(lamada_A-size_A)/(size_A-1)/RI(size_A);
if CI_RI<0.1
   fprintf('一致性检验通过');
else 
    fprintf('error');
end
%计算方案层的lamada向量和层次总排序一致性检验
B(:,:,1)=a1;B(:,:,2)=a2;B(:,:,3)=a3;B(:,:,4)=a4;B(:,:,5)=a5;
%输入n=5的准则矩阵
W=zeros(3,size_A);                   %构建l=3方案的n=5准则的归一化矩阵
lamada_B=zeros(1,size_A);            %构建判断矩阵的lamada向量
CI_B=zeros(1,size_A);                %构建CI矩阵
for i=1:5
    sum_B=sum(B(:,:,i),2);
    size_B=size(B(:,:,i),1);
 for j=1:size_B
   W(j,i)=sum_B(j)./sum(sum_B);      %归一化
 end
lamada_B(i)=sum((B(:,:,i)*W(:,i))./W(:,i))/3;
CI_B(i)=(lamada_B(i)-size_B)/(size_B-1)/RI(size_B);
end
CI_RI_B=CI_B*bw;
if CI_RI_B<0.1
   fprintf('一致性检验通过');
else 
    fprintf('error');
end
t=W*bw;
    

这个输入的矩阵数目必须是固定五个,不知道咋实现可以根据输入的矩阵数自动调节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>