MATLAB AHP(層次分析法求解)

2021-08-20 12:22:53 字數 1865 閱讀 1089

%層次分析法,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.26,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

j=1;

while j<=n

disp('請輸入判斷矩陣b(n階)');

b=input('b=');

[n1,n1]=size(b);

w=;x=ones(n1,100);

y=ones(n1,100);

m=zeros(1,100);

m(1)=max(x(:,1));

y(:,1)=x(:,1);

x(:,2)=b*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)=b*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(j,:)=y(:,i)/a;

t=m(i);

disp(w(j,:));

%以下是一致性檢驗

% ci=(t-n1)/(n1-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];

% cr=ci/ri(n1);

% if cr<0.10

%     disp('此矩陣的一致性可以接受');

%     disp('ci=');disp(ci);

%     disp('cr=');disp(cr);

% end

j=j+1

end%求解--看最後是哪個選項的分數最高

disp('最後結果');

u=1;

z=zeros(1,15);

while u<=n1

for t=1:n

z(1,u)=w(t)*w(t,u)+z(1,u);

endu=u+1;

enddisp(z);



matlab AHP層次分析法

建立層次結構模型 將決策的目標 考慮的因素 決策準則 和決策物件按它們之間的相互關係分為最高層 中間層和最低層,繪出層次結構圖。構造判斷矩陣 在確定各層次各因素之間的權重時,如果只是定性的結果,則常常不容易被別人接受,因而saaty等人提出 一致矩陣法,即 不把所有因素放在一起比較,而是兩兩相互比較...

層次分析法

ahp分析方法,其基本步驟可歸納為 1 建立遞階層次結構 建立遞階層次結構是ahp法中關鍵一步,如圖所示。首先,把複雜問題中所包含的因素分解為不同層次。同一層次的因素作為準則對下一層次的某些因素起支配作用,同時,它又受上乙個層次因素的支配。這種從上到下的支配關係形成了乙個遞階層次結構,處於最上層的是...

層次分析法

此方法的步驟 1.建立有目標層 準則層 方案層等構成的層次結構 2.構造下層各元素對上層每一元素的成對比較矩陣 3.計算各個成對比較矩陣的特徵根和特徵向量,做一致性檢驗,通過後將特徵向量取做權向量 4.用分層加權和法計算最下層元素對最上層元素的權重 即逐層矩陣相乘 關於一致性檢驗,n階成對比較矩陣的...