我需要确定一个真正的密集对称矩阵是否是正定的。
一种可能的方法是获取所有特征值并检查最小特征值的符号,但需要计算所有特征值,这似乎是不必要的。
据说congruent transform这样做应该更有效率。
C++ Eigen 模板库是否有这样的congruent transform实现或有效方式来立即确定对称矩阵是否为正定矩阵?
或任何其他 C++ 实现来做到这一点?
我需要确定一个真正的密集对称矩阵是否是正定的。
一种可能的方法是获取所有特征值并检查最小特征值的符号,但需要计算所有特征值,这似乎是不必要的。
据说congruent transform这样做应该更有效率。
C++ Eigen 模板库是否有这样的congruent transform实现或有效方式来立即确定对称矩阵是否为正定矩阵?
或任何其他 C++ 实现来做到这一点?
LDLT 分解将为您提供所需的信息。如果对角线来自矩阵的 LDLT 分解的矩阵是正定的,您的矩阵也是正定的。这是讨论 Eigen 中 LDLT 分解的一些文档的链接:http: //eigen.tuxfamily.org/dox-2.0/TutorialAdvancedLinearAlgebra.html