scipy.linalg.

ishermitian#

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

检查一个方阵的二维数组是否是厄米矩阵。

本文档假定数组参数具有指定的“核心”形状。但是,此函数的数组参数可以在核心形状之前添加额外的“批处理”维度。在这种情况下,数组被视为低维切片的批处理;有关详细信息,请参阅 批量线性运算

参数:
andarray

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

atol浮点型, 可选

绝对误差界限

rtol浮点型, 可选

相对误差界限

返回:
her布尔型

如果数组是厄米矩阵,则返回 True。

抛出:
TypeError

如果数组的数据类型不支持,特别是 NumPy 的 float16、float128 和 complex256 数据类型。

另请参阅

issymmetric

检查一个方阵的二维数组是否是对称矩阵

备注

根据约定,对于空的方阵数组,结果返回 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