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;
}
これを自己完結型の例で再現しようとしましたが、失敗しました。最後のビットまでまったく同じ行列が得られない可能性があります。