反转n x n矩阵的最佳方法

时间:2014-04-07 14:10:56

标签: java matrix invert

我想知道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)

但实际上我知道输入矩阵可以反转。

1 个答案:

答案 0 :(得分:1)

使用JAMA可以解决所有问题。