数学建模社区-数学中国

标题: 【数模】层次分析法 [打印本页]

作者: 杨利霞    时间: 2018-10-30 09:08
标题: 【数模】层次分析法
层次分析法1 A4 E$ T' E" |; x: v( g' n
1.建立模型0 E5 q0 V- R# i: [6 a( Q+ W% O3 \

0 M: l2 m! w( @, ]$ t

目标:想要达到的目的

准则:影响目的的因素

可供选择物:备选方案

2.计算第二层 因素权重

    (1)构造判断矩阵

! H1 X3 v# e1 S" r
' }9 t8 u* E7 N" g- z# H+ h
根据以上准则对因素进行两两比较,得出正互反矩阵,即判断矩阵: M* z2 g" M) L. |7 i
  d9 Q5 m/ ~' |' g: S
    (2)计算因素权重- I; x# s( r7 p" |9 q6 n
' s5 a% S- M6 s6 x8 |. E6 n
8 k0 i2 S  B7 Y3 X4 Z

" I* d1 [) m1 v; x' ~            此处A即判断矩阵,W即为因素的权重,将其归一化即可。
% j* V( O: ?, ~$ c; W5 n; f7 O7 l1 s+ l! T- u- w% |9 V/ ^* c
    (3)判断计算的权重是否可用
3 z( d# [/ U2 k
# P6 s" F+ l; h1 K; j! @# f+ Z        即一致性检验9 u& x! @: e8 o% T8 I

9 \8 u, I% p1 D& w) y/ Q: ~        CI需自己计算 RI需要查询$ b9 _# |7 Z) F$ |

6 Y1 k# K' D) x. s0 W* p( N        当 CR<0.1 时,认为判断矩阵的一致性是可以接受的,否则应对判断矩阵作适当修正。
# p9 \2 G! ^0 ?4 x% v2 X. [3 ?% }9 f( ^! B5 T1 }9 ]1 I
% V/ U" D% i2 P  E4 J

) H5 O, g% t5 f6 a& n- ]9 @3.计算第三层 方案的权重7 c' y- O' R# q. `: D- X5 b+ w
- i7 R+ f; _- Y
因为方案的权重在不同因素下结果不同,所以n个因素需要n个判断矩阵。
7 i2 @5 C' `4 q( T) X( D8 y
- P% @9 C/ Q0 U计算方法和第二层计算方法相同
4 }. B( E7 B. K+ e9 c
1 Q5 H1 G9 y/ B0 ^最后会算出来n个W向量
/ `! i; n. O3 H" w; r
, R. G$ e3 T* e! R2 U将这n个W向量相加,再归一化即可获得最后的结果。0 _$ r) Z9 L- J* o) z3 b

+ ~& m1 r; d# A$ N( b" \附代码
5 h- u. o5 @: h2 Xfunction Q=AHP(A)
( F0 K9 L% i  v* d6 ^[m,n]=size(A);* ?* T( s* P3 D  Q1 }
RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];: M: E3 g6 ~6 X6 b
R=rank(A);                         %求判断矩阵的秩
- g6 l% l! s. M: |! ?[V,D]=eig(A);                      %求判断矩阵的特征值和特征向量,V特征向量,D特征值(对角阵);# w7 v& _0 H; [+ Y; G2 Y9 q- D1 I
tz=max(D);/ p# V6 C9 @- d, G" z: W/ b
B=max(tz);                         %最大特征值) G7 K% e3 J+ \& }; z8 m# ~) ]
[row, col]=find(D==B);             %最大特征值所在位置- H. h, b  L+ M: ~7 B; }
C=V(:,col);                        %对应特征向量3 T9 H0 d" \  k9 O
CI=(B-n)/(n-1);                    %计算一致性检验指标CI
) A' Z- p4 u0 r3 E, K% r5 _CR=CI/RI(1,n);   
# _% s- ]- [+ [, C! X5 m1 x( C& I2 nif CR<0.10
( d' B0 u! R1 ?5 h    disp('CI=');disp(CI);
# v; t6 E" w% K9 R$ B3 D# p    disp('CR=');disp(CR);
. I* _7 J( L4 G# O2 y    disp('对比矩阵A通过一致性检验,各向量权重向量Q为:');
& W' _( d, `- G  Q5 e! \# w    Q=zeros(n,1);
6 v7 r- Q, @" a% E5 v9 s( V    for i=1:n  h  \& J* o/ ?8 N. I6 X
        Q(i,1)=C(i,1)/sum(C(:,1)); %特征向量标准化
' L3 o) H5 ^% N, _" c    end
, M  B1 T+ k1 P1 @3 D" e, m$ Xelse
% S  `! \+ A: y4 Z, D5 k# Q/ B    disp('对比矩阵A未通过一致性检验,需对对比矩阵A重新构造');2 L& O8 r/ p$ A# F6 O8 ~' M4 I

* v6 j5 a% _3 [9 N, S' h1 T- D4 u7 ?
8 d. W% M2 u- k6 l1 L% y# ^. ]. w, M

3 t2 R- t% ?* q2 d+ |( b6 J4 n




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5