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\), и поэтому эта матрица должна быть вырожденной. Итак,
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#
Собственные числа диагональной матрицы \(\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\)).
Спектр верхней/нижней треугольной матрицы \(\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\}. \]Матрица проекции \(\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\).
Если матрица \(\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\).
Если \(\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\), а вот собственное число возвелось в квадрат.
Если \(\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. \]И здесь мы видим, что матрица и её обратная имеют один и тот же набор собственных векторов.
Упражнение. Докажите, что спектры подобных матриц совпадают.
Proof
Если \(\boldsymbol A \sim \boldsymbol B\), то \( \boldsymbol B = \boldsymbol M^{-1}\boldsymbol {AM}\) для некоторой невырожденной матрицы \(\boldsymbol M\). Пусть \(\boldsymbol {Ax} = \lambda \boldsymbol x\), \(\boldsymbol x \ne \boldsymbol 0\). Обозначим \(\boldsymbol y = \boldsymbol M^{-1}\boldsymbol x\). Тогда \(\boldsymbol y \ne \boldsymbol 0\) и
Таким обрзом, вектор \(\boldsymbol y = \boldsymbol M^{-1}\boldsymbol x\) является собственным вектором матрицы \(\boldsymbol B\), отвечающим собственному значению \(\lambda\). Следовательно, \(\mathrm{spec}(\boldsymbol A) = \mathrm{spec}(\boldsymbol B)\). Отметим, что в отличие от собственных чисел собственные векторы подобных матриц совпадать не обязаны.
Characteristic polynomial#
Собственные значения матрицы \(\boldsymbol A\) — это в точности корни её характеристического многочлена
представляющего собой многочлен степени \(n\) от \(\lambda\). Основная теорема алгебры гласит, что всякий многочлен степени \(n\) имеет \(n\) комплексных корней, однако, действительных среди них может быть меньше или не быть вовсе. Например, у матрицы поворота на 90° градусов
нет действительных собственных значений и векторов, поскольку нет таких векторов на плоскости, которые после поворота на 90° градусов остались бы лежать на той же прямой. И действительно,
Получилось два сопряжённых мнимых собственных значения. Похожее верно для любой вещественной матрицы: если у неё есть комплексные собственные числа, то они разбиваются на пары взаимно сопряжённый значений.
Замечание о зависимости спектра от поля скаляров
В предыдущих главах на самом деле было не так важно, состоят у нас векторы и матрицы из рациональных, действительных или комплексных чисел, а также на какие именно числа мы их умножаем. Однако когда речь заходит о собственных значениях, поле скаляров приобретает существенное значение, поскольку его выбор влияет на разрешимость уравнения \(\chi_{\boldsymbol A} (\lambda) = 0\). Как мы видели в предыдущем примере, характеристический многочлен матрицы поворота имеет два комплексных корня, но не имеет действительных. Если же в качестве поля \(F\) взять рациональные числа, то, например, матрица
не имеет собственных значений, поскольку \(\chi_{\boldsymbol A} (\lambda) = \lambda^2-2 = 0\) при \(\lambda = \pm\sqrt 2 \notin \mathbb Q\).
По-хорошему стоило бы обозначать спектр матрицы \(\boldsymbol A\) над полем \(F\) через \(\mathrm{spec}_F(\boldsymbol A)\). По умолчанию у нас везде поле \(F = \mathbb R\) и \(\mathrm{spec}(\boldsymbol A) = \mathrm{spec}_{\mathbb R}(\boldsymbol A)\). Однако в контексте собственных значений выбор поля \(F =\mathbb C\) имеет неоспоримое преимущество: любая матрица размера \(n\times n\) имеет \(n\) комплексных собственных значений (с учётом кратности), некоторые из которых могут случайно оказаться действительными, рациональными или даже целыми. Хотя на практике обычно хочется избежать комплексных чисел, полезно иметь в виду такое теоретическое свойство. Кроме того, комплексные векторные пространства находят приложение в квантовой механике и квантовых вычислениях.
Применяя теорему Виета к характеристическому многочлену матрицы \(\boldsymbol A\in \mathbb R^{n\times n}\), получаем, что её собственные значения \(\lambda_1, \ldots, \lambda_n\) удовлетворяют соотношениям
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) = \gamma_{\boldsymbol B}(\lambda)\), если \(\boldsymbol A \sim \boldsymbol B\).
Proof
Если \(\boldsymbol A \sim \boldsymbol B\), то \( \boldsymbol B = \boldsymbol M^{-1}\boldsymbol {AM}\) для некоторой невырожденной матрицы \(\boldsymbol M\), и тогда
Умножение справа или слева на невырожденную матрицу не меняет ранг матрицы, поэтому и размерность ядра остаётся неизменной:
Алгебраическая кратность \(\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\) равны двум. А вот для матрицы
имеем \(1 = \gamma_{\boldsymbol A}(1) < \mu_{\boldsymbol A}(1) = 2\).
Exercises#
Find all eigenvalues of a one-rank matrix \(\boldsymbol A = \boldsymbol{uv}^\top\), \(\boldsymbol u, \boldsymbol v \in \mathbb R^n\).