matlab實現:
%層次分析法(ahp)
disp('請輸入判斷矩陣a(n階)');
a = input('a=');
[n,n] = size(a);
x = ones(n,100);
y = ones(n,100);
m = zeros(1,100);
m(1) = max(x(:,1));
y(:,1) = x(:,1);
x(:,2) = a*y(:,1);
m(2) = max(x(:,2));
y(:,2) = x(:,2)/m(2);
p=0.0001; i=2; k=abs(m(2)-m(1));
while k>p
i=i+1;
x(:,i) = a*y(:,i-1);
m(i) = max(x(:,i));
y(:,i) = x(:,i)/m(i);
k=abs(m(i)-m(i-1));
enda = sum(y(:,i));
w = y(:,i)/a;
t = m(i);
disp(w);
%一致性檢驗
ci = (t-n)/(n-1);
ri = [0 0 0.52 0.89 1.12 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];
cr = ci/ri(n);
if cr<0.10
disp('此矩陣一致性可以接受!');
disp('ci=');disp(ci);
disp('cr=');disp(cr);
end
成對比較矩陣
因素i比因素j
量化值同等重要
1稍微重要
3較強重要
5強烈重要
7極端重要
9兩相鄰判斷的中間值
2,4,6,8
表1 比例標度表ps:層次分析法,真的很實用t^t
其他**:
%層次分析法判別矩陣的一致性檢驗**
clc,clear
p=input('p=');%判別矩陣
[l,g]=eig(p);%求特徵根和相應的特徵向量
w=l(:,1)/sum(l(:,1));%歸一化特徵向量近似為權重值
max=max(eig(p));%求最大特徵根
n=size(p);
ci=(max-3)/(3-1);
ri=1.12; %查表對應 n=3 的情況
cr=ci/ri
if cr>=0.1
error('a 不通過一致性檢驗')
end
層次分析法MATLAB
輸入成對比較矩陣,輸出權重值和一致性檢驗結果。disp 請輸入判斷矩陣a n階 a input a n,n size a x ones n,100 y ones n,100 m zeros 1,100 m 1 max x 1 y 1 x 1 x 2 a y 1 m 2 max x 2 y 2 x 2...
層次分析法(Matlab實現)
基本步驟 1.建立層次分析結構模型。常見的有目標層 準則層 方案層模型。2.構造成對比較矩陣。常用的有1 9尺度。尺度大小取決於下層的元素個數。3.計算權向量並作一致性檢驗。引入一致性指標ci,ci越大,不一致越嚴重。引入隨機一致性指標ri。定義一致性比率cr ci ri。cr 0.1時,通過一致性...
層次分析法
ahp分析方法,其基本步驟可歸納為 1 建立遞階層次結構 建立遞階層次結構是ahp法中關鍵一步,如圖所示。首先,把複雜問題中所包含的因素分解為不同層次。同一層次的因素作為準則對下一層次的某些因素起支配作用,同時,它又受上乙個層次因素的支配。這種從上到下的支配關係形成了乙個遞階層次結構,處於最上層的是...