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

文章目录

  • 基本过程
  • 归一化真是个好东西
  • 四种指标以及相互转换的公式
  • excel数据做成MATLAB的mat文件

Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第1张图片
简直超easy超好理解

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

基本过程

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

里面的计算确实超简单的,只有加加减减平方啥的
Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第2张图片Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第3张图片
这个想法确实不错,和最低成绩的插值占最大差距的比例,这在分段线性插值的理论公式中也有应用

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

m a x − x m a x − m i n \frac{max-x}{max-min} maxminmaxx
Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第4张图片Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第5张图片

归一化真是个好东西

Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第6张图片新颖,涨知识了Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第7张图片
又涨一波知识

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

Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第8张图片
Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第9张图片Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第10张图片Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第11张图片
牛逼
Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第12张图片
学会了repmat
由标准化矩阵得到正向化矩阵
Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第13张图片

在这里插入图片描述
越来越喜欢数学了竟然开始害怕起研究生毕业以后没有数学公式可供推导观看了······
Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第14张图片
示例
Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第15张图片

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

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

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

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

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

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

Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第16张图片Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第17张图片

excel数据做成MATLAB的mat文件

在当前变量工作区新建一个变量,(crtl+N),命名为data或者其他的
Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第18张图片双击打开

Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第19张图片复制excel数据Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第20张图片
直接粘贴在data.mat中,保存就搞定啦,后面在MATLAB中只需要load就可以使用数据
Technique for Order Preference by Similarity to Ideal Solution逼近理想解排序法_第21张图片
代码:

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

>> 

你可能感兴趣的:(数学建模)