Eigenvalues and eigenvectors of a real 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, a + i*b, in 2-by-2 blocks, [a, b; -b, a]. That is, if the complex eigenvalues look like
then D looks like
This keeps V a real matrix in both symmetric and non-symmetric cases, and A*V = V*D.
Definition at line 26 of file TMatrixDEigen.h.
Public Types | |
enum | { kWorkMax = 100 } |
Public Member Functions | |
TMatrixDEigen () | |
TMatrixDEigen (const TMatrixD &a) | |
Constructor for eigen-problem of matrix A . More... | |
TMatrixDEigen (const TMatrixDEigen &another) | |
Copy constructor. More... | |
virtual | ~TMatrixDEigen () |
const TMatrixD | GetEigenValues () const |
Computes the block diagonal eigenvalue matrix. More... | |
const TVectorD & | GetEigenValuesIm () const |
const TVectorD & | GetEigenValuesRe () const |
const TMatrixD & | GetEigenVectors () const |
TMatrixDEigen & | operator= (const TMatrixDEigen &source) |
Assignment operator. More... | |
Static Protected Member Functions | |
static void | MakeHessenBerg (TMatrixD &v, TVectorD &ortho, TMatrixD &H) |
Nonsymmetric reduction to Hessenberg form. More... | |
static void | MakeSchurr (TMatrixD &v, TVectorD &d, TVectorD &e, TMatrixD &H) |
Nonsymmetric reduction from Hessenberg to real Schur form. More... | |
static void | Sort (TMatrixD &v, TVectorD &d, TVectorD &e) |
Sort eigenvalues and corresponding vectors in descending order of Re^2+Im^2 of the complex eigenvalues . More... | |
Protected Attributes | |
TVectorD | fEigenValuesIm |
TVectorD | fEigenValuesRe |
TMatrixD | fEigenVectors |
#include <TMatrixDEigen.h>
anonymous enum |
Enumerator | |
---|---|
kWorkMax |
Definition at line 40 of file TMatrixDEigen.h.
|
inline |
Definition at line 42 of file TMatrixDEigen.h.
TMatrixDEigen::TMatrixDEigen | ( | const TMatrixD & | a | ) |
Constructor for eigen-problem of matrix A .
Definition at line 57 of file TMatrixDEigen.cxx.
TMatrixDEigen::TMatrixDEigen | ( | const TMatrixDEigen & | another | ) |
Copy constructor.
Definition at line 98 of file TMatrixDEigen.cxx.
|
inlinevirtual |
Definition at line 46 of file TMatrixDEigen.h.
const TMatrixD TMatrixDEigen::GetEigenValues | ( | ) | const |
Computes the block diagonal eigenvalue matrix.
If the original matrix 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, a + i*b, in 2-by-2 blocks, [a, b; -b, a]. That is, if the complex eigenvalues look like
then D looks like
This keeps V a real matrix in both symmetric and non-symmetric cases, and A*V = V*D.
Indexing: If matrix A has the index/shape (rowLwb,rowUpb,rowLwb,rowUpb) each eigen-vector must have the shape (rowLwb,rowUpb) . For convenience, the column index of the eigen-vector matrix also runs from rowLwb to rowUpb so that the returned matrix has also index/shape (rowLwb,rowUpb,rowLwb,rowUpb) .
Definition at line 792 of file TMatrixDEigen.cxx.
|
inline |
Definition at line 57 of file TMatrixDEigen.h.
|
inline |
Definition at line 56 of file TMatrixDEigen.h.
|
inline |
Definition at line 55 of file TMatrixDEigen.h.
Nonsymmetric reduction to Hessenberg form.
This is derived from the Algol procedures orthes and ortran, by Martin and Wilkinson, Handbook for Auto. Comp., Vol.ii-Linear Algebra, and the corresponding Fortran subroutines in EISPACK.
Definition at line 109 of file TMatrixDEigen.cxx.
|
staticprotected |
Nonsymmetric reduction from Hessenberg to real Schur form.
This is derived from the Algol procedure hqr2, by Martin and Wilkinson, Handbook for Auto. Comp., Vol.ii-Linear Algebra, and the corresponding Fortran subroutine in EISPACK.
Definition at line 234 of file TMatrixDEigen.cxx.
TMatrixDEigen & TMatrixDEigen::operator= | ( | const TMatrixDEigen & | source | ) |
Assignment operator.
Definition at line 740 of file TMatrixDEigen.cxx.
Sort eigenvalues and corresponding vectors in descending order of Re^2+Im^2 of the complex eigenvalues .
Definition at line 699 of file TMatrixDEigen.cxx.
|
protected |
Definition at line 36 of file TMatrixDEigen.h.
|
protected |
Definition at line 35 of file TMatrixDEigen.h.
|
protected |
Definition at line 34 of file TMatrixDEigen.h.