为什么eig(A)函数(其中A是半正定函数)返回负双精度?

时间:2012-11-20 17:07:58

标签: matlab linear-algebra

如果我们生成b=randn(10,1),则矩阵A=b*b'必须是正半正定矩阵,因此其所有特征值必须> = 0。

当我使用eig(A)函数时,它会返回-3.6934e-16和......(负双精度)等双精度数。

有没有办法提高精度?将它们舍入到绝对零度是否安全?

感谢。

编辑:我删除了一个不相关的部分。

1 个答案:

答案 0 :(得分:5)

这只是一个舍入问题,当你有一个向量,其中一些元素比其他元素小16个数量级时,在matlab中将它们舍入为零是非常安全的。