Функция linalg.eigvalsh
Функция linalg.eigvalsh вычисляет собственные значения эрмитовой
(или вещественной симметричной) матрицы. В отличие от функции
linalg.eigvals, эта функция предполагает, что матрица является
эрмитовой (самосопряжённой), что позволяет использовать более
быстрые и устойчивые алгоритмы. Первым параметром функция
принимает квадратную матрицу. Вторым параметром можно указать
тип матрицы - 'L' для нижней треугольной части или
'U' для верхней.
Синтаксис
np.linalg.eigvalsh(a, UPLO='L')
Пример
Вычислим собственные значения симметричной матрицы:
import numpy as np
arr = np.array([[3, 1], [1, 3]])
res = np.linalg.eigvalsh(arr)
print(res)
Результат выполнения кода:
[2. 4.]
Пример
Создадим симметричную матрицу большего размера и найдём её собственные значения:
import numpy as np
arr = np.array([[4, 1, 2], [1, 3, 1], [2, 1, 5]])
res = np.linalg.eigvalsh(arr)
print(res)
Результат выполнения кода:
[1.76393202 3. 7.23606798]
Пример
Используем параметр UPLO для указания использования верхней треугольной части матрицы:
import numpy as np
arr = np.array([[2, 1, 0], [1, 3, 1], [0, 1, 2]])
res = np.linalg.eigvalsh(arr, UPLO='U')
print(res)
Результат выполнения кода:
[1. 2. 4.]
Пример
Вычислим собственные значения комплексной эрмитовой матрицы:
import numpy as np
arr = np.array([[1, 1j], [-1j, 1]])
res = np.linalg.eigvalsh(arr)
print(res)
Результат выполнения кода:
[0. 2.]
Смотрите также
-
функцию
eigvals,
которая вычисляет собственные значения для произвольной матрицы -
функцию
eigh,
которая вычисляет собственные значения и собственные векторы эрмитовой матрицы -
функцию
eig,
которая вычисляет собственные значения и собственные векторы для произвольной матрицы -
функцию
det,
которая вычисляет определитель квадратной матрицы