пустое пространство верхней матрицы треугольника - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь найти нулевое пространство (основание для ядра) любой данной матрицы в Java. Чтобы упростить жизнь, я использую разложение QR ApacheMath таким образом, что A = QR, где Q - обратимый (сам по себе) иR - матрица верхнего треугольника.

, какой метод мне следует использовать из QR-разложения ApacheMath, чтобы вычислить базу для Ядра R (которая также является основой для ядра A)?

Я использовал: http://commons.apache.org/proper/commons-math/userguide/linear.html

и

http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math4/linear/QRDecomposition.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);

и отправляет ошибку, что матрица является единственной, что имеет смысл, потому что в первой ссылке, которую я использую, говорится, что:

"если матрица является единственной в пределах допуска, установленного при построении, ошибка будет вызванакогда будет вызван метод решения, как для алгоритмов, которые вычисляют точные решения, так и для алгоритмов, которые вычисляют решения наименьших квадратов. ".

...