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
aa v[:,i] = w[i] v[:,i] v.H v = identity
Für eine reelle symmetrische Matrix
amit 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 Werteps*|a|verwendet, wobei eps die Maschinengenauigkeit ist und|a|die 1-Norm der Matrixaist.- 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, wennselect='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_tridiagonalEigenwerte 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