/** * Returns a rough string rendition of a QR. */ @Override public String toString() { return String.format(Locale.ENGLISH, "QR(%d x %d,fullRank=%s)", rows, columns, hasFullRank()); } }
@Test public void rank1() { Matrix x = new DenseMatrix(3, 3); x.viewRow(0).assign(new double[]{1, 2, 3}); x.viewRow(1).assign(new double[]{2, 4, 6}); x.viewRow(2).assign(new double[]{3, 6, 9}); QRDecomposition qr = new QRDecomposition(x); assertFalse(qr.hasFullRank()); assertEquals(0, new DenseVector(new double[]{3.741657, 7.483315, 11.22497}).aggregate(qr.getR().viewRow(0), Functions.PLUS, new DoubleDoubleFunction() { @Override public double apply(double arg1, double arg2) { return Math.abs(arg1) - Math.abs(arg2); } }), 1.0e-5); }
Matrix x = matrix(); QRDecomposition qr = new QRDecomposition(x); assertTrue(qr.hasFullRank()); Matrix rRef = reshape(new double[]{ -2.99129686445138, 0, 0, 0, 0,
Matrix x = matrix().transpose(); QRDecomposition qr = new QRDecomposition(x); assertTrue(qr.hasFullRank()); Matrix rActual = qr.getR();
/** * Returns a rough string rendition of a QR. */ @Override public String toString() { return String.format(Locale.ENGLISH, "QR(%d x %d,fullRank=%s)", rows, columns, hasFullRank()); } }
/** * Returns a rough string rendition of a QR. */ @Override public String toString() { return String.format(Locale.ENGLISH, "QR(%d,%d,fullRank=%s)", originalColumns, originalRows, hasFullRank()); } }
@Test public void rank1() { Matrix x = new DenseMatrix(3, 3); x.viewRow(0).assign(new double[]{1, 2, 3}); x.viewRow(1).assign(new double[]{2, 4, 6}); x.viewRow(2).assign(new double[]{3, 6, 9}); QRDecomposition qr = new QRDecomposition(x); assertFalse(qr.hasFullRank()); assertEquals(0, new DenseVector(new double[]{3.741657, 7.483315, 11.22497}).aggregate(qr.getR().viewRow(0), Functions.PLUS, new DoubleDoubleFunction() { @Override public double apply(double arg1, double arg2) { return Math.abs(arg1) - Math.abs(arg2); } }), 1.0e-5); }
Matrix x = matrix(); QRDecomposition qr = new QRDecomposition(x); assertTrue(qr.hasFullRank()); Matrix rRef = reshape(new double[]{ -2.99129686445138, 0, 0, 0, 0,
Matrix x = matrix().transpose(); QRDecomposition qr = new QRDecomposition(x); assertFalse(qr.hasFullRank()); Matrix rActual = qr.getR();