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
ishermitianPrü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.infwird jedoch als Zahl behandelt, d. h.[[1, inf], [inf, 2]]gibtTruezurück. Auf der anderen Seite istnumpy.nanniemals symmetrisch, z. B. gibt[[1, nan], [nan, 2]]Falsezurück.Wenn
atolund/oderrtolauf gesetzt sind, wird der Vergleich vonnumpy.allclosedurchgefü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 Werteatoloderrtolangegeben 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