jax.numpy.linalg.eigh(a, UPLO=None, symmetrize_input=True)[source]#

Return the eigenvalues and eigenvectors of a complex Hermitian

LAX-backend implementation of numpy.linalg.eigh().

Original docstring below.

(conjugate symmetric) or a real symmetric matrix.

Returns two objects, a 1-D array containing the eigenvalues of a, and a 2-D square array or matrix (depending on the input type) of the corresponding eigenvectors (in columns).

  • a ((..., M, M) array) – Hermitian or real symmetric matrices whose eigenvalues and eigenvectors are to be computed.

  • UPLO ({'L', 'U'}, optional) – Specifies whether the calculation is done with the lower triangular part of a (‘L’, default) or the upper triangular part (‘U’). Irrespective of this value only the real parts of the diagonal will be considered in the computation to preserve the notion of a Hermitian matrix. It therefore follows that the imaginary part of the diagonal will always be treated as zero.

Return type:



  • A namedtuple with the following attributes

  • eigenvalues ((…, M) ndarray) – The eigenvalues in ascending order, each repeated according to its multiplicity.

  • eigenvectors ({(…, M, M) ndarray, (…, M, M) matrix}) – The column eigenvectors[:, i] is the normalized eigenvector corresponding to the eigenvalue eigenvalues[i]. Will return a matrix object if a is a matrix object.



symmetrize_input (bool) –