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