數學建模 TOPSIS法

2021-10-23 20:29:59 字數 3897 閱讀 3774

**彙總

topsis法基本過程:

將資料矩陣統一指標型別(一般正向化處理)

標準化處理消除量綱

計算物件與最優/最劣方案的距離

計算得分並歸一化

常見的四種指標及正向化方法:

名稱特點

轉換函式

極大型指標

越大(多)越好

none

極小型指標

越小(少)越好

m ax

−x(常

用)、1

/x(需

為正數)

max-x(常用)、1/x(需為正數)

max−x(

常用)、

1/x(

需為正數

)中間型指標

越接近某個值越好

1 −∣

xi−x

best

∣m

1-\frac\vert }

1−m∣xi

​−xb

est​

∣​,其中m=m

ax

m=max\\vert \}

m=ma

x區間型指標

落在某個區間最好

x

ix_i

xi​ 見下文

m =m

ax},

max−

b,xi

=\}, max\-b, x_i=\left\ 1-\frac &, & x_ib \end \right.

m=max}

,max

−b,x

i​=⎩

⎨⎧​1

−ma−

xi​​

11−m

xi​−

b​​,

,,​x

i​≤xi​

≤bx>b​

標準化矩陣元素:zij

=xij

/∑i=

1nxi

j2

z_=x_/\sqrt^nx_^2}

zij​=x

ij​/

∑i=1

n​xi

j2​​

( 每一

個元素/

其所在列

的元素的

平方和)

(每乙個元素/\sqrt)

(每乙個元素

/其所在

列的元素

的平方和

​)定義:

得分 si=

di−d

i++d

i−,0

≤si≤

1,si

越大,越

接近最大

值s_i=\frac,0\leq s_i\leq1,s_i 越大,越接近最大值

si​=di

+​+d

i−​d

i−​​

,0≤s

i​≤1

,si​

越大,越

接近最大

值 歸一化:si~

/∑i=

1nsi

\tilde/\sum^n_s_i

si​~​/

∑i=1

n​si

​模型拓展:

%%%

%%%%

%%%%

%%%%

%%%%

%%%%

%%%% **0:函式清單 %%%

%%%%

%%%%

%%%%

%%%%

%%%%

%%%%

%%help load

help repmat

help sort

%%%

%%%%

%%%%

%%%%

%%%%

%%%%

%%%% **1:統一指標型別 %%%

%%%%

%%%%

%%%%

%%%%

%%%%

%%%%

load(

'data_water_quality.mat');

% 載入初始資料矩陣

[row, col]

= size(x)

;best =7;

% 中間型對應的值

sec_min =10;

% 區間型下限

sec_max =20;

% 區間型上限

% 以上資料根據建模題目修改,下文不需要修改

disp(

'請輸入處理向量,min2max——1,mid2max——2,sec2max——3, max==max——0'

) deal_a =

input

('處理向量:');

% 長度 == col

for i =

1:col

x = x(

:,i)

;if deal_a(i)==1

a(:,i)

=max

(x)- x;

% 極小型轉極大型

elseif deal_a(i)==2

m1 =

max(

abs(x-best));

a(:,i)=1

-abs

(x-best)

./m1;

% 中間型轉極大型

elseif deal_a(i)==3

% 區間型轉極大型

m2 =

max(

[sec_min-

min(x)

,max

(x)-sec_max]);

for j =

1:length(x)

if x(j)

> sec_max

x(j)=1

-(x(j)

-sec_max)

/m2;

elseif x(j)

< sec_min

x(j)=1

-(sec_min-x(j)

)/m2;

else

x(j)=1

; end

enda(

:,i)

= x;

elseif deal_a(i)==0

a(:,i)

= x;

endenda % a矩陣即為所求正向化矩陣

%%%

%%%%

%%%%

%%%% **2:正向化矩陣標準化、計算距離與得分、歸一化 %%%

%%%%

%%%%

%%%%

%z = a.

/sqrt(

sum(a.^2

));% z為標準化矩陣

z_max =

max(z)

;z_min =

min(z)

;% 注意矩陣維數

d_max = sqrt(

sum(

(repmat(z_max, row,1)

-z).^2

,2))

;d_min = sqrt(

sum(

(repmat(z_min, row,1)

-z).^2

,2))

;s = d_min.

/(d_max+d_min)

;% 計算得分

s_end = s .

/sum

(s);

% 歸一化得分

% 得分按降序排列,返回排序後得分及其索引,即為最終結果

[sorted_s,index]

= sort(s_end ,

'descend'

)

數學建模 Topsis法(優劣解距離法)

topsis 法是一種常用的組內綜合評價方法,能充分利用原始資料的資訊,其結果能精確地反映各評價方案之間的差距。基本過程為基於歸一化後的原始資料矩陣,採用余弦法找出有限方案中的最優方案和最劣方案,然後分別計算各評價物件與最優方案和最劣方案間的距離,獲得各評價物件與最優方案的相對接近程度,以此作為評價...

數學建模之優劣解距法(TOPSIS)

優劣解距法簡稱topsis,是一種綜合評價方法,利用原始資料反映各評價方案之間的差距 優劣解距法的步驟通常為 先將原始資料針具做正向化處理,得到正向化矩陣 再對正向化矩陣標準化處理以消除各指標綱量的影響 在有限方案中找到最優方案和最劣方案,計算各評價物件與最優最劣方案間的距離 例如 請依據以下四位同...

數學建模之優劣解距法(TOPSIS)

優劣解距法簡稱topsis,是一種綜合評價方法,利用原始資料反映各評價方案之間的差距 優劣解距法的步驟通常為 先將原始資料針具做正向化處理,得到正向化矩陣 再對正向化矩陣標準化處理以消除各指標綱量的影響 在有限方案中找到最優方案和最劣方案,計算各評價物件與最優最劣方案間的距離 例如 請依據以下四位同...