scipy.linalg.

issymmetric#

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

检查一个方形 2D 数组是否是对称的。

参数:
andarray

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

atol浮点数,可选

绝对误差界限

rtol浮点数,可选

相对误差界限

返回值:
sym布尔值

如果该数组是对称的,则返回 True。

引发:
TypeError

如果数组的 dtype 不受支持,特别是对于精确比较来说,NumPy float16、float128 和 complex256 dtypes 不受支持。

请参见

ishermitian

检查一个方形 2D 数组是否是 Hermitian 矩阵

注意

对于方形的空数组,根据惯例,返回 True。对复数值数组进行对称性测试,而不是 Hermitian 测试(见示例)

数组的对角线没有被扫描。因此,如果对角线上有无穷大、NaN 或类似的有问题的条目,它们将被忽略。但是, numpy.inf 将被视为一个数字,也就是说 [[1, inf], [inf, 2]] 将返回 True。另一方面,numpy.nan 从不具有对称性,比如 [[1, nan], [nan, 2]] 将返回 False

如果将 atol 和/或 rtol 设置为 ,然后比较由 numpy.allclose 执行,并且容差值传递给它。否则,由内部函数执行针对零的精确比较。因此,性能会根据数组的大小和 dtype 而有所提高或降低。如果在给定一个 atolrtol 的情况下,另一个自动设置为零。

示例

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