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 而提升或降低。如果給定atol
或rtol
其中之一,則另一個會自動設定為零。範例
>>> 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