eigvals#
- scipy.linalg.eigvals(a, b=None, overwrite_a=False, check_finite=True, homogeneous_eigvals=False)[источник]#
Вычисление собственных значений из обычной или обобщенной задачи на собственные значения.
Найти собственные значения общей матрицы:
a vr[:,i] = w[i] b vr[:,i]
Документация написана в предположении, что аргументы-массивы имеют указанные «основные» формы. Однако аргументы-массивы этой функции могут иметь дополнительные «пакетные» измерения, добавленные перед основной формой. В этом случае массив обрабатывается как пакет низкоразмерных срезов; см. Пакетные линейные операции подробности.
- Параметры:
- a(M, M) array_like
Комплексная или вещественная матрица, чьи собственные значения и собственные векторы будут вычислены.
- b(M, M) array_like, опционально
Правая часть матрицы в обобщённой задаче на собственные значения. Если опущена, предполагается единичная матрица.
- overwrite_abool, необязательно
Перезаписывать ли данные в a (может улучшить производительность)
- check_finitebool, необязательно
Проверять ли, что входные матрицы содержат только конечные числа. Отключение может дать прирост производительности, но может привести к проблемам (сбои, незавершение) если входные данные содержат бесконечности или NaN.
- homogeneous_eigvalsbool, необязательно
Если True, вернуть собственные значения в однородных координатах. В этом случае
wявляется массивом (2, M), так что:w[1,i] a vr[:,i] = w[0,i] b vr[:,i]
По умолчанию False.
- Возвращает:
- w(M,) или (2, M) double или complex ndarray
Собственные значения, каждое повторяется согласно своей кратности но не в каком-либо конкретном порядке. Форма (M,) если не указано иное
homogeneous_eigvals=True.
- Вызывает:
- LinAlgError
Если вычисление собственных значений не сходится
Смотрите также
eigсобственные значения и правые собственные векторы общих массивов.
eigvalshсобственные значения симметричных или эрмитовых массивов
eigvals_bandedсобственные значения для симметричных/эрмитовых ленточных матриц
eigvalsh_tridiagonalсобственные значения симметричных/эрмитовых трёхдиагональных матриц
Примеры
>>> import numpy as np >>> from scipy import linalg >>> a = np.array([[0., -1.], [1., 0.]]) >>> linalg.eigvals(a) array([0.+1.j, 0.-1.j])
>>> b = np.array([[0., 1.], [1., 1.]]) >>> linalg.eigvals(a, b) array([ 1.+0.j, -1.+0.j])
>>> a = np.array([[3., 0., 0.], [0., 8., 0.], [0., 0., 7.]]) >>> linalg.eigvals(a, homogeneous_eigvals=True) array([[3.+0.j, 8.+0.j, 7.+0.j], [1.+0.j, 1.+0.j, 1.+0.j]])