用matlab层次费明细发,MATLAB实现层次分析程序

层次分析法(AHP)适用于那些难于完全定量分析的问题。运用层次分析建模,大体上可按下面四个步骤进行:

(1)建立递阶层次结构模型;

(2)构造出各层次中的所有判断矩阵;

(3)层次单排序及一致性检验;

(4)层次总排序及一致性检验;

最后,根据总排序权值大小得出决策方案。

MATLAB程序如下:

%层次分析法的matlab程序

disp('请输入判断矩阵A(n阶)');

A=input('A=');

[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));

w=y(:,i)/a;

t=m(i);

disp(w);disp(t);

%以下是一致性检验

CI=(t-n)/(n-1);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];

CR=CI/RI(n);

if CR<0.10

disp('此矩阵的一致性可以接受!');

disp('CI=');disp(CI);

disp('CR=');disp(CR);

end

输入所构造的矩阵后,可以得出矩阵是否具有较满意的一致性并接受分析结果。(该程序用于层次单排序及一致性检验)

接下来进行层次总排序检验:

在上一程序中可依次得到准则层单排序权值B=[b1 b2......

bn];

方案层单排序权值C1=[c1 c2......,cn];

C2=[m1

m2....,mn];

...........;

Cn=[k1 k2......,kn];

则总排序权值:W1=sum(B.*C1);

W2=sum(B.*C2);

W3=sum(B.*C3);

最后根据总排序权值W的大小来得出决策方案,总排序权值越大,则满意度越大。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值