Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

jmat.data.matrixDecompositions
Class EigenvalueDecomposition  view EigenvalueDecomposition download EigenvalueDecomposition.java

java.lang.Object
  extended byjmat.data.matrixDecompositions.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().


Field Summary
private  double cdivi
           
private  double cdivr
           
private  double[] d
          Arrays for internal storage of eigenvalues.
private  double[] e
          Arrays for internal storage of eigenvalues.
private  double[][] H
          Array for internal storage of nonsymmetric Hessenberg form.
private  boolean issymmetric
          Symmetry flag.
private  int n
          Row and column dimension (square matrix).
private  double[] ort
          Working storage for nonsymmetric algorithm.
private  double[][] V
          Array for internal storage of eigenvectors.
 
Constructor Summary
EigenvalueDecomposition(jmat.data.Matrix Arg)
          Check for symmetry, then construct the eigenvalue decomposition
 
Method Summary
private  void cdiv(double xr, double xi, double yr, double yi)
           
 jmat.data.Matrix getD_Imag()
          Return the imaginary diagonal eigenvalue matrix
 jmat.data.Matrix getD_Real()
          Return the real diagonal eigenvalue matrix
 jmat.data.Matrix getD()
          Return the block diagonal eigenvalue matrix
 double[] getRealEigenvalues()
           
 jmat.data.Matrix getV()
          Return the eigenvector matrix
private  void hqr2()
           
 boolean isDReal()
          Return the eigenvector matrix
private  void orthes()
           
private  void tql2()
           
private  void tred2()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

H

private double[][] H
Array for internal storage of nonsymmetric Hessenberg form.


V

private double[][] V
Array for internal storage of eigenvectors.


d

private double[] d
Arrays for internal storage of eigenvalues.


e

private double[] e
Arrays for internal storage of eigenvalues.


ort

private double[] ort
Working storage for nonsymmetric algorithm.


issymmetric

private boolean issymmetric
Symmetry flag.


cdivi

private transient double cdivi

cdivr

private transient double cdivr

n

private int n
Row and column dimension (square matrix).

Constructor Detail

EigenvalueDecomposition

public EigenvalueDecomposition(jmat.data.Matrix Arg)
Check for symmetry, then construct the eigenvalue decomposition

Method Detail

getD

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


isDReal

public boolean isDReal()
Return the eigenvector matrix


getD_Imag

public jmat.data.Matrix getD_Imag()
Return the imaginary diagonal eigenvalue matrix


getD_Real

public jmat.data.Matrix getD_Real()
Return the real diagonal eigenvalue matrix


getRealEigenvalues

public double[] getRealEigenvalues()

getV

public jmat.data.Matrix getV()
Return the eigenvector matrix


cdiv

private void cdiv(double xr,
                  double xi,
                  double yr,
                  double yi)

hqr2

private void hqr2()

orthes

private void orthes()

tql2

private void tql2()

tred2

private void tred2()