class EigenvalueDecomposition (View source)

Class to obtain eigenvalues and eigenvectors of a real matrix.

If A is symmetric, then A = VDV' where the eigenvalue matrix D is diagonal and the eigenvector matrix V is orthogonal (i.e. A = V.times(D.times(V.transpose())) and V.times(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 + imu, in 2-by-2 blocks, [lambda, mu; -mu, lambda]. The columns of V represent the eigenvectors in the sense that AV = VD, i.e. A.times(V) equals V.times(D). The matrix V may be badly conditioned, or even singular, so the validity of the equation A = VD*inverse(V) depends upon V.cond().

Methods

__construct(mixed $Arg)

Constructor: Check for symmetry, then construct the eigenvalue decomposition.

getV()

Return the eigenvector matrix.

array
getRealEigenvalues()

Return the real parts of the eigenvalues.

array
getImagEigenvalues()

Return the imaginary parts of the eigenvalues.

getD()

Return the block diagonal eigenvalue matrix.

Details

__construct(mixed $Arg)

Constructor: Check for symmetry, then construct the eigenvalue decomposition.

Parameters

mixed $Arg A Square matrix

Matrix getV()

Return the eigenvector matrix.

Return Value

Matrix V

array getRealEigenvalues()

Return the real parts of the eigenvalues.

Return Value

array real(diag(D))

array getImagEigenvalues()

Return the imaginary parts of the eigenvalues.

Return Value

array imag(diag(D))

Matrix getD()

Return the block diagonal eigenvalue matrix.

Return Value

Matrix D