MATLAB學習 層次分析法(AHP)

2021-09-25 18:05:32 字數 1411 閱讀 5508

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法中關鍵一步,如圖所示。首先,把複雜問題中所包含的因素分解為不同層次。同一層次的因素作為準則對下一層次的某些因素起支配作用,同時,它又受上乙個層次因素的支配。這種從上到下的支配關係形成了乙個遞階層次結構,處於最上層的是...