数学建模——层次分析法(Matlab)【评价类问题】

层次分析法

  • 建立递阶层次结构
  • 构造判断矩阵
  • 一致性检验
  • 计算总权重并排序

建立递阶层次结构

将决策问题分解为三个层次,最上层为目标层O,即…;最下层为方案层,即…;中间层为准则层,即…;(如图一所示)

构造判断矩阵

对于同一层次的各元素关于上一层次中某一准则的重要性进行两两比较,依据下表,构造出判断矩阵(O-C,C1-A,C2-A,C3-A)。
构造出的判断矩阵满足下列两个条件:

且满足主对角线元素为1

一致性检验

下面展示一些 内联代码片

// clear;clc
disp('请输入判断矩阵A: ')%输入判断矩阵

检验原因如下例所示:通过Matlab的函数进行一致性检验:

检验结果若是一致,则可进入下一步。若不一致,则将原判断矩阵往一致矩阵上调整,将矩阵改为各行成倍数关系。

下面展示一些 内联代码片

//[V,D] = eig(A)
Max_eig = max(max(D))
CI = (Max_eig - n) / (n-1);
RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];  %注意哦,这里的RI最多支持 n = 15
CR=CI/RI(n);
disp('一致性指标CI=');disp(CI);
disp('一致性比例CR=');disp(CR);
if CR<0.10disp('因为CR < 0.10,所以该判断矩阵A的一致性可以接受!');
elsedisp('注意:CR >= 0.10,因此该判断矩阵A需要进行修改!');
end

计算总权重并排序

通过Matlab,使用算术平均法、几何平均法、特征值法求到归一化后的
特征向量。(三种方法一起使用,但是最后还是使用特征值法的答案)。

下面展示一些 内联代码片

// %% 方法1:算术平均法求权重
% 第一步:将判断矩阵按照列归一化(每一个元素除以其所在列的和)
Sum_A = sum(A)[n,n] = size(A)  % 也可以写成n = size(A,1)
% 因为我们的判断矩阵A是一个方阵,所以这里的r和c相同,我们可以就用同一个字母n表示
SUM_A = repmat(Sum_A,n,1)   %repeat matrix的缩写
% 另外一种替代的方法如下:SUM_A = [];for i = 1:n   %循环哦,这一行后面不能加冒号(和Python不同),这里表示循环n次SUM_A = [SUM_A; Sum_A]end
clc;A
SUM_A
Stand_A = A ./ SUM_A
% 这里我们直接将两个矩阵对应的元素相除即可% 第二步:将归一化的各列相加(按行求和)
sum(Stand_A,2)% 第三步:将相加后得到的向量中每个元素除以n即可得到权重向量
disp('算术平均法求权重的结果为:');
disp(sum(Stand_A,2) / n)
% 首先对标准化后的矩阵按照行求和,得到一个列向量
% 然后再将这个列向量的每个元素同时除以n即可(注意这里也可以用./哦)%% 方法2:几何平均法求权重
% 第一步:将A的元素按照行相乘得到一个新的列向量
clc;A
Prduct_A = prod(A,2)
% prod函数和sum函数类似,一个用于乘,一个用于加  dim = 2 维度是行% 第二步:将新的向量的每个分量开n次方
Prduct_n_A = Prduct_A .^ (1/n)
% 这里对每个元素进行乘方操作,因此要加.号哦。  ^符号表示乘方哦  这里是开n次方,所以我们等价求1/n次方% 第三步:对该列向量进行归一化即可得到权重向量
% 将这个列向量中的每一个元素除以这一个向量的和即可
disp('几何平均法求权重的结果为:');
disp(Prduct_n_A ./ sum(Prduct_n_A))%% 方法3:特征值法求权重
% 第一步:求出矩阵A的最大特征值以及其对应的特征向量
clc
[V,D] = eig(A)    %V是特征向量, D是由特征值构成的对角矩阵(除了对角线元素外,其余位置元素全为0)
Max_eig = max(max(D)) %也可以写成max(D(:))哦~
% 那么怎么找到最大特征值所在的位置了? 需要用到find函数,它可以用来返回向量或者矩阵中不为0的元素的位置索引。
% 那么问题来了,我们要得到最大特征值的位置,就需要将包含所有特征值的这个对角矩阵D中,不等于最大特征值的位置全变为0
% 这时候可以用到矩阵与常数的大小判断运算
D == Max_eig
[r,c] = find(D == Max_eig , 1)
% 找到D中第一个与最大特征值相等的元素的位置,记录它的行和列。% 第二步:对求出的特征向量进行归一化即可得到我们的权重
V(:,c)
disp('特征值法求权重的结果为:');
disp( V(:,c) ./ sum(V(:,c)) )
% 我们先根据上面找到的最大特征值的列数c找到对应的特征向量,然后再进行标准化。


将A1-4按照大小顺序排序,得到最终的权重。

编辑不易,大家观看以后请点赞,如果我有哪里写错了,请大家指点。

数学建模——层次分析法(Matlab)【评价类问题】相关推荐

  1. 数学建模 --- 层次分析法(AHP模型)

    层次分析法 评价类问题 该问题思路 选出相关指标,求各个指标之间的权重 和 对某个指标而言各个选择权重(分而治之思想) 计算每个方案的得分 层次分析法 层次分析法第一步 --- 层次结构图 层次分析法 ...

  2. 数学建模——层次分析法Python代码

    数学建模--层次分析法Python代码 import numpy as np class AHP: """ 相关信息的传入和准备 """ d ...

  3. 数学建模学习笔记——层次分析法(评价类,专家打分一般不用)

    层次分析法 (1)评价类问题--打分解决 问法--确认评价指标.形成评价体系         亿图图示  

  4. [清风数学建模]层次分析法(AHP)笔记及代码实现

    本文章是学习清风老师数学建模视频后所做的笔记,其中一些图片及代码实现来源于清风老师的B站视频: [强烈推荐]清风:数学建模算法.编程和写作培训的视频课程以及Matlab等软件教学_哔哩哔哩_bilib ...

  5. 数学建模层次分析法例题及答案_斩获国际特等奖!兰理工数学建模团队为百年校庆献礼...

    近日,2019年美国大学生数学建模竞赛(MCM-ICM)成绩正式公布. 兰州理工大学数学建模团队再创佳绩,分别获得国际特等奖(Outstanding Winner)1项.一等奖(Meritorious ...

  6. 数学建模 层次分析法

    层次分析法介绍 层次分析法是对一些较为复杂而且模糊的问题做出分析的一种简易方法,它适用于解决难以完全定量的问题. 该方法在数学建模中运用较多,但是主观因素很大,特别是构造成对比较矩阵的时候,必须要有完 ...

  7. 数学建模层次分析法一致性检验建立

    2023年2月11日,备赛美赛复习建模需要使用的算法.在复习层次分析法的过程可以发现,层次分析法建立判断矩阵时具有强主观性,这个时候就需要建立一致性检验,对模型的差异性进行评估. 计算一致性比例: ​ ...

  8. 数学建模|层次分析法笔记

    一.什么是层次分析法?  定义: 由目标.方案.指标三部分组成. 框架图: 1.含子准则: 2.方案多种(方案交叉): 3.一对多(一准则多方案,方案不交叉): 二.层次分析法如何设计? 层次分析法步 ...

  9. 数学建模-层次分析法

    决策 层次分析法原理 相对重要权值的确定 算法步骤 目标层 准则层 方案层 层次分析法解决旅游问题 B1~B5表示 5个属性对于三地的各个重要性 通过层次分析矩阵 得到 各个属性相对于目标的权重. 最 ...

  10. 数学建模 层次分析法

    简介 针对多目标,多准则或无结构特性的复杂决策问题 步骤 解决评价类问题 评价类问题: 资料查找: 1)查找相关文献 2)如果没有找到相关文献 3)搜索 通过上述步骤后得到的结果 构建层次结构模型 举 ...

最新文章

  1. windows系统无法创建文件共享
  2. how to query for a listString in jdbctemplate?--转载
  3. 使用DeviceOne实现微信小程序功能
  4. Django中的缓存的配置与使用
  5. 怎么用cmd关闭系统弹窗_Win10家庭版系统也能使用组策略啦!终于关闭系统自动更新了...
  6. 华为机试HJ45:名字的漂亮度
  7. 关于在CLASSWIZARD中找不到工作区间中的类的解决方法
  8. Unity实现简单卡牌游戏框架
  9. Premiere 关键帧缩放
  10. 机器学习 -- 主成分分析
  11. 好文推荐(十六)——Git使用详细教程
  12. 永洪科技怎么样_永洪科技面试总结--多位分享经验
  13. 内推 | 【国企】中国人寿-数据管理与数据分析/成都
  14. 鼠标事件界面转换 mouseover() 方法
  15. eigen冲突 sophus 安装_svo_edgelet
  16. 手机PDF转换器如何实现PPT转换PDF格式
  17. 浙江环宇集团“营改增”项目启动会成功举办
  18. js手机号中间四位_为什么手机号码会影响我们?一个适合自己的手机号码有多重要?...
  19. 如何解决win11“无法枚举容器中的对象,访问被拒绝”、“右键新建只有文件夹,没有其他选项”的问题。
  20. 华为手机充满有提醒吗_手机充满电铃声提醒软件下载-华为手机充满电铃声提醒软件app下载 v1.0-友情手机站...

热门文章

  1. 凭据分配没有加密oracle_两种方法解决远程桌面出现“这可能是由于CredSSP加密Oracle修正”的问题-网络教程与技术 -亦是美网络...
  2. A1 A2 B1 B2 英语分级单词 汇总
  3. 巧用JMP公式,让新变量的生成更简单
  4. 群晖DS218+部署kafka
  5. 重装系统(用U盘+wepe)
  6. matlab进化树的下载,mega7.0进化树软件下载-mega 7.0 win 64位下载【附详细使用教程】 - 百当下载站...
  7. matlab进化树的下载,mega7进化树软件下载
  8. 2016计算机奥林匹克小学,NOIP2016复赛数据
  9. javascript颜色选择器
  10. Python 函数注释