基于matlab实现层次分析的算法

层次分析(AHP),以一个准则层判断矩阵和四个方案层判断矩阵为例,包括一致性检验、特征向量、特征值的计算。我们以特征向量作权重向量,直接输出。

代码如下:

format short clc; clear ri=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]; A=input('请输入决策层判断矩阵:'); B = input('请输入方案层判断矩阵集合:'); [C,D]=eig(A); shape = length(eig(D)); lamda = max(diag(D)); RI = ri(length(D)) CI = (roundn(lamda,-10)-shape)/(shape-1) CR = CI/RI if CR<0.10 loc = find(diag(D)==lamda); W0 = C(:,loc)./sum(C(:,loc)) else disp('该矩阵未通过一致性检验,请修正后重试') end C = []; for i = 1:length(B) sprintf('方案层第%s个判断矩阵',num2str(i)) [E,F] = eig(B{i}); shape = length(eig(B{1})); lamda = max(diag(F)); RI = ri(length(B{1})) CI = (roundn(lamda,-10)-shape)/(shape-1) CR = CI/RI if CR<0.10 loc = find(diag(F)==lamda); Wi = E(:,loc)./sum(E(:,loc)) C = [C,Wi]; else disp('该矩阵未通过一致性检验,请修正后重试') end end goal = C*W0

 


__EOF__

本文作者邹河的web
本文链接https://www.cnblogs.com/zouhe520/p/15837615.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   清明。  阅读(225)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示