我找到了矩阵的特征向量和特征值,然后我需要证明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)
答案 0 :(得分:2)
使用有限精度浮点运算执行特征解算器的计算。在有限浮点数据类型中,真实的本征值和特征向量甚至不能精确表示。
检查是否允许相等的小容差。那就是检查Ax - λx的绝对值是否小。
所需阅读为What Every Computer Scientist Should Know About Floating-Point Arithmetic。