numpy.linalg.eigvalsh

numpy.linalg.eigvalsh(a, UPLO='L')

Функция linalg.eigvalsh() вычисляет собственные значения эрмитовой или вещественной симметричной матрицы

Если вам необходимо вычислять и собственные значения и собственные векторы, то воспользуйтесь функцией linalg.eigh().

Параметры:
a - массив NumPy или подобнй массиву объект.
Это может быть толко "квадратный" двумерный массив, т.е. квадратная матрица, причем эрмитова или вещественная симметричная. Если это многомерный массив, то две его последние оси должны быть равны, в этом случае он рассматривается как массив матриц и все вычисления выполняются отдельно для каждой из них.
UPLO - {'L', 'U'} (необязательный параметр).
Определяет с какой частью треугольной частью исходной матрицы выполняется вычисление 'L' - нижней (по умолчанию), 'U' - верхней. Однако, вне зависимости от значения параметра, диагональные элементы будут рассматриваться только как вещественные числа, если на диагонали присутствуют комплексные числа, то их мнимая часть будет приравнена к 0.
Возвращает:
w - массив NumPy
Собственные числа входной матрицы.
Смотрите так же:
eig, eigh, eigvals


Примеры

Собственные значения эрмитовы матрицы:

>>> import numpy as np
>>> from numpy import linalg as LA
>>> 
>>> a = np.array([[5, 2 + 1j], [2 - 1j, 7]])
>>> 
>>> LA.eigvalsh(a)
array([3.55051026, 8.44948974])

Собственные числа и векторы вещественной симетричной матрицы:

>>> b = np.array([[1, 3, 0], [3, 2, 6], [0, 6, 5]])
>>> b
array([[1, 3, 0],
       [3, 2, 6],
       [0, 6, 5]])
>>> 
>>> LA.eigvalsh(b)
array([-3.8899916 ,  1.81086861, 10.07912299])