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

### at line 784``` __construct(mixed \$Arg) ```

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

#### Parameters

 mixed \$Arg A Square matrix

### at line 817``` Matrix getV() ```

Return the eigenvector matrix.

#### Return Value

 Matrix V

### at line 827``` array getRealEigenvalues() ```

Return the real parts of the eigenvalues.

#### Return Value

 array real(diag(D))

### at line 837``` array getImagEigenvalues() ```

Return the imaginary parts of the eigenvalues.

#### Return Value

 array imag(diag(D))

### at line 847``` Matrix getD() ```

Return the block diagonal eigenvalue matrix.

#### Return Value

 Matrix D