Sgg:层次分析法(数学建模)

1 背景

实际生活中有很多的选择问题:

  • 比如高考现在采取了副科6选3的模式,也就是我们常说的“3+3”,其中第一个三,毋庸置疑,第一个三是语文数学外语(貌似现在更NB了,可以再从英语、日语、俄语)里面选一科。第二个3也就是从物理、化学、生物、政治、地理、历史里面选出三个。对于现在社会而言,高考还是很重要的。决定了一个人的命运走向,如何能够满足一个学生的兴趣,又更好的结合自身家庭情况已经社会发展人才需求来选择一个对学生最有利益的选择方式呢?
  • 节假日是我们旅游游玩的大好时节,但是我们要对自己的目的地做出一个合理的选择,这个选择要服从我们的爱好(喜欢什么地理位置、什么气候的景点)、自己的经济情况、根据时间问题所决定的交通情况来选择,如何选择一个合理的出游地呢?

以上的问题都可以用层次分析法给你答案!

2 介绍层次分析法

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以出现不一致的情况,但是要有范围,在程序中可
以判断是否在范围内一致
在这里插入图片描述

3 实例

在这里插入图片描述
A 是判断矩阵
B1 ~ B3 是根据 5 个不同的因素 相对于三个景点来说构成的三个矩阵。
根据矩阵可以算出每种影响情况的权重值,这里是用到了MATLAB矩阵处理,编写脚本语言。
在这里插入图片描述
最终可以决策出 B3 比较好
在这里插入图片描述

4 代码

%²层次分析法
disp('请输入要判断的矩阵');
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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值