Package ch.akuhn.matrix.eigenvalues

Source Code of ch.akuhn.matrix.eigenvalues.AllEigenvaluesTest

package ch.akuhn.matrix.eigenvalues;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

import ch.akuhn.matrix.Matrix;

public class AllEigenvaluesTest {

  private static final double epsilon = 1e-9;

  @Test
  public void shouldFindEigenvalues() {
    Matrix A = Matrix.from(3, 3,
        0, 1, -1,
        1, 1, 0,
        -1, 0, 1);
    Eigenvalues eigen = new AllEigenvalues(A).run();
   
    assertEquals(-1, eigen.value[0], epsilon);
    assertEquals(1, eigen.value[1], epsilon);
    assertEquals(2, eigen.value[2], epsilon);

    assert A.mult(eigen.vector[0]).equals(eigen.vector[0].times(eigen.value[0]), epsilon);
    assert A.mult(eigen.vector[1]).equals(eigen.vector[1].times(eigen.value[1]), epsilon);
    assert A.mult(eigen.vector[2]).equals(eigen.vector[2].times(eigen.value[2]), epsilon);
  }
 
  @Test
  public void shouldReturnLargest() {
    Matrix A = Matrix.dense(10, 10);
    for (int n = 0; n < 10; n++) A.put(n, n, n);
    Eigenvalues eigen = new AllEigenvalues(A).largest(3).run();
    assertEquals(3, eigen.value.length);
    assertEquals(7, eigen.value[0], epsilon);
    assertEquals(8, eigen.value[1], epsilon);
    assertEquals(9, eigen.value[2], epsilon);
  }
 
}
TOP

Related Classes of ch.akuhn.matrix.eigenvalues.AllEigenvaluesTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.