numpy.linalg.eigvalsh
-
numpy.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 -
собственные значения и правые собственные векторы общих вещественных или комплексных массивов.
Примечания
Введено в версии 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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.linalg.eigvalsh.html