如何计算最小的非零特征值

时间:2016-03-17 12:46:27

标签: python math linear-algebra

给定正半正定矩阵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() }) } 。我一般不知道如何判断非常小的数字是否为零。

如何找到矩阵的最小非零特征值(并确定它确实非零)?

2 个答案:

答案 0 :(得分:0)

这可能是该功能中的浮动问题。解决方案将取决于问题的严重性。您可以尝试循环结果并查找最小值,例如,使用函数(numpy):

    np.isclose(a,b)

,给出容差内两个值之间的相似性。它不是一个干净的解决方案,但它通常被认为是一种安全的比较。至于" eigh"代码本身也许是融合的一些问题,但我真的不能说。

答案 1 :(得分:0)

首先,您可能要检查矩阵是否可逆。一种方法是使用numpy.linalg.det计算行列式。如果它不是不可逆的,则可以将此矩阵投影到与内核正交的空间中。投影矩阵现在将是可逆的,其特性是最小幅度的特征值将是原始矩阵的最小(幅度)非零特征值。