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

下載本文檔

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

文檔簡(jiǎn)介

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

2、層編程,從而可以把主要精力和時(shí)間花在科學(xué)研究和解決實(shí)際問(wèn)題是上,提高了工作效率。1.1 MATLAB矩陣矩陣是MATLAB的基本處理對(duì)象,因此根據(jù)本文所需,簡(jiǎn)單介紹所涉及MATLAB矩陣內(nèi)容。1.1.1 MATLAB矩陣的建立1、直接輸入法最簡(jiǎn)單的建立矩陣的方法是從鍵盤直接輸入矩陣的元素。例如:A=1 2 3;4 5 6;7 8 9A = 1 2 3 4 5 6 7 8 9也可以用回車鍵代替分號(hào),按下列方式輸入:A=1 2 3 4 5 6 7 8 9 2、利用M文件建立矩陣比較大且復(fù)雜的矩陣,可以為它專門建立一個(gè)M文件,如同下例。利用M文件建立矩陣。啟動(dòng)有關(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,即運(yùn)行該M文件,就會(huì)自動(dòng)建立一個(gè)名為MYMAT的矩陣,可供以后使用。1.1.2 矩陣的特征值與特征向量特征值和特征向量在科學(xué)研究和工程計(jì)算中都有非常廣泛地應(yīng)用。在MATLAB中,計(jì)算矩陣A的特征值和特征向量的函數(shù)是eig(A),常用的調(diào)用格式有3種14:E = eig( A ) :求矩陣A的全部特征值,構(gòu)成向量E

4、。V,D=eig(A):求矩陣A的全部特征值,構(gòu)成對(duì)角矩陣D,并求A得特征向量構(gòu)成V的列向量。V,D=eig(A,nobablance):與第2種格式中先對(duì)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個(gè)特征值是-0.0166、1.4801和2.5365,

5、各特征值對(duì)應(yīng)的特征向量為V的各列構(gòu)成的向量。1.2 MATLAB的M文件用MATLAB語(yǔ)言編寫的程序稱為M文件。M文件是由若干MATLAB命令組成在一起構(gòu)成的,它可以完成某些操作,也可以實(shí)現(xiàn)某種算法。M文件可以根據(jù)調(diào)用方式的不同分為兩類:命令文件(Script File)和函數(shù)文件(Function File)。它們的擴(kuò)展名均為.m。 函數(shù)文件由function語(yǔ)句引導(dǎo),其基本結(jié)構(gòu)為:function 輸出形參表=函數(shù)名(輸入形參表)注釋說(shuō)明部分函數(shù)體語(yǔ)句我們通過(guò)舉例說(shuō)明如下:例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實(shí)現(xiàn)21 A

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

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

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

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

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

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

13、ec(A) %求最大特征值及對(duì)應(yīng)的歸一化特征向量 %A為判斷矩陣eigvec,eigval=eig(A);eigval=diag(eigval); %特征向量eigvalmag=imag(eigval);realind=find(eigvalmag<eps);realeigval=eigval(realind); %實(shí)特征根maxeigval=max(realeigval) %最大特征值index=find(eigval=maxeigval);vecinit=eigvec(:,index); %最大特征值對(duì)應(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運(yùn)行結(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 一致性檢驗(yàn)及單排序的MATLAB實(shí)現(xiàn)由AHP的MATLAB的計(jì)算流程圖知,必須對(duì)各層次間的判斷矩陣進(jìn)行層次單排序和一致性檢驗(yàn)。因此,定義sglsortexamine.m函數(shù)來(lái)實(shí)現(xiàn)層次單排序的一致性檢驗(yàn)。function RI,CI=sglsortexamine(maxeigval,A)%層次分析法單排序一致性檢驗(yàn)%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('矩陣沒(méi)通過(guò)一致性檢驗(yàn),請(qǐng)重新調(diào)整判斷矩陣')else disp(input('矩陣通過(guò)一致性檢驗(yàn)');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);運(yùn)行結(jié)果如下:矩陣通過(guò)一致性檢驗(yàn)矩陣通過(guò)一致性檢驗(yàn)矩陣通過(guò)一致性檢驗(yàn)矩陣通過(guò)一致性檢驗(yàn)2.3.3 一致性檢驗(yàn)及總排序的MATLAB實(shí)現(xiàn)通過(guò)層次單排序(權(quán)重)計(jì)算后,進(jìn)行層次合成計(jì)算,在此本文定義tolsortvec.m函數(shù)計(jì)算層次總排序的權(quán)重并進(jìn)行一致性檢驗(yàn)。function tw=tolsortvec(utw,dw,CIC,RIC)% 求層次總排序權(quán)重并進(jìn)行一致性檢驗(yàn)% utw為上一層因素的總排序權(quán)重行向量% dw為下一層因素相對(duì)于上一層各因素的層次單排序權(quán)重矩陣% CIC為一致性指標(biāo)列向量% RIC為隨機(jī)一致性指標(biāo)列向量tw=dw*utwCR=utw'*CIC/(utw

18、'*RIC);if CR>=0.10 disp(input('層次總排序沒(méi)通過(guò)一致性檢驗(yàn),請(qǐng)重新調(diào)整判斷矩陣');else disp(input('層次總排序通過(guò)一致性檢驗(yàn)');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);運(yùn)行結(jié)果如下:tw=0.42470.21230.06670.16460.0270

19、0.06980.0349層次總排序通過(guò)一致性檢驗(yàn)其中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)排序計(jì)算出層次總排序后,為了使決策者能迅速得出

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

21、題,發(fā)展前途,待遇,同事情況,地理位置,單位名氣等。根據(jù)層次分析法,試求該生工作優(yōu)先排序(給出權(quán)值、計(jì)算程序),并給出最終選擇決策。現(xiàn)以A、B、C表示選擇工作的三個(gè)層次,建立如下結(jié)構(gòu)模型:圖3 選擇單位層次結(jié)構(gòu)圖根據(jù)成對(duì)比較法,得到相應(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); %隨機(jī)一致性指標(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 通過(guò)一致性檢驗(yàn)!n',CRn); %控制文本格式 else fprintf('A 的CR %f 未通過(guò)一致性檢驗(yàn)!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、過(guò)一致性檢驗(yàn)!n',k,CRm(1,k); %控制文本格式 else fprintf('B%d的CR %f 未通過(guò)一致性檢驗(yàn)!n',k,CRm(1,k); end enddisp('準(zhǔn)則層對(duì)目標(biāo)層權(quán)向量'); disp(WA);disp('方案層對(duì)準(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 通過(guò)一致性檢驗(yàn)!n',CRn); else fprintf('組合一致性比率CR %f 未通過(guò)一致性檢驗(yàn)!n',CRn); endMAX,CHOICE = max(E); %最佳選擇CHOICE MATLAB運(yùn)行結(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 通過(guò)一致性檢驗(yàn)!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 通過(guò)一致性檢驗(yàn)!B2的CR 0.021207 通過(guò)一致性檢驗(yàn)!B3的CR 0.006034 通過(guò)一致性檢驗(yàn)!B4的

34、CR 0.055948 通過(guò)一致性檢驗(yàn)!B5的CR 0.000000 通過(guò)一致性檢驗(yàn)!B6的CR 0.006034 通過(guò)一致性檢驗(yàn)!準(zhǔn)則層對(duì)目標(biāo)層權(quán)向量 0.1507 0.1792 0.1886 0.0472 0.1464 0.2879方案層對(duì)準(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 通過(guò)一致性檢驗(yàn)!CHOICE = 12)、M文件法:根據(jù)第三章節(jié)的層次分析法各環(huán)節(jié)的MATLAB實(shí)現(xiàn)定義如下三個(gè)函數(shù):(1) 定義maxeigvalvec.m來(lái)實(shí)現(xiàn)最大特征根及對(duì)應(yīng)的歸一化特征向量。functionmaxeigval,w=maxeigvalvec(A) %求最大特征值及對(duì)應(yīng)的歸一化特征向量 %A為判斷矩陣eigvec,eigval=eig(A);eigval=diag(eigval); %特征向量eigvalmag=imag(eigval);realind=find(eigvalmag<eps);realeigval=e

36、igval(realind); %實(shí)特征根maxeigval=max(realeigval) %最大特征值index=find(eigval=maxeigval);vecinit=eigvec(:,index); %最大特征值對(duì)應(yīng)的特征向量w=vecinit./sum(vecinit) %特征向量歸一化(2)定義sglsortexamine.m函數(shù)來(lái)實(shí)現(xiàn)層次單排序的一致性檢驗(yàn)。function RI,CI=sglsortexamine(maxeigval,A)%層次分析法單排序一致性檢驗(yàn)%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('矩陣沒(méi)通過(guò)一致性檢驗(yàn),請(qǐng)重新調(diào)整判斷矩陣')else disp(input('矩陣通過(guò)一致性檢驗(yàn)');end(3)定義tolsortvec.m函數(shù)計(jì)算層次總排序的權(quán)重并進(jìn)行一致性檢驗(yàn)。function tw=tolsortvec(utw,dw,CIC,RIC)% 求層次總排序權(quán)重并進(jìn)行一致性檢驗(yàn)% utw為上一層因素的總排序權(quán)重行向量% dw為下一層因素相

38、對(duì)于上一層各因素的層次單排序權(quán)重矩陣% CIC為一致性指標(biāo)列向量% RIC為隨機(jī)一致性指標(biāo)列向量tw=dw*utw;CR=utw'*CIC/(utw'*RIC);if CR>=0.10 disp(input('層次總排序沒(méi)通過(guò)一致性檢驗(yàn),請(qǐng)重新調(diào)整判斷矩陣');else disp(input('層次總排序通過(guò)一致性檢驗(yàn)');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),B

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論