matlab——層次分析法

disp('請輸入準則層判斷矩陣A(n階)');
A=input('A=');
[n,n]=size(A);
[V,D]=eig(A);%求得特徵向量和特徵值
            %求出最大特徵值和它所對應的特徵向量
tempNum=D(1,1);
pos=1;
for h=1:n
    if D(h,h)>tempNum
        tempNum=D(h,h);
        pos=h;
    end
end    
w=abs(V(:,pos));
w=w/sum(w);
t=D(pos,pos);
disp('準則層特徵向量w=');disp(w);disp('準則層最大特徵根t=');disp(t);
         %以下是一致性檢驗
CI=(t-n)/(n-1);RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59 1.60 1.61 1.615 1.62 1.63];
CR=CI/RI(n);
if CR<0.10
    disp('此矩陣的一致性可以接受!');
    disp('CI=');disp(CI);
    disp('CR=');disp(CR);
else disp('此矩陣的一致性驗證失敗,請重新進行評分!');
end


disp('請輸入方案層各因素對準則層各因素權重的成對比較陣');
for i=1:n
    disp('請輸入第');disp(i);disp('個準則層因素的判斷矩陣B');disp(i);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章