Spec-Zone.ru › NumPy 1.21

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API