如何在matlab中计算矩阵的特征值和向量

时间:2014-02-04 09:21:34

标签: matlab eigenvector eigenvalue

我有一个方阵C,我必须找到特征值和特征向量。

C =

     2    -1    -1     0
    -1     3    -1    -1
    -1    -1     3    -1
     0    -1    -1     2

当我使用函数eig()时,  [V,d] = EIG(C, 'nobalance') 这是我得到的V和D的输出:

V =

   -0.5000    0.7071    0.4914   -0.0924
   -0.5000   -0.0000   -0.3607    0.7874
   -0.5000   -0.0000   -0.6221   -0.6025
   -0.5000   -0.7071    0.4914   -0.0924

D =

   -0.0000         0         0         0
         0    2.0000         0         0
         0         0    4.0000         0
         0         0         0    4.0000

但是当我在在线矩阵计算器(http://www.bluebit.gr/matrix-calculator/)给出相同的矩阵C时,我得到的相应特征值和向量如下:

Eigenvalues:

(0.000,0.000i)
(2.000,0.000i)
(4.000,0.000i)
(4.000,0.000i)

Eigenvectors:

( 0.500, 0.000i) ( 0.707, 0.000i) ( 0.500, 0.000i) (-0.308, 0.000i)
( 0.500, 0.000i) ( 0.000, 0.000i) (-0.500, 0.000i) (-0.250, 0.000i)
( 0.500, 0.000i) ( 0.000, 0.000i) (-0.500, 0.000i) ( 0.865, 0.000i)
( 0.500, 0.000i) (-0.707, 0.000i) ( 0.500, 0.000i) (-0.308, 0.000i)

你能告诉我为什么两种情况下的值存在差异吗?matlab中的eig函数返回的值是否正确?提前感谢。

1 个答案:

答案 0 :(得分:1)

如您所见,特征值是相同的。对应于特征值4的特征向量是不同的,因为特征值具有多重性= 2,因此其特征向量的空间是二维的。也就是说,数值特征向量求解器可以在该二维空间中得到任意一对线性独立向量。