青海企业网站建设/网站设计开发网站
文章目录
- 数学建模常见的一些方法
- TOPSIS法
- TOPSIS的介绍
- 优劣解距离法操作步骤
- 1. 将原始矩阵正向化
- 1.1 极小型指标 → 极大型指标
- 1.2 中间型指标 → 极大型指标
- 1.3 区间型指标 → 极大型指标
- 2. 正向化矩阵标准化
- 3. 计算得分并归一化
- 标准化处理公式
- 类比只有一个指标计算得分
数学建模常见的一些方法
TOPSIS法
(Technique for Order Preference by Similarity to Ideal Solution)
- 可翻译为逼近理想解排序法,国内常简称为优劣解距离法
- TOPSIS 法是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。
TOPSIS的介绍
C.L.Hwang 和 K.Yoon 于1981年首次提出 TOPSIS (Technique forOrder Preference by Similarity to an Ideal Solution),可翻译为逼近理想解排序法,国内常简称为优劣解距离法.。
TOPSIS 法是一种常用的综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。
基本过程为先将原始数据矩阵统一指标类型(一般正向化处理)得到正向化的矩阵,再对正向化的矩阵进行标准化处理以消除各指标量纲的影响,并找到有限方案中的最优方案和最劣方案,然后分别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法对数据分布及样本含量没有严格限制,数据计算简单易行。
优劣解距离法操作步骤
1. 将原始矩阵正向化
指标名称 | 指标特 | 例子 |
---|---|---|
极大型(效益型)指标 | 越大(多)越好 | 成绩、GDP增速、企业利润 |
极小型(成本型)指标 | 越小(少)越好 | 费用、坏品率、污染程度 |
中间型指标 | 越接近某个值越好 | 水质量评估时的PH值 |
区间型指标 | 落在某个区间最好 | 体温、水中植物性营养物量 |
- 所谓的将原始矩阵正向化,就是要将所有的指标类型统一转化为极大型指标。
1.1 极小型指标 → 极大型指标
1.2 中间型指标 → 极大型指标
1.3 区间型指标 → 极大型指标
2. 正向化矩阵标准化
具体计算过程看后部分
3. 计算得分并归一化
具体计算过程看后部分
标准化处理公式
计算代码:
>> X = [89,1;60,3;74,2;99,0]
>> [n,m]=size(X)
>> X ./ repmat(sum(X .* X) .^0.5, n,1)
计算过程:
>> X = [89,1;60,3;74,2;99,0]
X =89 160 374 299 0>> [n,m]=size(X)
n = 4
m = 2>> sum(X .* X)
ans = 26798 14>> sum(X .* X) .^0.5
ans = 163.7009 3.7417>> repmat(sum(X .* X) .^0.5, n,1)
ans =163.7009 3.7417163.7009 3.7417163.7009 3.7417163.7009 3.7417>> X ./ repmat(sum(X .* X) .^0.5, n,1)
ans =0.5437 0.26730.3665 0.80180.4520 0.53450.6048 0
类比只有一个指标计算得分
计算代码:
>> X = [89,1;60,3;74,2;99,0]
>> [n,m]=size(X)
>> Z = X ./ repmat(sum(X .* X) .^0.5, n,1)
>> D_P = sum([(Z - repmat(max(Z),n,1)).^2 ],2) .^ 0.5 %D+向量
>> D_N = sum([(Z - repmat(min(Z),n,1)).^2 ],2) .^ 0.5 %D-向量
>> A = D_N ./ (D_P + D_N) % 未归一化的得分
>> A ./ repmat(sum(A),n,1) % 归一化的得分
计算过程:
>> max(Z)
ans = 0.6048 0.8018>> min(Z)
ans = 0.3665 0>> repmat(max(Z),n,1)
ans =0.6048 0.80180.6048 0.80180.6048 0.80180.6048 0.8018>> repmat(min(Z),n,1)
ans =0.3665 00.3665 00.3665 00.3665 0>> (Z - repmat(max(Z),n,1)).^2
ans =0.0037 0.28570.0568 00.0233 0.07140 0.6429>> (Z - repmat(min(Z),n,1)).^2
ans =0.0314 0.07140 0.64290.0073 0.28570.0568 0>> sum([(Z - repmat(max(Z),n,1)).^2 ],2)
ans =0.28940.05680.09480.6429>> sum([(Z - repmat(min(Z),n,1)).^2 ],2)
ans =0.10280.64290.29300.0568>> D_P = sum([(Z - repmat(max(Z),n,1)).^2 ],2) .^ 0.5
D_P =0.53800.23820.30780.8018>> D_N = sum([(Z - repmat(min(Z),n,1)).^2 ],2) .^ 0.5
D_N =0.32060.80180.54130.2382>> A = D_N ./ (D_P + D_N) % 未归一化的得分
A =0.37340.77090.63750.2291>> A ./ repmat(sum(A),n,1) % 归一化的得分
ans =0.18570.38340.31700.1139
参考链接