jax.scipy.linalg.eigh(a, b=None, lower=True, eigvals_only=False, overwrite_a=False, overwrite_b=False, turbo=True, eigvals=None, type=1, check_finite=True)[source]#

Solve a standard or generalized eigenvalue problem for a complex

LAX-backend implementation of scipy.linalg._decomp.eigh().

Does not support the Scipy argument check_finite=True, because compiled JAX code cannot perform checks of array values at runtime.

Does not support the Scipy argument overwrite_*=True.

Original docstring below.

Hermitian or real symmetric matrix.

Find eigenvalues array w and optionally eigenvectors array v of array a, where b is positive definite such that for every eigenvalue Ξ» (i-th entry of w) and its eigenvector vi (i-th column of v) satisfies:

              a @ vi = Ξ» * b @ vi
vi.conj().T @ a @ vi = Ξ»
vi.conj().T @ b @ vi = 1

In the standard problem, b is assumed to be the identity matrix.

  • a ((M, M) array_like) – A complex Hermitian or real symmetric matrix whose eigenvalues and eigenvectors will be computed.

  • b ((M, M) array_like, optional) – A complex Hermitian or real symmetric definite positive matrix in. If omitted, identity matrix is assumed.

  • lower (bool, optional) – Whether the pertinent array data is taken from the lower or upper triangle of a and, if applicable, b. (Default: lower)

  • eigvals_only (bool, optional) – Whether to calculate only eigenvalues and no eigenvectors. (Default: both are calculated)

  • type (int, optional) –

    For the generalized problems, this keyword specifies the problem type to be solved for w and v (only takes 1, 2, 3 as possible inputs):

    1 =>     a @ v = w @ b @ v
    2 => a @ b @ v = w @ v
    3 => b @ a @ v = w @ v

    This keyword is ignored for standard problems.

  • eigvals (tuple (lo, hi), optional, deprecated) –

    Deprecated since version 1.5.0: eigh keyword argument eigvals is deprecated in favour of subset_by_index keyword instead and will be removed in SciPy 1.14.0.

  • overwrite_a (bool) –

  • overwrite_b (bool) –

  • turbo (bool) –

  • check_finite (bool) –

Return type:

Array | tuple[Array, Array]


  • w ((N,) ndarray) – The N (N<=M) selected eigenvalues, in ascending order, each repeated according to its multiplicity.

  • v ((M, N) ndarray) – The normalized eigenvector corresponding to the eigenvalue w[i] is the column v[:,i]. Only returned if eigvals_only=False.