给定一个半正定矩阵M,我想找到它最小的非零特征值。在Python中,这段代码看起来很有吸引力:
import numpy as np
(w,v) = np.linalg.eigh(M)
minw = np.amin(w)
if (np.isclose(minw,0) and minw > 0):
print M, minw
这是一个小的输入矩阵示例。
[ 6 2 -4 -2]
[ 2 6 0 -6]
[-4 0 6 0]
[-2 -6 0 6]
很不幸,如果您尝试此操作,您将得到8.90238403828e-16
。我不知道如何判断非常小的数字是否应该为零。
您如何找到矩阵的最小非零特征值(并确信它确实是非零的)?