scipy.linalg.

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]])