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