eigvals_banded#
- scipy.linalg.eigvals_banded(a_band, lower=False, overwrite_a_band=False, select='a', select_range=None, check_finite=True)[Quelle]#
Löst das Eigenwertproblem einer reellen symmetrischen oder komplexen hermiteschen Bandmatrix.
Eigenwerte w einer Matrix a finden
a v[:,i] = w[i] v[:,i] v.H v = identity
Die Matrix a ist in a_band entweder in unterer oder oberer Diagonalform gespeichert
a_band[u + i - j, j] == a[i,j] (wenn obere Form; i <= j) a_band[ i - j, j] == a[i,j] (wenn untere Form; i >= j)
wobei u die Anzahl der Bänder oberhalb der Diagonalen ist.
Beispiel für a_band (Form von a ist (6,6), u=2)
upper form: * * a02 a13 a24 a35 * a01 a12 a23 a34 a45 a00 a11 a22 a33 a44 a55 lower form: a00 a11 a22 a33 a44 a55 a10 a21 a32 a43 a54 * a20 a31 a42 a53 * *
Mit * markierte Zellen werden nicht verwendet.
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:
- a_band(u+1, M) array_like
Die Bänder der M mal M Matrix a.
- lowerbool, optional
Ist die Matrix in unterer Form. (Standard ist obere Form)
- overwrite_a_bandbool, optional
Daten in a_band verwerfen (kann die Leistung verbessern)
- 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.
- 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
eig_bandedEigenwerte und rechte Eigenvektoren für symmetrische/hermitesche bandförmige Matrizen
eigvalsh_tridiagonalEigenwerte von symmetrischen/hermiteschen tridiagonalen Matrizen
eigvalsEigenwerte von allgemeinen Arrays
eighEigenwerte und rechte Eigenvektoren für symmetrische/hermitesche Arrays
eigEigenwerte und rechte Eigenvektoren für nicht-symmetrische Arrays
Beispiele
>>> import numpy as np >>> from scipy.linalg import eigvals_banded >>> A = np.array([[1, 5, 2, 0], [5, 2, 5, 2], [2, 5, 3, 5], [0, 2, 5, 4]]) >>> Ab = np.array([[1, 2, 3, 4], [5, 5, 5, 0], [2, 2, 0, 0]]) >>> w = eigvals_banded(Ab, lower=True) >>> w array([-4.26200532, -2.22987175, 3.95222349, 12.53965359])