scipy.linalg.

ishermitian#

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

检查一个方形 2D 矩阵是否是厄密的。

参数:
andarray

大小为 (N, N) 的输入矩阵

atolfloat,可选

绝对误差界

rtolfloat,可选

相对误差界

返回:
herbool

如果该矩阵是厄密的,则返回 True。

引发:
TypeError

如果矩阵的 dtype 不受支持,特别是 NumPy float16、float128 和 complex256 dtype。

另请参见

issymmetric

检查一个方形 2D 矩阵是否是对称的

注意

对于方形空矩阵,结果按惯例返回 True。

numpy.inf 将被视作一个数字,也就是说 [[1, inf], [inf, 2]] 将会返回 True。另一方面 numpy.nan 绝不对称,比如,[[1, nan], [nan, 2]] 将会返回 False

atol 和/或 rtol 被设置为 , 则比较通过 numpy.allclose 进行,公差值会传递给它。否则,内部函数会针对零执行精确比较。因此,取决于数组的大小和数据类型,性能可能会提升或下降。如果给定了 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