Spec-Zone.ru › NumPy 1.19

numpy.linalg.eigh

numpy.linalg.eigh(a, UPLO='L') [source]

Возвращает собственные значения и собственные векторы комплексной эрмитовой (сопряжённо-симметричной) или вещественной симметричной матрицы.

Возвращает два объекта: одномерный массив, содержащий собственные значения a, и двумерный квадратный массив или матрицу (в зависимости от типа входных данных) соответствующих собственных векторов (в столбцах).

Параметры
a(…, M, M) array

Эрмитовы или вещественные симметричные матрицы, для которых необходимо вычислить собственные значения и собственные векторы.

UPLO{‘L’, ‘U’}, optional

Определяет, вычисляются ли значения с использованием нижней треугольной части a (‘L’, по умолчанию) или верхней треугольной части (‘U’). Независимо от этого значения, в вычислениях будут учитываться только вещественные части диагонали для сохранения понятия эрмитовой матрицы. Следовательно, мнимая часть диагонали всегда будет рассматриваться как ноль.

Возвращает
w(…, M) ndarray

Собственные значения в порядке возрастания, каждое повторяется в соответствии со своей кратностью.

v{(…, M, M) ndarray, (…, M, M) matrix}

Столбец v[:, i] — это нормированный собственный вектор, соответствующий собственному значению w[i]. Будет возвращена матричная объект, если a — это объект матрицы.

Возбуждает
LinAlgError

Если вычисление собственных значений не сойдётся.

См. также

eigvalsh

собственные значения вещественных симметричных или комплексных эрмитовых (сопряжённо-симметричных) массивов.

eig

собственные значения и собственные векторы для несимметричных массивов.

eigvals

собственные значения несимметричных массивов.

scipy.linalg.eigh

Аналогичная функция в SciPy (но также решает обобщённую задачу нахождения собственных значений).

Примечания

Введено в версии 1.8.0.

Применяются правила вещания, см. документацию numpy.linalg для получения подробных сведений.

Вычисление собственных значений/векторов выполняется с помощью процедур LAPACK _syevd, _heevd.

Собственные значения вещественных симметричных или комплексных эрмитовых матриц всегда вещественные. [1] Массив v (столбцов) собственных векторов является унитарным и a, w, и v удовлетворяют уравнениям dot(a, v[:, i]) = w[i] * v[:, i].

Ссылки

1

Г. Странг, Линейная алгебра и её приложения, 2-е изд., Орландо, Флорида, Издательство Academic Press, Inc., 1980, стр. 222.

Примеры

>>> from numpy import linalg as LA
>>> a = np.array([[1, -2j], [2j, 5]])
>>> a
array([[ 1.+0.j, -0.-2.j],
       [ 0.+2.j,  5.+0.j]])
>>> w, v = LA.eigh(a)
>>> w; v
array([0.17157288, 5.82842712])
array([[-0.92387953+0.j        , -0.38268343+0.j        ], # may vary
       [ 0.        +0.38268343j,  0.        -0.92387953j]])
>>> np.dot(a, v[:, 0]) - w[0] * v[:, 0] # verify 1st e-val/vec pair
array([5.55111512e-17+0.0000000e+00j, 0.00000000e+00+1.2490009e-16j])
>>> np.dot(a, v[:, 1]) - w[1] * v[:, 1] # verify 2nd e-val/vec pair
array([0.+0.j, 0.+0.j])
>>> A = np.matrix(a) # what happens if input is a matrix object
>>> A
matrix([[ 1.+0.j, -0.-2.j],
        [ 0.+2.j,  5.+0.j]])
>>> w, v = LA.eigh(A)
>>> w; v
array([0.17157288, 5.82842712])
matrix([[-0.92387953+0.j        , -0.38268343+0.j        ], # may vary
        [ 0.        +0.38268343j,  0.        -0.92387953j]])
>>> # 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.eig() 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, va = LA.eigh(a)
>>> wb, vb = LA.eig(b)
>>> wa; wb
array([1., 6.])
array([6.+0.j, 1.+0.j])
>>> va; vb
array([[-0.4472136 +0.j        , -0.89442719+0.j        ], # may vary
       [ 0.        +0.89442719j,  0.        -0.4472136j ]])
array([[ 0.89442719+0.j       , -0.        +0.4472136j],
       [-0.        +0.4472136j,  0.89442719+0.j       ]])

© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.linalg.eigh.html

Spec-Zone.ru

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