1. 程式人生 > 其它 >【數學建模】層次分析演算法

【數學建模】層次分析演算法

演算法思路(AHP):

一、層次分析結構及思路

層次分析結構分為三部分:目標層、準則層、方案層

目標層:所求解問題

準則層:影響目標層的因素

方案層:所比較的幾個方案

二、層次分析實現步驟

建立層次結構模型

構造判斷

層次單排序

層次總排序

三、程式實現:

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);

作者:TangBao~

-------------------------------------------

個性簽名:啦啦啦~這是個勤快的作者呢~(っ•̀ω•́)っ✎⁾⁾!