numpy.linalg.eigvalsh
- linalg.eigvalsh(a, UPLO='L')[source]
-
Вычисление собственных значений комплексной эрмитовой или вещественной симметричной матрицы.
Основное отличие от eigh: собственные векторы не вычисляются.
- Параметры
-
- a(…, M, M) array_like
-
Комплексная или вещественная матрица, собственные значения которой необходимо вычислить.
- UPLO{‘L’, ‘U’}, optional
-
Указывает, используется ли для вычисления нижняя треугольная часть
a(‘L’, по умолчанию) или верхняя треугольная часть (‘U’). Независимо от этого значения, только вещественные части диагонали будут учитываться при вычислении для сохранения понятия эрмитовой матрицы. Следовательно, мнимая часть диагонали всегда будет рассматриваться как нулевая.
- Возвращаемые значения
-
- w(…, M,) ndarray
-
Собственные значения в возрастающем порядке, каждое повторяется в соответствии со своей кратностью.
- Исключения
-
- LinAlgError
-
Если вычисление собственных значений не сходится.
См. также
eigh-
собственные значения и собственные векторы вещественных симметричных или комплексных эрмитовых (сопряженных симметричных) массивов.
eigvals-
собственные значения общих вещественных или комплексных массивов.
eig-
собственные значения и правые собственные векторы общих вещественных или комплексных массивов.
scipy.linalg.eigvalsh-
Аналогичная функция в SciPy.
Примечания
Введено в версии 1.8.0.
Применяются правила широковещательной передачи, см.
numpy.linalgдокументацию для получения подробностей.Собственные значения вычисляются с помощью процедур LAPACK
_syevd,_heevd.Примеры
>>> from numpy import linalg as LA >>> a = np.array([[1, -2j], [2j, 5]]) >>> LA.eigvalsh(a) array([ 0.17157288, 5.82842712]) # may vary
>>> # demonstrate the treatment of the imaginary part of the diagonal >>> a = np.array([[5+2j, 9-2j], [0+2j, 2-1j]]) >>> a array([[5.+2.j, 9.-2.j], [0.+2.j, 2.-1.j]]) >>> # with UPLO='L' this is numerically equivalent to using LA.eigvals() >>> # with: >>> b = np.array([[5.+0.j, 0.-2.j], [0.+2.j, 2.-0.j]]) >>> b array([[5.+0.j, 0.-2.j], [0.+2.j, 2.+0.j]]) >>> wa = LA.eigvalsh(a) >>> wb = LA.eigvals(b) >>> wa; wb array([1., 6.]) array([6.+0.j, 1.+0.j])
© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.linalg.eigvalsh.html