标签: matlab linear-algebra
如果我们生成b=randn(10,1),则矩阵A=b*b'必须是正半正定矩阵,因此其所有特征值必须> = 0。
b=randn(10,1)
A=b*b'
当我使用eig(A)函数时,它会返回-3.6934e-16和......(负双精度)等双精度数。
eig(A)
-3.6934e-16
有没有办法提高精度?将它们舍入到绝对零度是否安全?
感谢。
编辑:我删除了一个不相关的部分。
答案 0 :(得分:5)
这只是一个舍入问题,当你有一个向量,其中一些元素比其他元素小16个数量级时,在matlab中将它们舍入为零是非常安全的。