这篇文章是我在B站上跟随up主ln异教徒学习时根据其讲的内容和我的理解实践做的笔记,视频原地址如下
https://www.bilibili.com/video/BV1qy4y1a7JJ?t=0.9
在学习层次分析法之前我们先来看一下学习数学建模的方法
预测未来的时候,预测我国未来人口的一 个数据的时候呢,这时候就需要用上一些预测的一些模型,比如说回归,拟合,灰色预测,神经网络等等,而需要对一些企业,或者说一些学生做一个综合的评价的话,那就很很明显就是需要做用一个评价类的模型。评价类的模型又分为主成分分析法,熵值法等等,比如学会了层次分析法,但是不知道层次分析应该用在哪个地方,所以首先就应该去了解模型它所对应一个应用范围是什么样的。
第2点,就需要去学会使用这个模型。 而不是说理解模型的原理啊,应该去学会使用,因为你数学建模的话,它是一应用类型的一个比赛啊,但是侧重点是应用。所以说第2点需要去学会使用一个模型。结果这样的话,拿到一个问题,拿到数据你才会非常快的把它这个问题解决掉。然后进而去攻克其他更难以解决的一个问题。
然后第3点呢需要你去了解模型的优缺点。因为论文中一般都是希望去了解模型的优缺点,因为论文中一般都是需要你去写模型应用缺点是什么样,或者也不知道这样一个模型如何去优化。
然后是我们需要去深入理解模型的原理啊,而最后才是深入理解性原理,因为理解模型原理之后呢,可以方便你去更好的去怎么样去融合模型,修改模型的一个缺点,然后为你论文去加分,所以说学习数学模型的一个方法步骤应该按照这四个顺序。
![](https://img-blog.csdnimg.cn/img_convert/78c826d9da859be8994011706ef0b231.png)
层次分析法
![](https://img-blog.csdnimg.cn/img_convert/18fccb369edc0b25614c72a76c945899.png)
层次分析法的引入
![](https://img-blog.csdnimg.cn/img_convert/bec15744ae495d76047eb8de5504b40d.png)
用matlab实现
![](https://img-blog.csdnimg.cn/img_convert/203ec4e90745986173a42837f5976135.png)
我们在考虑景色时还要费用、居住等别的,然后我在考虑下面的景色时,考虑苏州时还要考虑杭州和桂林,都是通过与整体的比较才能得出,会导致不是很准确,而且指标越多,越难考量。由此我们引入层次分析法。
层次分析模型(比赛时可以直接放进去,直接套模板,改一下结果):
层次分析法主要计算步骤如下:
第一步,建立层次结构
首先将决策问题分为三个部分,即:目标层、准则层(需要考虑哪些指标)以及指标层。
第二步,构造判断矩阵
判断矩阵为两两指标重要性的判断,一般判别矩阵构造如下。
![](https://img-blog.csdnimg.cn/img_convert/870cf8060f052ec87165791f560897fd.png)
![](https://img-blog.csdnimg.cn/img_convert/89359f26d1593cf369bc4b87902cd07c.png)
每一个格子代表横轴和纵轴重要性的比较
将指标的整体考虑,转变为两两指标之间的考虑
但是根据标度表写的和它的比例可能相差甚远,这样会导致不一致,所以要进行一致性检验。
![](https://img-blog.csdnimg.cn/img_convert/c006cd3eb2d3d38c964c3f4908562186.png)
n是矩阵的阶数(指标个数)
![](https://img-blog.csdnimg.cn/img_convert/e181bdab219b82e205aa4246871aa1c7.png)
CR大于0.1时,要修改判断矩阵的比例直到小于0.1,才可以使用它的权重
下面的代码直接套用即可,改改矩阵,就可以得到CI、CR和最大特征根
一致性检验通过后就可以用最下面的权重
![](https://img-blog.csdnimg.cn/img_convert/e28764dd7a74f4425321a8a61c6fde42.png)
![](https://img-blog.csdnimg.cn/img_convert/d2ac7a225ff99fecae7e29d2a94b2834.png)
然后算旅游目的地(跟整体去比)在各个指标下面数值的比较,应该有五(五个指标)个三乘三(三个目的地)的判断矩阵,这五个矩阵相当于是对三个方案的每个指标进行了打分评估,也就是针对指标而言两种方案是否该指标相同好,或稍好点之类的评价。
然后还是直接代入之前的代码,就可以求出每个的权重
![](https://img-blog.csdnimg.cn/img_convert/ed37d203cd0fc08641ee4c4a3542fa60.png)
最终我们选择得分最高的
![](https://img-blog.csdnimg.cn/img_convert/1cf946c0a45324180cce2d219d431dff.png)
指标层就是准则层分出来的,比如销售利润率的权重是盈利能力的权重乘上其下面的子权重
首先应该构建一个准则层的判断矩阵,构建完直接代入matlab的代码之中就可以算出每个指标的权重,然后每一个准则层下面的子指标们做一个判断矩阵
![](https://img-blog.csdnimg.cn/img_convert/0fa65dc2bac509dc7d87dcc88d3551d8.png)