Функция linalg.eigvals
Функция linalg.eigvals предназначена для вычисления собственных значений квадратной матрицы. В отличие от функции eig, она возвращает только массив собственных значений, что делает её более быстрой и менее затратной по памяти, когда собственные векторы не требуются. На вход подаётся квадратная матрица, а результатом является одномерный массив, содержащий её собственные значения, которые могут быть комплексными числами даже для вещественной матрицы.
Параметры функции: a (массив или матрица) - квадратная матрица, для которой вычисляются собственные значения. Возвращаемое значение - массив собственных значений, не отсортированных в каком-либо порядке.
Синтаксис
np.linalg.eigvals(a)
Пример
Рассмотрим вычисление собственных значений для простой квадратной матрицы размером 2x2:
import numpy as np
arr = np.array([[1, 2], [3, 4]])
res = np.linalg.eigvals(arr)
print(res)
Результат выполнения кода:
[-0.37228132 5.37228132]
Пример
Для вещественной матрицы собственные значения могут быть комплексными. В этом примере матрица имеет комплексные собственные значения:
import numpy as np
arr = np.array([[0, -1], [1, 0]])
res = np.linalg.eigvals(arr)
print(res)
Результат выполнения кода:
[0.+1.j 0.-1.j]
Пример
Функция также корректно работает с диагональными матрицами. Для диагональной матрицы собственные значения равны её диагональным элементам:
import numpy as np
arr = np.diag([1, 2, 3])
res = np.linalg.eigvals(arr)
print(res)
Результат выполнения кода:
[1. 2. 3.]
Смотрите также
-
функцию
eig,
которая возвращает как собственные значения, так и собственные векторы -
функцию
eigvalsh,
которая вычисляет собственные значения для эрмитовых или симметричных матриц -
функцию
svd,
которая выполняет сингулярное разложение матрицы -
функцию
det,
которая вычисляет определитель квадратной матрицы