Package com.macrofocus.high_d.mds.pca

# Class EigenvalueDecomposition

java.lang.Object
com.macrofocus.high_d.mds.pca.EigenvalueDecomposition

public class EigenvalueDecomposition extends 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().

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `EigenvalueDecomposition(PCAMatrix Arg)`
  Check for symmetry, then construct the eigenvalue decomposition Structure to access D and V.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `PCAMatrix`
  `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
  `PCAMatrix`
  `getV()`
  Return the eigenvector matrix

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### EigenvalueDecomposition

    public EigenvalueDecomposition(PCAMatrix Arg)
    Check for symmetry, then construct the eigenvalue decomposition Structure to access D and V.
    Parameters:
      `Arg` - Square matrix

- ## Method Details

  - ### getV

    public PCAMatrix 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 PCAMatrix getD()
    Return the block diagonal eigenvalue matrix
    Returns:
      D