Class EigenvalueDecomposition
- java.lang.Object
-
- gov.nih.mipav.view.renderer.WildMagic.AAM.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().
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description 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
Constructors Constructor Description EigenvalueDecomposition(double[][] Arg)
EigenvalueDecomposition(CVisDMatrix Arg)
Check for symmetry, then construct the eigenvalue decomposition
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
cdiv(double xr, double xi, double yr, double yi)
CVisDMatrix
getD()
Return the block diagonal eigenvalue matrixCDVector
getImagEigenvalues()
Return the imaginary parts of the eigenvaluesCDVector
getRealEigenvalues()
CDMatrix
getV()
Return the eigenvector matrixprivate void
hqr2()
private void
orthes()
private void
tql2()
private void
tred2()
-
-
-
Field Detail
-
n
private int n
Row and column dimension (square matrix).
-
issymmetric
private boolean issymmetric
Symmetry flag.
-
d
private double[] d
Arrays for internal storage of eigenvalues.
-
e
private double[] e
Arrays for internal storage of eigenvalues.
-
V
private double[][] V
Array for internal storage of eigenvectors.
-
H
private double[][] H
Array for internal storage of nonsymmetric Hessenberg form.
-
ort
private double[] ort
Working storage for nonsymmetric algorithm.
-
cdivr
private transient double cdivr
-
cdivi
private transient double cdivi
-
-
Constructor Detail
-
EigenvalueDecomposition
public EigenvalueDecomposition(double[][] Arg)
-
EigenvalueDecomposition
public EigenvalueDecomposition(CVisDMatrix Arg)
Check for symmetry, then construct the eigenvalue decomposition- Parameters:
A
- Square matrix
-
-
Method Detail
-
tred2
private void tred2()
-
tql2
private void tql2()
-
orthes
private void orthes()
-
cdiv
private void cdiv(double xr, double xi, double yr, double yi)
-
hqr2
private void hqr2()
-
getV
public CDMatrix getV()
Return the eigenvector matrix- Returns:
- V
-
getRealEigenvalues
public CDVector getRealEigenvalues()
-
getImagEigenvalues
public CDVector getImagEigenvalues()
Return the imaginary parts of the eigenvalues- Returns:
- imag(diag(D))
-
getD
public CVisDMatrix getD()
Return the block diagonal eigenvalue matrix- Returns:
- D
-
-