**'org.apache.commons.math3.linear.EigenDecomposition'**Java class

## Class EigenDecomposition

- java.lang.Object
- org.apache.commons.math3.linear.EigenDecomposition

public class EigenDecompositionextends Object

Calculates the eigen decomposition of a real matrix.The eigen decomposition of matrix A is a set of two matrices: V and D such that A = V × D × V

^{T}. A, V and D are all m × m matrices.This class is similar in spirit to the

`EigenvalueDecomposition`

class from the JAMA library, with the following changes:- a
`getVt`

method has been added, - two
`getRealEigenvalue`

and`getImagEigenvalue`

methods to pick up a single eigenvalue have been added, - a
`getEigenvector`

method to pick up a single eigenvector has been added, - a
`getDeterminant`

method has been added. - a
`getSolver`

method has been added.

As of 3.1, this class supports general real matrices (both symmetric and non-symmetric):

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 the condition of V.This implementation is based on the paper by A. Drubrulle, R.S. Martin and J.H. Wilkinson "The Implicit QL Algorithm" in Wilksinson and Reinsch (1971) Handbook for automatic computation, vol. 2, Linear algebra, Springer-Verlag, New-York

- a

**Warning:**You cannot see the full API documentation of this class since the access to the DatMelt documentation for third-party Java classes is denied. Guests can only view jhplot Java API. To view the complete description of this class and its methods, please request the full DataMelt membership.

If you are already a full member, please login to the DataMelt member area before visiting this documentation.