scipy.linalg.ishermitian

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

检查正方形二维数组是否为厄米特数组。

参数
andarray

大小为(N,N)的输入数组

atol浮动,可选

绝对误差界

rtol浮动,可选

相对误差界

退货
her布尔尔

如果数组为Hermitian,则返回True。

加薪
TypeError

如果不支持数组的数据类型,特别是NumPy浮点16、浮点128和复杂256数据类型。

参见

issymmetric

检查正方形二维阵列是否对称

注意事项

对于正方形空数组,按照惯例,结果返回True。

numpy.inf 将被视为一个数字,也就是说 [[1, inf], [inf, 2]] 会回来的 True 。另一方面, numpy.NaN 从来不是对称的,比方说, [[1, nan], [nan, 2]] 会回来的 False

什么时候 atol 和/或 rtol 设置为,则由 numpy.allclose 并将公差值传递给它。否则,内部函数将执行与零的精确比较。因此,根据阵列的大小和数据类型,性能可以提高或降低。如果其中一个 atolrtol 假设另一个被自动设置为零。

示例

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