我想知道Java反转(双)2D矩阵的正确和最佳方法是什么。我的输入(MatrixToBeInverted)是双[] [],填充超过20x20。使用这样的代码会给我带来错误。
invMatrix = LinearAlgebra.inverse(MatrixToBeInverted);
我读过.inverse()函数已被弃用。
使用带有此类代码的Apache Commons 2.4时:
System.out.println(new org.apache.commons.math3.linear.LUDecomposition(
MatrixUtils.createRealMatrix(MatrixToBeInverted)
).getSolver().getInverse());
我收到了这样的错误:
Exception in thread "main" org.apache.commons.math3.linear.SingularMatrixException: matrix is singular
at org.apache.commons.math3.linear.LUDecomposition$Solver.solve(LUDecomposition.java:335)
at org.apache.commons.math3.linear.LUDecomposition$Solver.getInverse(LUDecomposition.java:383)
at MatrixCalc.calculateMatrix(MatrixCalc.java:405)
at MatrixCalc.main(MatrixCalc.java:932)
但实际上我知道输入矩阵可以反转。