Spec-Zone.ru › NumPy 1.18

numpy.linalg.eig

numpy.linalg.eig(a) [source]

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

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

Матрицы, для которых будут вычислены собственные значения и собственные векторы

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

Собственные значения, каждое повторяется в соответствии с его кратностью. Собственные значения не обязательно упорядочены. Результирующий массив будет комплексного типа, если только мнимая часть не равна нулю, в этом случае он будет преобразован в вещественный тип. Когда a вещественно, полученные собственные значения будут вещественными (0 мнимая часть) или будут встречаться в комплексно-сопряжённых парах

v(…, M, M) array

Нормализованные (единичной «длины») собственные векторы, такие что столбец v[:,i] является собственным вектором, соответствующим собственному значению w[i].

Возбуждает
LinAlgError

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

См. также

eigvals

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

eigh

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

eigvalsh

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

Примечания

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

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

Это реализовано с использованием _geev подпрограмм LAPACK, которые вычисляют собственные значения и собственные векторы произвольных квадратных массивов.

Число w является собственным значением a, если существует вектор v, такой что dot(a,v) = w * v. Таким образом, массивы a, w, и v удовлетворяют уравнениям dot(a[:,:], v[:,i]) = w[i] * v[:,i] для i \in \{0,...,M-1\}.

Массив v собственных векторов может не быть максимального ранга, то есть некоторые из столбцов могут быть линейно зависимыми, хотя погрешность округления может это скрыть. Если все собственные значения различны, то теоретически собственные векторы линейно независимы. Аналогично, (комплекснозначная) матрица собственных векторов v унитарна, если матрица a нормальна, то есть если dot(a, a.H) = dot(a.H, a), где a.H обозначает сопряженный транспонированный a.

Наконец, следует подчеркнуть, что v состоит из правых (как в правой части) собственных векторов a . Вектор y , удовлетворяющий dot(y.T, a) = z * y.T для некоторого числа z называется левым собственным вектором a, и, вообще говоря, левые и правые собственные векторы матрицы не обязательно являются (возможно, сопряженными) транспонированными друг к другу.

Ссылки

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

Примеры

>>> from numpy import linalg as LA

(Почти) тривиальный пример с вещественными собственными значениями и собственными векторами.

>>> w, v = LA.eig(np.diag((1, 2, 3)))
>>> w; v
array([1., 2., 3.])
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])

Вещественная матрица с комплексными собственными значениями и собственными векторами; обратите внимание, что собственные значения являются комплексными сопряжениями друг друга.

>>> w, v = LA.eig(np.array([[1, -1], [1, 1]]))
>>> w; v
array([1.+1.j, 1.-1.j])
array([[0.70710678+0.j        , 0.70710678-0.j        ],
       [0.        -0.70710678j, 0.        +0.70710678j]])

Комплекснозначная матрица с вещественными собственными значениями (но комплексными собственными векторами); обратите внимание, что a.conj().T == a, т.е. a эрмитова.

>>> a = np.array([[1, 1j], [-1j, 1]])
>>> w, v = LA.eig(a)
>>> w; v
array([2.+0.j, 0.+0.j])
array([[ 0.        +0.70710678j,  0.70710678+0.j        ], # may vary
       [ 0.70710678+0.j        , -0.        +0.70710678j]])

Будьте осторожны с погрешностью округления!

>>> a = np.array([[1 + 1e-9, 0], [0, 1 - 1e-9]])
>>> # Theor. e-values are 1 +/- 1e-9
>>> w, v = LA.eig(a)
>>> w; v
array([1., 1.])
array([[1., 0.],
       [0., 1.]])

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

Spec-Zone.ru

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