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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x

    5 f0 E, v6 ?3 Q; B* Y
    # Y0 |9 [, c6 _/ L3 I
    层次分析法(AHP)—matlab实现
    - ]8 _/ b, G0 ~. y
    ( {1 F0 `6 o$ T8 _2 o( N- s5 g
        层次分析法是一种主观的决策方法,可以用来确定一些指标权重,辅助决策依据的一种定性分析方法,层次分析法运用前需要构造层次模型:决策层,中间层(指标层),底层(选择层);形成等级层次;然后构造两两对比矩阵,通过9分位数来进行构造;对对比矩阵进行求最大特征值和特征向量,进行一致性检验;最后得到权重向量。具体实现过程如下Matlab程序:
    3 o3 o2 Z8 a7 O# S& hclc;$ V4 N) E# @0 u4 B
    clear;0 o/ E+ t  D9 E3 S& T5 Z6 t
    >> A=[1 1 1 4 1 1/2;
    ! e/ d7 E- o" t4 f- ^1 1 2 4 1 1/2;$ u; }( W0 N7 W* r3 }- V
    1 1/2 1 5 3 1/2;
    + W: C) E6 A1 R7 Q. D0 U1/4 1/4 1/5 1 1/3 1/3;; @  a' |4 g' U+ x" A
    1 1 1/3 3 1 1/3;
    - V5 q7 ^; t! d5 n5 b. a0 b( p2 2 2 3 3 1]# `, l+ }1 {. U- @) ^/ S
                               : r  T# r6 C% ]% O  V
                                       %因素对比矩阵A,只需要改变矩阵A
    ; Z( q  ?+ E2 y6 l[m,n]=size(A);                     %获取指标个数- n. e9 T- L. r( `5 b/ _
    RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];
    2 g: b' @; ~8 p% N4 l9 J1 E$ c" yR=rank(A);                         %求判断矩阵的秩
    0 l. O$ Q# g/ m8 P[V,D]=eig(A);                      %求判断矩阵的特征值和特征向量,V特征值,D特征向量;
    * ]) f- |. U1 {" v' h& ^6 W! Gtz=max(D);
    3 r1 i) E5 I! c% {5 NB=max(tz);                         %最大特征值
    % ^  a9 s6 I8 Q2 H, ^6 C[row, col]=find(D==B);             %最大特征值所在位置5 s$ u# y: b0 O* q# q# R
    C=V(:,col);                        %对应特征向量
    3 u4 g* e3 i# a8 d: mCI=(B-n)/(n-1);                    %计算一致性检验指标CI
      [2 H2 x. \, R3 J# h- L  fCR=CI/RI(1,n);   " U3 z" A$ S. r
    if CR<0.10) w5 V, q7 J2 R
        disp('CI=');disp(CI);
    , c( [) d% Q# l    disp('CR=');disp(CR);# G- [( q2 W, \: f5 |1 u
        disp('对比矩阵A通过一致性检验,各向量权重向量Q为:');
    $ b8 X8 [. }# M& w* Q9 @- ]    Q=zeros(n,1);
    5 u7 {0 q1 V: O; T' r    for i=1:n4 x) H( I9 g: I: X8 h
            Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化
    0 z& ^5 T1 V; D! _. \, K# D1 w    end
    6 N% ?) P* H% r" I    Q                              %输出权重向量1 i# Z7 F  o2 h7 r1 \+ Y: `4 {
    else; {/ ^5 i- \  i1 E
        disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');0 a3 I, x1 L4 g" D  v% [
    end
    9 x. w4 ]: G6 F
  • 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-8-23 23:41 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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