scipy.linalg.

issymmetric#

scipy.linalg.issymmetric(a, atol=None, rtol=None)#

Prüft, ob ein quadratisches 2D-Array symmetrisch ist.

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:
andarray

Eingabearray der Größe (N, N).

atolfloat, optional

Absoluter Fehlergrenzwert

rtolfloat, optional

Relativer Fehlergrenzwert

Rückgabe:
symbool

Gibt True zurück, wenn das Array symmetrisch ist.

Löst aus:
TypeError

Wenn der Datentyp des Arrays nicht unterstützt wird, insbesondere die NumPy-Datentypen float16, float128 und complex256 für exakte Vergleiche.

Siehe auch

ishermitian

Prüft, ob ein quadratisches 2D-Array hermitesch ist

Hinweise

Für quadratische leere Arrays wird das Ergebnis per Konvention True zurückgegeben. Komplexe Arrays werden auf Symmetrie geprüft und nicht darauf, hermitesch zu sein (siehe Beispiele).

Die Diagonale des Arrays wird nicht gescannt. Daher werden, falls sich infs, NaNs oder ähnliche problematische Einträge auf der Diagonale befinden, diese ignoriert. numpy.inf wird jedoch als Zahl behandelt, d. h. [[1, inf], [inf, 2]] gibt True zurück. Auf der anderen Seite ist numpy.nan niemals symmetrisch, z. B. gibt [[1, nan], [nan, 2]] False zurück.

Wenn atol und/oder rtol auf gesetzt sind, wird der Vergleich von numpy.allclose durchgeführt und die Toleranzwerte an diese übergeben. Andernfalls wird ein exakter Vergleich gegen Null von internen Funktionen durchgeführt. Daher können sich die Leistung je nach Größe und Datentyp des Arrays verbessern oder verschlechtern. Wenn einer der Werte atol oder rtol angegeben ist, wird der andere automatisch auf Null gesetzt.

Beispiele

>>> import numpy as np
>>> from scipy.linalg import issymmetric
>>> A = np.arange(9).reshape(3, 3)
>>> A = A + A.T
>>> issymmetric(A)
True
>>> Ac = np.array([[1. + 1.j, 3.j], [3.j, 2.]])
>>> issymmetric(Ac)  # not Hermitian but symmetric
True