scipy.linalg.

issymmetric#

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

檢查一個正方形 2D 陣列是否為對稱。

參數:
andarray

大小為 (N, N) 的輸入陣列。

atolfloat, optional

絕對誤差界限

rtolfloat, optional

相對誤差界限

回傳值:
symbool

如果陣列為對稱,則回傳 True。

引發:
TypeError

如果陣列的 dtype 不被支援,特別是 NumPy float16、float128 和 complex256 dtype 用於精確比較。

另請參閱

ishermitian

檢查一個正方形 2D 陣列是否為 Hermitian

註解

對於正方形空陣列,依照慣例會回傳 True。複數值陣列會測試是否為對稱,而不是 Hermitian (請參閱範例)

陣列的對角線不會被掃描。因此,如果對角線上存在 inf、NaN 或類似的問題條目,它們將被忽略。然而,numpy.inf 將被視為一個數字,也就是說,[[1, inf], [inf, 2]] 將回傳 True。另一方面,numpy.nan 永遠不是對稱的,例如,[[1, nan], [nan, 2]] 將回傳 False

atol 和/或 rtol 被設定時,比較會由 numpy.allclose 執行,並且容差值會傳遞給它。否則,會由內部函數執行與零的精確比較。因此,效能可能會根據陣列的大小和 dtype 而提升或降低。如果給定 atolrtol 其中之一,則另一個會自動設定為零。

範例

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