Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法

在这里插入图片描述
简直超easy超好理解

看到一半又对数模有了一点信心

基本过程

得到正向化矩阵----得到标准化矩阵----计算评分

里面的计算确实超简单的,只有加加减减平方啥的
在这里插入图片描述在这里插入图片描述
这个想法确实不错,和最低成绩的插值占最大差距的比例,这在分段线性插值的理论公式中也有应用

举一反三:可以立刻想到另一个评分公式

m a x − x m a x − m i n \frac{max-x}{max-min} maxminmaxx
在这里插入图片描述在这里插入图片描述

归一化真是个好东西

在这里插入图片描述新颖,涨知识了在这里插入图片描述
又涨一波知识

四种指标以及相互转换的公式

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
牛逼
在这里插入图片描述
学会了repmat
由标准化矩阵得到正向化矩阵
在这里插入图片描述

在这里插入图片描述
越来越喜欢数学了竟然开始害怕起研究生毕业以后没有数学公式可供推导观看了······
在这里插入图片描述
示例
在这里插入图片描述

到这里已经体会到为啥方法名里有个距离

这个方法玩的就是最大值和最小值的距离,数据和最大值的距离,数据和最小值的距离,多个指标之间简单的用平方和开方的方式组合到一起,但是

这实际上是默认了所有指标的权重相同
这实际上是默认了所有指标的权重相同
这实际上是默认了所有指标的权重相同

所以清风虽然成绩最高,但是最后排名却最低,因为完全没有纳入权重

我们可以先用层次分析法算出每个指标的权重,再用TOPSIS法计算评分呀

我还是有前途的,哈哈哈,先想到了这个

在这里插入图片描述在这里插入图片描述

excel数据做成MATLAB的mat文件

在当前变量工作区新建一个变量,(crtl+N),命名为data或者其他的
在这里插入图片描述双击打开

在这里插入图片描述复制excel数据在这里插入图片描述
直接粘贴在data.mat中,保存就搞定啦,后面在MATLAB中只需要load就可以使用数据
在这里插入图片描述
代码:

clear all
close all
clc
load('E:\BOOKS\数模\清风\数模基础模型和代码\数模基础模型和代码\第2讲.TOPSIS法(优劣解距离法)7.27\代码和例题数据\我写的代码\data.mat');


% 正向化指标
data(:,2) = mid2pos(data(:,2)); % ph值
data(:,3) = neg2pos(data(:,3)); % 细菌数
data(:,4) = range2pos(data(:,4)); % 植物性营养物
disp('正向化后的矩阵 X =  ')
disp(data)

% 标准化指标
[n,m] = size(data);
disp(['共有' num2str(n) '个评价对象, ' num2str(m) '个评价指标']) 
data = data./repmat(sum(data.*data).^0.5,n,1);
disp('标准化矩阵 Z = ')
disp(data)

% 计算评分
Z_P = max(data);
Z_N = min(data);
S = [];
for i=1:n
    D_P(i) = sum((Z_P-data(i,:)).^2)^.5;
    D_N(i) = sum((Z_N-data(i,:)).^2)^.5;
    S(i) = D_N(i) / ( D_N(i) +  D_P(i));
end

% 归一化评分
S = S / sum(S);
disp('最后的得分为:')
[sorted_S,index] = sort(S ,'descend')**
正向化后的矩阵 X =  
    4.6900    0.7172    3.0000    1.0000
    2.0300    0.4069   35.0000    0.6940
    9.1100    0.5241    8.0000    0.9058
    8.6100    0.9655    8.0000    0.4443
    7.1300    0.6552    4.0000    0.6914
    2.3900    0.8414   16.0000    0.6007
    7.6900    0.8552   16.0000    0.6551
    9.3000    0.8690   27.0000         0
    5.4500    0.5724   49.0000    1.0000
    6.1900    0.8138   37.0000    0.7848
    7.9300    0.6345   45.0000    0.6992
    4.4000    0.8069   37.0000    0.5419
    7.4600    0.1448   31.0000    1.0000
    2.0100         0    7.0000    0.4546
    2.0400    0.5862   31.0000    1.0000
    7.7300    0.4069    2.0000    1.0000
    6.3500    0.6000   29.0000    0.1824
    8.2900    0.0276   15.0000    1.0000
    3.5400    0.8138         0    0.4088
    7.4400    0.4897   46.0000    0.2731

共有20个评价对象, 4个评价指标
标准化矩阵 Z = 
    0.1622    0.2483    0.0245    0.3065
    0.0702    0.1408    0.2863    0.2127
    0.3150    0.1814    0.0655    0.2776
    0.2977    0.3342    0.0655    0.1361
    0.2466    0.2268    0.0327    0.2119
    0.0826    0.2912    0.1309    0.1841
    0.2659    0.2960    0.1309    0.2008
    0.3216    0.3008    0.2209         0
    0.1885    0.1981    0.4009    0.3065
    0.2141    0.2817    0.3027    0.2405
    0.2742    0.2196    0.3682    0.2143
    0.1522    0.2793    0.3027    0.1661
    0.2580    0.0501    0.2536    0.3065
    0.0695         0    0.0573    0.1393
    0.0705    0.2029    0.2536    0.3065
    0.2673    0.1408    0.0164    0.3065
    0.2196    0.2077    0.2373    0.0559
    0.2867    0.0095    0.1227    0.3065
    0.1224    0.2817         0    0.1253
    0.2573    0.1695    0.3763    0.0837

最后的得分为:

sorted_S =

  1 至 14 列

    0.0702    0.0684    0.0681    0.0591    0.0565    0.0539    0.0533    0.0527    0.0510    0.0488    0.0485    0.0478    0.0466    0.0451

  15 至 20 列

    0.0448    0.0438    0.0434    0.0431    0.0358    0.0192


index =

    11    10     9    12    20     7    15    13     8     4     3     2    17     1     6    18    16     5    19    14

>> 
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值