找回密码
 注册
关于网站域名变更的通知
查看: 349|回复: 1
打印 上一主题 下一主题

层次分析法(AHP)—matlab实现

[复制链接]
  • TA的每日心情
    开心
    2019-11-20 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-5-7 09:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x

    - O) z  q' j7 U1 P

    7 `! q, _5 f/ I1 \层次分析法(AHP)—matlab实现

    & ?8 h- r- r  K5 H" F8 i# u
    & ?  o! W; ?- v& ?. T    层次分析法是一种主观的决策方法,可以用来确定一些指标权重,辅助决策依据的一种定性分析方法,层次分析法运用前需要构造层次模型:决策层,中间层(指标层),底层(选择层);形成等级层次;然后构造两两对比矩阵,通过9分位数来进行构造;对对比矩阵进行求最大特征值和特征向量,进行一致性检验;最后得到权重向量。具体实现过程如下Matlab程序:
    1 v# w, }  M. J$ Q6 W5 X0 rclc;# W: G% f4 N) G1 o. N0 C
    clear;
    2 I9 \# G1 i9 |+ |: y! Z; L>> A=[1 1 1 4 1 1/2;
    " d. f; Y5 v9 v) I3 h) p1 1 2 4 1 1/2;8 p& Z4 x& i; M
    1 1/2 1 5 3 1/2;2 q3 K4 e, C: S9 g' }* z
    1/4 1/4 1/5 1 1/3 1/3;- P8 _$ X. {! B7 w/ y/ r% p+ M
    1 1 1/3 3 1 1/3;
    / H) f2 m1 U5 H- j5 ]: Y) H2 g2 2 2 3 3 1]- \. a! x: ~3 w& {7 b& s
                               
    + |5 p5 z& ^3 V& }# Z6 |% g                                   %因素对比矩阵A,只需要改变矩阵A" }/ O5 A1 P* T) u. t+ p/ {! y' r# t
    [m,n]=size(A);                     %获取指标个数
    ! }$ o+ v- b  f) Y& `8 s  s4 `RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];
    ! N% _# \6 O, P$ d1 yR=rank(A);                         %求判断矩阵的秩
    * a6 m) x+ T1 Z& n9 l" ~& A[V,D]=eig(A);                      %求判断矩阵的特征值和特征向量,V特征值,D特征向量;
    7 z$ r7 O0 w& _6 @1 _/ E" A$ ?# Xtz=max(D);( V5 [, z3 v2 D/ M
    B=max(tz);                         %最大特征值
    ' N# s! E6 F& B9 n* o[row, col]=find(D==B);             %最大特征值所在位置
    # }, N4 D- ?1 NC=V(:,col);                        %对应特征向量( G& b( A; C4 {+ z7 `: k( z, x( l
    CI=(B-n)/(n-1);                    %计算一致性检验指标CI
    / |" j9 R8 f. @8 q5 m$ ?' J0 WCR=CI/RI(1,n);   
    % ^! f# H' g% p1 mif CR<0.10( w1 l1 P  g! ^0 K6 n
        disp('CI=');disp(CI);: s# A- L/ U# B% D* h2 _. C2 ^
        disp('CR=');disp(CR);2 e+ K5 |0 J% G3 W! }
        disp('对比矩阵A通过一致性检验,各向量权重向量Q为:');7 w0 ?' A5 o1 i1 ~, K  m
        Q=zeros(n,1);' ]3 Q8 J8 \' q9 @& @0 b2 F
        for i=1:n
    # H* h5 H" W( m" Y0 D$ A        Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化
    / i8 K2 _# M0 o8 r0 H    end
    & G4 [7 ]: X! y    Q                              %输出权重向量
    : @) ]: Y9 N/ telse) p& G% \( i; ]4 L. L
        disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');! ?' B# w% ?9 t7 a' J
    end( j6 o$ O: E' K" B) `4 K
  • TA的每日心情
    开心
    2019-11-29 15:38
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2#
    发表于 2020-5-7 15:21 | 只看该作者
    层次分析法(AHP)很多地方都能用到。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-23 00:45 , Processed in 0.062500 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表