scipy.linalg.

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_banded

Eigenwerte und rechte Eigenvektoren für symmetrische/hermitesche bandförmige Matrizen

eigvalsh_tridiagonal

Eigenwerte von symmetrischen/hermiteschen tridiagonalen Matrizen

eigvals

Eigenwerte von allgemeinen Arrays

eigh

Eigenwerte und rechte Eigenvektoren für symmetrische/hermitesche Arrays

eig

Eigenwerte 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])