Matlab数学建模TOPSIS(优劣解距离法)

Posted 九死九歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab数学建模TOPSIS(优劣解距离法)相关的知识,希望对你有一定的参考价值。

一、问题引入

  先分析一下层次分析法的不足。

  ① 平均随机一致性指标RI的表格中,n最大为15。那么n太大的话,无法进行一致性检验。

  ② 如果决策层中指标的数据是已知的,那么我们如何利用这些数据来使得评价的更加准确呢?

二、极大型指标构造计算评分

  ① 第一步:求最大最小值。

  ② 第二步:带入构造计算评分的公式 x − m i n m a x − m i n \\fracx - minmax - min maxminxmin

  ③ 第三步:进行归一化。

  代码演示:

function res = func(a)
	mnmx = minmax(a);
	res = (a - mnmx(1)) / (mnmx(2) - mnmx(1));
	res = res / sum(res);
end

  (注:上面的评分规则是不正确的,只是用来抛砖引玉,正确的评分规则见下文“三、标准化”)

  但是有时候评分不是越大越好,而是越小越好,或者越接近某个值越好,越接近某个区间越好。那就要把这些指标转换成极大型。这个过程叫做正向化。

  但是不同指标的量纲是不一样的,为了消除量纲带来的影响,我们需要进行标准化。

  下面先介绍标准化,在介绍正向化。

三、标准化

  例如对于m个要评价的对象,n个评价指标的正向化矩阵:
X = ( x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 ⋯ x m n ) X = \\beginpmatrix x_11 & x_12 & \\cdots & x_1n\\\\ x_21 & x_22 & \\cdots & x_2n\\\\ \\vdots & \\vdots & \\ddots & \\vdots\\\\ x_m1 & x_m2 & \\cdots & x_mn \\endpmatrix X=x11x21xm1x12x22xm2x1nx2nxmn
  将标准化后的矩阵记作Z,则Z中的每一个元素满足:
z i j = x i j ∑ i = 1 m x i j 2 z_ij = \\fracx_ij\\sqrt\\sum\\limits^m_i=1x^2_ij zij=i=1mxij2 xij
  用代码描述为:

function Z = func(X)
	[m, ~] = size(X);
	Z = X ./ repmat(sum(X .^ 2) .^ 0.5, m, 1);
end

  接下来对标准化矩阵求解各指标得分:
Z = ( z 11 z 12 ⋯ z 1 n z 21 z 22 ⋯ z 2 n ⋮ ⋮ ⋱ ⋮ z m 1 z m 2 ⋯ z m n ) Z = \\beginpmatrix z_11 & z_12 & \\cdots & z_1n\\\\ z_21 & z_22 & \\cdots & z_2n\\\\ \\vdots & \\vdots & \\ddots & \\vdots\\\\ z_m1 & z_m2 & \\cdots & z_mn \\endpmatrix\\\\ Z=z11z21zm1z12z22zm2z1nz2nzmn
令 Z j + = max ⁡ ( z 1 j , z 2 j , ⋯   , z m j ) Z j − = min ⁡ ( z 1 j , z 2 j , ⋯   . z m j ) 令Z^+_j = \\max(z_1j, z_2j, \\cdots, z_mj)\\\\ Z^-_j = \\min(z_1j, z_2j, \\cdots. z_mj)\\\\ Zj+=max(z1j,z2j,,zmj)Zj=min(z1j,z2j,.zmj)
D + = ( Z 1 + , Z 2 + , ⋯   , Z j + ) D − = ( Z 1 − , Z 2 − , ⋯   , Z j − ) D^+ = (Z^+_1, Z^+_2, \\cdots, Z^+_j)\\\\ D^- = (Z^-_1, Z^-_2, \\cdots, Z^-_j)\\\\ D+=(Z1+,Z2+,,Zj+)D=(Z1,Z2,,Z备战数学建模13-优劣解距离法TOPSIS模型

数学建模复习(2. topsis优劣解距离法)

数学建模暑期集训7:TOPSIS法(优劣解距离法)

数学建模优劣解距离法Topsis模型部分

TOPSIS算法

Topsis优劣解距离法 mlx代码