ishermitian#
- scipy.linalg.ishermitian(a, atol=None, rtol=None)#
Проверить, является ли квадратный 2D массив эрмитовым.
Документация написана в предположении, что аргументы-массивы имеют указанные «основные» формы. Однако аргументы-массивы этой функции могут иметь дополнительные «пакетные» измерения, добавленные перед основной формой. В этом случае массив обрабатывается как пакет низкоразмерных срезов; см. Пакетные линейные операции подробности.
- Параметры:
- andarray
Входной массив размера (N, N)
- atolfloat, опционально
Граница абсолютной ошибки
- rtolfloat, опционально
Граница относительной ошибки
- Возвращает:
- еёbool
Возвращает True, если массив эрмитов.
- Вызывает:
- TypeError
Если тип данных массива не поддерживается, в частности, типы данных NumPy float16, float128 и complex256.
Смотрите также
issymmetricПроверить, является ли квадратная 2D-матрица симметричной
Примечания
Для пустых квадратных массивов результат по соглашению возвращается как True.
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 ishermitian >>> A = np.arange(9).reshape(3, 3) >>> A = A + A.T >>> ishermitian(A) True >>> A = np.array([[1., 2. + 3.j], [2. - 3.j, 4.]]) >>> ishermitian(A) True >>> Ac = np.array([[1. + 1.j, 3.j], [3.j, 2.]]) >>> ishermitian(Ac) # not Hermitian but symmetric False >>> Af = np.array([[0, 1 + 1j], [1 - (1+1e-12)*1j, 0]]) >>> ishermitian(Af) False >>> ishermitian(Af, atol=5e-11) # almost hermitian with atol True