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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    $ b' {7 H) b; \0 F7 O& L2 A
    # `; @" c* Y( }- e
    层次分析法(AHP)—matlab实现
    $ g, U3 }% h$ m( X

    / ^6 J) c. _4 J0 }- O3 W    层次分析法是一种主观的决策方法,可以用来确定一些指标权重,辅助决策依据的一种定性分析方法,层次分析法运用前需要构造层次模型:决策层,中间层(指标层),底层(选择层);形成等级层次;然后构造两两对比矩阵,通过9分位数来进行构造;对对比矩阵进行求最大特征值和特征向量,进行一致性检验;最后得到权重向量。具体实现过程如下Matlab程序:% Y: u# P, Q! N) @* ~
    clc;! s5 S4 v3 [+ O  [
    clear;
    : K% [7 f( s% V9 F! B) c>> A=[1 1 1 4 1 1/2;
    ; ?$ ?1 Q$ I6 ]+ T; ^3 n! c1 1 2 4 1 1/2;9 i5 Z  a2 h. C9 c. P& T
    1 1/2 1 5 3 1/2;
    ! O- v/ C1 J, d: U9 v8 ^4 Y1/4 1/4 1/5 1 1/3 1/3;
    - |, t& ~" o9 A/ }& c3 f) E$ u1 1 1/3 3 1 1/3;! k7 \( v& D* S8 W/ P3 v
    2 2 2 3 3 1]+ k/ ~. s& c% Z# T, O3 `5 N0 f
                               
    0 W: a) U5 c3 O, t  e                                   %因素对比矩阵A,只需要改变矩阵A
    1 R; c  j! ]2 c% a& l  V% H[m,n]=size(A);                     %获取指标个数
    # y* C2 v$ a' y/ w8 P2 I( ~RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];$ _) n  b2 Q  _/ q! }8 U
    R=rank(A);                         %求判断矩阵的秩9 d. A8 j( T0 |+ V, J9 V
    [V,D]=eig(A);                      %求判断矩阵的特征值和特征向量,V特征值,D特征向量;/ x5 T4 C, Q% J/ Y- x' b
    tz=max(D);, A  S- ?3 t+ B6 P8 K9 Q
    B=max(tz);                         %最大特征值5 }8 M+ f" u' d5 d/ e
    [row, col]=find(D==B);             %最大特征值所在位置. E' N# w4 K- e; d
    C=V(:,col);                        %对应特征向量
    4 x. h; S4 I2 R; f+ ~" h( m: J; ICI=(B-n)/(n-1);                    %计算一致性检验指标CI
    & v1 Y. z. n+ D7 r3 [7 i7 @CR=CI/RI(1,n);   
    5 o  D" p9 p" \3 W5 v* A* y! x% iif CR<0.10' d2 `# L: h: \/ O& r# U
        disp('CI=');disp(CI);4 o1 E; @; t4 N$ v
        disp('CR=');disp(CR);
    - ~2 v9 d' i0 a. a$ I    disp('对比矩阵A通过一致性检验,各向量权重向量Q为:');9 `5 T" u4 |/ V* L& t. y, s! S
        Q=zeros(n,1);
      T$ F  Y/ V* ]5 I( S2 X! L6 \    for i=1:n
    & D; o9 |% H2 V9 F% ~0 b$ t- r        Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化9 t8 m# q4 s0 U6 L0 x
        end3 A( [8 I7 D$ s* g) ?, a
        Q                              %输出权重向量
    / \+ b: p6 x5 D# V6 }7 melse
    ( a6 G5 q, H# ]% E. n! a& i    disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');
    1 s9 A) n7 Q) {$ k* ^3 `end
    ( F; `% K& ^% p0 [8 D9 E
  • 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-11-24 11:20 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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