数学建模实验报告1,层次分析法
- 格式:doc
- 大小:841.02 KB
- 文档页数:8
数学建模实验报告1.流⽔问题问题描述:⼀如下图所⽰的容器装满⽔,上底⾯半径为r=1m,⾼度为H=5m,在下地⾯有⼀⾯积为B0.001m2的⼩圆孔,现在让⽔从⼩孔流出,问⽔什么时候能流完?解题分析:这个问题我们可以采⽤计算机模拟,⼩孔处的⽔流速度为V=sqrt[2*g*h],单位时间从⼩孔流出的⽔的体积为V*B,再根据⼏何关系,求出⽔⾯的⾼度H,时间按每秒步进,记录点(H,t)并画出过⽔⾯⾼度随时间的变化图,当⽔⾯⾼度⼩于0.001m 时,可以近似认为⽔流完了。
程序代码:Methamatic程序代码:运⾏结果:(5)结果分析:计算机仿真可以很直观的表现出所求量之间的关系,从图中我们可以很⽅便的求出要求的值。
但在实际编写程序中,由于是初次接触methamatic 语⾔,对其并不是很熟悉,加上个⼈能⼒有限,所以结果可能不太精确,还请见谅。
2.库存问题问题描述某企业对于某种材料的⽉需求量为随机变量,具有如下表概率分布:每次订货费为500元,每⽉每吨保管费为50元,每⽉每吨货物缺货费为1500元,每吨材料的购价为1000元。
该企业欲采⽤周期性盘点的),(S s 策略来控制库存量,求最佳的s ,S 值。
(注:),(S s 策略指的是若发现存货量少于s 时⽴即订货,将存货补充到S ,使得经济效益最佳。
)问题分析:⽤10000个⽉进⾏模拟,随机产⽣每个⽉需求量的概率,利⽤计算机编程,将各种S 和s 的取值都遍历⼀遍,把每种S,s的组合对应的每⽉花费保存在数组cost数组⾥,并计算出平均⽉花费average,并⽤类answer来记录,最终求出对应的S和s。
程序代码:C++程序代码:#include#include#include#include#define Monthnumber 10000int Need(float x){int ned = 0;//求每个⽉的需求量if(x < 0.05)ned = 50;else if(x < 0.15)ned = 60;else if(x < 0.30)ned = 70;else if(x < 0.55)ned = 80;else if(x < 0.75)ned = 90;else if(x < 0.85)ned = 100;else if(x < 0.95)ned = 110;else ned = 120;return ned;}class A{public:int pS;int ps;float aver;};int main(){A answer;answer.aver=10000000;//int cost[Monthnumber+1]={0}; float average=0;int i;float x;int store[Monthnumber];//srand((int)time(0));for(int n=6;n<=12;n++){// int n=11;int S=10*n;for(int k=5;k{// int k=5;int s=k*10;average=0;int cost[Monthnumber+1]={0};for(i=1;i<=Monthnumber;i++){store[i-1]=S;srand(time(0));x=(float)rand()/RAND_MAX; //产⽣随机数//cout<<" "<//cout<int need=Need(x);if(need>=store[i-1]){cost[i]= 1000*S + (need - store[i-1])*1500 + 500;store[i]=S;}else if(need>=store[i-1]-s){cost[i]=1000*(need+S-store[i-1]) + 50*(store[i-1]-need) + 500; store[i]=S;}else{cost[i]=(store[i-1]-need)*50;store[i]=store[i-1]-need;}average=cost[i]+average;}average=average/Monthnumber;cout<<"n="<cout<<"花费最少时s应该为:"<cout<<"平均每⽉最少花费为:"<}运⾏结果:结果分析:⽤计算机模拟的结果和⽤数学分析的结果有⼀定的差异,由于计算机模拟时采⽤的是随机模型⽽我⽤time函数和rand函数产⽣真随机数,所以在每次的结果上会有所差异,但对于⼀般的⽣产要求亦可以满。
第1篇一、实验目的本次实验旨在让学生掌握数学建模的基本步骤,学会运用数学知识分析和解决实际问题。
通过本次实验,培养学生主动探索、努力进取的学风,增强学生的应用意识和创新能力,为今后从事科研工作打下初步的基础。
二、实验内容本次实验选取了一道实际问题进行建模与分析,具体如下:题目:某公司想用全行业的销售额作为自变量来预测公司的销售量。
表中给出了1977—1981年公司的销售额和行业销售额的分季度数据(单位:百万元)。
1. 数据准备:将数据整理成表格形式,并输入到计算机中。
2. 数据分析:观察数据分布情况,初步判断是否适合使用线性回归模型进行拟合。
3. 模型建立:利用统计软件(如MATLAB、SPSS等)进行线性回归分析,建立公司销售额对全行业的回归模型。
4. 模型检验:对模型进行检验,包括残差分析、DW检验等,以判断模型的拟合效果。
5. 结果分析:分析模型的拟合效果,并对公司销售量的预测进行评估。
三、实验步骤1. 数据准备将数据整理成表格形式,包括年份、季度、公司销售额和行业销售额。
将数据输入到计算机中,为后续分析做准备。
2. 数据分析观察数据分布情况,绘制散点图,初步判断是否适合使用线性回归模型进行拟合。
3. 模型建立利用统计软件进行线性回归分析,建立公司销售额对全行业的回归模型。
具体步骤如下:(1)选择合适的统计软件,如MATLAB。
(2)输入数据,进行数据预处理。
(3)编写线性回归分析程序,计算回归系数。
(4)输出回归系数、截距等参数。
4. 模型检验对模型进行检验,包括残差分析、DW检验等。
(1)残差分析:计算残差,绘制残差图,观察残差的分布情况。
(2)DW检验:计算DW值,判断随机误差项是否存在自相关性。
5. 结果分析分析模型的拟合效果,并对公司销售量的预测进行评估。
四、实验结果与分析1. 数据分析通过绘制散点图,观察数据分布情况,初步判断数据适合使用线性回归模型进行拟合。
2. 模型建立利用MATLAB进行线性回归分析,得到回归模型如下:公司销售额 = 0.9656 行业销售额 + 0.01143. 模型检验(1)残差分析:绘制残差图,观察残差的分布情况,发现残差基本呈随机分布,说明模型拟合效果较好。
层次分析法实验报告层次分析法实验报告一、引言层次分析法(Analytic Hierarchy Process,简称AHP)是一种多准则决策方法,由美国运筹学家托马斯·L·塞蒂(Thomas L. Saaty)于1970年提出。
该方法通过对决策问题进行层次结构分解,建立判断矩阵,计算权重,最终得出决策结果。
本实验旨在通过使用层次分析法解决一个实际问题,验证该方法在决策问题中的应用效果。
二、实验目的1. 了解层次分析法的基本原理和步骤;2. 掌握构建层次结构和判断矩阵的方法;3. 熟悉计算权重和一致性检验的过程;4. 验证层次分析法在决策问题中的实际应用效果。
三、实验过程1. 确定决策问题:选择一个实际的决策问题,例如购买一台新电脑;2. 构建层次结构:将决策问题分解为准则层、子准则层和方案层,形成层次结构;3. 制作判断矩阵:对每个层次的元素进行两两比较,根据重要性进行评分,构建判断矩阵;4. 计算权重:通过特征向量法计算每个层次的权重;5. 一致性检验:计算一致性指标,判断判断矩阵是否合理;6. 决策结果:根据权重计算得出最终的决策结果。
四、实验结果在购买新电脑的决策问题中,我们构建了准则层、子准则层和方案层的层次结构。
准则层包括性能、价格和品牌三个元素;子准则层包括CPU、内存、硬盘、显卡和屏幕五个元素;方案层包括若干个不同品牌和型号的电脑。
通过对每个层次的元素进行两两比较,我们制作了判断矩阵。
以性能为例,我们对CPU、内存、硬盘、显卡和屏幕进行了两两比较,根据其重要性进行评分。
同样地,我们对价格和品牌也进行了两两比较,得到了相应的判断矩阵。
接下来,我们通过特征向量法计算了每个层次的权重。
将判断矩阵的列向量归一化后,求得特征向量,并计算了每个元素的权重。
通过一致性检验,我们发现判断矩阵的一致性指标在合理范围内,说明判断矩阵的构建是可靠的。
最终,根据权重计算得出了最佳决策结果。
数学建模实验报告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 中调用。
用层次分析法评选优秀学生一.实验目的运用层次分析法,建立指标评价体系,得到学生的层次结构模型,然后构造判断矩阵,求得各项子指标的权重,最后给出大学生综合评价得分计算公式并进行实证分析,为优秀大学生的评选提出客观公正,科学合理的评价方法。
二.实验内容4.用层次分析法解决一两个实际问题;(1)学校评选优秀学生或优秀班级,试给出若干准则,构造层次结构模型。
可分为相对评价和绝对评价两种情况讨论。
解:层次分析发法基本步骤:建立一套客观公正、科学合理的素质评价体系,对于优秀大学生的评选是至关重要的。
在此我们运用层次分析法(AHP),以德、智、体三个方面作为大学生综合评价的一级评价指标,每个指标给出相应的二级子指标以与三级指标,然后构造判断矩阵,得到各个子指标的权重,结合现行的大学生评分准则,算出各项子指标的得分,将这些得分进行加权求和得到大学生综合评价得分,根据分配名额按总分排序即可选出优秀大学生。
大学生各项素质的指标体系。
如下表所示:目标层第一准则层第二准则层设评价指标共有n 个,为1x ,2x ..... n x 。
它们对最高层的权系数分别为1w ,2w , ... n w ,于是建立综合评价模型为:解决此类问题关键就是确定权系数,层次分析法给出了确定它们的量化过程,其步骤具体如下: 确定评价指标集 P=(1P ,2P ,3P )建立两两比较的逆对称判断矩阵从1x ,2x .....n x 中任取i x 与jx ,令=ij a i x /jx ,比较它们对上一层某个因素的重要性时。
若=ij a 1,认为i x 与jx 对上一层因素的重要性相同; 若=ij a =3,认为i x 比jx 对上一层因素的重要性略大;若=ij a 5,认为i x 比j x 对上一层因素的重要性大; 若=ij a 7,认为i x 比jx 对上一层因素的重要性大很多;若=ij a 9,认为i x 对上一层因素的重要性远远大于jx ;若=ij a 2n ,n=1,2,3,4,元素 i x 与jx 的重要性介于=ij a 2n − 1与=ij a2n + 1之间; 用已知所有的i x /jx ,i ,j =1,2 ... n ,建立n 阶方阵P=n m j i x x ⨯)/(,矩阵P 的第i 行与第j 列元素为i x /j x ,而矩阵P 的第j 行与第i 列元素为j x/i x ,它们是互为倒数的,而对角线元素是1。
数学建模层次分析法Document number : WTWYT-WYWY-BTGTT-YTTYU-2018GT实验报告实验报告课程名称:数学模型与实验课题名称:层次分析法专业:信息与计算科学姓名:班级:完成日期:2016年6月22日姓名评分实验报告一、实验名称层次分析法二、实验目的人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。
在这样的系统中,人们感兴趣的问题之一是:就n个不同事物所共有的某一性质而言,应该怎样对任一事物的所给性质表现出来的程度(排序权重)赋值,使得这些数值能客观地反映不同事物之间在该性质上的差异层次分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。
它把复杂问题分解成组成因素,并按支配关系形成层次结构,然后用两两比较的方法确定决策方案的相对重要性。
三、实验原理运用层次分析法解决问题,大体可以分为四个步骤:1•建立问题的递阶层次结构;(1)将决策问题分为三层,最上面为目标层,最下面为方案层,中间是准则层或指标层;(2)通过相互比较确定各准则对于目标的权重,及各方案对于每一准则的权重;(3)将方案层对准则层的权重及准则层对目标层的权重进行综合,最终确定方案层对目标层的权重匚2.构造成对比较矩阵;3•层次单排序及一致性检验;判断矩阵一致性检验的步骤如下:(1)计算一致性指标.:(2)查找平均随机一致性指标.;(3)计算一致性比例.:当.V时.一般认为判断矩阵的一致性是可以接受的。
否则应对判断矩阵作适当的修正。
4•层次总排序及其一致性检验。
当CR<时,认为层次总排序通过一致性检验。
到此’根据最下层(决策层)的层次总排序做出最后决策。
—、旅游问题(1)建模Ai,Az,A?,A4,As 分别分别表不景色、费用、居住、饮食、旅途。
1 1 1/4 1 1 1/4 4 41⑶计算层次单排序的权向量和一致性检验_11/2 4 3 3 — ■1 22 1 75 51/4 1/7 1 1/2 1/31/2 1 A= 1/3 1/5 2 1 1Bi= 仍 1/21/3 1/5 3 1 1■B I ,B2,B S 分别表示苏杭、北戴河、桂林。
在下面的题目中选做100分的题目,给出详略得当的答案。
一.通过举例简要说明数学建模的一般过程或步骤。
(15分)答:建立数学模型的方法大致有两种,一种是实验归纳的方法,即根据测试或计算数据,按照一定的数据,按照一定的数学方法,归纳出系统的数学模型;另一种是理论分析的方法,具体步骤有五步(以人口模型为例):1、明确问题,提出合理简化的假设:首先要了解问题的实际背景,明确题目的要求,收集各种必要的信息2、建立模型:据所做的假设以及事物之间的联系,构造各种量之间的关系。
(查资料得出数学式子或算法)。
3、模型求解:利用数学方法来求解上一步所得到的数学问题,此时往往还要做出进一步的简化或假设。
注意要尽量采用简单的数学公具。
例如:马尔萨斯模型,洛杰斯蒂克模型4、模型检验:根据预测与这些年来人口的调查得到的数目进行对比检验5、模型的修正和最后应用:所建立的模型必须在实际应用中才能产生效益,根据预测模型,制定方针政策,以实现资源的合理利用和环境的保护。
二.把一张四条腿等长的正方形桌子放在稍微有些起伏的地面上,通常只有三只脚着地,然而只需稍为转动一定角度,就可以使四只脚同时着地,即放稳了。
(1) 请用数学模型来描述和证明这个实际问题; (2)讨论当桌子是长方形时,又该如何描述和证明?(15分)答:模型假设:1.椅子四条腿一样长,椅脚与地面的接触部分相对椅子所占的地面面积可视为一个点。
2.地面凹突破面世连续变化的,沿任何方向都不会出现间断(没有向台阶那样的情况),即地面可看作数学上的连续曲面。
3.相对椅脚的间距和椅子腿的长度而言,地面是相对平坦的,即使椅子在任何位置至少有三条腿同时着地。
4.椅子四脚连线所构成的四边形是圆内接四边形,即椅子四脚共圆。
5.挪动仅只是旋转。
我们将椅子这两对腿的交点作为坐标原点,建立坐标系,开始时AC、BD这两对腿都在坐标轴上。
将AC和BD这两条腿逆时针旋转角度θ。
记AC到地面的距离之和为f(θ)。
层次分析法建模 [实验目的]1. 掌握应用层次分析法建立数学模型的基本步骤;2. 熟练掌握使用MATLAB 求解相对权重和组合权重,对判断矩阵进行一致性检验。
[实验内容]O 1C 2C 3C 4C 5C1C 1 1/2 4 3 3 2C 2 1 7 5 5 3C 1/4 1/7 1 1/2 1/34C 1/3 1/5 2 1 15C 1/3 1/5 3 1 1(方案层)1C 1P 2P 3P 2C 1P 2P 3P 3C 1P 2P 3P 1P 1 2 5 1P 1 1/3 1/8 1P 1 1 32P 1/2 1 2 2P 3 1 1/3 2P 1 1 13P 1/5 1/2 1 3P 8 3 1 3P 1/3 1/3 14C 1P 2P 3P 5C 1P 2P 3P1P 1 3 4 1P 1 1 1/42P 1/3 1 1 2P 1 1 1/43P 1/4 1 1 3P 4 4 12 (挑选工作方案) 经双方恳谈,已有三个单位表示愿意录用某毕业生。
该生根据已有信息建立了一个层次结构模型,如下图所示。
A1B 2B 3B 4B 5B 6B1B 1 1 1 4 1 1/2 2B 1 1 2 4 1 1/23B 1 1/2 1 5 3 1/2 4B 1/4 1/4 1/5 1 1/3 1/35B 1 1 1/3 3 1 1 6B 2 2 2 3 3 1(方案层)1B 1C 2C 3C 2B 1C 2C 3C 3B 1C 2C 3C 1C 1 1/4 1/2 1C 1 1/4 1/5 1C 1 3 1/3 2C 4 1 3 2C 4 1 1/2 2C 1/3 1 73C 2 1/3 1 3C 5 2 1 3C 3 1/7 14B 1C 2C 3C 5B 1C 2C 3C 6B 1C 2C 3C1C 1 1/3 5 1C 1 1 7 1C 1 7 9 2C 3 1 7 2C 1 1 7 2C 1/7 1 13C 1/5 1/7 1 3C 1/7 1/7 1 3C 1/9 1 1[实验过程] 1.输入:cleara=[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] %输入对比矩阵 [x,y]=eig(a); %求矩阵a 的特征值 eigenvalue=diag(y);lamda=max(eigenvalue); %求最大特征值ci1=(lamda-5)/4;cr1=ci1/1.12 %进行一致性检验w1=x(:,1)/sum(x(:,1))b1=[1,2,5;1/2,1,2;1/5,1/2,1];[x,y]=eig(b1);eigenvalue=diag(y);lamda=max(eigenvalue); ci21=(lamda-3)/2;cr21=ci21/0.58w21=x(:,1)/sum(x(:,1))b2=[1,1/3,1/8;3,1,1/3;8,3,1];[x,y]=eig(b2);eigenvalue=diag(y);lamda=max(eigenvalue); ci22=(lamda-3)/2;cr22=ci22/0.58w22=x(:,1)/sum(x(:,1))b3=[1,1,3;1,1,3;1/3,1/3,1][x,y]=eig(b3) ;eigenvalue=diag(y);lamda=max(eigenvalue); ci23=(lamda-3)/2;cr23=ci23/0.58w23=x(:,2)/sum(x(:,2))b4=[1,3,4;1/3,1,1;1/4,1,1];[x,y]=eig(b4);eigenvalue=diag(y); lamda=max(eigenvalue); ci24=(lamda-3)/2;cr24=ci24/0.58w24=x(:,1)/sum(x(:,1))b5=[1,1,1/4;1,1,1/4;4,4,1];[x,y]=eig(b5);eigenvalue=diag(y);lamda=max(eigenvalue); ci25=(lamda-3)/2;cr25=ci25/0.58w25=x(:,2)/sum(x(:,2))w_sum=[w21,w22,w23,w24,w25]*w1ci=[ci21,ci22,ci23,ci24,ci25];cr=ci*w1/sum(0.58*w1)2.输入:clca=[1,1,1,4,1,1/21,1,2,4,1,1/21,1/2,1,5,3,1/21/4,1/4,1/5,1,1/3,1/31,1,1/3,3,1,12,2,2,3,3,1];[x,y]=eig(a);eigenvalue=diag(y);lamda=max(eigenvalue); ci1=(lamda-6)/5;cr1=ci1/1.24w1=x(:,1)/sum(x(:,1))b1=[1,1/4,1/2;4,1,3;2,1/3,1];[x,y]=eig(b1);eigenvalue=diag(y);lamda=max(eigenvalue); ci21=(lamda-3)/2;cr21=ci21/0.58w21=x(:,1)/sum(x(:,1))b2=[1 1/4 1/5;4 1 1/2;5 2 1];[x,y]=eig(b2);eigenvalue=diag(y);lamda=max(eigenvalue); ci22=(lamda-3)/2;cr22=ci22/0.58w22=x(:,1)/sum(x(:,1))b3=[1 3 1/3;1/3 1 1/7;3 7 1];[x,y]=eig(b3);eigenvalue=diag(y);lamda=max(eigenvalue); ci23=(lamda-3)/2;cr23=ci23/0.58w23=x(:,1)/sum(x(:,1))b4=[1 1/3 5;3 1 7;1/5 1/7 1];[x,y]=eig(b4);eigenvalue=diag(y);lamda=max(eigenvalue); ci24=(lamda-3)/2;cr24=ci24/0.58w24=x(:,1)/sum(x(:,1))b5=[1 1 7;1 1 7;1/7 1/7 1];[x,y]=eig(b5);eigenvalue=diag(y);lamda=max(eigenvalue); ci25=(lamda-3)/2;cr25=ci25/0.58w25=x(:,2)/sum(x(:,2))b6=[1 7 9;1/7 1 1 ;1/9 1 1];[x,y]=eig(b6);eigenvalue=diag(y);lamda=max(eigenvalue); ci26=(lamda-3)/2;cr26=ci26/0.58w26=x(:,1)/sum(x(:,1))w_sum=[w21,w22,w23,w24,w25,w26]*w1ci=[ci21,ci22,ci23,ci24,ci25,ci26];cr=ci*w1/sum(0.58*w1)(层次总排序)如下表所示。
数学建模实验报告一、实验要求柴静的纪录片《穹顶之下》从独立媒体人的角度调查了席卷全国多个省份的雾霾的成因,提出解决的方法有:关停重污染的钢铁厂、提高汽柴油品质、淘汰排放不达标汽车、提高洗煤率等,请仔细观看该纪录片,根据雾霾的成因,选择你认为治理雾霾确实可行的几个方案,并用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矩阵)代码:结果:注:实际实验时,一开始构造的五个矩阵中有两个没有通过一致性检验。
数学建模实验报告
一、实验要求
柴静的纪录片《穹顶之下》从独立媒体人的角度调查了席卷全国多个省份的雾霾的成因,提出解决的方法有:关停重污染的钢铁厂、提高汽柴油品质、淘汰排放不达标汽车、提高洗煤率等,请仔细观看该纪录片,根据雾霾的成因,选择你认为治理雾霾确实可行的几个方案,并用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~20
2、陈恩水,王峰. 数学建模与实验北京;科学出版社,2008.48~56
3、吴建国层次分析法(AHP法)建模仰恩大学数学系
(另外感谢CSDN、网易博客等网站上各位不知名的热心解答问题的网友。
)。