scipy.linalg.
ishermitian#
- scipy.linalg.ishermitian(a, atol=None, rtol=None)#
檢查一個正方形二維陣列是否為 Hermitian (厄米)。
- 參數:
- andarray
大小為 (N, N) 的輸入陣列
- atolfloat, 選用參數
絕對誤差界限
- rtolfloat, 選用參數
相對誤差界限
- 回傳:
- herbool
如果陣列為 Hermitian (厄米),則回傳 True。
- 引發:
- TypeError
如果陣列的 dtype 不受支援,特別是 NumPy float16、float128 和 complex256 dtypes。
另請參閱
issymmetric
檢查一個正方形二維陣列是否為 symmetric (對稱)
註解
對於正方形空陣列,依慣例會回傳 True。
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 ishermitian >>> A = np.arange(9).reshape(3, 3) >>> A = A + A.T >>> ishermitian(A) True >>> A = np.array([[1., 2. + 3.j], [2. - 3.j, 4.]]) >>> ishermitian(A) True >>> Ac = np.array([[1. + 1.j, 3.j], [3.j, 2.]]) >>> ishermitian(Ac) # not Hermitian but symmetric False >>> Af = np.array([[0, 1 + 1j], [1 - (1+1e-12)*1j, 0]]) >>> ishermitian(Af) False >>> ishermitian(Af, atol=5e-11) # almost hermitian with atol True