org.apache.commons.math3.linear
Class EigenDecomposition.Solver

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

private static class EigenDecomposition.Solver
extends java.lang.Object
implements DecompositionSolver

Specialized solver.


Field Summary
private  ArrayRealVector[] eigenvectors
          Eigenvectors.
private  double[] imagEigenvalues
          Imaginary part of the realEigenvalues.
private  double[] realEigenvalues
          Real part of the realEigenvalues.
 
Constructor Summary
private EigenDecomposition.Solver(double[] realEigenvalues, double[] imagEigenvalues, ArrayRealVector[] eigenvectors)
          Builds a solver from decomposed matrix.
 
Method Summary
 RealMatrix getInverse()
          Get the inverse of the decomposed matrix.
 boolean isNonSingular()
          Checks whether the decomposed matrix is non-singular.
 RealMatrix solve(RealMatrix b)
          Solve the linear equation A × X = B for matrices A.
 RealVector solve(RealVector b)
          Solves the linear equation A × X = B for symmetric matrices A.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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 Detail

EigenDecomposition.Solver

private EigenDecomposition.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 Detail

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.

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.


Copyright (c) 2003-2013 Apache Software Foundation