Разница между функциями eig() и eigh() в NumPy заключается в том, что они вычисляют собственные значения и векторы для разных типов матриц. 14
eig() определяет собственные значения и векторы для квадратной матрицы. 1
eigh() вычисляет собственные значения и векторы для комплексной эрмитовой (конъюгатно-симметричной) или реальной симметричной матрицы. 45 При этом функция не проверяет, является ли матрица симметричной, а по умолчанию берёт нижнюю треугольную часть матрицы и предполагает, что верхняя треугольная часть определяется симметрией матрицы. 2
Таким образом, eigh() рекомендуется использовать, если известна симметрия матрицы, так как она гарантирует сортировку собственных значений и использует более быстрый алгоритм. 23 eig() работает для общих матриц и использует более медленный алгоритм. 23