scipy.linalg.
issymmetric#
- scipy.linalg.issymmetric(a, atol=None, rtol=None)#
检查一个二维方阵是否对称。
- 参数:
- andarray
输入数组的大小为 (N, N)。
- atolfloat, 可选
绝对误差界限
- rtolfloat, 可选
相对误差界限
- 返回:
- sym布尔
如果数组是对称的,则返回 True。
- Raises:
- 类型错误
如果数组的 dtype 不受支持,特别是对于精确比较的 NumPy float16、float128 和 complex256 dtypes。
参见
ishermitian
检查一个二维方阵是否为厄米特矩阵
注释
对于空的方形数组,按照惯例结果返回 True。复数值数组被测试是否对称,而不是是否为厄米特矩阵(见示例)
数组的对角线不会被扫描。因此,如果对角线上存在 infs、NaNs 或类似的有问题的条目,它们将被忽略。然而,
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 issymmetric >>> A = np.arange(9).reshape(3, 3) >>> A = A + A.T >>> issymmetric(A) True >>> Ac = np.array([[1. + 1.j, 3.j], [3.j, 2.]]) >>> issymmetric(Ac) # not Hermitian but symmetric True