ProGAL.math
Class Matrix.EigenvalueDecomposition

java.lang.Object
  extended by ProGAL.math.Matrix.EigenvalueDecomposition
Enclosing class:
Matrix

public class Matrix.EigenvalueDecomposition
extends java.lang.Object

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().


Method Summary
 Matrix getD()
          Return the block diagonal eigenvalue matrix.
 double[] getImagEigenvalues()
          Return the imaginary parts of the eigenvalues imag(diag(D)).
 double[] getRealEigenvalues()
          Return the real parts of the eigenvalues real(diag(D)).
 Matrix getV()
          Return the eigenvector matrix (immutable).
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getV

public Matrix getV()
Return the eigenvector matrix (immutable).


getRealEigenvalues

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


getImagEigenvalues

public double[] getImagEigenvalues()
Return the imaginary parts of the eigenvalues imag(diag(D)).


getD

public Matrix getD()
Return the block diagonal eigenvalue matrix.