不太懂编程, 不过有现成工具可用.Mathematica只需要一个函数就能得到所有特征值和对应的特征向量:Eigensystem[{{1, 1/3, 1, 1/6, 1/5, 1/3, 1/2},{3, 1, 3, 1/3, 1/4, 1/2, 1/2},{1, 1/3, 1, 1/5, 1/5, 1/5, 1/3},{6, 3, 5, 1, 1, 2, 1},{5, 4, 5, 1, 1, 2, 2},{3, 2, 5, 1/2, 1/2, 1, 1/2},{2, 2, 3, 1, 1/2, 2, 1}}]数值结果用:N[Eigensystem[{{1, 1/3, 1, 1/6, 1/5, 1/3, 1/2},{3, 1, 3, 1/3, 1/4, 1/2, 1/2},{1, 1/3, 1, 1/5, 1/5, 1/5, 1/3},{6, 3, 5, 1, 1, 2, 1},{5, 4, 5, 1, 1, 2, 2},{3, 2, 5, 1/2, 1/2, 1, 1/2},{2, 2, 3, 1, 1/2, 2, 1}}]]输出为{{, + I, - I, + I, - I, + I, - I}, {{, , , , , , 1.},{ - I, + I, - I, + I, - I, + I, 1.},{ + I, - I, + I, - I, + I, - I, 1.},{ - I, - I, + I, + I, - I, - I, 1.},{ + I, + I, - I, - I, + I, + I, 1.},{ - I, + I, + I, + I, - I, - I, 1.},{ + I, - I, - I, - I, + I, + I, 1.}}}第一组为特征值, 后面为依次对应的特征向量.所以只有一个实特征值: , 相应特征向量:{, , , , , , 1.}.刚看到另一个一样的问题(不过(1,6)和(6,1)两个位置不一样).特征向量乘以非零数还是特征向量.作为权重是要各分量之和为1?那不妨将上面所得特征向量除以各分量之和, 得.{, , , , , , }.