public class EigenvalueDecomposition extends Object
 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×1) blocks and any complex eigenvalues, λ + i⋅μ, in 
 (2×2) blocks,
 [λ, μ; -μ, λ]. 
 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⋅V-1 depends upon V.cond().
 
| Constructor and Description | 
|---|
EigenvalueDecomposition(Matrix A)
Check for symmetry, then construct the eigenvalue decomposition Structure
 to access D and V. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
Matrix | 
getD()
Returns the block diagonal eigenvalue matrix 
 | 
double[] | 
getImagEigenvalues()
Return the imaginary parts of the eigenvalues 
 | 
double[] | 
getRealEigenvalues()
Return the real parts of the eigenvalues 
 | 
Matrix | 
getV()
Return a matrix with the real parts of the eigenvectors as columns 
 | 
public EigenvalueDecomposition(Matrix A)
A - square matrixIllegalArgumentException - if the matrix M is not squarepublic Matrix getV()
public double[] getRealEigenvalues()
public double[] getImagEigenvalues()
public Matrix getD()