我正在使用ojalgo来解决java中的a (NxN) Ax =b系统。因为有机会A将是一个奇异矩阵,我希望我的代码知道这一点。有办法吗?(文档说明,如果问题不合格且invert()方法不抛出异常,则invert()方法返回一个可能的解决方案)。
任何帮助都将不胜感激。提前谢谢。
发布于 2016-05-21 15:32:02
听起来你是直接在BasicMatrix上使用解决方法和倒置方法。
改用LU分解代替。在分解矩阵之后,但在尝试解决之前,您可以调用:
lu.isSquareAndNotSingular();
发布于 2022-04-01 22:43:34
要解决使用LU分解的问题,请尝试这样的方法。
MatrixStore M = ...equations
MatrixStore v = ...rhs
LU<Double> lu = LU.PRIMITIVE.make(M);
boolean decompose = lu.decompose(M);
MatrixStore solution;
if(lu.isSolvable()){
solution = lu.getSolution(v);
// and/or check that solution is good enough
double norm = M.multiply(solution).subtract(v).norm();
}https://stackoverflow.com/questions/37360900
复制相似问题