数学建模———层次分析法及其matlab语法,函数和代码实现

这篇具有很好参考价值的文章主要介绍了数学建模———层次分析法及其matlab语法,函数和代码实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 层次分析法思想登场

建模比赛中最基础的模型之一,其主要用于解决评价类问题(例如:选择那种方案最好,哪位运动员或者员工表现的更优秀。)

评价类问题字眼:

  1. 评价的目标是什么?
  2. 达到这个目标有那几种方案?
  3. 评价准则或指标是什么?

确定权重的方方法——分而治之

(两两比较推算出权重)

比较的标度:数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 

例子引用(本文引用的例子及博主跟的课中举的例子)

旅游景点的选择

数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 正互反矩阵/判断矩阵:
根据标度所填的矩阵有着一定的规律矩阵中坐标[I,j]与坐标[j,i]的两个元素相乘为1且坐标i==j的元素为1.数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 一个不成问题的问题:

在填入矩阵的时候我们填入的数值可能会出现矛盾,此时需要做出修改数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 

一致矩阵:

特点:各行/各列成倍数关系且一定是正互反矩阵数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 

一致性矩阵的定义:数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 

一致性矩阵的检验:

数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 

计算CI中λmax 是最大特征值(后面将特征值求权重时会解释),n是方形矩阵的行/列(因为为方形矩阵所以行=列)

RI是课中给出的

计算权重:

(由于计算权重方法的原理文字或口头叙述过于枯燥,晦涩,我们直接告诉方法,后面在代码实现的时候我们会详细讲解。)数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 

数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法 

 

  1. 算数平均法求权重

 数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 

2.几何平均法求权重

  1. 数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法3.特征值法求权重

 数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 

                                        

  1. MATLAB基本语法函数以及层次分析法的实现

(博主是计算机专业所以很多语法函数会与c/cpp中的语法做比较方便计算机专业的理解)

  1. Matlab中的每个语句不需要必须加 ‘ ;’ ,若加上分号表示在执行中此语句执行但不显示出来,若不加分号则执行后语句结果会在命令行窗口(c中的控制台)显示数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 

(两个语句都执行了却只显示了a=20)

2.注释:matlab中的注释符号是%(类似c中的//)数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 

3.matlab中的命令行窗户(c中的控制台)和工作区(c中监视区的监视变量)每次执行后都会有保存,不会清空,所以使用clear(清楚工作区)clc(清除命令行窗口)

clear;clc  平时都会这样两个连用清楚所有:起到了初始化的作用,防止之前的结果对新的脚本产生干扰

4输入函数disp()

()中为要输出的内容,若为字符串需要用“”/’’引起来(类似c/cpp中的printf,cout)

注意:disp后面加不加;都会输出

5.向量(c中数组)一般赋值矩阵使用,为了方便理解我们成为矩阵。

矩阵中间列的符号是“ ,”(英文逗号)“ ”(空格)

间隔行的符号是“;”(分号)

Eg:数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 

6.合1并字符串

a.strcat函数   strcat(‘str1’,’str2’)

b. [‘str1’,’str2’](看成一个数组)

7.num2str()将数字转换成字符串(因为直接把数字当字符串输出会根据ASCII码转换成对应的字符如:97对应‘a’)

如果使用disp()函数输出的时候在disp括号中直接把数字转换成字符串且与已有字符串相连接

8.输入函数 intput()(类似与c中的scanf)

9.求和函数sum(),若括号中为矩阵,默认只输入矩阵是按列求和,最后得到一个一列n行的向量。Sum(A,1)后面加1是按列求和sum(A,2)后面加2是按行求和

10.提取矩阵中指定位置元素

a.取指定行和列A(行,列)

b.取某一行A(行,:)加冒号

c.取某一列A(:,列)

d取某写全部元素A([2,5],:)取第二行和第五行

补充matlab中的等差数列 a1 : d : max(max是数列能取到的最大范围)

如果不加d则默认d为1。

e.取全部元素A( :)

11.size()函数求矩阵的行和列

Size(A,1)返回行size(A,2)返回列

12.repmat()函数复制矩阵函数

B=remat(A,2,1)将A矩阵赋值两行A,一列A成为一个新的矩阵B

13.矩阵之间的运算

* /是矩阵的* /。.*  ./是矩阵中对应的每个元素相互*/。

14.开方 ^    a^n意味a的n次方(同样应用于矩阵,若相对矩阵中每个元素开方应用  .^)

15.eig(A)求矩阵的特征值和特征向量的函数

[V,D]=eig(A)  V表示特征向量   D表示特征值(若只有一个接收则只返回特征值)

16.find()函数  返回向量或矩阵中不为0的元素的下标

若后面加数字n则表示返回前n个不为0的元素。

若x为矩阵:

[r,c]=find(x) 

r:位置不为0的元素的行坐标

c:位置不为0的元素的列坐标

17.矩阵中判断大小关系:

>  <  ==  ~=(对应c中的> ,< ,== ,!=)

返回一个logical数组(其中元素为1代表符合条件,为0不符合)

18.判断语句数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 

19.for循环(一定要以end结尾)

For i=1:10(等同于c中的for(int i=1;i<=10;i++))

~~

~~

End

20.相乘函数prod()后面加1为按列相乘,加2为按行相乘

21.ones与zeros函数数学建模———层次分析法及其matlab语法,函数和代码实现,数学建模,matlab,数学建模,层次分析法

 层次分析法matlab代码的实现

算数平均法求权重

%填入方形矩阵
A=[1,1,4,1/3,3;
1,1,4,1/3,3;
1/4,1/4,1,1/3,1/2;
3,3,3,1,3;
1/3,1/3,2,1/3,1]
%求出矩阵每列的和 
SUM_A=sum(A)
%求出矩阵的行数
n=size(A,1)
%将求出来的每列的和扩大n行倍,方便归一化(每个元素除以其所在列的和)
SUM_cA=repmat(SUM_A,n,1)
%第一步归一化处理
A_guiyi=A./SUM_cA
%第二部将归一化元素各列相加(按行求和得到一个列向量)
SUM_guiyiA=sum(A_guiyi,2)
LAST_A=SUM_guiyiA./n

几何平均法求权重

%填入方形矩阵
A=[1,1,4,1/3,3;
1,1,4,1/3,3;
1/4,1/4,1,1/3,1/2;
3,3,3,1,3;
1/3,1/3,2,1/3,1]
%第一步将A元素各行相乘得到一个列向量
Prod_A=prod(A,2)
%第二部将新向量中每个元素开n次方(成1/n次方)
Prod_nA=Prod_A.^(1/n)
%将开n次方后的向量归一化处理得到权重(归一化就是将向量中的每个元素除向量和)
disp('几何平均法求权重结果:')
disp(Prod_nA/sum(Prod_nA))

特征值法求权重

%填入方形矩阵
A=[1,1,4,1/3,3;
1,1,4,1/3,3;
1/4,1/4,1,1/3,1/2;
3,3,3,1,3;
1/3,1/3,2,1/3,1]
%第一步求出A的最大特征值,以及其对应的特征向量(V向量,Val值)
[V,val]=eig(A)
%求最大特征值
MAX_val=max(max(val))%第一个max求每列的最大特征值第二个求真个矩阵最大特征值
%求最大特征值对应的特征向量
% 1.找到最大特征值的位置,并保存它的位置
[r,c]=find(val==MAX_val,1)
%2.(***)求出列所在那一行的向量就是最大特征值向量
V(:,c)
%第二步对求出的特征向量进行归一化处理(让最大特征向量的每个元素除其和)得到我们的权重
disp('特征值法求权重的结果为')
disp(V(:,c)./sum(V(:,c)))

博主主要跟着清风数学建模的课程学习,其中里面的一些图片都来源于上课视频的截图。文章来源地址https://www.toymoban.com/news/detail-558076.html

到了这里,关于数学建模———层次分析法及其matlab语法,函数和代码实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 五、数学建模之层次分析法

    1.概念 2.例题    层次分析法 (Analytic Hierarchy Process,AHP)是一种多 标准决策分析方法 ,用于帮助人们在面对复杂的决策问题时 进行定量和定性的比较和评估 。它最初由美国运筹学家和管理学家托马斯·萨蒙(Thomas L. Saaty)于20世纪70年代提出,并在后来得到广泛应用。层

    2024年02月07日
    浏览(55)
  • 【数学建模】层次分析法(AHP)

    评价类问题 ,如选择哪种方案最好,哪位运动员或者员工表现地更优秀。通常具体数据没有给出。 一道典型例题 这是典型的运用层次分析法的题目,没有给出具体数据,要求采取一定措施进行评价,选择最佳方案,其中已经高亮。 我们需要考虑三个问题: 目标、方

    2024年02月01日
    浏览(41)
  • 数学建模学习笔记||层次分析法

    解决评价类问题首先需要想到一下三个问题 我们评价的目标是什么 我们为了达到这个目标有哪几种可行方案 评价的准则或者说指标是什么 对于以上三个问题,我们可以根据题目中的背景材料,常识以及网上收集到的参考资料进行结合,从而筛选出最合适的指标 优先选择知

    2024年01月23日
    浏览(56)
  • 清风老师数学建模笔记——层次分析法

    1.层次分析法的概念;层次分析法(The Analytic Hierarchy Process即 AHP)是由美国运筹学家、匹兹堡大学教授T . L. Saaty于20世纪70年代创立的一种系统分析与决策的综合评价方法,是在充分研究了人类思维过程的基础上提出来的,它较合理地解决了定性问题定量化的处理过程。 2.层次

    2024年02月02日
    浏览(47)
  • 数学建模常用模型(三):层次分析法

    层次分析法(Analytic Hierarchy Process,AHP)是一种用于多准则决策分析的方法,由美国运筹学家托马斯·L·赛蒂(Thomas L. Saaty)于1970年提出。它通过对决策问题进行层次化,将复杂的问题拆分为多个层次和准则,并使用定量化的方法进行比较和权重分配,最终得出综合评价和决

    2024年02月13日
    浏览(49)
  • 清风数学建模学习笔记(一)层次分析法

    目录 一、基本介绍 二、利用层次分析法解决评价类问题 2.1判断矩阵 2.2判断矩阵一致性检验  2.3计算权重  2.4算数平均法求权重  2.5几何平均法求权重  2.6特征值求权重 三、总结  层次分析法是评价类模型中的一种常见算法,它是用来根据多种准则,或是说因素从候选方案

    2024年02月16日
    浏览(47)
  • 数学建模(层次分析法 python代码 案例)

    目录 介绍:  模板: 例题:从景色、花费、饮食,男女比例四个方面去选取目的地  准则重要性矩阵:  每个准则的方案矩阵:​  一致性检验:  特征值法求权值: 完整代码: 运行结果:

    2024年04月29日
    浏览(42)
  • 数学建模之层次分析法(含MATLAB代码)

    层次分析法的基本原理与步骤 人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是 一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。层次 分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。 基本

    2024年02月01日
    浏览(59)
  • 基于AHP层次分析法的数学建模研究

            随着数学在现代科学和技术中的广泛应用,数学建模在现代实践中的应用越来越广泛,成为现代科学和技术发展的重要手段。然而,在复杂的实际问题中,很难直接应用数学方法去解决问题。因此,选择适当的建模方法和技术来解决实际问题显得尤为重要。    

    2024年02月10日
    浏览(46)
  • 数学建模层次分析法一致性检验建立

            2023年2月11日,备赛美赛复习建模需要使用的算法。在复习层次分析法的过程可以发现,层次分析法建立判断矩阵时具有强主观性,这个时候就需要建立一致性检验,对模型的差异性进行评估。         计算一致性比例:                             

    2024年02月06日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包