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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    % U5 \% I" r: j8 D, E

    5 y- C/ l7 d* l5 A4 X5 s/ g  [: V层次分析法(AHP)—matlab实现

    2 g: y. Q& {1 p2 P* I+ K7 H
    , {& G# E! U0 {- _, Y9 }$ G    层次分析法是一种主观的决策方法,可以用来确定一些指标权重,辅助决策依据的一种定性分析方法,层次分析法运用前需要构造层次模型:决策层,中间层(指标层),底层(选择层);形成等级层次;然后构造两两对比矩阵,通过9分位数来进行构造;对对比矩阵进行求最大特征值和特征向量,进行一致性检验;最后得到权重向量。具体实现过程如下Matlab程序:
    & d& R; ]/ L( t3 W& Z/ d* ^clc;* I' l8 G  N: K* V* C) R
    clear;
    & v7 Y- J$ _" l) h7 X( X>> A=[1 1 1 4 1 1/2;; a5 ]4 U+ P8 Y, U$ H
    1 1 2 4 1 1/2;
    / M# c7 o. C2 o1 `1 1/2 1 5 3 1/2;
    " [/ a0 v% ?! j- H1 P1/4 1/4 1/5 1 1/3 1/3;4 r6 k( I5 R# \$ p
    1 1 1/3 3 1 1/3;4 g0 o8 F  ~# Z5 {' K4 Q; }
    2 2 2 3 3 1]
    0 {/ ~2 c& j1 b5 w- g8 o                           7 Z6 ~5 C( x. C9 L
                                       %因素对比矩阵A,只需要改变矩阵A
      r- o2 Z! u) k# n. |$ i[m,n]=size(A);                     %获取指标个数
    % `* f, W6 H$ ^, n4 F5 a' c8 ]RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];
    ; p% D' c0 Q: n- ^* }% mR=rank(A);                         %求判断矩阵的秩
    8 m7 X( V( l5 }* q- y# x[V,D]=eig(A);                      %求判断矩阵的特征值和特征向量,V特征值,D特征向量;
    ' L- e& B; M" j" s/ atz=max(D);
    * a- u/ f5 `$ }7 n6 ZB=max(tz);                         %最大特征值
    # n0 S; F6 B# f# J# u- K0 J[row, col]=find(D==B);             %最大特征值所在位置
    5 o2 Q1 X  k* g# K3 }3 {) |3 k9 gC=V(:,col);                        %对应特征向量
    & V) E* P( i$ b2 PCI=(B-n)/(n-1);                    %计算一致性检验指标CI
    , {4 u/ X# l$ r( z! g* L) lCR=CI/RI(1,n);   
    $ m2 U' i% @! r0 S, ]if CR<0.109 Y3 i* ?7 f" p5 O  |
        disp('CI=');disp(CI);
    * v1 c7 h( r7 i7 ]0 `: G    disp('CR=');disp(CR);
    0 b$ w; t& h- a. k) |# f% q( i    disp('对比矩阵A通过一致性检验,各向量权重向量Q为:');4 q/ ], G, Z( A& k# L5 q
        Q=zeros(n,1);7 M) c  c/ L' i! p3 H3 w3 L
        for i=1:n  `- n* X2 {2 e% [# H
            Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化
    7 X: q; W$ x! b6 N9 Q    end
    2 J$ {. n* A) w* v, Q6 ?3 o    Q                              %输出权重向量7 a% P6 I5 B1 b$ N! x
    else0 M  u* a' S0 r  K
        disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');$ b% V* L& z; ^+ Y: i
    end: X5 m) E2 D- ]: N- w+ S
  • 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 15:43 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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