scipy.linalg.

eigvalsh_tridiagonal#

scipy.linalg.eigvalsh_tridiagonal(d, e, select='a', select_range=None, check_finite=True, tol=0.0, lapack_driver='auto')[Quelle]#

Löse das Eigenwertproblem für eine reelle symmetrische tridiagonale Matrix.

Finde Eigenwerte w von a

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

Für eine reelle symmetrische Matrix a mit Diagonalelementen d und Nebendiagonalelementen e.

Die Dokumentation wurde unter der Annahme verfasst, dass die Array-Argumente bestimmte „Kern“-Formen haben. Array-Argumente dieser Funktion können jedoch zusätzliche „Batch“-Dimensionen vorangestellt haben. In diesem Fall wird das Array als Stapel von niedrigdimensionalen Schnitten behandelt; siehe Gestapelte lineare Operationen für Details.

Parameter:
dndarray, Form (ndim,)

Die Diagonalelemente des Arrays.

endarray, Form (ndim-1,)

Die Nebendiagonalelemente des Arrays.

select{‘a’, ‘v’, ‘i’}, optional

Welche Eigenwerte berechnet werden sollen

select

berechnet

‘a’

Alle Eigenwerte

‘v’

Eigenwerte im Intervall (min, max]

‘i’

Eigenwerte mit Indizes min <= i <= max

select_range(min, max), optional

Bereich der ausgewählten Eigenwerte

check_finitebool, optional

Ob überprüft werden soll, ob die Eingabematrix nur endliche Zahlen enthält. Das Deaktivieren kann zu einer Leistungssteigerung führen, kann aber zu Problemen (Abstürze, Nichtterminierung) führen, wenn die Eingaben Unendlichkeiten oder NaNs enthalten.

tolfloat

Die absolute Toleranz, bis zu der jeder Eigenwert gefordert wird (nur verwendet, wenn lapack_driver='stebz'). Ein Eigenwert (oder eine Gruppe von Eigenwerten) gilt als konvergiert, wenn er in einem Intervall dieser Breite liegt. Wenn <= 0. (Standardwert), wird der Wert eps*|a| verwendet, wobei eps die Maschinengenauigkeit ist und |a| die 1-Norm der Matrix a ist.

lapack_driverstr

Verwendbare LAPACK-Funktion, kann sein ‘auto’, ‘stemr’, ‘stebz’, ‘sterf’, ‘stev’, oder ‘stevd’. Wenn ‘auto’ (Standardwert), wird ‘stevd’ verwendet, wenn select='a' und andernfalls ‘stebz’. ‘sterf’ und ‘stev’ können nur verwendet werden, wenn select='a'.

Rückgabe:
w(M,) ndarray

Die Eigenwerte, aufsteigend sortiert, jeder wiederholt entsprechend seiner Vielfachheit.

Löst aus:
LinAlgError

Wenn die Eigenwertberechnung nicht konvergiert.

Siehe auch

eigh_tridiagonal

Eigenwerte und rechte Eigenvektoren für symmetrische/hermitesche tridiagonale Matrizen

Beispiele

>>> import numpy as np
>>> from scipy.linalg import eigvalsh_tridiagonal, eigvalsh
>>> d = 3*np.ones(4)
>>> e = -1*np.ones(3)
>>> w = eigvalsh_tridiagonal(d, e)
>>> A = np.diag(d) + np.diag(e, k=1) + np.diag(e, k=-1)
>>> w2 = eigvalsh(A)  # Verify with other eigenvalue routines
>>> np.allclose(w - w2, np.zeros(4))
True