特征向量和特征值的证明Matlab

时间:2014-04-18 20:14:03

标签: matlab

我找到了矩阵的特征向量和特征值,然后我需要证明Ax =λx其中λ是特征值。这是我的代码:

    A = [1 1 -1;1 0 -2; 0 0 -1]
    [evecs,evals]=eig(A)
    for i = 1:3
       A*evecs(:,i)== evals(i,i)*evecs(:,i)
    end

这是我的输出:         A =

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

evecs =

0.8507   -0.5257   -0.3015
0.5257    0.8507    0.9045
     0         0    0.3015

evals =

1.6180         0         0
     0   -0.6180         0
     0         0   -1.0000

ans =

 0
 0
 1

ans =

 0
 1
 1

ans =

 0
 0
 1

为什么ans并非全部等于1(为了证明Ax =λx)

1 个答案:

答案 0 :(得分:2)

使用有限精度浮点运算执行特征解算器的计算。在有限浮点数据类型中,真实的本征值和特征向量甚至不能精确表示。

检查是否允许相等的小容差。那就是检查Ax - λx的绝对值是否小。

所需阅读为What Every Computer Scientist Should Know About Floating-Point Arithmetic