BRISC::Matrix::EigenvalueDecomposition Class Reference

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...

List of all members.

Public Member Functions

 EigenvalueDecomposition (GeneralMatrix Arg)
 Check for symmetry, then construct the eigenvalue decomposition.
virtual GeneralMatrix GetV ()
 Return the eigenvector matrix.

Properties

virtual double[] RealEigenvalues [get]
 Return the real parts of the eigenvalues.
virtual double[] ImagEigenvalues [get]
 Return the imaginary parts of the eigenvalues.
virtual GeneralMatrix D [get]
 Return the block diagonal eigenvalue matrix.

Private Attributes

int n
 Row and column dimension (square matrix). matrix dimension.
bool issymmetric
 Symmetry flag. internal symmetry flag.
double[] d
 Arrays for internal storage of eigenvalues. internal storage of eigenvalues.
double[][] V
 Array for internal storage of eigenvectors. internal storage of eigenvectors.
double[][] H
 Array for internal storage of nonsymmetric Hessenberg form. internal storage of nonsymmetric Hessenberg form.
double[] ort
 Working storage for nonsymmetric algorithm. working storage for nonsymmetric algorithm.


Detailed Description

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().


Constructor & Destructor Documentation

BRISC::Matrix::EigenvalueDecomposition::EigenvalueDecomposition ( GeneralMatrix  Arg  )  [inline]

Check for symmetry, then construct the eigenvalue decomposition.

Parameters:
Arg Square matrix
Returns:
Structure to access D and V.


Member Function Documentation

virtual GeneralMatrix BRISC::Matrix::EigenvalueDecomposition::GetV (  )  [inline, virtual]

Return the eigenvector matrix.

Returns:
V


Property Documentation

virtual GeneralMatrix BRISC::Matrix::EigenvalueDecomposition::D [get]

Return the block diagonal eigenvalue matrix.

Returns:
D

virtual double [] BRISC::Matrix::EigenvalueDecomposition::ImagEigenvalues [get]

Return the imaginary parts of the eigenvalues.

Returns:
imag(diag(D))

virtual double [] BRISC::Matrix::EigenvalueDecomposition::RealEigenvalues [get]

Return the real parts of the eigenvalues.

Returns:
real(diag(D))


The documentation for this class was generated from the following file:
Generated on Wed Aug 16 17:13:33 2006 by  doxygen 1.4.7