IGLib
1.7.2
The IGLib base library EXTENDED - with other lilbraries and applications.
|
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.Multiply(D.Multiply(V.Transpose())) and V.Multiply(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.Multiply(V) equals V.Multiply(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(). More...
Public Member Functions | |
EigenvalueDecomposition (GeneralMatrix Arg) | |
Check for symmetry, then construct the eigenvalue decomposition More... | |
virtual GeneralMatrix | GetV () |
Return the eigenvector matrix More... | |
EigenvalueDecomposition (GeneralMatrix Arg) | |
Check for symmetry, then construct the eigenvalue decomposition More... | |
virtual GeneralMatrix | GetV () |
Return the eigenvector matrix More... | |
Properties | |
virtual double[] | RealEigenvalues [get] |
Return the real parts of the eigenvalues More... | |
virtual double[] | ImagEigenvalues [get] |
Return the imaginary parts of the eigenvalues More... | |
virtual GeneralMatrix | D [get] |
Return the block diagonal eigenvalue matrix More... | |
Private Member Functions | |
void | tred2 () |
void | tql2 () |
void | orthes () |
void | cdiv (double xr, double xi, double yr, double yi) |
void | hqr2 () |
void ISerializable. | GetObjectData (SerializationInfo info, StreamingContext context) |
void | tred2 () |
void | tql2 () |
void | orthes () |
void | cdiv (double xr, double xi, double yr, double yi) |
void | hqr2 () |
void ISerializable. | GetObjectData (SerializationInfo info, StreamingContext context) |
Private Attributes | |
int | n |
Row and column dimension (square matrix). matrix dimension. More... | |
bool | issymmetric |
Symmetry flag. internal symmetry flag. More... | |
double[] | d |
Arrays for internal storage of eigenvalues. internal storage of eigenvalues. More... | |
double[] | e |
double[][] | V |
Array for internal storage of eigenvectors. internal storage of eigenvectors. More... | |
double[][] | H |
Array for internal storage of nonsymmetric Hessenberg form. internal storage of nonsymmetric Hessenberg form. More... | |
double[] | ort |
Working storage for nonsymmetric algorithm. working storage for nonsymmetric algorithm. More... | |
double | cdivr |
double | cdivi |
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.Multiply(D.Multiply(V.Transpose())) and V.Multiply(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.Multiply(V) equals V.Multiply(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().
|
inline |
Check for symmetry, then construct the eigenvalue decomposition
Arg | Square matrix |
References DotNetMatrix.GeneralMatrix.Array, DotNetMatrix.GeneralMatrix.ColumnDimension, DotNetMatrix.EigenvalueDecomposition.hqr2(), DotNetMatrix.EigenvalueDecomposition.n, DotNetMatrix.EigenvalueDecomposition.orthes(), DotNetMatrix.EigenvalueDecomposition.tql2(), and DotNetMatrix.EigenvalueDecomposition.tred2().
|
inline |
Check for symmetry, then construct the eigenvalue decomposition
Arg | Square matrix |
References DotNetMatrix.GeneralMatrix.Array, DotNetMatrix.GeneralMatrix.ColumnDimension, DotNetMatrix.EigenvalueDecomposition.hqr2(), DotNetMatrix.EigenvalueDecomposition.n, DotNetMatrix.EigenvalueDecomposition.orthes(), DotNetMatrix.EigenvalueDecomposition.tql2(), and DotNetMatrix.EigenvalueDecomposition.tred2().
|
inlineprivate |
References DotNetMatrix.EigenvalueDecomposition.n.
Referenced by DotNetMatrix.EigenvalueDecomposition.EigenvalueDecomposition().
|
inlineprivate |
References DotNetMatrix.EigenvalueDecomposition.n.
Referenced by DotNetMatrix.EigenvalueDecomposition.EigenvalueDecomposition().
|
inlineprivate |
References DotNetMatrix.EigenvalueDecomposition.n.
Referenced by DotNetMatrix.EigenvalueDecomposition.EigenvalueDecomposition().
|
inlineprivate |
References DotNetMatrix.EigenvalueDecomposition.d.
Referenced by DotNetMatrix.EigenvalueDecomposition.hqr2().
|
inlineprivate |
|
inlinevirtual |
|
inlineprivate |
|
inlineprivate |
References DotNetMatrix.EigenvalueDecomposition.n.
|
inlineprivate |
References DotNetMatrix.EigenvalueDecomposition.n.
|
inlineprivate |
References DotNetMatrix.EigenvalueDecomposition.n.
|
inlineprivate |
References DotNetMatrix.EigenvalueDecomposition.d.
|
inlineprivate |
|
inlinevirtual |
Return the eigenvector matrix
|
inlineprivate |
|
private |
Row and column dimension (square matrix). matrix dimension.
Referenced by DotNetMatrix.EigenvalueDecomposition.EigenvalueDecomposition(), DotNetMatrix.EigenvalueDecomposition.hqr2(), DotNetMatrix.EigenvalueDecomposition.orthes(), DotNetMatrix.EigenvalueDecomposition.tql2(), and DotNetMatrix.EigenvalueDecomposition.tred2().
|
private |
Symmetry flag. internal symmetry flag.
|
private |
Arrays for internal storage of eigenvalues. internal storage of eigenvalues.
Referenced by DotNetMatrix.EigenvalueDecomposition.cdiv().
|
private |
|
private |
Array for internal storage of eigenvectors. internal storage of eigenvectors.
|
private |
Array for internal storage of nonsymmetric Hessenberg form. internal storage of nonsymmetric Hessenberg form.
|
private |
Working storage for nonsymmetric algorithm. working storage for nonsymmetric algorithm.
|
private |
Referenced by DotNetMatrix.EigenvalueDecomposition.hqr2().
|
private |
Referenced by DotNetMatrix.EigenvalueDecomposition.hqr2().
|
get |
Return the real parts of the eigenvalues
Referenced by DotNetMatrix.examples.MagicSquareExample.Main().
|
get |
Return the imaginary parts of the eigenvalues
|
get |
Return the block diagonal eigenvalue matrix
Referenced by DotNetMatrix.test.TestMatrix.Main().