Maths
Class EigenvalueDecomposition

java.lang.Object
  extended by Maths.EigenvalueDecomposition
All Implemented Interfaces:
java.io.Serializable

public class EigenvalueDecomposition
extends java.lang.Object
implements java.io.Serializable

Eigenvalues and eigenvectors of a real matrix.

If A is symmetric, then A = V*D*V' where the eigenvalue matrix D is diagonal and the eigenvector matrix V is orthogonal. I.e. A = V.times(D.times(V.transpose())) and V.times(V.transpose()) equals the identity matrix.

If A is not symmetric, then the eigenvalue matrix D is block diagonal with the real eigenvalues in 1-by-1 blocks and any complex eigenvalues, lambda + i*mu, in 2-by-2 blocks, [lambda, mu; -mu, lambda]. The columns of V represent the eigenvectors in the sense that A*V = V*D, i.e. A.times(V) equals V.times(D). The matrix V may be badly conditioned, or even singular, so the validity of the equation A = V*D*inverse(V) depends upon V.cond().

Taken from the public domain JAMA

See Also:
Serialized Form

Nested Class Summary
 class EigenvalueDecomposition.ConvergenceException
          Exception for when the Eigendecomposition does not converge
 
Constructor Summary
EigenvalueDecomposition(SquareMatrix Arg)
          Check for symmetry, then construct the eigenvalue decomposition
 
Method Summary
 SquareMatrix getD()
          Return the block diagonal eigenvalue matrix
 double[] getImagEigenvalues()
          Return the imaginary parts of the eigenvalues
 double[] getRealEigenvalues()
          Return the real parts of the eigenvalues
 SquareMatrix getV()
          Return the eigenvector matrix
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EigenvalueDecomposition

public EigenvalueDecomposition(SquareMatrix Arg)
                        throws EigenvalueDecomposition.ConvergenceException
Check for symmetry, then construct the eigenvalue decomposition

Parameters:
Arg - Square matrix
Throws:
EigenvalueDecomposition.ConvergenceException - If the Eigendecomposition does not converge
Method Detail

getV

public SquareMatrix getV()
Return the eigenvector matrix

Returns:
V

getRealEigenvalues

public double[] getRealEigenvalues()
Return the real parts of the eigenvalues

Returns:
real(diag(D))

getImagEigenvalues

public double[] getImagEigenvalues()
Return the imaginary parts of the eigenvalues

Returns:
imag(diag(D))

getD

public SquareMatrix getD()
Return the block diagonal eigenvalue matrix

Returns:
D