在层次分析法中,我们最后要得到矩阵的权重,可以利用下面的程序进行求值。
例如,我们要求矩阵
A=[1 2 4 6;2 5 1 4;1 3 5 1;4 6 2 1]的权重。
程序为:
A=[1 2 4 6;2 5 1 4;1 3 5 1;4 6 2 1]
[x,y]=eig(A)
%求得x为特征向量矩阵,y为特征值矩阵
[m m]=find(y==max(max(y)))
%找到y中对应最大的特征值所在列m
w=A(:,m)/sum(A(:,m))
%w即为矩阵A的权重。
用matlab求矩阵A的权重,以下为matlab中运行过程
>> A=[1 3/7 4/7 2/7 1 2/7 4/7
7/3 1 4/3 2/3 7/3 2/3 4/3
7/4 3/4 1 1/2 7/4 1/2 1
7/2 3/2 2 1 7/2 1 2
1 3/7 4/7 2/7 1 2/7 4/7
7/2 3/2 2 1 7/2 1 2
7/4 3/4 1 1/2 7/4 1/2 1];
>> [x,y]=eig(A)
x =
-0.7019 0.1621 -0.4125 -0.0066 -0.7019 -0.7019 0.7019
0.2730 0.3782 0.4585 0.6391 0.2730 0.2730 -0.2730
0.2047 0.2836 0.2291 -0.2293 0.2047 0.2047 -0.2047
0.4094 0.5673 0.4582 -0.4585 0.4094 0.4094 -0.4094
0.1170 0.1621 -0.3077 0.2567 0.1170 0.1170 -0.1170
0.4094 0.5673 0.4582 -0.4585 0.4094 0.4094 -0.4094
0.2047 0.2836 0.2291 -0.2293 0.2047 0.2047 -0.2047
y =
0 0 0 0 0 0 0
0 7.0000 0 0 0 0 0
0 0 -0.0000 0 0 0 0
0 0 0 0.0000 0 0 0
0 0 0 0 0.0000 0 0
0 0 0 0 0 0.0000 0
0 0 0 0 0 0 0
>> [m m]=find(y==max(max(y)))
m =
2
m =
2
>> w=A(:,m)/sum(A(:,m))
w =
0.0674
0.1573
0.1180
0.2360
0.0674
0.2360
0.1180
>>
加载中,请稍候......