Class EigenDecomposition.Solver

java.lang.Object
org.apache.commons.math3.linear.EigenDecomposition.Solver
All Implemented Interfaces:
DecompositionSolver
Enclosing class:
EigenDecomposition

private static class EigenDecomposition.Solver extends Object implements DecompositionSolver
Specialized solver.
  • Field Details

    • realEigenvalues

      private double[] realEigenvalues
      Real part of the realEigenvalues.
    • imagEigenvalues

      private double[] imagEigenvalues
      Imaginary part of the realEigenvalues.
    • eigenvectors

      private final ArrayRealVector[] eigenvectors
      Eigenvectors.
  • Constructor Details

    • Solver

      private Solver(double[] realEigenvalues, double[] imagEigenvalues, ArrayRealVector[] eigenvectors)
      Builds a solver from decomposed matrix.
      Parameters:
      realEigenvalues - Real parts of the eigenvalues.
      imagEigenvalues - Imaginary parts of the eigenvalues.
      eigenvectors - Eigenvectors.
  • Method Details

    • solve

      public RealVector solve(RealVector b)
      Solves the linear equation A × X = B for symmetric matrices A.

      This method only finds exact linear solutions, i.e. solutions for which ||A × X - B|| is exactly 0.

      Specified by:
      solve in interface DecompositionSolver
      Parameters:
      b - Right-hand side of the equation A × X = B.
      Returns:
      a Vector X that minimizes the two norm of A × X - B.
      Throws:
      DimensionMismatchException - if the matrices dimensions do not match.
      SingularMatrixException - if the decomposed matrix is singular.
    • solve

      public RealMatrix solve(RealMatrix b)
      Solve the linear equation A × X = B for matrices A.

      The A matrix is implicit, it is provided by the underlying decomposition algorithm.

      Specified by:
      solve in interface DecompositionSolver
      Parameters:
      b - right-hand side of the equation A × X = B
      Returns:
      a matrix X that minimizes the two norm of A × X - B
    • isNonSingular

      public boolean isNonSingular()
      Checks whether the decomposed matrix is non-singular.
      Specified by:
      isNonSingular in interface DecompositionSolver
      Returns:
      true if the decomposed matrix is non-singular.
    • eigenvalueNorm

      private double eigenvalueNorm(int i)
      Parameters:
      i - which eigenvalue to find the norm of
      Returns:
      the norm of ith (complex) eigenvalue.
    • getInverse

      public RealMatrix getInverse()
      Get the inverse of the decomposed matrix.
      Specified by:
      getInverse in interface DecompositionSolver
      Returns:
      the inverse matrix.
      Throws:
      SingularMatrixException - if the decomposed matrix is singular.