为什么层次分析法中矩阵的最大特征向量算出来是负数
2个回答

不是负值问题,而是你没有算完.

例如

A=[1 1/4 5 3 1/4 2;4 1 5 1/4 2 1/5;1/5 1/5 1 1/5 3 1/5;1/3 4 5 1 3 1;4 1/2 1/3 3 1 1/5;1/2 5 5 1 5 1];

中用MATLAB运算

[x,y]=eig(A)

x =

-0.3933 0.5545 0.5545 -0.1418 - 0.1176i -0.1418 + 0.1176i 0.2080

-0.3736 -0.1312 - 0.1778i -0.1312 + 0.1778i -0.6244 -0.6244 0.0829

-0.1632 -0.2014 + 0.1217i -0.2014 - 0.1217i 0.1608 - 0.3796i 0.1608 + 0.3796i -0.2020

-0.4591 -0.0045 + 0.3640i -0.0045 - 0.3640i -0.1243 + 0.3315i -0.1243 - 0.3315i -0.3294

-0.3682 -0.0144 - 0.4490i -0.0144 + 0.4490i 0.3175 + 0.2812i 0.3175 - 0.2812i 0.0034

-0.5769 -0.2119 + 0.4574i -0.2119 - 0.4574i 0.0765 + 0.3084i 0.0765 - 0.3084i 0.8948

y =

9.9809 0 0 0 0 0

0 -1.6706 + 4.4342i 0 0 0 0

0 0 -1.6706 - 4.4342i 0 0 0

0 0 0 -0.3707 + 2.6609i 0 0

0 0 0 0 -0.3707 - 2.6609i 0

0 0 0 0 0 0.1016

得x为特征向量矩阵 y为特征值矩阵

找到y中对应最大的特征值所在列m

w=x(:,m)/sum(x(:,m))

w就是权重!

w=x(:,1)/sum(x(:,1))

运算程序

>> A=[1 1/4 5 3 1/4 2;4 1 5 1/4 2 1/5;1/5 1/5 1 1/5 3 1/5;1/3 4 5 1 3 1;4 1/2 1/3 3 1 1/5;1/2 5 5 1 5 1];

>> [x y]=eig(A)

x =

-0.3933 0.5545 0.5545 -0.1418 - 0.1176i -0.1418 + 0.1176i 0.2080

-0.3736 -0.1312 - 0.1778i -0.1312 + 0.1778i -0.6244 -0.6244 0.0829

-0.1632 -0.2014 + 0.1217i -0.2014 - 0.1217i 0.1608 - 0.3796i 0.1608 + 0.3796i -0.2020

-0.4591 -0.0045 + 0.3640i -0.0045 - 0.3640i -0.1243 + 0.3315i -0.1243 - 0.3315i -0.3294

-0.3682 -0.0144 - 0.4490i -0.0144 + 0.4490i 0.3175 + 0.2812i 0.3175 - 0.2812i 0.0034

-0.5769 -0.2119 + 0.4574i -0.2119 - 0.4574i 0.0765 + 0.3084i 0.0765 - 0.3084i 0.8948

y =

9.9809 0 0 0 0 0

0 -1.6706 + 4.4342i 0 0 0 0

0 0 -1.6706 - 4.4342i 0 0 0

0 0 0 -0.3707 + 2.6609i 0 0

0 0 0 0 -0.3707 - 2.6609i 0

0 0 0 0 0 0.1016

>> w=x(:,1)/sum(x(:,1))

w =

0.1685

0.1601

0.0699

0.1967

0.1577

0.2471

W为最终结果