Ejemplo n.º 1
0
  @Test
  public void testSVD() {

    AMatrix a = Matrixx.createRandomMatrix(5, 3);
    AMatrix[] ms = ThinSVD.decompose(a);

    AMatrix u = ms[0];
    AMatrix s = ms[1];
    AMatrix v = ms[2];

    // we are testing that A = USV*
    AMatrix usvt = u.innerProduct(s.innerProduct(v.getTranspose()));
    // assertEquals(a,usvt);
    assertTrue(usvt.epsilonEquals(a));

    assertTrue(v.isOrthogonal());
    assertTrue(s.isRectangularDiagonal());
    assertTrue(u.hasOrthonormalColumns());
  }