scipy.linalg.

issymmetric#

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

Проверить, является ли квадратный 2D массив симметричным.

Документация написана в предположении, что аргументы-массивы имеют указанные «основные» формы. Однако аргументы-массивы этой функции могут иметь дополнительные «пакетные» измерения, добавленные перед основной формой. В этом случае массив обрабатывается как пакет низкоразмерных срезов; см. Пакетные линейные операции подробности.

Параметры:
andarray

Входной массив размера (N, N).

atolfloat, опционально

Граница абсолютной ошибки

rtolfloat, опционально

Граница относительной ошибки

Возвращает:
symbool

Возвращает True, если массив симметричный.

Вызывает:
TypeError

Если тип данных массива не поддерживается, в частности, NumPy float16, float128 и complex256 для точных сравнений.

Смотрите также

ishermitian

Проверить, является ли квадратный 2D массив эрмитовым

Примечания

Для пустых квадратных массивов результат по соглашению возвращается True. Комплекснозначные массивы проверяются на симметричность, а не на эрмитовость (см. примеры)

Диагональ массива не сканируется. Таким образом, если на диагонали есть inf, NaN или другие проблемные элементы, они будут проигнорированы. Однако, 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