jax.scipy.linalg.eigh_tridiagonal(d, e, *, eigvals_only=False, select='a', select_range=None, tol=None)[source]#

Solve eigenvalue problem for a real symmetric tridiagonal matrix.

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

Original docstring below.

Find eigenvalues w and optionally right eigenvectors v of a:

a v[:,i] = w[i] v[:,i]
v.H v    = identity

For a real symmetric matrix a with diagonal elements d and off-diagonal elements e.

  • d (ndarray, shape (ndim,)) – The diagonal elements of the array.

  • e (ndarray, shape (ndim-1,)) – The off-diagonal elements of the array.

  • eigvals_only (bool, optional) – Compute only the eigenvalues and no eigenvectors. (Default: calculate also eigenvectors)

  • select ({'a', 'v', 'i'}, optional) –

    Which eigenvalues to calculate




    All eigenvalues


    Eigenvalues in the interval (min, max]


    Eigenvalues with indices min <= i <= max

  • select_range ((min, max), optional) – Range of selected eigenvalues

  • tol (float) – The absolute tolerance to which each eigenvalue is required (only used when β€˜stebz’ is the lapack_driver). An eigenvalue (or cluster) is considered to have converged if it lies in an interval of this width. If <= 0. (default), the value eps*|a| is used where eps is the machine precision, and |a| is the 1-norm of the matrix a.

Return type:



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

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