C# Class Accord.Math.Decompositions.EigenvalueDecomposition

Determines the eigenvalues and eigenvectors of a real square matrix.

In the mathematical discipline of linear algebra, eigendecomposition or sometimes spectral decomposition is the factorization of a matrix into a canonical form, whereby the matrix is represented in terms of its eigenvalues and eigenvectors.

If A is symmetric, then A = V * D * V' and A = V * V' where the eigenvalue matrix D is diagonal and the eigenvector matrix V is orthogonal. If A is not symmetric, 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. The matrix V may be badly conditioned, or even singular, so the validity of the equation A = V * D * inverse(V) depends upon the condition of V.

Inheritance: ICloneable
Exibir arquivo Open project: accord-net/framework Class Usage Examples

Public Methods

Method Description
Clone ( ) : object

Creates a new object that is a copy of the current instance.

EigenvalueDecomposition ( Double value, bool inPlace = false, bool sort = false ) : System

Construct an eigenvalue decomposition.

EigenvalueDecomposition ( Double value, bool assumeSymmetric, bool inPlace = false, bool sort = false ) : System

Construct an eigenvalue decomposition.

Reverse ( ) : ].Double[

Reverses the decomposition, reconstructing the original matrix X.

Private Methods

Method Description
EigenvalueDecomposition ( ) : System
cdiv ( Double xr, Double xi, Double yr, Double yi, Double &cdivr, Double &cdivi ) : void
hqr2 ( ) : void
orthes ( ) : void
tql2 ( ) : void
tred2 ( ) : void

Method Details

Clone() public method

Creates a new object that is a copy of the current instance.
public Clone ( ) : object
return object

EigenvalueDecomposition() public method

Construct an eigenvalue decomposition.
public EigenvalueDecomposition ( Double value, bool inPlace = false, bool sort = false ) : System
value Double /// The matrix to be decomposed.
inPlace bool /// Pass to perform the decomposition in place. The matrix /// will be destroyed in the process, resulting in less /// memory comsumption.
sort bool /// Pass to sort the eigenvalues and eigenvectors at the end /// of the decomposition.
return System

EigenvalueDecomposition() public method

Construct an eigenvalue decomposition.
public EigenvalueDecomposition ( Double value, bool assumeSymmetric, bool inPlace = false, bool sort = false ) : System
value Double /// The matrix to be decomposed.
assumeSymmetric bool /// Defines if the matrix should be assumed as being symmetric /// regardless if it is or not. Default is .
inPlace bool /// Pass to perform the decomposition in place. The matrix /// will be destroyed in the process, resulting in less /// memory comsumption.
sort bool /// Pass to sort the eigenvalues and eigenvectors at the end /// of the decomposition.
return System

Reverse() public method

Reverses the decomposition, reconstructing the original matrix X.
public Reverse ( ) : ].Double[
return ].Double[