数学建模·层次分析法基本步骤及参考代码
层次分析法步骤:
1. 分析系统中各因素之间的关系建立系统的递阶层次结构:
(1) 最高层
(2) 中间层
(3) 最低层
2. 构造两两成对比的判断矩阵。
3. 层次单排序及其一致性检验。
4. 层次总排序。
参考代码(博主xddc总结):
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);disp(t);
%以下是一致性检验
CI=(t-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];
CR=CI/RI(n);
if CR<0.10
disp('此矩阵的一致性可以接受!');
disp('CI=');disp(CI);
disp('CR=');disp(CR);
end
执行示例:
请输入判断矩阵A(n阶)
A=[1 1/2 4 3 3;
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]
0.2636
0.4758
0.0538
0.0981
0.1087
5.0721
此矩阵的一致性可以接受!
CI=
0.0180
CR=
0.0161
根据数模培训对层次分析的讲解,只是懂了思路,要翻译成matlab语言还是磕磕绊绊
代码2:
这里设计了3层,最后要把每层的权重叠乘一下:
function ahpactor
A = [1/1 2/1 5/1 3/1
1/2 1/1 3/1 1/2
1/5 1/3 1/1 1/4
1/3 2/1 4/1 1/1];
[w, CR] = AHP(A);
% face
A1 = [1/1 1/2 3/1
2/1 1/1 5/1
1/3 1/5 1/1];
[w1, CR1] = AHP(A1);
% body
A2 = [1/1 1/3 2/1
3/1 1/1 5/1
1/2 1/5 1/1];
[w2, CR2] = AHP(A2);
% voice
A3 = [1/1 2/1 1/5
1/2 1/1 1/7
5/1 7/1 1/1];
[w3, CR3] = AHP(A3);
% acting
A4 = [1/1 2/1 1/3
1/2 1/1 1/5
3/1 5/1 1/1];
[w4, CR4] = AHP(A4);
CRs = [CR1 CR2 CR3 CR4]
P = [w1 w2 w3 w4] * w
% ------------------------------------------------------------------------
function [w, CR] = AHP(A)
% n= [ 1 2 3 4 5 6 7 8 9
RI = [ 0.00 0.00 0.58 0.90 1.12 1.24 1.32 1.41 1.45];
n = size(A,1);
[V, D] = eig(A);
[lamda, i] = max(diag(D));
CI=(lamda-n)/(n-1);
CR = CI/RI(n);
W = V(:,i);
w = W/sum(W);
数学建模·层次分析法基本步骤及参考代码相关推荐
- 数学建模——层次分析法Python代码
数学建模--层次分析法Python代码 import numpy as np class AHP: """ 相关信息的传入和准备 """ d ...
- [清风数学建模]层次分析法(AHP)笔记及代码实现
本文章是学习清风老师数学建模视频后所做的笔记,其中一些图片及代码实现来源于清风老师的B站视频: [强烈推荐]清风:数学建模算法.编程和写作培训的视频课程以及Matlab等软件教学_哔哩哔哩_bilib ...
- 数学建模 --- 层次分析法(AHP模型)
层次分析法 评价类问题 该问题思路 选出相关指标,求各个指标之间的权重 和 对某个指标而言各个选择权重(分而治之思想) 计算每个方案的得分 层次分析法 层次分析法第一步 --- 层次结构图 层次分析法 ...
- 数学建模层次分析法例题及答案_斩获国际特等奖!兰理工数学建模团队为百年校庆献礼...
近日,2019年美国大学生数学建模竞赛(MCM-ICM)成绩正式公布. 兰州理工大学数学建模团队再创佳绩,分别获得国际特等奖(Outstanding Winner)1项.一等奖(Meritorious ...
- 数学建模 层次分析法
层次分析法介绍 层次分析法是对一些较为复杂而且模糊的问题做出分析的一种简易方法,它适用于解决难以完全定量的问题. 该方法在数学建模中运用较多,但是主观因素很大,特别是构造成对比较矩阵的时候,必须要有完 ...
- 数学建模-层次分析法
决策 层次分析法原理 相对重要权值的确定 算法步骤 目标层 准则层 方案层 层次分析法解决旅游问题 B1~B5表示 5个属性对于三地的各个重要性 通过层次分析矩阵 得到 各个属性相对于目标的权重. 最 ...
- 数学建模层次分析法一致性检验建立
2023年2月11日,备赛美赛复习建模需要使用的算法.在复习层次分析法的过程可以发现,层次分析法建立判断矩阵时具有强主观性,这个时候就需要建立一致性检验,对模型的差异性进行评估. 计算一致性比例: ...
- 数学建模|层次分析法笔记
一.什么是层次分析法? 定义: 由目标.方案.指标三部分组成. 框架图: 1.含子准则: 2.方案多种(方案交叉): 3.一对多(一准则多方案,方案不交叉): 二.层次分析法如何设计? 层次分析法步 ...
- 数学建模层次分析法例题及答案_【热门推荐】影响力意志力创新力、数学建模简明教程...
<影响力•意志力•创新力> 索书号:B848.4-49/1028 作者:邢群麟编著 出版社:浙江工商大学出版社,2018 馆藏地:新馆304室 简介:本书在总结众多成功人士经验的基础上, ...
- 数学建模 层次分析法 python计算权重
这里用python语言来计算判断矩阵的权重,网上大部分是matlab语言,里面也包含一致性检验的函数,具体各函数使用方法详见代码注释的部分 import numpy as np a=np.array( ...
最新文章
- js用.和[]获取属性的区别
- appium+python搭建自动化测试框架_TestAPP框架(三)
- 微信小程序01【目录结构详解、视图与渲染、事件、input、scroll-view】
- MVC POST请求后执行javascript代码
- Redis流量控制策略
- 一步步编写操作系统 29 cpu缓存简介
- mysql5.7空间运算,深度解析MySQL5.7之临时表空间
- Linux iostat和vmstat命令
- 使用ps制作旧羊皮纸
- 记一次“U盘拔出”后重要文件丢失的恢复之旅
- 图:双屏前期设置方法[又名:系统扩展桌面设置方法-双屏双显扩展桌面技术前期设置方法-PPT分屏技术设置方法]
- 个人收集的资源(0th) IDM绿化版(免费免积分)
- 使用rsync搭建自用的开源镜像站
- 小甲鱼C++快速入门学习笔记
- 计算机组成原理(4)-中央处理器CPU
- 沉梦云商城系统源码绿色版本
- JAVA多线程向kafka的topic各分区中写入本地数据
- 【CUDA】C++实现warpaffine仿射变换及其逆变换
- Go string类型及其使用
- Python 模拟登录AUSU路由器获取在线用户列表