matlab作业

发布 2022-09-20 19:09:28 阅读 2621

基于matlab在层次分析法中的应用及研究。

摘要】运用matlab编程,使层次分析法的计算变得简单可行易修改,为决策者提供方便友好的界面,为解决问题提供了便捷的途径。本文通过某厂选择计算机的几种方案对比,对影响选择的因素进行排列,按层次分析法理论建立简便有效的实用模型,通过matlab程序计算,使选择方案优选一目了然,为决策者决策提供了宝贵的理论依据。

关键词】matlab,层次分析法

1 引言。美国运筹学专家等人提出来的层次分析法(简写为ahp法)是一种定量与定性相结合的方法,该方法将以人的主观判断为主的定性分析定量化,把人的思维过程层次化、定量化。matlab是目前国际上流行的科学计算软件,它具有强大的矩阵计算和数据可视化能力,可实现数值计算、图形处理、自动控制、信息处理等多种功能。

所以我们可以考虑采用层次分析法,结合matlab语言为实现手段,得到一种合理可行的方法。

2 层次分析法简介。

2.1 基本原理。

层次分析法(analytic hierarchy process, 简称ahp) 是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。它是美国运筹学家t. l.

saaty 教授于70年代初期提出的一种简便、灵活而又实用的多准则决策方法。

2.2 递阶层次结构的建立与特点。

i) 最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结果,因此也称为目标层。

ii) 中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。

iii) 最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等,因此也称为措施层或方案层。

2.3 构造判断矩阵。

对于同一层次各因素相对于上一层次因素重要性的两两比较,saaty等建议引用数字1~9及其倒数作为标度。从心理学观点来看,分级太多会超越人们的判断能力,既增加了作判断的难度,又容易因此而提供虚假数据。saaty 等人还用实验方法比较了在各种不同标度下人们判断结果的正确性,实验结果也表明,采用1~9 标度最为合适。

因此,在比较目标重要性时,通常的做法是让决策人先把各个目标之间的重要性作成对比较。如果我们把第i个因素对第j个因素的相对重要性记为aij,并认为这就是属性i 的权重和属性j 的权重之比的近似值。于是判断矩阵如表1所示:

表1 判断矩阵。

2.4 层次单排序及一致性检验。

计算一致性比例,当cr<0.10时,认为判断矩阵的一致性是可以接受的,否则应对判断矩阵作适当修正。

2.5 层次总排序及一致性检验。

总排序随机一致性比例为,当cr<0.10 时,认为层次总排序结果具有较满意的一致性并接受该分析结果。

3 层次分析法的应用。

某厂准备购买一台计算机,希望功能强,**低,维护容易。现有a,b,c三种机型可供选择。其中a的性能较好,**一般,维护需要一般水平;b的性能最好,**较贵,维护也只需一般水平;c的性能差,但**便宜,容易维护。

用层次分析法分析的实现步骤如下:

第一步:将问题通过分析后归纳成以下网状层次结构图,如图1所示,决策层的各个子目标都与上一层(准则层)的各个因素有关联。

第二步:对于三个准则(s1,s2,s3)关于目标g的优先顺序,根据讨论,该厂在计算机应用上首先要求功能强,其次要求易维护,再次才是**低。故得其判断矩阵如下:

第三步:运用matlab程序判断a是否满足一致性,若满足则求出权重。

在matlab中编写coinciden_文件如下:

clc;clear;

disp('输入判断矩阵a(n阶)')

a=input('a=')

n,n]=size(a);

x,d]=eig(a);

z=max(d,1);

k=max(z,2);

z_max,ind]=max(z);%求矩阵z中最大值所在的列。

w=x(:,ind)/sum(x(:,ind));

disp('特征向量w=')disp(w);

disp('特征值k=')disp(k);

以下是一致性检验。

ci=(k-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;运行此程序,在command windows中输入矩阵a,运行则输出结果,其显示为:

请输入判断矩阵a(n阶)

a=[1 5 3;1/5 1 1/3;1/3 3 1]

特征向量w=

特征值k=

此矩阵的一致性可以接受!ci=

cr=所以a符合一致性要求,则所求权重为:

w=(0.6370, 0.1047, 0.2583)t

第四步:计算决策层各个子目标关于准则层各因素的权重。首先确定三个方案对于各个准则的判断矩阵,根据分析得到判断矩阵分别为:

对准则s1(功能强)为:

对准则s2(**低)为:

对准则s3(易维护)为:

这三个矩阵也分别用matlab中的coinciden_程序来计算,其结果为:

对准则s1(功能强)为:特征向量w=(0.1818, 0.7273, 0.0909)t

特征值k=3.0000

此矩阵的一致性可以接受!

ci= -4.4409e-016

cr= -8.5402e-016

对准则s2(**低)为:特征向量w=(0.2560, 0.0732, 0.6708)t

特征值k=3.0183

此矩阵的一致性可以接受!

ci=0.0091

cr=0.0176

对准则s3(易维护)为:特征向量w=(0.1852, 0.1562, 0.6586)t

特征值k=3.0291

此矩阵的一致性可以接受!

ci=0.0145

cr=0.0279

即其权重分别为:w1=(0.1818, 0.

7273, 0.0909)t;,w2=(0.2560, 0.

0732, 0.6708)t;w3=(0.1852, 0.

1562, 0.6586)t

第五步:计算组合权重,即计算决策层各个子目标在总目标中所占的比重,记为wz=(w1, w2, w3)t

在matlab中计算此矩阵乘法,具体过程如下:

>w1=[0.1818;0.7273;0.

0909];w2=[0.2560;0.0732;0.

6708];w3=[0.1852;0.1562;0.

6586];wi=[w1,w2,w3]wi =

> w=[0.6370; 0.1047; 0.2583];

> wi*wans =

即wz=(0.1904, 0.5113, 0.2983)t,其中0.5113最大,所以用层次分析法计算的结果分析,b型计算机从综合评价来看是最满意的备选机型。

4 结束语。

运用matlab编程,使层次分析法的计算变得简单可行易修改,为决策者提供了方便友好的界面,为解决问题提供了便捷的途径,能有效的避免决策的随意性,使选择方案优选一目了然,为决策者决策提供了准确的理论依据。

matlab作业

2011029170002王柳。a 一个问题的病态性如何,与求解它的算法有关系。错 b 无论问题是否病态,好的算法都会得到它好的近似解。错 c 计算中使用更高的精度,可以改善问题的病态性。错 d 用一个稳定的算法计算一个良态问题,一定会得到它好的近似解。对 e 浮点数在整个数轴上是均匀分布。错 f ...

matlab作业

matlab语言 第3次作业 字符串,单元数组和结构体 专业 海洋技术 海洋测绘方向 姓名 张体强学号 1026222 1 如何将一个char 数据类型的向量转化为相应的double 型数据类型的数据向量。从式1 到8,判断这些语句是否正确。如果它们正确,那么将产生什么结果?这题不要在电脑中做。1....

matlab作业

电子与通信工程学院。通信系统 实验报告。2013 2014 学年第1学期。调频 fm 系统调制解调 专业 通信工程。班级 通信111 班。学号 姓名 指导教师姓名陈多瑜。2013年 11 月日。1.频率调制或调频 fm 1 设调制信号为m t 调频信号的数学表达式为。例如 m t 的时域波形为。m ...