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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    ) K9 b( r% d- q1 U

    + _0 i+ ~* w, @% w8 r7 [层次分析法(AHP)—matlab实现
    4 E$ K) A" Z' e! X
    * l6 L  k" G4 {; n1 b' R
        层次分析法是一种主观的决策方法,可以用来确定一些指标权重,辅助决策依据的一种定性分析方法,层次分析法运用前需要构造层次模型:决策层,中间层(指标层),底层(选择层);形成等级层次;然后构造两两对比矩阵,通过9分位数来进行构造;对对比矩阵进行求最大特征值和特征向量,进行一致性检验;最后得到权重向量。具体实现过程如下Matlab程序:/ i0 r: ?& ^/ {
    clc;2 t; @3 k. b3 x: a5 }( Z
    clear;# ?8 d: c8 q! O4 s7 Q
    >> A=[1 1 1 4 1 1/2;5 S' u0 o* x# d$ s& V$ {2 W
    1 1 2 4 1 1/2;
    ; V+ _. v. J$ @( H3 @4 b! w1 1/2 1 5 3 1/2;2 l; q8 g/ v. U5 O& h# F
    1/4 1/4 1/5 1 1/3 1/3;
    5 T; s5 N3 B# I! v8 I. T' Q1 1 1/3 3 1 1/3;
    + ^, F7 u3 @9 c0 Z2 2 2 3 3 1]* p5 }( s# J2 [$ T* ]& _: A* t
                               & t$ p; k- D) P
                                       %因素对比矩阵A,只需要改变矩阵A$ d7 T2 @+ e8 k! S7 H8 T. w* U
    [m,n]=size(A);                     %获取指标个数
    + ?; ?; Y8 _0 z. x# Q% ?6 K0 ARI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];
    2 Z$ S( j# B4 K8 P/ ]R=rank(A);                         %求判断矩阵的秩
    4 r7 w; v2 O& z* y9 v[V,D]=eig(A);                      %求判断矩阵的特征值和特征向量,V特征值,D特征向量;
    , e- n5 r: z' w/ n4 M' j) z4 xtz=max(D);
    2 B; V' G1 O, {1 |B=max(tz);                         %最大特征值
    ! Z; ?. @' G( d3 S1 K+ E5 I1 ~$ t[row, col]=find(D==B);             %最大特征值所在位置
      Z, c$ F. O6 [' @, l. {C=V(:,col);                        %对应特征向量4 O1 j$ j8 U7 o" H% ?7 k
    CI=(B-n)/(n-1);                    %计算一致性检验指标CI
    6 t3 P  p3 e/ z- n0 V2 l$ m: q, uCR=CI/RI(1,n);   5 B3 M" F7 B1 R
    if CR<0.10! Z' j. }8 M3 |$ e* b3 P
        disp('CI=');disp(CI);( I. e8 i( j& m& M( ]3 O
        disp('CR=');disp(CR);
    & S) y8 Q$ ^) j) k- D0 ^/ D7 T    disp('对比矩阵A通过一致性检验,各向量权重向量Q为:');
    1 `! p& D, k' T) J& R; V6 v    Q=zeros(n,1);
    - n1 {0 z% j8 s    for i=1:n
    7 Q" o# F' g$ D4 F2 O4 K' R        Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化" r: J, ~7 N/ i7 a% M& i
        end
    ( I3 T2 P& A: e# z# Y5 b    Q                              %输出权重向量
    " N9 @6 z: G) o: ^7 uelse
    ( B3 z. o5 H; Z( ^    disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');
    9 h0 q) y. s% Pend) {9 Z6 n+ {* P$ ?0 {
  • 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-7-22 13:55 , Processed in 0.109375 second(s), 24 queries , Gzip On.

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

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

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