Eigenvalues and eigenvectors#

Любая квадратная матрица \(\boldsymbol A\) задаёт линейное преобразование пространства \(\mathbb R^n\) по правилу \(\boldsymbol x \mapsto \boldsymbol{Ax}\). В результате такого преобразования векторы обычно меняют как направление, так и длину. Однако бывает так, что у некоторые векторов направление сохраняется, либо же меняется на противоположное. Такие векторы называются собственными векторами матрицы.

Пусть \(\boldsymbol A \in \mathbb R^{n\times n}\). Если \(\boldsymbol{Ax} = \lambda \boldsymbol x\) при некотором \(\boldsymbol x \ne \boldsymbol 0\), то число \(\lambda\) называют собственным значением (числом) матрицы \(\boldsymbol A\), а вектор \(\boldsymbol x \in \mathbb R^n\) — собственным вектором. Множество всех собственных значений матрицы \(\boldsymbol A\) называют её спектром и обозначают \(\sigma(\boldsymbol A)\) или \(\mathrm{spec}(\boldsymbol A)\). Поскольку первое обозначение конфликтует с применением сигмоиды к матрице \(\boldsymbol A\), далее будем пользоваться вторым.

Равенство \(\boldsymbol{Ax} = \lambda \boldsymbol x\) эквивалентно равенству \((\boldsymbol A - \lambda \boldsymbol I)\boldsymbol x = \boldsymbol 0\). Таким образом, собственный вектор \(\boldsymbol x\), отвечающий собственному значению \(\lambda\), лежит в ядре матрицы \(\boldsymbol A - \lambda \boldsymbol I\), и поэтому эта матрица должна быть вырожденной. Итак,

\[ \lambda \in \mathrm{spec}(\boldsymbol A) \iff \vert\boldsymbol A - \lambda \boldsymbol I\vert = 0. \]

In NumPy both eigenvalues and eigenvectors are computed by the function np.linalg.eig:

import numpy as np
A = np.array([[1, 4], [2, 3]])
eig_result = np.linalg.eig(A)
print("Eigenvalues:", eig_result.eigenvalues)
print("Eigenvectors:", eig_result.eigenvectors[:, 0], eig_result.eigenvectors[:, 1])
Eigenvalues: [-1.  5.]
Eigenvectors: [-0.89442719  0.4472136 ] [-0.70710678 -0.70710678]

Eigenvalues of special matrices#

  1. Собственные числа диагональной матрицы \(\boldsymbol \Lambda = \mathrm{diag}\{\lambda_1, \ldots, \lambda_n\}\) — это в точности элементы её главной диагонали, поскольку \(\boldsymbol {\Lambda e}_k = \lambda_k \boldsymbol e_k\), и каждый вектор \(\boldsymbol e_k\) стандартного ортонормированного базиса в \(\mathbb R^n\) является собственным для матрицы \(\boldsymbol \Lambda\). Если \(\vert \lambda_k\vert > 1\), то вектор \(\boldsymbol e_k\) растягивается в результате умножения на него матрицы \(\boldsymbol \Lambda\), а если \(\vert \lambda_k\vert < 1\), то сжимается (в точку при \(\lambda_k = 0\)).

  2. Спектр верхней/нижней треугольной матрицы \(\boldsymbol A\) также состоит из её диагональных элементов \(\lambda_1, \ldots, \lambda_n\), поскольку

    \[ \vert\boldsymbol A - \lambda \boldsymbol I\vert = (\lambda_1-\lambda)\ldots (\lambda_n - \lambda) = 0 \iff \lambda \in \{\lambda_1, \ldots, \lambda_n\}. \]
  3. Матрица проекции \(\boldsymbol P\) может иметь только два различных собственных значения: \(0\) и \(1\). В самом деле, если \(\boldsymbol{Px} = \lambda \boldsymbol x\), то в силу равенства \(\boldsymbol P^2 = \boldsymbol P\) получаем

    \[ \lambda \boldsymbol x = \boldsymbol{Px} = \boldsymbol P(\boldsymbol{Px}) = \boldsymbol P(\lambda\boldsymbol x) = \lambda^2\boldsymbol x. \]

    Отсюда следует, что \((\lambda - \lambda^2)\boldsymbol x =\boldsymbol 0\), и поскольку собственный вектор всегда ненулевой, \(\lambda(1-\lambda) = 0\).

  4. Если матрица \(\boldsymbol Q\) ортогональна и \(\lambda \in \mathrm{spec}(\boldsymbol Q)\), то \(\vert \lambda\vert= 1\). Действительно, ортогональные матрицы сохраняют длины, поэтому из равенства \(\boldsymbol{Qx} = \lambda \boldsymbol x\) следует, что

    \[ \Vert \boldsymbol x \Vert = \Vert \boldsymbol{Qx} \Vert = \Vert \lambda \boldsymbol x\Vert = \vert \lambda\vert \Vert \boldsymbol x \Vert. \]

    Сокращая на \(\Vert \boldsymbol x \Vert \ne 0\), получаем \(\vert \lambda\vert= 1\).

  5. Если \(\mathrm{spec}(\boldsymbol A) = \{\lambda_1, \ldots, \lambda_n\}\), то \(\mathrm{spec}(\boldsymbol A^k) = \{\lambda^k_1, \ldots, \lambda^k_n\}\) при всех \(k\in \mathbb N\). Достаточно проверить это свойство для \(k=2\). Если \(\boldsymbol{Ax} = \lambda \boldsymbol x\), то

    \[ \boldsymbol A^2\boldsymbol x = \boldsymbol A(\boldsymbol{Ax}) = \boldsymbol A(\lambda\boldsymbol x) = \lambda\boldsymbol{Ax} = \lambda^2 \boldsymbol x. \]

    То есть вектор \(\boldsymbol x\) является собственным как для матрицы \(\boldsymbol A\), так и для матрицы \(\boldsymbol A^2\), а вот собственное число возвелось в квадрат.

  6. Если \(\mathrm{spec}(\boldsymbol A) = \{\lambda_1, \ldots, \lambda_n\}\) и \(\lambda_k \ne 0\), \(1\leqslant k \leqslant n\), то матрица \(\boldsymbol A\) обратима и

    \[ \mathrm{spec}(\boldsymbol A^{-1}) = \Big\{\frac 1{\lambda_1}, \ldots, \frac 1{\lambda_n}\Big\}. \]

    Прежде всего заметим, что матрица \(\boldsymbol A\) невырождена, поскольку \(0 \notin \mathrm{spec}(\boldsymbol A)\). Далее, если \(\boldsymbol{Ax} = \lambda \boldsymbol x\), \(\lambda \ne 0\), то

    \[ \boldsymbol A^{-1}\boldsymbol x = \frac 1\lambda\boldsymbol A^{-1}(\lambda\boldsymbol x) = \frac 1\lambda\boldsymbol A^{-1}(\boldsymbol {Ax}) = \frac 1\lambda\boldsymbol x. \]

    И здесь мы видим, что матрица и её обратная имеют один и тот же набор собственных векторов.

Упражнение. Докажите, что спектры подобных матриц совпадают.

Characteristic polynomial#

Собственные значения матрицы \(\boldsymbol A\) — это в точности корни её характеристического многочлена

\[ \chi_{\boldsymbol A} (\lambda) = \det(\boldsymbol A - \lambda \boldsymbol I), \]

представляющего собой многочлен степени \(n\) от \(\lambda\). Основная теорема алгебры гласит, что всякий многочлен степени \(n\) имеет \(n\) комплексных корней, однако, действительных среди них может быть меньше или не быть вовсе. Например, у матрицы поворота на 90° градусов

\[\begin{split} \boldsymbol A = \begin{pmatrix} 0 & -1 \\ 1 & 0 \\ \end{pmatrix} \end{split}\]

нет действительных собственных значений и векторов, поскольку нет таких векторов на плоскости, которые после поворота на 90° градусов остались бы лежать на той же прямой. И действительно,

\[\begin{split} \vert\boldsymbol A - \lambda \boldsymbol I\vert = \begin{vmatrix} -\lambda & -1 \\ 1 & -\lambda \\ \end{vmatrix} = \lambda^2 + 1 = 0 \text{ при } \lambda = \pm i. \end{split}\]

Получилось два сопряжённых мнимых собственных значения. Похожее верно для любой вещественной матрицы: если у неё есть комплексные собственные числа, то они разбиваются на пары взаимно сопряжённый значений.

Применяя теорему Виета к характеристическому многочлену матрицы \(\boldsymbol A\in \mathbb R^{n\times n}\), получаем, что её собственные значения \(\lambda_1, \ldots, \lambda_n\) удовлетворяют соотношениям

\[ \lambda_1\cdot \ldots\cdot \lambda_n = \det \boldsymbol A, \quad \lambda_1 + \ldots + \lambda_n = \mathrm{tr}(\boldsymbol A). \]

Complex eigenvalues also can be calculated in NumPy:

A = np.array([[1, -2], [3, 4]])
np.linalg.eig(A)
eig_result = np.linalg.eig(A)
print("Eigenvalues:", eig_result.eigenvalues)
print("Eigenvectors:", eig_result.eigenvectors[:, 0], eig_result.eigenvectors[:, 1])
Eigenvalues: [2.5+1.93649167j 2.5-1.93649167j]
Eigenvectors: [ 0.38729833-0.5j -0.77459667+0.j ] [ 0.38729833+0.5j -0.77459667-0.j ]

Multiplicity of eigenvalues#

Геометрическая кратность собственного значения \(\lambda \in \mathrm{spec}(\boldsymbol A)\) равна размерности ядра матрицы \(\boldsymbol A - \lambda \boldsymbol I\):

\[ \gamma_{\boldsymbol A}(\lambda) = \dim N(\boldsymbol A - \lambda \boldsymbol I). \]

Упражнение. Докажите, что \(\gamma_{\boldsymbol A}(\lambda) = \gamma_{\boldsymbol B}(\lambda)\), если \(\boldsymbol A \sim \boldsymbol B\).

Алгебраическая кратность \(\mu_{\boldsymbol A}(\lambda)\) собственного числа \(\lambda \in \mathrm{spec}(\boldsymbol A)\) — это его кратность как корня характеристического многочлена \(\chi_{\boldsymbol A}(\lambda)\).

Теорема. Если \(\lambda \in \mathrm{spec}(\boldsymbol A)\), \(\boldsymbol A \in \mathbb R^{n\times n}\), то \(1 \leqslant \gamma_{\boldsymbol A}(\lambda) \leqslant \mu_{\boldsymbol A}(\lambda) \leqslant n\).

Например, у единичной матрицы \(\boldsymbol A = \boldsymbol I_2\) обе кратности собственного значения \(\lambda = 1\) равны двум. А вот для матрицы

\[\begin{split} \boldsymbol A = \begin{pmatrix} 1 & 1 \\ 0 & 1 \\ \end{pmatrix} \end{split}\]

имеем \(1 = \gamma_{\boldsymbol A}(1) < \mu_{\boldsymbol A}(1) = 2\).

Exercises#

  1. Find all eigenvalues of a one-rank matrix \(\boldsymbol A = \boldsymbol{uv}^\top\), \(\boldsymbol u, \boldsymbol v \in \mathbb R^n\).