資源簡介
層次分析法(AHP)源碼,新手親測親寫,寫的比較簡單,有問題留言回復

代碼片段和文件信息
%?子函數?層次單排序
function?[eigenvalueMaxCRw]?=?AHPfun(matrix);
%%?AHP?step1:計算各判斷矩陣最大特征值
%?[vd]?=?eig(m);?
%?V是以列向量對應的特征向量
%?D是對角線上為特征值的矩陣
[MaMad]?=?eig?(matrix);
%?取出對角線元素為特征值
D?=?diag(Mad);?
[D?I]?=?sort(D?‘descend‘);
%?最大特征值
eigenvalueMax?=?max(D);
%%?AHP?step2:計算CR?檢驗判斷矩陣一致性
%?獲取判斷矩陣自由度
[mn]=size(matrix);
%?錄入RI?平均隨機一致性指標
RI?=?[?0?0?0.58?0.90?1.12?1.24?1.32?1.41?1.45?]?;
if?m?>?9
????RIvalue?=?1.45?;
else?
????RIvalue?=?RI(m)?;
end
%?計算CI
CI?=?(eigenvalueMax-m)/(m-1)?;
%?計算CR
CR?=?CI?/?RIvalue?;
%%?AHP?step3:層次單排序
%?計算判斷矩陣每一行乘積
multValue?=?ones(1m)?;
for?i=?1:m
????for?j=1:n
????????multValue(1i)?=?multValue(1i)?*?matrix(ij)?;
????end
end
%?對乘積以自由度開根號
powValue?=?ones(1m)?;
for?i=1:m
????powValue(1i)=(?multValue(1i).^(1/m)?);
end
?%?歸一化求權重值
?sumValue?=?sum(powValue2)?;
?w?=?ones(1m)?;
?for?i=1:m
????w(1i)=?powValue(1i)?/?sumValue?;
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1880??2016-09-16?19:55??AHPmain.m
?????文件????????1034??2016-04-09?10:14??AHPmodel.m
?????文件?????????198??2016-04-09?21:59??matrixMult.m
?????文件?????????220??2016-09-06?20:03??AHP_CR.m
?????文件?????????847??2016-09-06?22:17??AHP_Eigenvector.m
?????文件????????1717??2015-10-25?18:08??AHP_Weights.m
?????文件?????????453??2015-10-25?21:34??AHP_WeightsSequence.m
?????文件????????1051??2016-04-09?10:19??AHPfun.m
- 上一篇:遞歸下降語法分析實驗報告
- 下一篇:suitecrm7.10.7 中文語言包
評論
共有 條評論