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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x

    $ q( u' a  M1 I' \% k8 s, T
    / g( C4 L; {( K
    层次分析法(AHP)—matlab实现

    ) N* E8 F2 R& ]* G) L! u
    : Q" e* M# }* }" z    层次分析法是一种主观的决策方法,可以用来确定一些指标权重,辅助决策依据的一种定性分析方法,层次分析法运用前需要构造层次模型:决策层,中间层(指标层),底层(选择层);形成等级层次;然后构造两两对比矩阵,通过9分位数来进行构造;对对比矩阵进行求最大特征值和特征向量,进行一致性检验;最后得到权重向量。具体实现过程如下Matlab程序:/ b1 q( L3 t* z" x' q/ I) k2 C
    clc;7 I. t4 w& C' f1 M9 C7 G; h
    clear;
    & F+ q( C6 f$ ^3 @- q>> A=[1 1 1 4 1 1/2;; Y2 ~( P; @* K
    1 1 2 4 1 1/2;
    2 ]' Q7 D' U/ J, {8 H9 \1 1/2 1 5 3 1/2;
    $ L" w6 o5 @2 ?! x+ C1/4 1/4 1/5 1 1/3 1/3;2 S  ]0 @' S  e# t' s( H9 V
    1 1 1/3 3 1 1/3;
    % g- _, u" l* @; n+ Y' ?2 [; u$ j2 2 2 3 3 1]
    # l  J' v5 k2 a% [5 ~4 |                           
    9 E0 m! f* O7 x' U% ~7 \. ?; W                                   %因素对比矩阵A,只需要改变矩阵A
    4 p0 f8 c, W6 M- _[m,n]=size(A);                     %获取指标个数
    # q) A8 \# L( }RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];" T7 f3 \9 v2 q; c
    R=rank(A);                         %求判断矩阵的秩
    " G( H3 p. x- ][V,D]=eig(A);                      %求判断矩阵的特征值和特征向量,V特征值,D特征向量;
    5 v$ c1 J! N7 K7 J$ K; A% T# rtz=max(D);
    0 x0 ?+ T3 ^% a  z& q) ^4 ~& n/ Y; @B=max(tz);                         %最大特征值( E9 n0 r0 F! |# J' u
    [row, col]=find(D==B);             %最大特征值所在位置4 q; n0 i  I6 x) k9 m3 n
    C=V(:,col);                        %对应特征向量
    ( i* e. r( ^  S6 Y* F4 @( ?' Z! YCI=(B-n)/(n-1);                    %计算一致性检验指标CI0 X6 V, b6 K3 F% ]( b8 n# p6 S9 R
    CR=CI/RI(1,n);   
    0 A$ G8 Y2 h2 q5 a0 Jif CR<0.10
    5 J# y. y! E, `( K    disp('CI=');disp(CI);
    + u' N/ z" k0 y# i    disp('CR=');disp(CR);
    / g" ~+ }1 r) q2 I    disp('对比矩阵A通过一致性检验,各向量权重向量Q为:');6 [3 S: P( ~$ M$ E( I
        Q=zeros(n,1);* ]: L; w! t  i; v
        for i=1:n% k* H( o$ y" p  U# n8 p# D
            Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化
    - u( R: ]2 i9 I9 d( J- `    end7 M9 ^( F. y/ l9 R" m6 A( b
        Q                              %输出权重向量% s5 Y$ i) g& e4 S. a1 v
    else
    6 ~5 G( p8 D0 }7 U5 g: J, W& ?    disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');
    4 i1 q6 l* l' G* p, ]end
    3 H6 N* _" U6 W
  • 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 09:52 , Processed in 0.156250 second(s), 25 queries , Gzip On.

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

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

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