我正在尝试使用规范化切割算法 (Shi和Malik,2000) 将一个矩阵分割成两个矩阵。在这方面,我需要找到广义特征值系统中的第二小特征向量**(Ax = λ.B.x)**.在我的输入中,B是半正定矩阵.然而,scipy.linalg.eigh
要求B为正定,使用它时会引发错误。我需要知道是否可以使用此输入得到解,以及如何找到解。
我试过了
eigvals, eigvecs = eigh(A, B, eigvals_only=False, subset_by_index=[0, 1])
但我得到了:
numpy.linalg.LinAlgError: The leading minor of order 2 of B is not positive definite. The factorization of B could not be completed and no eigenvalues or eigenvectors were computed.
1条答案
按热度按时间pbwdgjma1#
如果
B
是半定的,这意味着它至少有一个与特征值0
相关的特征向量,如果B的零空间也是A的零空间,也就是如果B @ x = 0
,A @ x = 0
,你仍然可以有解,但在这种情况下,与x
相关的广义特征值是待定的。