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 而提高或降低。如果給定 atolrtol 其中一個,則另一個會自動設定為零。

範例

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