scipy.linalg.issymmetric

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

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

参数
andarray

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

atol浮动,可选

绝对误差界

rtol浮动,可选

相对误差界

退货
sym布尔尔

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

加薪
TypeError

如果不支持数组的数据类型,特别是NumPy float16,则使用Float128和Complex 256数据类型进行精确比较。

参见

ishermitian

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

注意事项

对于正方形空数组,按照惯例,结果返回True。测试复值数组的对称性,而不是埃尔米特数组(参见示例)。

不扫描阵列的对角线。因此,如果对角线上有INF、NAN或类似的有问题的条目,它们将被忽略。然而, numpy.inf 将被视为一个数字,也就是说 [[1, inf], [inf, 2]] 会回来的 True 。另一方面, numpy.NaN 从来不是对称的,比方说, [[1, nan], [nan, 2]] 会回来的 False

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

示例

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