数学建模实验报告1、层次分析法_层次分析法实验报告
数学建模实验报告1、层次分析法由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“层次分析法实验报告”。
数学建模实验报告
一、实验要求
柴静的纪录片《穹顶之下》从独立媒体人的角度调查了席卷全国多个省份的雾霾的成因,提出解决的方法有:关停重污染的钢铁厂、提高汽柴油品质、淘汰排放不达标汽车、提高洗煤率等,请仔细观看该纪录片,根据雾霾的成因,选择你认为治理雾霾确实可行的几个方案,并用AHP方法给出这几个主要方案的重要性排序。
二、前期准备
1、理解层次分析法(AHP)的原理、作用,掌握其使用方法。
2、观看两遍柴静所拍摄的纪录片《穹顶之下》,选出我认为可较为有效地治理雾霾的几个方法,初步确定各方法的有效性(即权重)。
3、初步拟定三个方案,每个方案中各个治理方法的权重不同。
三、思路&分析
1、根据纪录片《穹顶之下》和个人的经验判断给出各个记录雾霾的方法对于治理雾霾的判断矩阵,以及三个不同方案对于五大措施的判断矩阵。
2、了解了AHP的原理后,不难发现MATLAB在其中的作用主要是将判断矩阵转化为因素的权重矩阵。当然矩阵要通过一致性检验,得到的权重才足够可靠。
3、分别得到准则层对目标层、方案层对准则层的权重之后,进行层次总排序及一致性检验。得到组合权向量(方案层对目标层)即可确定适用方案。
四、实验过程
1、确定层次结构
2、构造判断矩阵
(1)五大措施对于治理雾霾(准则层对目标层)的判断矩阵
(2)三个方案对于五大措施(方案层对准则层)的判断矩阵
3、层次单排序及一致性检验
该部分在MATLAB中实现,每次进行一致性检验和权向量计算时,步骤相同,输入、输出参数一致。(虽然输入的矩阵阶数可能不同,但可以不把矩阵阶数作为参数输入,而通过 [n,n]=size(A)来算得阶数。)因此考虑将这个部分定义为一个函数judge,输入一个矩阵A,打印一致性检验结果和权向量计算结果,并返回权向量、一致性指标CI、平均随机一致性指标RI。将此脚本存为judge.m,在另一脚本ahp.m中调用。
代码如下: 调试通过后,下面便用此函数进行一致性检验及权向量计算:(1)准则层对目标层(A矩阵)
(2)方案层对准则层(BB矩阵)代码:
结果:
注:实际实验时,一开始构造的五个矩阵中有两个没有通过一致性检验。反复调整后方才通过,考虑到实验报告的简洁性要求,不在此赘述调整判断矩阵的过程。
4、层次总排序及一致性检验
原理简述如下:
因此,编写如下代码:
其中,max是权重最大的方案的序号:
结果如下:
五、实验心得体会
1、函数化、模块化的思想在此实验中十分重要。尽管最终呈现的代码看似很简单,但是这得益于将一致性检验和权向量计算的模块定义成了函数,并且这个函数不需要输入矩阵的阶数做参数。
2、判断矩阵的构造并不是个轻松的过程。由于考虑欠妥,我一开始构造的判断矩阵的CR达到0.48,调整过程中才渐渐找到了构造的技巧。
3、由于AHP方法的主观性,该实验得到的结果仅供参考。实际上,调整其中一个判断矩阵便有可能得到不同的结果(选择不同的方案),我认为如果有一些足够可靠的实践依据(即:通过长期调查研究得到的某种方法对于治理雾霾实际起到的效果)。以此为参考构造判断矩阵,那么该实验结果将更有科学价值。
六、参考文献
1、卓金武.Matlab在数学建模中的应用.第二版 北京;北京航空航天大学出社,2014.18~202、陈恩水,王峰.数学建模与实验 北京;科学出版社,2008.48~563、吴建国 层次分析法(AHP法)建模 仰恩大学数学系
(另外感谢CSDN、网易博客等网站上各位不知名的热心解答问题的网友。)