numpy.linalg.eigvalsh
numpy.linalg.eigvalsh(a, UPLO='L')
Функция linalg.eigvalsh() вычисляет собственные значения эрмитовой или вещественной симметричной матрицы
Если вам необходимо вычислять и собственные значения и собственные векторы, то воспользуйтесь функцией linalg.eigh()
.
-
- a - массив NumPy или подобнй массиву объект.
- Это может быть толко "квадратный" двумерный массив, т.е. квадратная матрица, причем эрмитова или вещественная симметричная. Если это многомерный массив, то две его последние оси должны быть равны, в этом случае он рассматривается как массив матриц и все вычисления выполняются отдельно для каждой из них.
- UPLO - {'L', 'U'} (необязательный параметр).
-
Определяет с какой частью треугольной частью исходной матрицы выполняется вычисление
'L'
- нижней (по умолчанию),'U'
- верхней. Однако, вне зависимости от значения параметра, диагональные элементы будут рассматриваться только как вещественные числа, если на диагонали присутствуют комплексные числа, то их мнимая часть будет приравнена к 0.
-
- w - массив NumPy
- Собственные числа входной матрицы.
Примеры
Собственные значения эрмитовы матрицы:
>>> 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])