matlab层次分析法迅速求权重

层次分析法是一种用处非常广的决策算法

虽然内容等于拍脑袋,不过有时候我们就是需要为拍脑袋找到合适的说法。

虽然它往往用于解决多目标选择的问题,但我们也可对其因素进行分析,来得到一个因素权重。

当然对于各因素求权重,需要建立一个评价矩阵(也就是拍脑袋)

本段matlab代码即时利用评价矩阵求权重的内容,相当于目标决策的前半段部分,非常简单实用。

%层次分析法
A=[1 1/4 1/2 1/3 1/9;4 1 3 2 1/4;2 1/3 1 1/2 1/7;3 1/2 2 1 1/5;9 4 7 5 1];
[n,n]=size(A);
x=ones(n,100);
y=ones(n,100);
m=zeros(1,100);
m(1)=max(x(:,1))
y(:,1)=x(:,1);
x(:,2)=A*y(:,1);
m(2)=max(x(:,2))
y(:,2)=x(:,2)/m(2);
p=0.0001;i=2;k=abs(m(2)-m(1));
while k>p
i=i+1;
x(:,i)=A*y(:,i-1);
m(i)=max(x(:,i));
y(:,i)=x(:,i)/m(i);
k=abs(m(i)-m(i-1));
end
a=sum(y(:,i));
31
w=y(:,i)/a;
t=m(i)
disp(w)
[v,d]=eig(A);
r=d(1,1);
CI=(r-n)/(n-1);
RI=[0 0 0.58 0.9 1012 1.24 1.32 1.41 1.45]
CR=CI/RI(n)
if CR<0.1
CR_result='通过'
else
CR_result='不通过'
end
disp('CR_result')

 

 

  • 17
    点赞
  • 122
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值