C# Class YAMP.Numerics.Eigenvalues

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().
ファイルを表示 Open project: FlorianRappl/YAMP Class Usage Examples

Public Methods

Method Description
Eigenvalues ( MatrixValue Arg ) : System

Check for symmetry, then construct the eigenvalue decomposition

GetV ( ) : MatrixValue

Return the eigenvector matrix

Private Methods

Method Description
cdiv ( double xr, double xi, double yr, double yi ) : void
hqr2 ( ) : void
orthes ( ) : void
tql2 ( ) : void
tred2 ( ) : void

Method Details

Eigenvalues() public method

Check for symmetry, then construct the eigenvalue decomposition
public Eigenvalues ( MatrixValue Arg ) : System
Arg YAMP.MatrixValue Square matrix
return System

GetV() public method

Return the eigenvector matrix
public GetV ( ) : MatrixValue
return YAMP.MatrixValue