Eigen::SimplicialLDLT - 正半定矩阵从 3.3.9 更改为 3.4.0?

问题描述 投票:0回答:0

我最近使用 vcpkg for Windows 将我的 Eigen 版本从 3.3.9 更新到 3.4.0。使用新版本运行我的程序时,我遇到了 SimplicialLDLT 方法的可解性错误。

我正在使用求解器解决稀疏非线性最小二乘问题,其具有以下带有密集向量 c 的平方正半定矩阵 C。

C = [A'TA B'T;
     B 0]

在 3.3.9 版本中,Eigen 正确求解了稀疏矩阵,我的优化程序运行良好。对于新版本,这总是以 m_info: "NumericalIssue(1)" 结尾,导致求解器不做任何事情。

编译器是MSVC v142, x64

任何帮助将不胜感激。

使用其他求解器,例如 Eigen 的 LU 求解器或 Cusolver 的 SVQR,一切正常,但比以前的 SimplicialLDLT 实现慢得多。这是特定矩阵结构的已知问题吗?是否有任何方法可以让 SimplicialLDLT 在 Eigen 3.4.0 中再次工作?

sparse-matrix eigen solver
© www.soinside.com 2019 - 2024. All rights reserved.