我试图找到Java中任何给定矩阵的空空间(内核的基础)。为了简化生活,我使用ApacheMath的QR分解,使得A = QR,其中Q是可逆的(本身), R是一个上三角矩阵。
我应该从ApacheMath的QR分解中使用哪种方法来计算R内核的基础(这也是A内核的基础)?
我用过: http://commons.apache.org/proper/commons-math/userguide/linear.html
和
引用并进入以下代码:
RealMatrix coefficients =
new Array2DRowRealMatrix(new double[][] { { 1,2,2,3 }, { 2,4,1,3 }, { 3,6,1,4 } },
false);
DecompositionSolver solver = new QRDecomposition(coefficients).getSolver();
RealVector constants = new ArrayRealVector(new double[] { 0,0,0 }, false);
RealVector solution = solver.solve(constants);
并发送一个矩阵奇异的错误,这是有道理的,因为在我使用的第一个参考中,它说:
“如果矩阵在构造时设置的公差范围内是奇异的,则无论是计算精确解的算法还是计算最小二乘解的算法,在调用solve方法时都会触发错误。”