使用Matlab实现AHP算法

clc,clear 
fid=fopen('txt3.txt','r'); 
n1=6;n2=3; 
a=[]; 
for i=1:n1 
tmp=str2num(fgetl(fid)); 
a=[a;tmp]; %读准则层判断矩阵
end 


for i=1:n1 
str1=char(['b',int2str(i),'=[];']); 
str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']); 
eval(str1); 
for j=1:n2 
tmp=str2num(fgetl(fid)); 
eval(str2); %读方案层的判断矩阵
end 
end 




ri=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]; %一致性指标
[x,y]=eig(a); 
lamda=max(diag(y)); 
num=find(diag(y)==lamda); 
w0=x(:,num)/sum(x(:,num)); %w0表示特征向量除以特征向量的代数和,表示层次单排序


cr0=(lamda-n1)/(n1-1)/ri(n1) %表示准则层判断矩阵的一致性检验
for i=1:n1 
[x,y]=eig(eval(char(['b',int2str(i)]))); 
lamda=max(diag(y)); 
num=find(diag(y)==lamda); 
w1(:,i)=x(:,num)/sum(x(:,num)); %表示方案层各个判断矩阵的层次单排序,层次总排序矩阵等于准则层层次单排序乘以方案曾层次单排序
cr1(i)=(lamda-n2)/(n2-1)/ri(n2); %表示方案层各个判断矩阵的一致性检验
end 
cr0,cr1, ts=w1*w0, cr=cr1*w0 %打印出一致性检验标准和层次总排序
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值