我使用 ojAlgo 来求解线性方程组。在一种情况下,我得到一个 RecoverableCondition 异常。可能是因为矩阵是病态的,所以条件数大约是1e15。
我使用 ojAlgo 来解决它,如下面的代码所示。它通常有效,但在这种情况下无效。
是否有任何其他求解器可以用于对称不定(病态)矩阵?
当前失败的大小是 18x18,但以后可能需要 1000x1000。由于它是迭代算法的一部分,因此准确性并不是非常重要。
SolverTask<Double> equationSolver = SolverTask.PRIMITIVE.make(KKT, rhs.negate());
MatrixStore<Double> deltaX = null;
try {
deltaX = equationSolver.solve(KKT, rhs.negate());
} catch (RecoverableCondition ex) {
int i = 0;
}
我试图在一个自包含的示例中重现这一点,但失败了,因为它在那里工作。也许我没有得到完全相同的矩阵直到最后一位。