层次分析法(迭代逼近法、和法)

层次分析法(迭代逼近法)
算例
算
在这里插入图片描述

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%层次分析法(方法一:迭代逼近法)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%输入判断矩阵
clc;
clear;
a=[1 1/2 4 3 3;2 1 7 5 5;1/4 1/7 1 1/2 1/3;1/3 1/5 2 1 1;1/3 1/5 3 1 1];
b=0.001;            %设置精度
w=[0 1 0 0 0]' ;%输入初始特征向量,特征向量需要满足一定要求即可
k=(1);
j=2;
w(:,2)=a*w(:,1)./k(1);
k(2)=max(w(:,2));
c=max(abs(w(:,2)./k(2)-w(:,1)./k(1)));
while c>=b
    j=i+1;
    for i=1:j
    w(:,i+1)=a*w(:,i)./k(i);
    k(i+1)=max(w(:,i+1));
    c=max(abs(w(:,i+1)./k(i+1)-w(:,i)./k(i)));
    end
end
    %最终值权重归一化
    wend=w(:,j+1)./k(j+1)./sum(w(:,j+1)./k(j+1)); 
%一致性检验
x=[];
d=w(:,size(w,2));
for i=1:size(a,1)
    for j=1:size(a,1)
        x(i,j)=a(i,j)./(d(i)/d(j));
    end
end
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];
y=sum(sum(x))/(size(w,2));
CI=(y-size(w,1))/(size(w,1)-1);
CR=CI/RI(size(w,1));
if CR<=0.1
    disp('通过一致性检验')
else 
    disp('未通过一致性检验')
end

层次分析法(和法)。未进行一致性检验
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
clear;
a=[1 1/2 4 3 3;2 1 7 5 5;1/4 1/7 1 1/2 1/3;1/3 1/5 2 1 1;1/3 1/5 3 1 1];
for i=1:size(a,1)
for j=1:size(a,1)
b(j)=sum(a(:,j));
d(i)=sum(a(i,j)/b(j));
A(i,j)=a(i,j)/b(j);
e(i)=sum(A(i,:))./(size(a,1));
end
end

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值