给定正半正定矩阵M我想找到其最小的非零特征值。在python中,这段代码看起来很诱人
[ 6 2 -4 -2]
[ 2 6 0 -6]
[-4 0 6 0]
[-2 -6 0 6]
这是一个小输入矩阵示例。
8.90238403828e-16
不幸的是,如果您尝试这样做,您将获得func refreshTableView() {
self.lastLoadedPage = 1
proposeAccess(true, success: {
self.refresher?.endRefreshing()
})
}
。我一般不知道如何判断非常小的数字是否为零。
如何找到矩阵的最小非零特征值(并确定它确实非零)?
答案 0 :(得分:0)
这可能是该功能中的浮动问题。解决方案将取决于问题的严重性。您可以尝试循环结果并查找最小值,例如,使用函数(numpy):
np.isclose(a,b)
,给出容差内两个值之间的相似性。它不是一个干净的解决方案,但它通常被认为是一种安全的比较。至于" eigh"代码本身也许是融合的一些问题,但我真的不能说。
答案 1 :(得分:0)
首先,您可能要检查矩阵是否可逆。一种方法是使用numpy.linalg.det
计算行列式。如果它不是不可逆的,则可以将此矩阵投影到与内核正交的空间中。投影矩阵现在将是可逆的,其特性是最小幅度的特征值将是原始矩阵的最小(幅度)非零特征值。