淺談基於Matlab的層次分析法與運用

才智咖 人氣:1.59W

導語:MATLAB 是美國MathWorks公司出品的商業數學軟體,用於演算法開發、資料視覺化、資料分析以及數值計算的高階技術計算語言和互動式環境,主要包括MATLAB和Simulink兩大部分。下面是小編蒐集整理的一篇探究企業財務會計與管理會計融合的論文範文,供大家閱讀參考。

淺談基於Matlab的層次分析法與運用

摘要:本文經過運用Matlab軟體停止程式設計,在滿足同一層次中各目標對一切的上級目標均發生影響的假定條件下,完成了層次剖析法的剖析運算。本順序允許使用者自在設定目標層次構造內的層次數以及各層次內的目標數,經過順序的迴圈,使用者只需輸出判別矩陣的區域性資料,順序可根據層次剖析法的計算流程停止計算並作出判別。本順序可以方便地處置層次剖析法下較大的運算量,處理層次剖析法的效率成績,進步計算機輔佐決策的時效性。

關鍵詞:Matlab層次剖析法 判別矩陣 決策

在以後資訊化、全球化的大背景下,傳統的手工計算已不能滿足人們高效率、高精確度的決策需求。因而計算機輔佐決策當仁不讓地成為了管理決策的新工具、新辦法。基於此,本文在充沛發揚計算機弱小運算功用的根底上,選用美國MathWorks公司的整合數學建模環境Matlab R2009a作為開發平臺,運用M言語停止程式設計,對計算機輔佐決策在層次剖析法中的運用停止討論。試圖經過順序完成層次剖析法在計算機零碎上的運用,為管理決策探究出新的路途職稱論文。

一、層次剖析法的計算流程

依據層次剖析法的相關實際,層次剖析法的根本思想是將複雜的決策成績停止分解,失掉若干個上層目標,再對上層目標停止分解,失掉若干個再上層目標,如此樹立層次構造模型,然後依據構造模型結構判別矩陣,停止單排序,最初,求出各目標對應的權重係數,停止層次總排序。

1.1 結構層次構造模型 在停止層次剖析法的剖析時,最次要的步驟是樹立目標的層次構造模型,依據構造模型結構判別矩陣,只要判別矩陣經過了分歧性檢驗後,方可停止剖析和計算。其中,構造模型可以設計成三個層次,最高層為目的層,是決策的目的和要處理的成績,兩頭層為決策需思索的要素,是決策的原則,最低層則是決策時的備選方案。普通來講,原則層中各個目標的上級目標數沒無限制,但在本文中設計的順序尚且只能在各目標具有相反數量的上級目標的假定下,完成層次剖析法的剖析,故本文後文選取的案例也滿足這一假定。

1.2 樹立判別矩陣 判別矩陣是表示本層一切要素針對上一層某一個要素的絕對重要性的比擬給判別矩陣的要素賦值時,常採用九級標度法(即用數字1到9及其倒數表示目標間的絕對重要水平),詳細標度辦法如表1所示。

1.3 檢驗判別矩陣的分歧性 由於多階判別的複雜性,往往使得判別矩陣中某些數值具有前後矛盾的能夠性,即各判別矩陣並不能保證完全協調分歧。當判別矩陣不能保證具有完全分歧性時,相應判別矩陣的特徵根也將發作變化,於是就可以用判別矩陣特徵根的變化來檢驗判別的分歧性水平。在層次剖析法中,令判別矩陣最大的特徵值為λmax,階數為n,則判別矩陣的分歧性檢驗的目標記為:

CI的值越大,判別矩陣的分歧性越差。當階數大於2時,判別矩陣的分歧性目標CI與同階均勻隨機分歧性目標RI之比稱為隨機分歧性比率,其中RI的值由表2確定,CR的計算公式為:

當CR0.1時,即可以為判別矩陣具有稱心的分歧性。但是由於在為各目標間互相重要性水平大小的斷定程序中存在人為客觀要素,因而在判別矩陣不能經過分歧性檢驗時,需求對各目標間互相重要性水平重新停止賦值,直至其經過矩陣分歧性檢驗。其最大特徵值對應的特徵向量即為該目標絕對於上一級目標的重要性排序。

1.4 停止層次總排序 在經過層次單排序得出各目標絕對上一級目標的重要性排序向量後,沿遞階級次構造逐級順次由下往上停止矩陣計算,則可失掉各底層目標對最高層的絕對重要性權重,從而可對各底層目標的優先次第停止排序,找出重點目標並予以特別關注。

二、 Matlab層次剖析法順序設計思緒

Matlab是矩陣實驗室(Matrix Laboratory)的簡稱,是美國MathWorks公司出品的數學軟體,用於演算法開發、資料視覺化、資料剖析以及數值計算的初級技術計算言語和互動式環境。Matlab可以停止矩陣運算、繪製函式和資料影象、設計演算法、創立使用者介面、銜接用其他程式設計言語編寫的順序等。Matlab以矩陣為計算單位,採用M言語作為順序言語,與C言語有諸多類似之處,並可方便地與C/C++、Microsoft Excel等工具和軟體停止結兼併停止程式碼共享和資料交流,可以方便地停止數值剖析、影象處置等功用,配合功用弱小的統計和金融工具箱,Matlab曾經可以在概率統計、經濟管理等方面發揚弱小的作用。

筆者所編順序即是運用Matlab豐厚的函式、矩陣運算和順序控制功用,探究其在層次剖析法剖析中的運用。順序經過三層迴圈構造,依照表1所示的辦法和規則,完成多個層次上各個判別矩陣的輸出和生成,並可以經過計算它們的特徵值,依照上述公式⑴、公式⑵和表2所示的辦法停止矩陣的分歧性檢驗。當一切的判別矩陣分歧性檢驗均經過後,順序將對各層次從下往上順次計算,最終得出各底層目標絕對於原則層的權重係數,從而有助於選擇最優方案,順序流程如圖1所示,其中的平行四邊形表示輸出資料,菱形表示判別,依據判別後果的不同呈現2個分支。順序中,用於生成判別矩陣的區域性順序如下:

for a=1:mp

for b=1:mp

A(b,b)=1;

if a   fprintf(‘Line %i, Row %i“n‘,[a;b]);

A(a,b)=input(‘Please input the value: ‘);

A(b,a)=1/A(a,b);

end

end

生成層次總排序權重矩陣的區域性順序如下:

for r=p-1:1

v=[‘vect=vect*vector‘ int2str(r)];

evalc(v)

end

fprintf(‘The final judging vector is:‘)

fprintf(‘“n%.4f‘,vect)

[m,maxpl]=max(vect);

fprintf(‘“n“nThe Scheme %i is the best solution.“n“n‘,maxpl)

其中,mp為該層內的目標數,p為目標的層數,均在順序開端時由使用者指定;vect初始被賦值為空矩陣,經迴圈後生成第一目標層的判別向量;m為vect向量的最大值,maxpl記載該最大值所處的地位。

由於本順序構造上的限制,本順序尚且只能在同一層次各個目標均對一切下一層次目標發生影響時處置層次剖析法的成績,故本文舉例亦遵照該假定停止。

三、使用舉例

某市一十字路口經常因行人過街擁堵,存在平安隱患,市政部門欲對該路口停止改造,現提出了3套改造方案:

方案1(S1):建地下通道;

方案2(S2):建人行天橋;

方案3(S3):撤除四周的舊修建,拓寬街面。

市政部門以為,該改造工程需思索如下幾個方面的目標:

目標1(P1):通車才能的大小;

目標2(P2):交通平安係數的'上下;

目標3(P3):修建費用的上下;

目標4(P4):群眾出行方便度的大小;

目標5(P5):市容整潔水平的上下。

如今需求就以上成績停止決策,需決議在三套方案(S1~S3)中選用最優方案。其次要步驟及操作如下所示。

第1步:依據標題樹立層次構造模型

由於標題要求對3套方案均需思索5個目標,故可畫出如圖2所示的目標體系構造圖。

第2步:構成判別矩陣

構成判別矩陣,需求對各目標互相的重要性停止標度,矩陣的上三角區域性與下三角區域性以對角線為分界,對稱呈倒數陳列,對角線上元素均為1,由於各目標與本身的重要性為“同等重要”,不同的目標A1對A2的重要性與A2對A1的重要性互為倒數。依據經歷對圖2中各目標互相的重要性停止標度後,可得如下幾個矩陣:

第3步:將以上各矩陣輸出順序,停止計算

在Matlab的命令視窗順次按提示輸出表 3~表 8所示矩陣後,順序輸入後果經整理如下表:

接著,順序對各矩陣計算所得的最大特徵值對應的特徵向量按下式停止規範化:

再給出各目標的特徵向量組成的矩陣:

進而得出三套方案絕對於目的的權重向量為:

順序經比擬,發現方案1權重係數最大,進而得出最終結論:方案1(地下通道)佔優。

四、 總結及剖析

本順序在運轉開端時,會要求使用者輸出目標的層數和第一層的目標數,在每一個層次的矩陣元素輸出完成後,順序會要求使用者輸出下一個層次中的目標數,因而本順序可停止有限個層次的迭代運算。當然,順序只能替代層次剖析法的運算區域性,由於對判別矩陣賦值具有客觀性,經常需求經過其他的辦法停止確定,如Delphi辦法等。在把設定好的判別矩陣輸出順序停止運算時,順序可以保證矩陣運算的精度和效率,在對程式碼停止優化和擴充套件後,還可以將程序與後果資料匯出到Excel和Eviews,以方便停止後續的資料整理和計量剖析。

另外,如前所述,本順序存在一個侷限,即需求在滿足同一層次內各目標對一切下一層次目標均發生影響的假定時才幹正確運轉。筆者將在今後對順序停止進一步的完善,提升其功用和易用性,使其能滿足不同型別、不同條件下的層次剖析法剖析,在日常生活的計算機輔佐決策範疇發揚更大的作用。

參考文獻:

[1]凌澤華.層次剖析法在企業中心員工界定中的運用[J].運營管理者, 2010,(2).

劉文琦,熊惠珍.層次剖析法在財務目標剖析中的使用[J].審計與理財,2010,(1).

王翼,王歆明AB根底及在經濟學與管文科學中的使用[M].北京:機械工業出版社,2009,7.