用Matlab實現(xiàn)AHP的算法_第1頁
用Matlab實現(xiàn)AHP的算法_第2頁
用Matlab實現(xiàn)AHP的算法_第3頁
用Matlab實現(xiàn)AHP的算法_第4頁
用Matlab實現(xiàn)AHP的算法_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1MATLAB的基本內(nèi)容MATLAB(MATrix LABoratory,矩陣實驗室的縮寫)是一種特殊用途的計算機程序優(yōu)化執(zhí)行工程和科學(xué)計算。它開始為旨在執(zhí)行矩陣數(shù)學(xué)程式的生活,但多年來它已發(fā)展成為一個靈活的計算系統(tǒng)基本上能夠解決任何技術(shù)問題。MATLAB具有編程語言的基本特征,使用MATLAB也可以使用像BASIC、FORTRAN、C等傳統(tǒng)編程語言一樣,進行程序設(shè)計,而且簡單易學(xué)、編程效率高。正因為MATLAB的強大的功能,使得它在許多領(lǐng)域得到廣泛應(yīng)用。在科研與工程應(yīng)用領(lǐng)域,MATLAB已被廣泛地用于科學(xué)研究和解決各種具體的實際問題。許多科技工作者選用MATLAB做為計算工具,避免了繁瑣的底

2、層編程,從而可以把主要精力和時間花在科學(xué)研究和解決實際問題是上,提高了工作效率。1.1 MATLAB矩陣矩陣是MATLAB的基本處理對象,因此根據(jù)本文所需,簡單介紹所涉及MATLAB矩陣內(nèi)容。1.1.1 MATLAB矩陣的建立1、直接輸入法最簡單的建立矩陣的方法是從鍵盤直接輸入矩陣的元素。例如:A=1 2 3;4 5 6;7 8 9A = 1 2 3 4 5 6 7 8 9也可以用回車鍵代替分號,按下列方式輸入:A=1 2 3 4 5 6 7 8 9 2、利用M文件建立矩陣比較大且復(fù)雜的矩陣,可以為它專門建立一個M文件,如同下例。利用M文件建立矩陣。啟動有關(guān)編輯程序或MATLAB文本編輯器,并

3、輸入待建矩陣:MYMAT= 111 ,112,113,114,115,116,117,118,119; 211,212,213,214,215,216,217,218,219;把輸入的內(nèi)容以純文本方式存盤(設(shè)文件名為mymatrix.m)。在MATLAB命令窗口中輸入mymatrix,即運行該M文件,就會自動建立一個名為MYMAT的矩陣,可供以后使用。1.1.2 矩陣的特征值與特征向量特征值和特征向量在科學(xué)研究和工程計算中都有非常廣泛地應(yīng)用。在MATLAB中,計算矩陣A的特征值和特征向量的函數(shù)是eig(A),常用的調(diào)用格式有3種14:E = eig( A ) :求矩陣A的全部特征值,構(gòu)成向量E

4、。V,D=eig(A):求矩陣A的全部特征值,構(gòu)成對角矩陣D,并求A得特征向量構(gòu)成V的列向量。V,D=eig(A,nobablance):與第2種格式中先對A作相似變換后求矩陣A的特征值和特征向量,而格式3直接求矩陣A的特征值和特征向量。例如:A=1,1,0.5;1,1,0.25;0.5,0.25,2; V,D=eig(A)V = 0.7212 0.4443 0.5315 -0.6863 0.5621 0.4615 -0.0937 -0.6976 0.7103D = -0.0166 0 0 0 1.4801 0 0 0 2.5365求得的3個特征值是-0.0166、1.4801和2.5365,

5、各特征值對應(yīng)的特征向量為V的各列構(gòu)成的向量。1.2 MATLAB的M文件用MATLAB語言編寫的程序稱為M文件。M文件是由若干MATLAB命令組成在一起構(gòu)成的,它可以完成某些操作,也可以實現(xiàn)某種算法。M文件可以根據(jù)調(diào)用方式的不同分為兩類:命令文件(Script File)和函數(shù)文件(Function File)。它們的擴展名均為.m。 函數(shù)文件由function語句引導(dǎo),其基本結(jié)構(gòu)為:function 輸出形參表=函數(shù)名(輸入形參表)注釋說明部分函數(shù)體語句我們通過舉例說明如下:例2-2 分別建立命令文件和函數(shù)文件,將求矩陣的一致性指標(biāo)CI:CI=(max-n)/(n-1)程序1 建立命令文件并

6、以文件名CI.m存盤:max=input('please input max:');n=input('please input n:');CI=(max-n)/(n-1)然后在MATLAB的命令窗口中輸入CI即可。程序 2 建立函數(shù)文件CI.m。function c=CI(max,n)c=(max-n)/(n-1)然后在MATLAB的命令窗口調(diào)用該函數(shù)文件。max=input('please input max:');n=input('please input n:');c=CI(max,n)2基于MATLAB的AHP實現(xiàn)21 A

7、HP的MATLAB的計算流程框圖根據(jù)層次分析法的一般步驟我們得到在MATLAB工具上實現(xiàn)的計算程序流程框圖,如圖2所示16輸入準(zhǔn)則層層數(shù)輸入準(zhǔn)則層對目標(biāo)層判斷矩陣元素判斷矩陣歸一化計算CR<0.1輸入準(zhǔn)則層第j個準(zhǔn)則包含的方案數(shù)量n判斷矩陣歸一化計算輸入方案層第j個準(zhǔn)則層的判斷矩陣元素bijCR<0.1另m=1;n=1輸入方案層第m個準(zhǔn)則層的相關(guān)矩陣元素計算權(quán)值矩陣權(quán)值的計算總CR計算開始結(jié)束CR<0.1圖 2 以MATLAB實現(xiàn)的層次分析法的計算流程框圖通過流程框圖,層次分析的基本步驟如下:第一步:準(zhǔn)則層對目標(biāo)層的判斷矩陣歸一化且判斷是否滿足一致性;第二步:第一步滿足時,將

8、方案層對準(zhǔn)則層的判斷矩陣歸一化并判斷其一致性;第三步:當(dāng)?shù)谝弧⒍綕M足時,求方案層的總排序權(quán)值與總CR并判斷一致性。22 平均隨機一致性指標(biāo)的MATLAB實現(xiàn)運用層次分析法決策者需要通過反復(fù)地解決決策問題,將同一層次的各元素與上一層次中某一準(zhǔn)則的重要性進行比較,從而構(gòu)造出兩兩判斷比較矩陣A=(aij)nn(稱為成對比較矩陣)。前面已經(jīng)描述了九級標(biāo)度法,此處運用其他描述,則這些成對比較矩陣應(yīng)滿足如下條件:(l)>0 (2) ·= l (3) =l按照事物邏輯要求,該矩陣還應(yīng)具備一致性,即滿足:·=前面已經(jīng)給出由于客觀事物的復(fù)雜性與決策者的認識的多樣性,實際問題的成對比較

9、矩陣不可能做到嚴格上的一致性,因而,借助平均隨機一致性指標(biāo)RI來相對判定其一致性程度。其中表1-4是已經(jīng)計算好的115階矩陣的RI值表,但未給出其實現(xiàn)過程,且各文獻的RI值表不完全相同。究其原因除沒有太大必要介紹外,真正去實現(xiàn)它卻有如下三個難度:(1)隨機兩兩判斷矩陣中的元素要求是19和它們對應(yīng)的倒數(shù)共17個整數(shù)與小數(shù)的均勻分布很難處理。(2)一般高級編程語言實現(xiàn)成對比較矩陣及相關(guān)計算,非常復(fù)雜,且占用內(nèi)存巨大,耗時多。(3) 隨機種子源不能控制。本文使用數(shù)學(xué)軟件包MATLAB對其進行計算。其設(shè)計解決思路為:先用軟件包中隨機函數(shù)產(chǎn)生數(shù)117的均勻分布的n階矩陣,然后在軟件包中采用不同技巧將它轉(zhuǎn)

10、化為成對比較矩陣,最后用循環(huán)語句計算出RI值。結(jié)果如下表:表3-1 計算的RI值階數(shù)123456789RI000.54400.89801.13131.25151.34951.41901.4542以n=4為例,過程詳見如下程序清單,其中隨機成對比較矩陣的實現(xiàn)見相應(yīng)注釋部分。15MATLAB的程序M文件:function ri %計算RI值的命令文件n=4; ri=0; m=100;rand('seed',21) %控制隨機發(fā)生器for i=1:m a=ceil (17*rand(n); %產(chǎn)生n階l17的隨機陣 a(find(a=8)=8.1; %消除0為分母 b=1./(a-8

11、); %產(chǎn)生一個輔助陣 a(find(a>9)=b(find(a>9); %借助b,將917分別轉(zhuǎn)化為 a(find(a=8.1)=8; e=eye(n); %產(chǎn)生一個4階單位陣 c=1./a; %將a中每個元素換成相應(yīng)倒數(shù) c=c' %將c轉(zhuǎn)置 c=tril(c,-1); %抽取c的下三角(不含主對角線) a=triu(a,1); %抽取a的上三角(不含主對角線) a=a+c+e; %實現(xiàn)隨機成對比較陣a k=size(a,1); %計算a的行維數(shù) ri=ri+(max(abs(eig(a)-k)/(k-1); %計算100次RI值endri/m %計算平均RI值23 A

12、HP各環(huán)節(jié)的 MATLAB實現(xiàn)以目標(biāo)矩陣A=,準(zhǔn)則層矩陣為P1=, P2=,P3=為例,運用MATLAB進行數(shù)據(jù)處理。2.3.1 特征向量及其歸一化的MATLAB實現(xiàn)MATLAB中求矩陣特征值和特征向量的函數(shù)是eig,其調(diào)用的格式為V,D=eig(A),其中,V為特征向量矩陣,D為特征值矩陣。層次分析法中需要求得是最大特征值及對應(yīng)的歸一化特征向量,而且考慮到eig函數(shù)在求得的特征值中可能會存在復(fù)數(shù)。因此,運用直接輸入程序代碼會產(chǎn)生一定的誤差。在此需要對求得的V、D進行適當(dāng)選擇,定義一個M-file maxeigvalvec.m來實現(xiàn)。functionmaxeigval,w=maxeigvalv

13、ec(A) %求最大特征值及對應(yīng)的歸一化特征向量 %A為判斷矩陣eigvec,eigval=eig(A);eigval=diag(eigval); %特征向量eigvalmag=imag(eigval);realind=find(eigvalmag<eps);realeigval=eigval(realind); %實特征根maxeigval=max(realeigval) %最大特征值index=find(eigval=maxeigval);vecinit=eigvec(:,index); %最大特征值對應(yīng)的特征向量w=vecinit./sum(vecinit) %特征向量歸一化在MA

14、TLAB中鍵入如下指令:A= 1,3,5;1/3,1,3;1/5,1/3,1; P1=1,2;1/2,1;P2= 1,3,5;1/3,1,3;1/5,1/3,1;P3=1,2;1/2,1;max(1),wA= maxeigvalvec(A);max(2)wP1= maxeigvalvec(P1);max(3),wP2= maxeigvalvec(P2);max(4),wP3= maxeigvalvec(P3);MATLAB運行結(jié)果如下:maxeigval= 3.0385w = 0.6370 0.2583 0.1047maxeigval= 2w=0.66670.3333maxeigval= 3.

15、0385w = 0.6370 0.2583 0.1047maxeigval= 2w=0.66670.33332.3.2 一致性檢驗及單排序的MATLAB實現(xiàn)由AHP的MATLAB的計算流程圖知,必須對各層次間的判斷矩陣進行層次單排序和一致性檢驗。因此,定義sglsortexamine.m函數(shù)來實現(xiàn)層次單排序的一致性檢驗。function RI,CI=sglsortexamine(maxeigval,A)%層次分析法單排序一致性檢驗%maxeigval為最大特征值,A為判斷矩陣n=size(A,1);RIT= 0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45,1.49

16、,1.51; RI=RIT(n);CI=(maxeigval-n)/(n-1);CR=CI/RI;if CR>=0.10 disp(input('矩陣沒通過一致性檢驗,請重新調(diào)整判斷矩陣')else disp(input('矩陣通過一致性檢驗');end在MATLAB中鍵入如下指令:RIA,CIA= sglsortexamine(max(1),A);RIP1,CIP1= sglsortexamine(max(2),P1);RIP2,CIP2= sglsortexamine(max(3),P2);RIP3,CIP3= sglsortexamine(max(4

17、),P3);運行結(jié)果如下:矩陣通過一致性檢驗矩陣通過一致性檢驗矩陣通過一致性檢驗矩陣通過一致性檢驗2.3.3 一致性檢驗及總排序的MATLAB實現(xiàn)通過層次單排序(權(quán)重)計算后,進行層次合成計算,在此本文定義tolsortvec.m函數(shù)計算層次總排序的權(quán)重并進行一致性檢驗。function tw=tolsortvec(utw,dw,CIC,RIC)% 求層次總排序權(quán)重并進行一致性檢驗% utw為上一層因素的總排序權(quán)重行向量% dw為下一層因素相對于上一層各因素的層次單排序權(quán)重矩陣% CIC為一致性指標(biāo)列向量% RIC為隨機一致性指標(biāo)列向量tw=dw*utwCR=utw'*CIC/(utw

18、'*RIC);if CR>=0.10 disp(input('層次總排序沒通過一致性檢驗,請重新調(diào)整判斷矩陣');else disp(input('層次總排序通過一致性檢驗');end在MATLAB中輸入如下指令:dw=zeros(7,3);dw=(1:2,1)=wP1; dw=(3:5,2)=Wp2; dw=(6:7,3)=wP3; CIC=CIP1;CIP2;CIP3;RIC=RIP1;RIP2;RIP3;tw= tolsortvec(wA,dw,CIC,RIC);運行結(jié)果如下:tw=0.42470.21230.06670.16460.0270

19、0.06980.0349層次總排序通過一致性檢驗其中tw 是層次總排序結(jié)果。因此,根據(jù)數(shù)據(jù)建立如下的層次總排序表。表3-3 層次總排序表(權(quán)重)APA層次P的總排序結(jié)果注0.6370 0.25830.1047P10.6667000.42470.3333000.2123P200.258300.066700.637000.164600.104700.0270P3000.66670.0698000.33330.0349注:按概率乘法,P層次總排序指標(biāo)的權(quán)重值為NP層次指標(biāo)的權(quán)重與相應(yīng)上一層次指標(biāo)AN層權(quán)重的積,且總排序權(quán)重值的和為1。2.3.4 選擇最優(yōu)排序計算出層次總排序后,為了使決策者能迅速得出

20、結(jié)果,本文對層次總排序進行最優(yōu)排序。運用MATLAB鍵入如下指令:n=length(tw);for i=1:nt=max(tw);b(i)=t;m n=find(a=t);tw(n)=;endb運行結(jié)果如下: b=0.42470.21230.16460.06980.06670.03490.0276利用MATLAB大大縮短了計算復(fù)雜矩陣的時間,為決策者節(jié)省了寶貴的時間,從而有更多的精力投入其他事務(wù)。3基于MATLAB的AHP應(yīng)用31 挑選合適工作問題某畢業(yè)生選擇工作,經(jīng)雙方懇談,假設(shè)已有三個單位C1,C2,C3表示愿意錄用他。該生對三個單位進行了解后,選取了一些中間指標(biāo)進行考察,例如單位的研究課

21、題,發(fā)展前途,待遇,同事情況,地理位置,單位名氣等。根據(jù)層次分析法,試求該生工作優(yōu)先排序(給出權(quán)值、計算程序),并給出最終選擇決策。現(xiàn)以A、B、C表示選擇工作的三個層次,建立如下結(jié)構(gòu)模型:圖3 選擇單位層次結(jié)構(gòu)圖根據(jù)成對比較法,得到相應(yīng)判斷矩陣如下表:表4-1 A-B判斷矩陣B1B2B3B4B5B6B1111411/2B2112411/2B311/21531/2B41/41/41/511/31/3B5111/3311B6222331表4-2 B1C判斷矩陣11/41/241321/31表4-3 B2C判斷矩陣C1C2C3C111/41/5C2411/2C3521表4-4 B3C判斷矩陣C1C2

22、C3C1131/3C21/311/7C3371表4-5 B4C判斷矩陣C1C2C3C111/35C2317C31/51/71表4-6 B5C判斷矩陣C1C2C3C1117C2117C31/71/71表4-7 B6C判斷矩陣C1C2C3C1179C21/711C31/911現(xiàn)在在MATLAB中分別用直接輸入程序法和M文件方法求解。1)、直接輸入代碼法:在MATLAB中輸入如下程序:A = 1,1,1,4,1,1/2; 1,1,2,4,1,1/2; 1,1/2,1,5,3,1/2; 1/4,1/4,1/5,1,1/3,1/3; 1,1,1/3,3,1,1; 2,2,2,3,3,1; B1 = 1,

23、1/4,1/2;4,1,3;2,1/3,1; B2 = 1,1/4,1/5;4,1,1/2;5,2,1; B3 = 1,3,1/3;1/3,1,1/7;3,7,1; B4 = 1,1/3,5;3,1,7;1/5,1/7,1; B5 = 1,1,7;1,1,7;1/7,1/7,1; B6 = 1,7,9;1/7,1,1;1/9,1,1; BS = B1,B2,B3,B4,B5,B6; m = length(B1);n = length(A); %隨機一致性指標(biāo)RI RI = 0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45,1.49,1.51; Wa,LA = eig

24、 (A) %求A的特征向量WA和特征根LAMaxn=input('please input largest eigenvalue:'); %輸入最大特征根 CIn = (Maxn- n) / (n - 1); CRn = CIn / RI(n); %A的一致性比率CRnWA=Wa(:,1)/sum(Wa(:,1); %特征向量歸一化 if CRn < 0.10 fprintf('A 的CR %f 通過一致性檢驗!n',CRn); %控制文本格式 else fprintf('A 的CR %f 未通過一致性檢驗!n',CRn); end for

25、 k = 1:n %求B的特征向量WK和特征根LK WB,LK = eig( BS(1:3,(k-1)*m+1:(k-1)*m+3) )Max(k)=input('please input largest eigenvalue:'); CIm(k) = (Max(k)- m) / (m - 1);RIm(k) = RI(m); CRm(k) = CIm(k) / RIm(k); %B的一致性比率CRm WK(:,k)= WB(:,1)/sum(WB(:,1); end for k = 1:n if CRm(k)< 0.10 fprintf('B%d的CR %f 通

26、過一致性檢驗!n',k,CRm(1,k); %控制文本格式 else fprintf('B%d的CR %f 未通過一致性檢驗!n',k,CRm(1,k); end enddisp('準(zhǔn)則層對目標(biāo)層權(quán)向量'); disp(WA);disp('方案層對準(zhǔn)則層權(quán)向量'); disp(WK);E = WK * WAdisp('方案層組合權(quán)向量');disp(E);CI = CIm * WA;RI = RIm * WA;CR = CI / RI; %組合一致性比率CR if CR < 0.10 fprintf('組合一

27、致性比率CR %f 通過一致性檢驗!n',CRn); else fprintf('組合一致性比率CR %f 未通過一致性檢驗!n',CRn); endMAX,CHOICE = max(E); %最佳選擇CHOICE MATLAB運行結(jié)果如下:Wa = -0.3396 -0.1255 - 0.0563i -0.1255 + 0.0563i 0.7354 -0.1896 + 0.3838i -0.1896 - 0.3838i -0.4038 -0.1884 - 0.5736i -0.1884 + 0.5736i -0.6464 -0.4476 - 0.2693i -0.44

28、76 + 0.2693i -0.4249 0.6724 0.6724 0.0834 0.3884 - 0.0605i 0.3884 + 0.0605i -0.1063 -0.0138 + 0.0429i -0.0138 - 0.0429i -0.0405 -0.0592 - 0.0922i -0.0592 + 0.0922i -0.3298 -0.1384 + 0.3417i -0.1384 - 0.3417i -0.1217 0.0035 + 0.1640i 0.0035 - 0.1640i -0.6488 -0.1467 - 0.0710i -0.1467 + 0.0710i 0.1337

29、 0.5920 0.5920 LA = 6.6178 0 0 0 0 0 0 -0.1557 + 1.2808i 0 0 0 0 0 0 -0.1557 - 1.2808i 0 0 0 0 0 0 -0.0603 0 0 0 0 0 0 -0.1230 + 0.5461i 0 0 0 0 0 0 -0.1230 - 0.5461i please input largest eigenvalue:6.6178A 的CR 0.099645 通過一致性檢驗!WB = 0.1999 0.1000 + 0.1731i 0.1000 - 0.1731i 0.9154 -0.9154 -0.9154 0.3

30、493 0.1747 - 0.3025i 0.1747 + 0.3025iLK = 3.0183 0 0 0 -0.0091 + 0.2348i 0 0 0 -0.0091 - 0.2348iplease input largest eigenvalue: 0.1999 WB = 0.1460 0.0730 + 0.1265i 0.0730 - 0.1265i 0.4994 0.2497 - 0.4325i 0.2497 + 0.4325i 0.8540 -0.8540 -0.8540 LK = 3.0246 0 0 0 -0.0123 + 0.2725i 0 0 0 -0.0123 - 0.

31、2725iplease input largest eigenvalue:3.0246WB = 0.3382 -0.1691 + 0.2929i -0.1691 - 0.2929i 0.1226 -0.0613 - 0.1062i -0.0613 + 0.1062i 0.9331 0.9331 0.9331 LK = 3.0070 0 0 0 -0.0035 + 0.1453i 0 0 0 -0.0035 - 0.1453iplease input largest eigenvalue: 3.0070 WB = 0.3928 -0.1964 + 0.3402i -0.1964 - 0.3402

32、i 0.9140 0.9140 0.9140 0.1013 -0.0506 - 0.0877i -0.0506 + 0.0877iLK = 3.0649 0 0 0 -0.0324 + 0.4448i 0 0 0 -0.0324 - 0.4448iplease input largest eigenvalue:3.0649 WB = -0.7035 -0.3392 0.6619 -0.7035 -0.9233 -0.7495 -0.1005 0.1804 0.0125LK = 3.0000 0 0 0 0.0000 0 0 0 -0.0000please input largest eigen

33、value: 3.0000 WB = -0.9844 0.9844 0.9844 -0.1293 -0.0647 - 0.1120i -0.0647 + 0.1120i -0.1189 -0.0595 + 0.1030i -0.0595 - 0.1030iLK = 3.0070 0 0 0 -0.0035 + 0.1453i 0 0 0 -0.0035 - 0.1453iplease input largest eigenvalue: 3.0070 B1的CR -2.413879 通過一致性檢驗!B2的CR 0.021207 通過一致性檢驗!B3的CR 0.006034 通過一致性檢驗!B4的

34、CR 0.055948 通過一致性檢驗!B5的CR 0.000000 通過一致性檢驗!B6的CR 0.006034 通過一致性檢驗!準(zhǔn)則層對目標(biāo)層權(quán)向量 0.1507 0.1792 0.1886 0.0472 0.1464 0.2879方案層對準(zhǔn)則層權(quán)向量 0.1365 0.0974 0.2426 0.2790 0.4667 0.7986 0.6250 0.3331 0.0879 0.6491 0.4667 0.1049 0.2385 0.5695 0.6694 0.0719 0.0667 0.0965E = 0.3952 0.2996 0.3052方案層組合權(quán)向量 0.3952 0.2996

35、 0.3052組合一致性比率CR 0.099645 通過一致性檢驗!CHOICE = 12)、M文件法:根據(jù)第三章節(jié)的層次分析法各環(huán)節(jié)的MATLAB實現(xiàn)定義如下三個函數(shù):(1) 定義maxeigvalvec.m來實現(xiàn)最大特征根及對應(yīng)的歸一化特征向量。functionmaxeigval,w=maxeigvalvec(A) %求最大特征值及對應(yīng)的歸一化特征向量 %A為判斷矩陣eigvec,eigval=eig(A);eigval=diag(eigval); %特征向量eigvalmag=imag(eigval);realind=find(eigvalmag<eps);realeigval=e

36、igval(realind); %實特征根maxeigval=max(realeigval) %最大特征值index=find(eigval=maxeigval);vecinit=eigvec(:,index); %最大特征值對應(yīng)的特征向量w=vecinit./sum(vecinit) %特征向量歸一化(2)定義sglsortexamine.m函數(shù)來實現(xiàn)層次單排序的一致性檢驗。function RI,CI=sglsortexamine(maxeigval,A)%層次分析法單排序一致性檢驗%maxeigval為最大特征值,A為判斷矩陣n=size(A,1);RIT= 0,0,0.58,0.90,

37、1.12,1.24,1.32,1.41,1.45,1.49,1.51; RI=RIT(n);CI=(maxeigval-n)/(n-1);CR=CI/RI;if CR>=0.10 disp(input('矩陣沒通過一致性檢驗,請重新調(diào)整判斷矩陣')else disp(input('矩陣通過一致性檢驗');end(3)定義tolsortvec.m函數(shù)計算層次總排序的權(quán)重并進行一致性檢驗。function tw=tolsortvec(utw,dw,CIC,RIC)% 求層次總排序權(quán)重并進行一致性檢驗% utw為上一層因素的總排序權(quán)重行向量% dw為下一層因素相

38、對于上一層各因素的層次單排序權(quán)重矩陣% CIC為一致性指標(biāo)列向量% RIC為隨機一致性指標(biāo)列向量tw=dw*utw;CR=utw'*CIC/(utw'*RIC);if CR>=0.10 disp(input('層次總排序沒通過一致性檢驗,請重新調(diào)整判斷矩陣');else disp(input('層次總排序通過一致性檢驗');end%main.m主程序clear;A = 1,1,1,4,1,1/2;1,1,2,4,1,1/2;1,1/2,1,5,3,1/2;1/4,1/4,1/5,1,1/3,1/3;1,1,1/3,3,1,1;2,2,2,3

39、,3,1;B1 = 1,1/4,1/2;4,1,3;2,1/3,1;B2 = 1,1/4,1/5;4,1,1/2;5,2,1;B3 = 1,3,1/3;1/3,1,1/7;3,7,1;B4 = 1,1/3,5;3,1,7;1/5,1/7,1;B5 = 1,1,7;1,1,7;1/7,1/7,1;B6 = 1,7,9;1/7,1,1;1/9,1,1;max(1),wA=maxeigvalvec(A);max(2),wB1=maxeigvalvec(B1);max(3),wB2=maxeigvalvec(B2);max(4),wB4=maxeigvalvec(B4);max(5),wB3=maxeigvalvec(B3);max(6),wB5=maxeigvalvec(B5);max(7),wB6=maxeigvalvec(B6);RIA,CIA=sglsortexamine(max(1),A);RIB1,CIB1=sglsortexamine(max(2),B1);RIB2,CIB2=sglsortexamine(max(3),B2);RIB3,CIB3=sglsortexamine(max(4),B3);RIB4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論