從零開始的數學建模 (二)Topsis

2022-02-01 10:19:00 字數 1339 閱讀 9550

(1)確定指標型別並正向化

不同與上一講的層次分析法,這個模型中的資料必須是具體的,而不是人為給出的;

指標有常見的四種型別:

無論是哪種指標,首先都需要進行正向化;

①極小型指標正向化:對所有元素執行\(max-x\);

②中間型指標正向化:\(x_\)為理想的中間值,計算\(m = max\lbrace|x_i-x_|\rbrace\),對每個\(x_i\),計算\(\tilde x=1-\frac|}\),\(\tilde x\)即為正向化後的值;

③區間型指標正向化:假設最佳的區間為\([a,b]\),計算:

\[m=max\lbrace a-min\lbrace x_i \rbrace,max\lbrace x_i\rbrace -b \rbrace

\]\[\tilde x = \begin 1-\frac&,xb \end

\]\(\tilde x\)即為正向化後的值;

(2)正向化矩陣標準化

(3)計算得分並歸一化

注意,根據以上方法確定的最終得分,是預設所有因素的權重相等,顯然這不現實,可利用之前的層次分析法確定權重;但是層次分析法的硬傷在於主觀性太強,熵權法是更客觀的方法;

(1)確定指標型別與標準化

步驟與一般topsis型別類似,指標的正向化就不再提了;唯一不同的是,如果輸進行正向化後存在負數,需要將所有值對映到\([0,1]\)區間:

\[\tilde z_ = \frac -min\lbrace x_,x_,\cdot\cdot\cdot,x_\rbrace},x_,\cdot\cdot\cdot,x_}\rbrace-min\lbrace x_,x_,\cdots,x_\rbrace}

\](2)計算概率

將\(\tilde z_\)矩陣中的每個元素除以每一列的和,得到\(p_\)矩陣;

(3)計算資訊熵與資訊效用性

對於第\(j\)個指標而言,計算資訊熵:

\[e_j = -\frac}\sum_^p_\ln(})\quad(j=1,2,\cdots,m)

\]計算資訊效用值:

\[d_j = 1-e_j

\]最終得到每個指標的熵權:

\[w_j = \frac^d_j}\quad (j=1,2,\cdots,m)

\]但實際上,這個方法僅限於數學建模比賽,真正的科學意義或許並不大,首先這個概率是用頻率的計算方式算出來的,如果樣本不大的話,根本沒有說服力;其次這個方法得到的權重是基於方差大小的(相當不科學),方差越大,說明能提供的資訊越多,資訊效用值越大,計算出來的權重也就越大,反之亦然;所以這是乙個為比賽而服務的模型罷了。

本文演算法思想參考源於清風建模,特此註明

從零開始的數學建模 (五)插值演算法

插值指的是運用一些數學的方法,模擬產生 一些新的但又比較可靠的資料,補足題目中的空缺資料 插值也可以用來做 問題,而且比灰色 可靠得多,數學背景也更豐富 埃爾公尺特 hermite 插值不但要求在節點上的函式值相等,而且還要求對應的導數值也相等,甚至高階導數也相等 但一般不直接用hermite插值,...

jQuery從零開始 二

1.css類的操作 addclass 向被選元素新增乙個或者多個類 removeclass 刪除被選元素的類 toggleclass 取反 css 獲取或者設定被選元素的css樣式 使用這個方法的時候不需要使用小駝峰,當通過這個方法設定樣式的時候,可以通過傳入乙個物件的形式來設定css樣式 widt...

Git從零開始(二)

前面提交了乙個test1.txt檔案,接下來看看這個檔案接下來的命運。一 繼續修改並提交 在test1.txt中修改後,git status檢視git的狀態,會提示我們檔案test1.txt被修改了,但還沒有提交。但到底修改了什麼呢?接著往下看,git diff test1.txt檢視剛剛修改的內容...