数学建模之TOPSIS模型(含matlab代码)

这篇具有很好参考价值的文章主要介绍了数学建模之TOPSIS模型(含matlab代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 

目录

一、方法和原理

1、理想解法

 2、方法原理

 二、TOPSIS法的具体算法

(1) 用向量规划化的方法求得规范决策矩阵

1、线性变换

2、0-1变换

3、区间型属性的变换

4、向量规范化

5、标准换处理

 (2)构成加权规范阵C

 (3)确定正理想解和负理想解

 (4)计算各方案到正理想解和负理想解的距离

(5)  计算各方案的排队指标值

 (6)排序

 三、代码及实例

(1) 数据预处理

1、区间变换的代码

2、其他属性标准化处理

 (2)向量规划化的方法求得规范决策矩阵代码

(3)构成加权规范阵C代码

 (4)确定正理想解和负理想解代码

(5)计算排队指标值并排序代码

 (6)总代码


一、方法和原理

1、理想解法

目前已有许多解决多属性决策的排序法,如理想点简单线性加权法、加权平方和法、主成分分析法法功效系数法、可能满意度法、交叉增援阵法等。本节介绍多属性决策问题的理想解法,理想解法亦称为TOPSIS 法,是一种有效的多指标评价方法。这种方法通过构造评价问题的正理想解和负理想解,即各指标的最优解和最劣解,通过计算每个方案到理想方案的相对贴近度,即靠近正理想解和远离负理想解的程度,来对方案进行排序,从而选出最优方案。

 2、方法原理

topsis代码matlab,数学建模,数学建模,matlab,开发语言

 topsis代码matlab,数学建模,数学建模,matlab,开发语言

 topsis代码matlab,数学建模,数学建模,matlab,开发语言

 二、TOPSIS法的具体算法

(1) 用向量规划化的方法求得规范决策矩阵

在这之前需要对数据进行预处理,首先需要判断数据属于成本型还是效率型还是区间型。

数据预处理数据的预处理又称属性值的规范化属性值具有多种类型,包括效益型、成本型和区间型等。这三种属性,效益型属性越大越好,成本型属性越小越好,区间型属性是在某个区间最佳

在进行决策时,一般要进行属性值的规范化,主要有如下三个作用:

(1) 属性值有多种类型,上述三种属性放在同一个表中不便于直接从数值大小判断方案的优劣,因此需要对数据进行预处理,使得表中任一属性下性能越优的方案变换后的属性值越大。

(2)非量纲化,多属性决策与评估的困难之一是属性间的不可公度性,即在属性值表中的每一列数具有不同的单位(量纲)。即使对同一属性,采用不同的计量单位,表中的数值也就不同。在用各种多属性决策方法进行分析评价时,需要排除量纲的选用对决策或评估结果的影响,这就是非量纲化


(3)归一化,属性值表中不同指标的属性值的数值大小差别很大,为了直观,更为了便于采用各种多属性决策与评估方法进行评价,需要把属性值表中的数值归一化即把表中数值均变换到[0,1]区间上。

然后对属性进行规范化,有三种方案。

1、线性变换

topsis代码matlab,数学建模,数学建模,matlab,开发语言

 topsis代码matlab,数学建模,数学建模,matlab,开发语言

2、0-1变换

topsis代码matlab,数学建模,数学建模,matlab,开发语言

3、区间型属性的变换

topsis代码matlab,数学建模,数学建模,matlab,开发语言

topsis代码matlab,数学建模,数学建模,matlab,开发语言

4、向量规范化

topsis代码matlab,数学建模,数学建模,matlab,开发语言

 这种变换也是线性的,但是它与前面介绍的几种变换不司,从变换后属性值的大小上无法分辨属性值的优劣它的最大特点是,规范化后,各方案的同一属性值的平方和为 1,因此常用于计算各方案与某种虚拟方案(如理想点或负理想点) 的欧氏距离的场合。

5、标准换处理

在实际问题中,不同变量的测量单位往往是不样的。为了消除变量的量纲效应,使每个变量都具有司等的表现力,数据分析中常对数据进行标准化处理

topsis代码matlab,数学建模,数学建模,matlab,开发语言

 在matlab中使用zscore(x)进行标准化

 (2)构成加权规范阵C

 topsis代码matlab,数学建模,数学建模,matlab,开发语言

 (3)确定正理想解和负理想解

 topsis代码matlab,数学建模,数学建模,matlab,开发语言

 (4)计算各方案到正理想解和负理想解的距离

 topsis代码matlab,数学建模,数学建模,matlab,开发语言

(5)  计算各方案的排队指标值

topsis代码matlab,数学建模,数学建模,matlab,开发语言

 (6)排序

topsis代码matlab,数学建模,数学建模,matlab,开发语言

 三、代码及实例

(1) 数据预处理

topsis代码matlab,数学建模,数学建模,matlab,开发语言
首先分析四个指标中有成本型也有效率型和区间型,效益型属性越大越好,成本型属性越小越好,区间型属性是在某个区间最佳。其中科研经费为成本型,生师比为区间型。

1、区间变换的代码

我们首先对表1中属性2的数据进行最优值为给定区间时的变换。

topsis代码matlab,数学建模,数学建模,matlab,开发语言

代码如下:

clc,clear
% @是用于定义函数句柄的操作符。函数句柄既是一种变量,可以用于传参和赋值;也是可以当做函数名一样使用
x2=@(qujian,lb,ub,x)(1-(qujian(1)-x)./(qujian(1)- lb)).*(x>=lb&x<qujian(1))+...
(x>=qujian(1)&x<=qujian(2))+(1-(x- qujian(2))./(ub-qujian(2))).*...
(x>qujian(2)&x<=ub);
 qujian=[5,6];lb=2;ub=12;
 x2data=[5 6 7 10 2]';
y2=x2(qujian,lb,ub,x2data)

qujian为自己定的最佳区间,lb为最小的,ub为最大的

x2data为属性2的数据(可改为自己想要变换的区间数据)

2、其他属性标准化处理

利用zscore(x)即可

topsis代码matlab,数学建模,数学建模,matlab,开发语言

 (2)向量规划化的方法求得规范决策矩阵代码

利用此公式进行转换

topsis代码matlab,数学建模,数学建模,matlab,开发语言

clc,clear
a=[0.1 5 5000 4.7
 0.2 6 6000 5.6
 0.4 7 7000 6.7
 0.9 10 10000 2.3
1.2 2 400 1.8];
[m,n]=size(a); 
x2=@(qujian,lb,ub,x)(1-(qujian(1)-x)./(qujian(1)- lb)).*(x>=lb&x<qujian(1))+...
 (x>=qujian(1)&x<=qujian(2))+(1-(x-qujian(2))./(ub- qujian(2))).*...
 (x>qujian(2)&x<=ub);
qujian=[5,6];lb=2;ub=12;
a(:,2)=x2(qujian,lb,ub,a(:,2));%对属性2进行变换

其中a表示最初数据,然后如果没有做数据预处理的话,即没有对属性2进行区间的转换,则在向量规划化时进行。(后面x2=@(qujian....)为进行区间转换的代码)

(3)构成加权规范阵C代码

设权向量为w=[0.2,0.3,0,0.11]得加权的向量规范化属性矩阵

for j=1:n
b(:,j)=a(:,j)/norm(a(:,j));%向量规范化
 end
 w=[0.2 0.3 0.4 0.1];
 c=b.*repmat(w,m,1);%求加权矩阵
 %Repmat(a,m,n)%将A复制m*n块

 

 其中权向量为自己设定的

topsis代码matlab,数学建模,数学建模,matlab,开发语言

 (4)确定正理想解和负理想解代码

topsis代码matlab,数学建模,数学建模,matlab,开发语言

 把属性4摘出来,因为为成本型属性

cstar=max(c);%求正理想解
cstar(4)=min(c(:,4))%属性4为成本型
c0=min(c);%求负理想解
c0(4)=max(c(:,4))%属性4为成本型的

(5)计算排队指标值并排序代码

topsis代码matlab,数学建模,数学建模,matlab,开发语言

 第五步,计算排队指示值”(见表 6),由f值的大小可确定各方案的从优到劣的次序为 4,3,2,1,5

代码如下:

for i=1:m
sstar(i)=norm(c(i,:)-cstar);%求到正理想解的距离
s0(i)=norm(c(i,:)-c0);%求到负理想解的距离
end
f=s0./(sstar+s0);
[sf,ind]=sort(f,'descend') %求排序结果
% "ascend"时,进行升序排序,为"descend "时,进行降序排序

 (6)总代码

clc,clear
a=[0.1 5 5000 4.7
 0.2 6 6000 5.6
 0.4 7 7000 6.7
 0.9 10 10000 2.3
1.2 2 400 1.8];
[m,n]=size(a); 
x2=@(qujian,lb,ub,x)(1-(qujian(1)-x)./(qujian(1)- lb)).*(x>=lb&x<qujian(1))+...
 (x>=qujian(1)&x<=qujian(2))+(1-(x-qujian(2))./(ub- qujian(2))).*...
 (x>qujian(2)&x<=ub);
qujian=[5,6];lb=2;ub=12;
a(:,2)=x2(qujian,lb,ub,a(:,2));%对属性2进行变换

for j=1:n
b(:,j)=a(:,j)/norm(a(:,j));%向量规范化
 end
 w=[0.2 0.3 0.4 0.1];
 c=b.*repmat(w,m,1);%求加权矩阵
 %Repmat(a,m,n)%将A复制m*n块

cstar=max(c);%求正理想解
cstar(4)=min(c(:,4))%属性4为成本型
c0=min(c);%求负理想解
c0(4)=max(c(:,4))%属性4为成本型的

for i=1:m
sstar(i)=norm(c(i,:)-cstar);%求到正理想解的距离
s0(i)=norm(c(i,:)-c0);%求到负理想解的距离
end
f=s0./(sstar+s0);
[sf,ind]=sort(f,'descend') %求排序结果
% "ascend"时,进行升序排序,为"descend "时,进行降序排序

 正理想解、负理想解、排队指标值和排序结果topsis代码matlab,数学建模,数学建模,matlab,开发语言文章来源地址https://www.toymoban.com/news/detail-732565.html

到了这里,关于数学建模之TOPSIS模型(含matlab代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 数学建模——TOPSIS法

    可翻译为逼近理想解排序法,国内常简称为优劣解距离法 TOPSIS法是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能精确的反应各评价方案之间的差距。 (上期我们刚讲述了层次分析法,但是对于层次分析法也有一定的限制) 层次分析法的局限性: 那TO

    2024年02月16日
    浏览(37)
  • 数学建模:TOPSIS分析

    🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 假设有m个评价对象,n个评价指标,首先需要进行指标的 正向化 : 极大型 极小型 单点型 区间型 然后对正向化后的矩阵进行 标准化 ,得到 Z Z Z 矩阵:假设 X X X 为正向化后的矩阵,则 Z Z Z 是标准化后的矩阵: X = [ x 11 x 11

    2024年02月11日
    浏览(40)
  • 数学建模-TOPSIS法

    来自清风老师数学建模的教程 TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution)可翻译为逼近理想解排序法,国内常简称为优劣解距离法。 TOPSIS 法是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。 层次分析法

    2024年02月15日
    浏览(46)
  • 数学建模--TOPSIS

    topsis.m Positivization.m inter2Max.m Mid2Max.m Min2Max.m

    2024年02月13日
    浏览(34)
  • 数学建模.优劣解距离法Topsis

    1.引言 Topsis也是一种分析类的方法,得到最优结果。 层次分析法:有我了还要你干嘛? 哈哈,这里简单说一下,Topsis与层次分析法的区别: 在处理多个决策层的时候,层次分析法会不准确,显得力不从心,那么这个时候用Topsis会更好一些,简单可以理解为Topsis是层次分析法

    2024年02月05日
    浏览(43)
  • 数学建模学习笔记||TOPSIS&&熵权法

    目录 评价类问题介绍 TOPSIS法 算法步骤 1.统一指标类型(指标正向化) 2.标准化处理 3.确定正理想解和负理想解 4.计算距离 5.计算相对接近度(S越大越接近理想解) 熵权法 概念 过程 python代码实现 作用         声明 评价类问题介绍 目的:得知一组方案的好坏,对数据评

    2024年01月16日
    浏览(41)
  • 《零基础数学建模》——TOPSIS+熵权法

    本文大部分是对于数学建模清风老师的课程学习总结归纳而来,我的理解可能有错误,大家发现错误可以在评论区批评指正,课程地址:《数学建模清风》   TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution)可翻译为逼近理想解排序法,国内常简称为优劣解距离法

    2023年04月09日
    浏览(40)
  • 数学建模--Topsis评价方法的Python实现

    目录 1.算法流程简介 2.算法核心代码 3.算法效果展示  

    2024年02月09日
    浏览(43)
  • 优劣解距离法(TOPSIS)——数学建模清风笔记

    构造计算评分的公式:    max,min指已知数据中的最大值和最小值而不是理论上的最大值和最小值 三点解释: (1)比较的对象一般要远大于两个。(例如比较一个班级的成绩) (2)比较的指标也往往不只是一个方面的,例如成绩、工时数、课外竞赛得分等。 (3)有很多指

    2024年01月17日
    浏览(45)
  • 2023数学建模国赛常用算法-Topsis优劣解距离法

    1.1 概念 TOPSIS 法是一种常用的组内综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。基本过程为基于归一化后的原始数据矩阵,采用余弦法找出有限方案中的最优方案和最劣方案,然后分别计算各评价对象与最优方案和最劣方案间的距

    2024年02月15日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包