Собственные векторы и собственные значения 🧭
Предыдущий урок закончился вопросом, который повис в воздухе: матрица оператора зависит от базиса, при смене базиса она превращается в подобную ей $C^{-1}AC$, и среди всех этих матриц наверняка есть какая-то самая простая. Какая? И как её найти?
Ответ начинается с наблюдения, которое легко проверить руками. Возьми любое линейное преобразование плоскости и посмотри, что оно делает с векторами. Почти каждый вектор оно и растягивает, и поворачивает — стрелка после преобразования смотрит в другую сторону. Но у большинства преобразований находятся редкие, особенные направления, вдоль которых поворота не происходит вообще: вектор остаётся на своей прямой, меняется только его длина, а иногда ещё и знак. Преобразование вдоль такого направления действует предельно просто — как умножение на число.
Эти направления и есть собственные векторы, а числа, на которые вдоль них происходит растяжение, — собственные значения. Формально всё записывается одной строкой: $Av = \lambda v$ при $v \ne \mathbf{0}$. Слева — работа целой матрицы, справа — умножение на скаляр. Найти такие $v$ и $\lambda$ — значит найти скелет преобразования: оси, вдоль которых оно устроено проще всего.
Технически задача решается тем аппаратом, который у тебя уже полностью в руках. Равенство $Av = \lambda v$ переписывается как $(A - \lambda I)v = \mathbf{0}$ — это однородная система из урока 167. Нас интересуют её нетривиальные решения, а критерий их существования известен: определитель матрицы системы должен обращаться в ноль. Получается уравнение $\det(A - \lambda I) = 0$ относительно неизвестного $\lambda$ — характеристическое уравнение. Решаешь его, находишь корни, для каждого корня решаешь однородную систему методом Гаусса и выписываешь ФСР. Ни одного нового инструмента, только новая постановка вопроса.
Интересное начинается там, где корни оказываются кратными. Иногда кратному корню отвечает целая плоскость собственных векторов, ровно по кратности, а иногда — всего одна прямая, и «недостающие» направления просто отсутствуют. Такие матрицы называют дефектными, и именно они не дают привести преобразование к самому простому виду. Разница между двумя кратностями — алгебраической и геометрической — главная тонкость урока, и её мы разберём в деталях.
А дальше эта конструкция обнаруживается почти везде, где данные встречаются с линейной алгеброй. PCA — это собственные векторы ковариационной матрицы. PageRank — собственный вектор матрицы переходов с собственным значением, равным единице. Скорость обучения нейросети упирается в разброс собственных чисел гессиана, а взрыв и затухание градиентов в рекуррентных сетях — в то, больше или меньше единицы наибольшее по модулю собственное значение. Всё это — один и тот же объект, и в конце урока мы посчитаем каждый из этих сюжетов на конкретных числах.
🎯 Ты узнаешь:
-
Что такое собственный вектор и собственное значение, почему из определения выброшен нулевой вектор, а нулевое собственное значение допустимо и что оно означает
-
Как равенство $Av = \lambda v$ превращается в однородную систему $(A - \lambda I)v = \mathbf{0}$ и почему из критерия урока 167 автоматически получается уравнение $\det(A - \lambda I) = 0$
-
Что такое характеристический многочлен, почему сумма его корней равна следу, произведение — определителю, и почему он не меняется при смене базиса
-
Пошаговый алгоритм поиска собственных векторов и его работу на матрицах $2 \times 2$, $3 \times 3$, треугольных и дефектных
-
Что такое собственное подпространство $E_\lambda = \ker(A - \lambda I)$, чем алгебраическая кратность отличается от геометрической и почему всегда $1 \le \text{геом} \le \text{алг}$
-
Набор рабочих свойств: независимость собственных векторов разных значений, спектр треугольной матрицы, спектр $A^k$, $A^{-1}$, $A + cI$, $A^T$
-
Степенной метод — как найти наибольшее собственное значение одним умножением матрицы на вектор, и почему это буквально алгоритм PageRank
-
Где всё это работает в ML: PCA с объяснённой дисперсией, PageRank, собственные числа гессиана и спектральная норма рекуррентной сети
История: откуда это взялось?
Собственные векторы появились в математике задолго до матриц — из механики.
Первым на них наткнулся Леонард Эйлер. В работах 1750-х годов он исследовал вращение твёрдого тела и обнаружил, что у любого такого тела есть три взаимно перпендикулярных направления, вдоль которых вращение устроено особенно просто. Эйлер назвал их главными осями инерции. В 1775 году он доказал теорему, которая сегодня носит его имя: любое перемещение твёрдого тела с одной неподвижной точкой — это поворот вокруг некоторой оси. На современном языке эта ось и есть собственный вектор матрицы поворота с собственным значением, равным единице: поворот оставляет её на месте, не растягивая и не сжимая.
Параллельно та же задача возникла в небесной механике. Жозеф Луи Лагранж и Пьер-Симон Лаплас в 1770–1780-х годах изучали, как планеты возмущают орбиты друг друга. Уравнения малых колебаний планетной системы приводили к алгебраическому уравнению, корни которого определяли частоты этих медленных колебаний. Поскольку речь шла об изменениях, заметных на масштабе столетий, уравнение назвали вековым (от латинского saeculum — век, столетие). Термин secular equation до сих пор встречается в англоязычной физической литературе как синоним характеристического уравнения. Главный вопрос той эпохи был устойчивостью Солнечной системы: если корни векового уравнения вещественные, колебания ограничены и система устойчива; если бы среди них нашлись комплексные с ненулевой вещественной частью, амплитуда росла бы неограниченно и планеты в конце концов разлетелись бы.
Ответ на этот вопрос дал Огюстен Луи Коши. В мемуаре 1829 года с говорящим названием «Об уравнении, с помощью которого определяются вековые неравенства движения планет» он доказал: если таблица коэффициентов симметрична, все корни векового уравнения вещественны. Это первая формулировка того факта о симметричных матрицах, который мы обсудим в середине урока. Коши же ввёл в оборот выражение характеристическое уравнение и разработал технику работы с определителем $\det(A - \lambda I)$.
Дальше подтянулась алгебра. Артур Кэли в мемуаре о матрицах 1858 года заметил, что матрица удовлетворяет своему собственному характеристическому уравнению — знаменитая теорема Кэли — Гамильтона; сам Кэли проверил её для матриц $2 \times 2$ и $3 \times 3$, а общее доказательство дал Георг Фробениус в 1878 году. Камиль Жордан в «Трактате о подстановках» 1870 года разобрал самый неприятный случай — когда собственных векторов не хватает — и построил каноническую форму, носящую его имя.
Само слово «собственный» появилось позже всех и по-немецки. Давид Гильберт в цикле работ по интегральным уравнениям, начиная с 1904 года, употребил термины Eigenwert и Eigenfunktion — буквально «собственное значение» и «собственная функция». Русское «собственный» — прямая калька с немецкого, а вот английский язык термин целиком переварить не смог: там прижилось гибридное eigenvalue, где немецкий корень соседствует с английским словом. Это один из немногих случаев, когда в английской математической терминологии сохранился иностранный корень.
Вычислительная сторона появилась в XX веке. Рихард фон Мизес и Хильда Поллачек-Гейрингер в 1929 году в журнале ZAMM описали степенной метод — простой итерационный способ найти наибольшее собственное значение умножением матрицы на вектор. Мы разберём его в этом уроке и увидим, что именно этот метод спустя семьдесят лет лёг в основу ранжирования веб-страниц. А в 1961 году Джон Фрэнсис в Англии и Вера Николаевна Кублановская в СССР независимо предложили QR-алгоритм — метод, который и сегодня стоит внутри numpy.linalg.eig.
Приложения к данным пришли из статистики. Карл Пирсон в 1901 году в статье «О прямых и плоскостях, наилучшим образом приближающих системы точек в пространстве» описал задачу поиска направления максимального разброса данных, а Гарольд Хотеллинг в 1933 году оформил её как метод главных компонент и дал компонентам их нынешнее название. В 1998 году Сергей Брин и Ларри Пейдж применили ту же идею к ссылочному графу интернета — и получили PageRank.
Инвариантные направления: что мы вообще ищем
Интуиция: какие векторы преобразование не сворачивает
Возьмём конкретное преобразование плоскости с матрицей
$$A = \begin{pmatrix} 2 & 1 \\ 1 & 2 \end{pmatrix}$$и посмотрим, что оно делает с разными векторами. Считать нужно только произведение матрицы на столбец — операцию из урока 157.
$$A\begin{pmatrix} 1 \\ 0 \end{pmatrix} = \begin{pmatrix} 2 \\ 1 \end{pmatrix}, \qquad A\begin{pmatrix} 0 \\ 1 \end{pmatrix} = \begin{pmatrix} 1 \\ 2 \end{pmatrix}, \qquad A\begin{pmatrix} 2 \\ 1 \end{pmatrix} = \begin{pmatrix} 5 \\ 4 \end{pmatrix}, \qquad A\begin{pmatrix} 1 \\ 3 \end{pmatrix} = \begin{pmatrix} 5 \\ 7 \end{pmatrix}$$Ни в одном из этих случаев результат не пропорционален исходному вектору. Вектор $(1, 0)$ смотрел строго вдоль оси абсцисс, а после преобразования смотрит под углом $\arctan(1/2) \approx 26{,}6^\circ$ — его развернуло. Вектор $(0,1)$ развернуло на столько же в другую сторону. Вектор $(2,1)$ перешёл в $(5,4)$: чтобы они были пропорциональны, нужно было бы $5/2 = 4/1$, а это неверно. То же с $(1,3)$ и $(5,7)$.
Теперь два других вектора:
$$A\begin{pmatrix} 1 \\ 1 \end{pmatrix} = \begin{pmatrix} 3 \\ 3 \end{pmatrix} = 3\begin{pmatrix} 1 \\ 1 \end{pmatrix}, \qquad A\begin{pmatrix} 1 \\ -1 \end{pmatrix} = \begin{pmatrix} 1 \\ -1 \end{pmatrix} = 1 \cdot \begin{pmatrix} 1 \\ -1 \end{pmatrix}$$Вот они, особенные. Вектор $(1,1)$ остался на прямой $y = x$ — его просто растянуло втрое. Вектор $(1,-1)$ остался на прямой $y = -x$ и вообще не изменился. Никакого поворота, чистое умножение на число.
И это свойство не одного вектора, а всей прямой. Проверим на $(3,3)$, который лежит на той же прямой $y = x$:
$$A\begin{pmatrix} 3 \\ 3 \end{pmatrix} = \begin{pmatrix} 9 \\ 9 \end{pmatrix} = 3\begin{pmatrix} 3 \\ 3 \end{pmatrix}$$Коэффициент растяжения тот же самый — тройка. Это не совпадение: если $Av = 3v$, то для любого числа $c$ выполнено $A(cv) = c \cdot Av = c \cdot 3v = 3(cv)$. Значит, число $3$ характеризует не отдельный вектор, а всю прямую целиком. Прямая $y = x$ — это направление, которое преобразование $A$ растягивает втрое; прямая $y = -x$ — направление, которое оно оставляет на месте.
Такие прямые называют инвариантными направлениями преобразования: они переходят сами в себя. А для описания преобразования их знание бесценно. Разложи любой вектор по направлениям $(1,1)$ и $(1,-1)$ — и действие матрицы сведётся к двум умножениям на числа. Например, $(3, 1) = 2(1,1) + 1(1,-1)$, откуда
$$A\begin{pmatrix} 3 \\ 1 \end{pmatrix} = 2 \cdot 3 \begin{pmatrix} 1 \\ 1 \end{pmatrix} + 1 \cdot 1 \begin{pmatrix} 1 \\ -1 \end{pmatrix} = \begin{pmatrix} 6 \\ 6 \end{pmatrix} + \begin{pmatrix} 1 \\ -1 \end{pmatrix} = \begin{pmatrix} 7 \\ 5 \end{pmatrix}$$Прямая проверка: $A(3,1)^T = (6 + 1, 3 + 2)^T = (7, 5)^T$. Сошлось. Мы посчитали действие матрицы, ни разу не перемножив матрицу на столбец в лоб — только растянув два независимых куска.
Определение
Определение: Пусть $A$ — квадратная матрица порядка $n$. Ненулевой вектор $v \in \mathbb{R}^n$ называется собственным вектором матрицы $A$, если найдётся число $\lambda$ такое, что
$$Av = \lambda v, \qquad v \ne \mathbf{0}.$$Само число $\lambda$ называется собственным значением (собственным числом) матрицы $A$, отвечающим вектору $v$. Множество всех собственных значений матрицы называется её спектром.
Читается это так: матрица действует на свой собственный вектор как обычное число. Вся сложность преобразования — повороты, перекосы, смешивание координат — на этом направлении испаряется.
Для нашего примера: $\lambda_1 = 3$ с собственным вектором $(1,1)$, $\lambda_2 = 1$ с собственным вектором $(1,-1)$. Спектр матрицы $A$ — множество $\{1, 3\}$.
Обрати внимание на несимметричность определения. Собственному вектору отвечает ровно одно собственное значение: если бы одновременно $Av = \lambda_1 v$ и $Av = \lambda_2 v$, то $(\lambda_1 - \lambda_2)v = \mathbf{0}$, а при $v \ne \mathbf{0}$ отсюда $\lambda_1 = \lambda_2$. А вот одному собственному значению может отвечать сколько угодно собственных векторов — минимум целая прямая, как мы уже видели, а иногда и плоскость.
Почему нулевой вектор исключён, а нулевое собственное значение — нет
Эти два условия постоянно путают, хотя они про совершенно разное.
Нулевой вектор исключён из определения намеренно. Равенство $A\mathbf{0} = \lambda\mathbf{0}$ выполняется при любом $\lambda$, потому что обе части тождественно равны нулю. Если бы мы допустили $v = \mathbf{0}$, то собственным значением любой матрицы оказалось бы любое число — понятие потеряло бы всякий смысл. Поэтому в определении стоит жёсткое $v \ne \mathbf{0}$: собственный вектор обязан задавать настоящее направление, а у нулевого вектора направления нет.
Нулевое собственное значение, наоборот, вполне допустимо. Запрета на $\lambda = 0$ в определении нет, и смысл у такого случая совершенно конкретный. Равенство $Av = 0 \cdot v = \mathbf{0}$ при $v \ne \mathbf{0}$ означает, что $v$ — нетривиальное решение однородной системы $Av = \mathbf{0}$, то есть
$$\lambda = 0 \text{ — собственное значение } A \iff \ker A \ne \{\mathbf{0}\} \iff \det A = 0.$$Собственные векторы с нулевым собственным значением — это в точности ненулевые элементы ядра матрицы. Геометрически преобразование сжимает такое направление в точку: всё, что лежало на этой прямой, схлопывается в начало координат.
Отсюда сразу полезный критерий, который стоит запомнить: матрица обратима тогда и только тогда, когда ноль не входит в её спектр. Действительно, $\det A = 0$ равносильно наличию нулевого собственного значения, а обратимость равносильна $\det A \ne 0$.
Разбор примеров
Пример 1. Матрица с нулевым собственным значением.
$$B = \begin{pmatrix} 2 & 4 \\ 1 & 2 \end{pmatrix}$$Определитель равен $2 \cdot 2 - 4 \cdot 1 = 0$, значит ядро непусто и ноль будет собственным значением. Найдём соответствующий вектор: система $Bx = \mathbf{0}$ сводится к одному уравнению $2x_1 + 4x_2 = 0$, то есть $x_1 = -2x_2$. Полагая $x_2 = 1$, получаем $v = (-2, 1)^T$. Проверка:
$$B\begin{pmatrix} -2 \\ 1 \end{pmatrix} = \begin{pmatrix} -4 + 4 \\ -2 + 2 \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix} = 0 \cdot \begin{pmatrix} -2 \\ 1 \end{pmatrix}$$Второе собственное значение у этой матрицы — четвёрка, с вектором $(2,1)^T$:
$$B\begin{pmatrix} 2 \\ 1 \end{pmatrix} = \begin{pmatrix} 4 + 4 \\ 2 + 2 \end{pmatrix} = \begin{pmatrix} 8 \\ 4 \end{pmatrix} = 4\begin{pmatrix} 2 \\ 1 \end{pmatrix}$$Геометрия: направление $(-2,1)$ схлопывается в точку, направление $(2,1)$ растягивается вчетверо. Вся плоскость после применения $B$ ложится на одну прямую — ровно потому, что одно из направлений умерло.
Пример 2. Проверка кандидата.
Является ли вектор $u = (1, 2)^T$ собственным для матрицы $A = \begin{pmatrix} 2 & 1 \\ 1 & 2 \end{pmatrix}$ из начала раздела?
$$Au = \begin{pmatrix} 2 + 2 \\ 1 + 4 \end{pmatrix} = \begin{pmatrix} 4 \\ 5 \end{pmatrix}$$Для пропорциональности требовалось бы $4/1 = 5/2$, то есть $4 = 2{,}5$. Неверно, значит $u$ собственным вектором не является. Проверка кандидата — самая дешёвая операция во всей теме: одно умножение матрицы на столбец и сравнение двух отношений.
Пример 3. Единичная матрица и её родня.
Для $I$ выполнено $Iv = v = 1 \cdot v$ при любом $v$. Значит, любой ненулевой вектор является собственным, и единственное собственное значение равно $1$. Для матрицы $5I$ аналогично: любой ненулевой вектор собственный, собственное значение равно $5$. Такие матрицы называют скалярными: они растягивают пространство равномерно во все стороны, и никаких выделенных направлений у них нет — все направления одинаково хороши.
Пример 4. Растяжение по осям.
$$D = \begin{pmatrix} 3 & 0 \\ 0 & -2 \end{pmatrix}$$Здесь $D(1,0)^T = (3,0)^T = 3(1,0)^T$ и $D(0,1)^T = (0,-2)^T = -2(0,1)^T$. Собственные векторы — сами базисные орты, собственные значения — числа на диагонали. Геометрически: горизонтальное направление растягивается втрое, вертикальное растягивается вдвое и отражается (минус в собственном значении — это разворот на 180 градусов вдоль своей прямой, а не уход с неё).
Отрицательное собственное значение — совершенно нормальная вещь. Вектор остаётся на своей прямой, просто смотрит в противоположную сторону. Прямая при этом переходит в себя, как и требуется от инвариантного направления.
Почему это важно
Собственные векторы отвечают на вопрос «как эта матрица устроена внутри», а не «чему равен результат на конкретном входе». Разница принципиальная.
Умножить матрицу на вектор умеет компьютер, и никакого понимания это не даёт. А вот знание спектра сразу говорит о преобразовании главное: есть ли у него направления, которые оно убивает (нулевые собственные значения — необратимость), есть ли направления, которые оно раздувает (большие по модулю собственные значения — неустойчивость), есть ли направления, которые оно оставляет на месте (собственное значение $1$ — равновесие, стационарное состояние).
Три быстрых примера того, как это читается на практике.
-
Марковская цепь. Матрица переходов описывает, как распределение вероятностей меняется за один шаг. Стационарное распределение — то, которое не меняется, то есть собственный вектор с $\lambda = 1$. Найти его — значит ответить на вопрос «где система окажется в конце концов».
-
Динамическая система $x_{k+1} = Ax_k$. Вдоль собственного направления $x_k = \lambda^k x_0$. Если $|\lambda| < 1$, эта компонента затухает; если $|\lambda| > 1$, она взрывается. Устойчивость системы целиком определяется тем, все ли собственные числа лежат по модулю ниже единицы.
-
Данные. Ковариационная матрица выборки описывает форму облака точек. Её собственные векторы — оси этого облака, а собственные значения — разброс вдоль каждой оси. Это и есть PCA, к которому мы придём в конце урока.
Характеристическое уравнение
Пока мы находили собственные векторы угадыванием. Пора получить регулярный способ — и он выводится из того, что ты уже знаешь, буквально в три строки.
Интуиция: это же однородная система
Запишем определение и перенесём всё в левую часть:
$$Av = \lambda v \quad \Longleftrightarrow \quad Av - \lambda v = \mathbf{0}$$Слева хочется вынести $v$ за скобку, но так делать нельзя: $A$ — матрица, $\lambda$ — число, и выражение $A - \lambda$ бессмысленно. Спасает единичная матрица: $\lambda v = \lambda I v$, потому что $Iv = v$. Теперь скобка законна:
$$Av - \lambda I v = \mathbf{0} \quad \Longleftrightarrow \quad (A - \lambda I)v = \mathbf{0}$$Матрица $A - \lambda I$ — это исходная матрица, из диагонали которой вычли $\lambda$:
$$A - \lambda I = \begin{pmatrix} a_{11} - \lambda & a_{12} & \dots & a_{1n} \\ a_{21} & a_{22} - \lambda & \dots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \dots & a_{nn} - \lambda \end{pmatrix}$$И вот главное наблюдение урока: $(A - \lambda I)v = \mathbf{0}$ — это однородная система линейных уравнений с квадратной матрицей $A - \lambda I$. Тема урока 167 целиком.
Что нам нужно от этой системы? Нетривиальное решение — потому что в определении собственного вектора стоит $v \ne \mathbf{0}$. Тривиальное решение $v = \mathbf{0}$ у неё есть всегда и при любом $\lambda$, но оно нам запрещено.
А критерий существования нетривиального решения для квадратной однородной системы у нас есть, и он звучал так: нетривиальное решение существует тогда и только тогда, когда определитель матрицы системы равен нулю. Применяем его к матрице $A - \lambda I$:
Ключевая связка. Число $\lambda$ является собственным значением матрицы $A$ тогда и только тогда, когда однородная система $(A - \lambda I)v = \mathbf{0}$ имеет нетривиальное решение, то есть когда
$$\det(A - \lambda I) = 0.$$Это уравнение относительно $\lambda$ называется характеристическим уравнением матрицы $A$.
Стоит проговорить логику ещё раз, потому что она вся построена на уроке 167. Мы не «придумали формулу», а перевели задачу на язык, где ответ уже был готов. Задача «найти $\lambda$ и $v$» разбилась на две последовательные:
-
сначала находим все $\lambda$, при которых система вырождается, — это корни $\det(A - \lambda I) = 0$;
-
затем для каждого такого $\lambda$ решаем однородную систему методом Гаусса и выписываем ФСР — это и будут собственные векторы.
Порядок именно такой, и он неслучаен: пока $\lambda$ неизвестна, система не определена и решать нечего.
Характеристический многочлен
Определение: Функция $p_A(\lambda) = \det(A - \lambda I)$ называется характеристическим многочленом матрицы $A$ порядка $n$. Это многочлен степени ровно $n$ от переменной $\lambda$.
Почему степень равна $n$? Определитель — это сумма произведений по одному элементу из каждой строки и каждого столбца. Переменная $\lambda$ входит только в диагональные элементы, поэтому максимальную степень даёт единственное слагаемое — произведение всей диагонали:
$$(a_{11} - \lambda)(a_{22} - \lambda)\cdots(a_{nn} - \lambda)$$Раскрывая его, получаем старший член $(-\lambda)^n = (-1)^n\lambda^n$. Все остальные слагаемые определителя содержат хотя бы два внедиагональных элемента, а значит, не более $n - 2$ диагональных, и дают степень не выше $n - 2$. Отсюда и степень $n$, и заодно вид двух старших коэффициентов.
Случай $2 \times 2$ разберём полностью — он важен и как рабочая формула, и как источник интуиции. Пусть $A = \begin{pmatrix} a & b \\ c & d \end{pmatrix}$. Тогда
$$p_A(\lambda) = \begin{vmatrix} a - \lambda & b \\ c & d - \lambda \end{vmatrix} = (a-\lambda)(d-\lambda) - bc = \lambda^2 - (a + d)\lambda + (ad - bc)$$Первый коэффициент — сумма диагональных элементов, второй — определитель:
$$p_A(\lambda) = \lambda^2 - (\operatorname{tr} A)\,\lambda + \det A$$Здесь $\operatorname{tr} A$ — след матрицы, знакомый по уроку 171 как инвариант подобия. По теореме Виета для приведённого квадратного трёхчлена сумма корней равна коэффициенту при $\lambda$ со знаком минус, а произведение — свободному члену:
$$\lambda_1 + \lambda_2 = \operatorname{tr} A, \qquad \lambda_1 \lambda_2 = \det A$$Это доказано полностью, без всяких оговорок: мы просто раскрыли определитель второго порядка и применили Виета.
Общий случай. Для матрицы порядка $n$ характеристический многочлен раскрывается так:
$$p_A(\lambda) = (-1)^n\left(\lambda^n - c_1\lambda^{n-1} + c_2\lambda^{n-2} - \dots + (-1)^n c_n\right)$$где $c_k$ — сумма всех главных миноров порядка $k$ (миноров, стоящих на пересечении строк и столбцов с одинаковыми номерами). Крайние коэффициенты особенно наглядны: $c_1 = \operatorname{tr} A$ (сумма главных миноров первого порядка — это сумма диагональных элементов), а $c_n = \det A$ (единственный главный минор порядка $n$ — сам определитель).
Теорема (след и определитель через спектр). Если все $n$ корней характеристического многочлена матрицы $A$ вещественны и перечислены с учётом кратности как $\lambda_1, \dots, \lambda_n$, то
$$\lambda_1 + \lambda_2 + \dots + \lambda_n = \operatorname{tr} A, \qquad \lambda_1 \lambda_2 \cdots \lambda_n = \det A.$$
Доказательство — та же теорема Виета, только для многочлена степени $n$: сумма корней равна коэффициенту при $\lambda^{n-1}$ со знаком минус, произведение равно свободному члену с множителем $(-1)^n$. Подставив найденные коэффициенты $c_1 = \operatorname{tr} A$ и $c_n = \det A$, получаем ровно эти два равенства.
Есть и мгновенное доказательство второго равенства, без Виета: подставь в характеристический многочлен $\lambda = 0$. Слева $p_A(0) = \det(A - 0 \cdot I) = \det A$. Справа, если многочлен разложен на множители как $p_A(\lambda) = (-1)^n(\lambda - \lambda_1)\cdots(\lambda - \lambda_n)$, получится $(-1)^n(-\lambda_1)\cdots(-\lambda_n) = \lambda_1\cdots\lambda_n$. Сравнивая, получаем $\det A = \lambda_1 \cdots \lambda_n$.
Пара практических следствий этих формул:
-
след и определитель — бесплатная проверка ответа: нашёл собственные значения, сложи их и сравни со следом, перемножь и сравни с определителем; расхождение означает арифметическую ошибку;
-
в матрице $3 \times 3$ достаточно угадать один корень характеристического многочлена — два оставшихся находятся из системы «сумма равна следу, произведение равно определителю» без деления многочленов.
Почему собственные числа принадлежат оператору, а не матрице
В уроке 171 ты видел, что один и тот же оператор в разных базисах имеет разные матрицы, связанные соотношением $A' = C^{-1}AC$, и такие матрицы называются подобными. Проверим, что характеристический многочлен от выбора базиса не зависит вообще.
$$p_{A'}(\lambda) = \det(C^{-1}AC - \lambda I)$$Заметим, что $\lambda I = C^{-1}(\lambda I)C$: единичная матрица коммутирует со всем, и $C^{-1}\lambda I C = \lambda C^{-1}C = \lambda I$. Значит, под определителем можно вынести $C^{-1}$ и $C$ за скобку:
$$C^{-1}AC - \lambda I = C^{-1}AC - C^{-1}(\lambda I)C = C^{-1}(A - \lambda I)C$$Теперь применим мультипликативность определителя (урок 159): определитель произведения равен произведению определителей.
$$p_{A'}(\lambda) = \det\!\big(C^{-1}\big)\cdot\det(A - \lambda I)\cdot\det(C) = \frac{1}{\det C}\cdot \det(A - \lambda I)\cdot \det C = \det(A - \lambda I) = p_A(\lambda)$$Теорема: Подобные матрицы имеют одинаковый характеристический многочлен, а значит, одинаковые собственные значения с теми же кратностями.
Это ровно тот факт, который превращает собственные числа из свойства таблицы чисел в свойство самого преобразования. Смена базиса — это смена системы координат, то есть смена языка описания; спектр от языка не зависит. Заодно объясняются и инварианты из урока 171: след и определитель совпадают у подобных матриц просто потому, что они — коэффициенты одного и того же характеристического многочлена.
Важная оговорка: обратное неверно. Совпадение характеристических многочленов не гарантирует подобия. Дальше в уроке мы разберём две матрицы с одинаковым многочленом $(\lambda - 5)(\lambda - 2)^2$, у которых устройство собственных подпространств совершенно разное — а подобные матрицы устроены одинаково. Так что характеристический многочлен — сильный, но не исчерпывающий признак.
Разбор примеров
Пример 1. Симметричная матрица $2 \times 2$.
$$S = \begin{pmatrix} 6 & 2 \\ 2 & 3 \end{pmatrix}$$По готовой формуле: $\operatorname{tr} S = 6 + 3 = 9$, $\det S = 18 - 4 = 14$, значит
$$p_S(\lambda) = \lambda^2 - 9\lambda + 14 = (\lambda - 7)(\lambda - 2)$$Спектр $\{7, 2\}$. Проверка по Виета: $7 + 2 = 9 = \operatorname{tr} S$ и $7 \cdot 2 = 14 = \det S$. Сходится.
Пример 2. Матрица $3 \times 3$ — раскрываем определитель.
$$A = \begin{pmatrix} 3 & -1 & 0 \\ 2 & 2 & 2 \\ 1 & 1 & 4 \end{pmatrix}, \qquad A - \lambda I = \begin{pmatrix} 3-\lambda & -1 & 0 \\ 2 & 2-\lambda & 2 \\ 1 & 1 & 4-\lambda \end{pmatrix}$$Раскладываем по первой строке (в ней есть ноль — меньше работы):
$$\det(A - \lambda I) = (3-\lambda)\begin{vmatrix} 2-\lambda & 2 \\ 1 & 4-\lambda \end{vmatrix} - (-1)\begin{vmatrix} 2 & 2 \\ 1 & 4-\lambda \end{vmatrix} + 0$$Первый минор: $(2-\lambda)(4-\lambda) - 2 = \lambda^2 - 6\lambda + 6$. Второй: $2(4-\lambda) - 2 = 6 - 2\lambda$. Итого
$$\det(A - \lambda I) = (3-\lambda)(\lambda^2 - 6\lambda + 6) + (6 - 2\lambda)$$Раскрываем первое произведение: $3\lambda^2 - 18\lambda + 18 - \lambda^3 + 6\lambda^2 - 6\lambda = -\lambda^3 + 9\lambda^2 - 24\lambda + 18$. Прибавляем $6 - 2\lambda$:
$$p_A(\lambda) = -\lambda^3 + 9\lambda^2 - 26\lambda + 24$$Проверим коэффициенты через главные миноры. Сумма диагонали: $3 + 2 + 4 = 9$ — совпало с коэффициентом при $\lambda^2$. Определитель: раскроем по первой строке, $\det A = 3(8 - 2) + 1(8 - 2) + 0 = 18 + 6 = 24$ — совпало со свободным членом. Сумма главных миноров второго порядка:
$$\begin{vmatrix} 2 & 2 \\ 1 & 4 \end{vmatrix} + \begin{vmatrix} 3 & 0 \\ 1 & 4 \end{vmatrix} + \begin{vmatrix} 3 & -1 \\ 2 & 2 \end{vmatrix} = 6 + 12 + 8 = 26$$Совпало с коэффициентом при $\lambda$. Все три коэффициента подтверждены двумя независимыми способами.
Осталось найти корни $-\lambda^3 + 9\lambda^2 - 26\lambda + 24 = 0$, то есть $\lambda^3 - 9\lambda^2 + 26\lambda - 24 = 0$. Целые корни делят свободный член $24$; пробуем $\lambda = 2$: $8 - 36 + 52 - 24 = 0$. Корень найден. Делим на $(\lambda - 2)$ и получаем $\lambda^2 - 7\lambda + 12 = (\lambda-3)(\lambda-4)$. Спектр: $\{2, 3, 4\}$.
Финальная проверка: $2 + 3 + 4 = 9 = \operatorname{tr} A$, $2 \cdot 3 \cdot 4 = 24 = \det A$. Обе сходятся.
Пример 3. Подобные матрицы — один и тот же спектр.
Возьмём знакомую $B = \begin{pmatrix} 2 & 1 \\ 1 & 2 \end{pmatrix}$ и матрицу перехода $C = \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix}$, для которой $C^{-1} = \begin{pmatrix} 1 & -1 \\ 0 & 1 \end{pmatrix}$. Считаем:
$$BC = \begin{pmatrix} 2 & 1 \\ 1 & 2 \end{pmatrix}\begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix} = \begin{pmatrix} 2 & 3 \\ 1 & 3 \end{pmatrix}, \qquad B' = C^{-1}BC = \begin{pmatrix} 1 & -1 \\ 0 & 1 \end{pmatrix}\begin{pmatrix} 2 & 3 \\ 1 & 3 \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 1 & 3 \end{pmatrix}$$У новой матрицы $\operatorname{tr} B' = 1 + 3 = 4$ и $\det B' = 3 - 0 = 3$ — те же самые, что у $B$. Характеристический многочлен $\lambda^2 - 4\lambda + 3 = (\lambda - 1)(\lambda - 3)$, спектр $\{1, 3\}$ — в точности как у $B$.
Собственные векторы при этом другие. Для $B'$ и $\lambda = 3$: система $(B' - 3I)v = \mathbf{0}$ имеет матрицу $\begin{pmatrix} -2 & 0 \\ 1 & 0 \end{pmatrix}$, откуда $v_1 = 0$ и $v = (0,1)^T$. У исходной $B$ вектором для $\lambda = 3$ был $(1,1)^T$. Направление в пространстве одно и то же — просто записанное в разных координатах. Числа же $1$ и $3$ не изменились: они принадлежат преобразованию, а не системе координат.
Пример 4. Матрица без вещественных собственных значений.
$$R = \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix}, \qquad \operatorname{tr} R = 0, \quad \det R = 0 \cdot 0 - (-1)\cdot 1 = 1$$$$p_R(\lambda) = \lambda^2 - 0 \cdot \lambda + 1 = \lambda^2 + 1$$Уравнение $\lambda^2 + 1 = 0$ вещественных корней не имеет: квадрат вещественного числа неотрицателен, и $\lambda^2 = -1$ невозможно. Значит, у матрицы $R$ нет ни одного вещественного собственного значения — и ни одного собственного вектора в $\mathbb{R}^2$. Подробно этот случай мы разберём отдельным разделом.
Почему это важно
Характеристическое уравнение — это мост между двумя половинами курса. Слева от него — определители, ранг, однородные системы, весь аппарат вычислений. Справа — геометрия преобразований, инвариантные направления, устойчивость. Одна формула $\det(A - \lambda I) = 0$ переводит вопрос из правой половины в левую, где на него уже умеют отвечать.
Практически же из него растут две вещи. Первая — рабочий алгоритм, которым мы займёмся в следующем разделе. Вторая — понимание того, чего от собственных значений ждать. Раз это корни многочлена степени $n$, то:
-
их не может быть больше $n$ штук;
-
вещественных корней может быть меньше $n$, а может не быть совсем (многочлен чётной степени вправе не иметь вещественных корней);
-
у матрицы нечётного порядка хотя бы одно вещественное собственное значение есть всегда, потому что многочлен нечётной степени обязательно пересекает ось абсцисс;
-
начиная с $n = 5$ явной формулы для корней через радикалы не существует (теорема Абеля — Руффини), поэтому численные библиотеки ищут собственные значения не через характеристический многочлен, а совсем другими методами.
Последний пункт стоит подчеркнуть: характеристическое уравнение — идеальный инструмент для ручного счёта на матрицах $2\times2$ и $3\times3$ и очень плохой инструмент для вычислений на машине. Раскрытие определителя символьно стоит дорого, а корни многочлена высокой степени чудовищно чувствительны к погрешностям коэффициентов. Реальные библиотеки используют QR-алгоритм, о котором шла речь в исторической части.
Алгоритм поиска собственных векторов
Теперь соберём всё в процедуру, по которой решается любая задача этого урока.
Шаг 1. Составить матрицу $A - \lambda I$: вычесть $\lambda$ из каждого диагонального элемента, остальные оставить как есть.
Шаг 2. Вычислить определитель $\det(A - \lambda I)$ и приравнять его к нулю — получить характеристическое уравнение.
Шаг 3. Найти корни этого уравнения. Для $2 \times 2$ — дискриминант, для $3 \times 3$ — подбор целого корня среди делителей свободного члена и деление многочлена. Записать каждый корень с его кратностью.
Шаг 4. Для каждого корня $\lambda_i$ подставить его в матрицу $A - \lambda_i I$ и решить однородную систему $(A - \lambda_i I)x = \mathbf{0}$ методом Гаусса. Выписать ФСР — это базис множества собственных векторов, отвечающих $\lambda_i$.
Шаг 5. Проверить каждый найденный вектор подстановкой в $Av = \lambda v$. Дополнительно сверить сумму корней со следом, а произведение — с определителем.
Три замечания, которые экономят время и нервы.
-
На шаге 4 матрица $A - \lambda_i I$ обязана быть вырожденной — на то мы и выбирали $\lambda_i$. Если после приведения к ступенчатому виду у тебя не осталось ни одной нулевой строки, значит, в вычислениях ошибка: либо корень найден неверно, либо арифметика подвела. Это встроенная контрольная точка алгоритма.
-
Собственный вектор определён с точностью до ненулевого множителя, поэтому ответ $(1,1)$ и ответ $(-3,-3)$ — это один и тот же ответ. Принято выбирать самый простой представитель: без дробей, с положительной первой ненулевой координатой.
-
Число векторов в ФСР для данного $\lambda_i$ равно $n - \operatorname{rank}(A - \lambda_i I)$ — формула из урока 167. Это число нам скоро понадобится под именем геометрической кратности.
Разбор примеров
Пример 1. Матрица $2 \times 2$ с разными вещественными корнями.
$$A = \begin{pmatrix} 4 & 1 \\ 2 & 3 \end{pmatrix}$$Шаги 1–3. $\operatorname{tr} A = 7$, $\det A = 12 - 2 = 10$, значит
$$p_A(\lambda) = \lambda^2 - 7\lambda + 10 = (\lambda - 5)(\lambda - 2)$$Корни $\lambda_1 = 5$, $\lambda_2 = 2$, оба простые.
Шаг 4 для $\lambda_1 = 5$. Составляем матрицу:
$$A - 5I = \begin{pmatrix} 4 - 5 & 1 \\ 2 & 3 - 5 \end{pmatrix} = \begin{pmatrix} -1 & 1 \\ 2 & -2 \end{pmatrix}$$Вторая строка равна первой, умноженной на $-2$, — матрица вырождена, как и должно быть. Ранг равен 1, в ФСР будет $2 - 1 = 1$ вектор. Система сводится к $-x_1 + x_2 = 0$, то есть $x_1 = x_2$. Полагая $x_2 = 1$, получаем
$$v_1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix}$$Шаг 4 для $\lambda_2 = 2$.
$$A - 2I = \begin{pmatrix} 2 & 1 \\ 2 & 1 \end{pmatrix}$$Строки одинаковые, ранг 1. Уравнение $2x_1 + x_2 = 0$, откуда $x_2 = -2x_1$. Полагая $x_1 = 1$:
$$v_2 = \begin{pmatrix} 1 \\ -2 \end{pmatrix}$$Шаг 5. Проверка.
$$Av_1 = \begin{pmatrix} 4 + 1 \\ 2 + 3 \end{pmatrix} = \begin{pmatrix} 5 \\ 5 \end{pmatrix} = 5v_1, \qquad Av_2 = \begin{pmatrix} 4 - 2 \\ 2 - 6 \end{pmatrix} = \begin{pmatrix} 2 \\ -4 \end{pmatrix} = 2v_2$$Обе проверки прошли. Сумма корней $5 + 2 = 7 = \operatorname{tr} A$, произведение $5 \cdot 2 = 10 = \det A$.
Пример 2. Матрица $3 \times 3$ с тремя разными корнями.
$$A = \begin{pmatrix} 3 & -1 & 0 \\ 2 & 2 & 2 \\ 1 & 1 & 4 \end{pmatrix}$$Характеристический многочлен мы уже посчитали в прошлом разделе: $p_A(\lambda) = -\lambda^3 + 9\lambda^2 - 26\lambda + 24$, корни $2, 3, 4$.
Для $\lambda = 2$:
$$A - 2I = \begin{pmatrix} 1 & -1 & 0 \\ 2 & 0 & 2 \\ 1 & 1 & 2 \end{pmatrix} \xrightarrow[R_3 - R_1]{R_2 - 2R_1} \begin{pmatrix} 1 & -1 & 0 \\ 0 & 2 & 2 \\ 0 & 2 & 2 \end{pmatrix} \xrightarrow{R_3 - R_2} \begin{pmatrix} 1 & -1 & 0 \\ 0 & 2 & 2 \\ 0 & 0 & 0 \end{pmatrix}$$Нулевая строка появилась — контрольная точка пройдена. Ранг 2, в ФСР один вектор. Из второй строки $x_2 = -x_3$, из первой $x_1 = x_2 = -x_3$. Полагая $x_3 = 1$:
$$v_1 = \begin{pmatrix} -1 \\ -1 \\ 1 \end{pmatrix}$$Проверка: $Av_1 = (-3 + 1 + 0,\; -2 - 2 + 2,\; -1 - 1 + 4)^T = (-2, -2, 2)^T = 2v_1$. Верно.
Для $\lambda = 3$:
$$A - 3I = \begin{pmatrix} 0 & -1 & 0 \\ 2 & -1 & 2 \\ 1 & 1 & 1 \end{pmatrix}$$Первая строка сразу даёт $x_2 = 0$. Третья строка при $x_2 = 0$ превращается в $x_1 + x_3 = 0$, то есть $x_1 = -x_3$. Вторая строка тогда даёт $2x_1 + 2x_3 = 0$ — то же самое условие, новой информации нет. Полагая $x_3 = 1$:
$$v_2 = \begin{pmatrix} -1 \\ 0 \\ 1 \end{pmatrix}$$Проверка: $Av_2 = (-3 + 0 + 0,\; -2 + 0 + 2,\; -1 + 0 + 4)^T = (-3, 0, 3)^T = 3v_2$. Верно.
Для $\lambda = 4$:
$$A - 4I = \begin{pmatrix} -1 & -1 & 0 \\ 2 & -2 & 2 \\ 1 & 1 & 0 \end{pmatrix}$$Первая и третья строки пропорциональны: $x_1 + x_2 = 0$, то есть $x_2 = -x_1$. Подставляем во вторую: $2x_1 - 2(-x_1) + 2x_3 = 0$, то есть $4x_1 + 2x_3 = 0$ и $x_3 = -2x_1$. Полагая $x_1 = 1$:
$$v_3 = \begin{pmatrix} 1 \\ -1 \\ -2 \end{pmatrix}$$Проверка: $Av_3 = (3 + 1 + 0,\; 2 - 2 - 4,\; 1 - 1 - 8)^T = (4, -4, -8)^T = 4v_3$. Верно.
Итог: три разных собственных значения, каждому отвечает одна прямая собственных векторов. Три найденных вектора независимы и образуют базис $\mathbb{R}^3$ — почему это так в общем случае, докажем в разделе про свойства.
Пример 3. Кратный корень, геометрическая кратность равна алгебраической.
$$C = \begin{pmatrix} -1 & 3 & -3 \\ -3 & 5 & -3 \\ 3 & -3 & 5 \end{pmatrix}$$Характеристический многочлен. Считать определитель третьего порядка с $\lambda$ в трёх местах утомительно, поэтому воспользуемся формулой через главные миноры. След: $-1 + 5 + 5 = 9$. Сумма главных миноров второго порядка:
$$\begin{vmatrix} 5 & -3 \\ -3 & 5 \end{vmatrix} + \begin{vmatrix} -1 & -3 \\ 3 & 5 \end{vmatrix} + \begin{vmatrix} -1 & 3 \\ -3 & 5 \end{vmatrix} = (25 - 9) + (-5 + 9) + (-5 + 9) = 16 + 4 + 4 = 24$$Определитель: раскроем по первой строке. $\det C = -1(25 - 9) - 3(-15 + 9) + (-3)(9 - 15) = -16 + 18 + 18 = 20$. Итого
$$p_C(\lambda) = -\lambda^3 + 9\lambda^2 - 24\lambda + 20$$Ищем корни уравнения $\lambda^3 - 9\lambda^2 + 24\lambda - 20 = 0$ среди делителей числа $20$. При $\lambda = 2$: $8 - 36 + 48 - 20 = 0$. Делим на $(\lambda - 2)$: получается $\lambda^2 - 7\lambda + 10 = (\lambda - 2)(\lambda - 5)$. Значит
$$p_C(\lambda) = -(\lambda - 2)^2(\lambda - 5)$$Корень $\lambda = 2$ имеет кратность 2, корень $\lambda = 5$ — простой. Проверка: $2 + 2 + 5 = 9 = \operatorname{tr} C$, $2 \cdot 2 \cdot 5 = 20 = \det C$.
Для $\lambda = 2$:
$$C - 2I = \begin{pmatrix} -3 & 3 & -3 \\ -3 & 3 & -3 \\ 3 & -3 & 3 \end{pmatrix}$$Все три строки пропорциональны первой. Ранг равен единице, значит в ФСР будет $3 - 1 = 2$ вектора. Система сводится к одному уравнению $-3x_1 + 3x_2 - 3x_3 = 0$, то есть $x_1 = x_2 - x_3$. Свободные переменные $x_2, x_3$:
$$x_2 = 1, x_3 = 0: \quad u_1 = \begin{pmatrix} 1 \\ 1 \\ 0 \end{pmatrix}; \qquad x_2 = 0, x_3 = 1: \quad u_2 = \begin{pmatrix} -1 \\ 0 \\ 1 \end{pmatrix}$$Проверка $u_1$: $Cu_1 = (-1 + 3 + 0,\; -3 + 5 + 0,\; 3 - 3 + 0)^T = (2, 2, 0)^T = 2u_1$. Верно. Проверка $u_2$: $Cu_2 = (1 + 0 - 3,\; 3 + 0 - 3,\; -3 + 0 + 5)^T = (-2, 0, 2)^T = 2u_2$. Верно.
Для $\lambda = 5$:
$$C - 5I = \begin{pmatrix} -6 & 3 & -3 \\ -3 & 0 & -3 \\ 3 & -3 & 0 \end{pmatrix}$$Делим все строки на 3: $(-2, 1, -1)$, $(-1, 0, -1)$, $(1, -1, 0)$. Из второй: $x_1 = -x_3$. Из третьей: $x_2 = x_1 = -x_3$. Первая строка при этом даёт $2x_3 - x_3 - x_3 = 0$ — выполняется тождественно. Полагая $x_3 = 1$:
$$u_3 = \begin{pmatrix} -1 \\ -1 \\ 1 \end{pmatrix}$$Проверка: $Cu_3 = (1 - 3 - 3,\; 3 - 5 - 3,\; -3 + 3 + 5)^T = (-5, -5, 5)^T = 5u_3$. Верно.
Итог: кратному корню $\lambda = 2$ отвечает целая плоскость собственных векторов (два вектора в ФСР), простому корню $\lambda = 5$ — прямая. Всего получилось три независимых собственных вектора — ровно столько, сколько нужно для базиса $\mathbb{R}^3$. Запомни эту матрицу, сейчас мы сравним её со следующей.
Пример 4. Кратный корень, геометрическая кратность МЕНЬШЕ алгебраической.
$$D = \begin{pmatrix} 4 & 1 & -2 \\ 3 & 2 & -3 \\ -1 & 1 & 3 \end{pmatrix}$$Характеристический многочлен. След: $4 + 2 + 3 = 9$. Главные миноры второго порядка:
$$\begin{vmatrix} 2 & -3 \\ 1 & 3 \end{vmatrix} + \begin{vmatrix} 4 & -2 \\ -1 & 3 \end{vmatrix} + \begin{vmatrix} 4 & 1 \\ 3 & 2 \end{vmatrix} = (6 + 3) + (12 - 2) + (8 - 3) = 9 + 10 + 5 = 24$$Определитель: $\det D = 4(6 + 3) - 1(9 - 3) + (-2)(3 + 2) = 36 - 6 - 10 = 20$.
$$p_D(\lambda) = -\lambda^3 + 9\lambda^2 - 24\lambda + 20 = -(\lambda - 2)^2(\lambda - 5)$$Многочлен получился тот же самый, что у матрицы $C$ из предыдущего примера. Те же корни, те же кратности. Посмотрим, что будет с векторами.
Для $\lambda = 2$:
$$D - 2I = \begin{pmatrix} 2 & 1 & -2 \\ 3 & 0 & -3 \\ -1 & 1 & 1 \end{pmatrix}$$Вторая строка делится на 3: $(1, 0, -1)$, откуда $x_1 = x_3$. Подставляем в третью: $-x_3 + x_2 + x_3 = 0$, то есть $x_2 = 0$. Первая строка: $2x_3 + 0 - 2x_3 = 0$ — выполняется тождественно. Свободная переменная одна, $x_3$; полагая $x_3 = 1$:
$$w_1 = \begin{pmatrix} 1 \\ 0 \\ 1 \end{pmatrix}$$Проверим ранг напрямую: строки $(2,1,-2)$ и $(1,0,-1)$ непропорциональны, значит $\operatorname{rank}(D - 2I) = 2$, и в ФСР ровно $3 - 2 = 1$ вектор. Кратность корня равна двум, а собственных векторов хватает лишь на одну прямую, а не на плоскость.
Проверка: $Dw_1 = (4 + 0 - 2,\; 3 + 0 - 3,\; -1 + 0 + 3)^T = (2, 0, 2)^T = 2w_1$. Верно.
Для $\lambda = 5$:
$$D - 5I = \begin{pmatrix} -1 & 1 & -2 \\ 3 & -3 & -3 \\ -1 & 1 & -2 \end{pmatrix}$$Первая и третья строки совпадают. Вторая, делённая на 3: $(1, -1, -1)$. Складываем её с первой: $(0, 0, -3)$, откуда $x_3 = 0$. Тогда из первой строки $-x_1 + x_2 = 0$, то есть $x_2 = x_1$. Полагая $x_1 = 1$:
$$w_2 = \begin{pmatrix} 1 \\ 1 \\ 0 \end{pmatrix}$$Проверка: $Dw_2 = (4 + 1 + 0,\; 3 + 2 + 0,\; -1 + 1 + 0)^T = (5, 5, 0)^T = 5w_2$. Верно.
Итог: у матрицы $D$ нашлось всего два независимых собственных вектора вместо трёх. Матрицы $C$ и $D$ имеют одинаковый характеристический многочлен, одинаковый след, одинаковый определитель, одинаковые собственные значения с одинаковыми кратностями — и при этом устроены совершенно по-разному. Матрицы вроде $D$ называют дефектными, и разбору этого различия посвящён следующий раздел.
Пример 5. Треугольная матрица.
$$E = \begin{pmatrix} 3 & 5 & -2 \\ 0 & -1 & 4 \\ 0 & 0 & 2 \end{pmatrix}$$Матрица $E - \lambda I$ тоже верхнетреугольная, а определитель треугольной матрицы равен произведению диагональных элементов (свойство из урока 158):
$$p_E(\lambda) = (3 - \lambda)(-1 - \lambda)(2 - \lambda)$$Корни читаются прямо с диагонали: $3$, $-1$, $2$. Никаких вычислений — это самый быстрый случай во всей теме, и его стоит запомнить как отдельный факт:
Факт: У треугольной (в частности, диагональной) матрицы собственные значения стоят на главной диагонали, с учётом кратности.
Собственные векторы всё же приходится искать честно.
Для $\lambda = 3$:
$$E - 3I = \begin{pmatrix} 0 & 5 & -2 \\ 0 & -4 & 4 \\ 0 & 0 & -1 \end{pmatrix}$$Третья строка даёт $x_3 = 0$, вторая тогда даёт $x_2 = 0$, первая выполняется тождественно. Переменная $x_1$ свободна: $v = (1, 0, 0)^T$. Проверка: $Ev = (3, 0, 0)^T = 3v$. Верно.
Для $\lambda = -1$:
$$E + I = \begin{pmatrix} 4 & 5 & -2 \\ 0 & 0 & 4 \\ 0 & 0 & 3 \end{pmatrix}$$Вторая строка: $x_3 = 0$. Первая: $4x_1 + 5x_2 = 0$. Чтобы избежать дробей, положим $x_2 = 4$, тогда $x_1 = -5$: $v = (-5, 4, 0)^T$.
Проверку делаем подстановкой в исходную матрицу $E$, а не в $E + I$ — это принципиально, иначе ошибка, допущенная при составлении $E - \lambda I$, останется незамеченной:
$$Ev = \begin{pmatrix} 3\cdot(-5) + 5\cdot 4 - 2\cdot 0 \\ 0\cdot(-5) - 1\cdot 4 + 4\cdot 0 \\ 0\cdot(-5) + 0\cdot 4 + 2\cdot 0 \end{pmatrix} = \begin{pmatrix} 5 \\ -4 \\ 0 \end{pmatrix} = -1 \cdot \begin{pmatrix} -5 \\ 4 \\ 0 \end{pmatrix}$$Собственное значение $-1$ подтвердилось.
Для $\lambda = 2$:
$$E - 2I = \begin{pmatrix} 1 & 5 & -2 \\ 0 & -3 & 4 \\ 0 & 0 & 0 \end{pmatrix}$$Третья строка нулевая — контрольная точка пройдена. Из второй: $x_2 = \dfrac{4}{3}x_3$. Из первой: $x_1 = -5x_2 + 2x_3 = -\dfrac{20}{3}x_3 + 2x_3 = -\dfrac{14}{3}x_3$. Чтобы уйти от дробей, берём $x_3 = 3$:
$$v = \begin{pmatrix} -14 \\ 4 \\ 3 \end{pmatrix}$$Проверка: $Ev = (-42 + 20 - 6,\; 0 - 4 + 12,\; 0 + 0 + 6)^T = (-28, 8, 6)^T = 2v$. Верно.
Почему это важно
Алгоритм короткий, но у него есть неочевидное свойство: он полностью механический до момента поиска корней, а вот поиск корней — самое хрупкое место. Именно здесь ломаются учебные задачи (не угадали целый корень) и именно здесь ломаются реальные вычисления (коэффициенты многочлена чувствительны к погрешностям).
Есть простой пример, который это показывает. Возьмём матрицу $20 \times 20$ с числами $1, 2, \dots, 20$ на диагонали, в треугольном виде. Её собственные значения известны точно. Но если чуть-чуть изменить один коэффициент характеристического многочлена, корни разъезжаются на порядки — это классический пример многочлена Уилкинсона, на котором Джеймс Уилкинсон в 1959 году показал, что вычислять собственные числа через характеристический многочлен нельзя. Поэтому реальные библиотеки идут другим путём, а характеристическое уравнение остаётся инструментом ручного счёта и теоретических рассуждений.
Второе практическое наблюдение: разбор примеров 3 и 4 показывает, что характеристический многочлен — это только половина информации о матрице. Вторая половина — ранги матриц $A - \lambda_i I$, то есть размерности соответствующих ядер. Без них картина неполна, и именно ими мы займёмся дальше.
Собственные подпространства и две кратности
Интуиция: собирать векторы по одному неудобно
В примерах выше мы для каждого $\lambda$ находили не отдельный вектор, а целое множество решений однородной системы. Это множество нам уже знакомо под именем ядра, и у него есть все привычные свойства: сумма двух решений — решение, решение, умноженное на число, — решение. Дадим ему имя.
Определение: Пусть $\lambda$ — собственное значение матрицы $A$ порядка $n$. Собственным подпространством, отвечающим $\lambda$, называется множество
$$E_\lambda = \ker(A - \lambda I) = \{\, x \in \mathbb{R}^n \;:\; Ax = \lambda x \,\}.$$Оно состоит из всех собственных векторов, отвечающих $\lambda$, и дополнительно из нулевого вектора.
Нулевой вектор в $E_\lambda$ входит, хотя собственным вектором не является. Это не противоречие, а необходимость: без нуля множество не было бы подпространством, ведь любое подпространство обязано содержать нулевой вектор.
Почему $E_\lambda$ — подпространство. Проверка прямая. Пусть $Ax = \lambda x$ и $Ay = \lambda y$. Тогда
$$A(x + y) = Ax + Ay = \lambda x + \lambda y = \lambda(x + y), \qquad A(cx) = c\,Ax = c\lambda x = \lambda(cx)$$Сумма и кратное остаются в $E_\lambda$, нулевой вектор в нём есть. Критерий подпространства выполнен. Того же результата можно добиться в одну строку ссылкой на урок 167: $E_\lambda$ — это ядро матрицы $A - \lambda I$, а ядро любой матрицы всегда является подпространством.
Отсюда сразу следует, как выглядит $E_\lambda$ геометрически: это прямая, плоскость или их многомерный аналог, обязательно проходящие через начало координат. И описывается оно так же, как любое ядро, — базисом, который получается как ФСР системы $(A - \lambda I)x = \mathbf{0}$.
Две кратности
Определение: Алгебраическая кратность собственного значения $\lambda$ — это его кратность как корня характеристического многочлена. Обозначим её $m_a(\lambda)$.
Геометрическая кратность собственного значения $\lambda$ — это размерность собственного подпространства:
$$m_g(\lambda) = \dim E_\lambda = \dim \ker(A - \lambda I) = n - \operatorname{rank}(A - \lambda I).$$
Формула для $m_g$ — прямое применение того, что $\dim\ker$ равен числу столбцов минус ранг. Считать геометрическую кратность отдельным приёмом не нужно: посчитал ранг матрицы $A - \lambda I$, вычел из $n$ — готово.
Различие между кратностями удобно держать в голове так:
-
алгебраическая кратность — сколько раз число $\lambda$ встречается среди корней; это свойство многочлена;
-
геометрическая кратность — сколько независимых собственных направлений реально отвечает этому $\lambda$; это свойство пространства решений.
Теорема о кратностях: Для любого собственного значения $\lambda$ матрицы $A$ выполнено
$$1 \le m_g(\lambda) \le m_a(\lambda).$$
Доказательство левого неравенства. Если $\lambda$ — собственное значение, то $\det(A - \lambda I) = 0$, значит $\operatorname{rank}(A - \lambda I) < n$ и однородная система имеет нетривиальное решение. Поэтому $\dim E_\lambda \ge 1$: хотя бы одна прямая собственных векторов есть всегда. Собственное значение без собственного вектора невозможно по построению.
Доказательство правого неравенства. Пусть $m_g(\lambda) = k$, и пусть $u_1, \dots, u_k$ — базис подпространства $E_\lambda$. По теореме о дополнении до базиса (урок 170) этот набор можно дополнить векторами $u_{k+1}, \dots, u_n$ до базиса всего $\mathbb{R}^n$. Составим из всех этих векторов матрицу перехода $C$ и посмотрим на матрицу оператора в новом базисе, $A' = C^{-1}AC$.
Первые $k$ базисных векторов — собственные: оператор переводит $u_i$ в $\lambda u_i$. Значит, первые $k$ столбцов матрицы $A'$ содержат $\lambda$ на диагонали и нули во всех остальных позициях. Матрица $A'$ имеет блочный вид
$$A' = \begin{pmatrix} \lambda I_k & B \\ 0 & F \end{pmatrix}$$где $I_k$ — единичная матрица порядка $k$, а $B$ и $F$ — какие-то блоки, вид которых нам безразличен. Вычтем $t I$ и посчитаем определитель. Матрица $A' - tI$ блочно-верхнетреугольная, её определитель равен произведению определителей диагональных блоков:
$$\det(A' - tI) = \det\big((\lambda - t)I_k\big)\cdot\det(F - tI_{n-k}) = (\lambda - t)^k \cdot \det(F - tI_{n-k})$$Характеристический многочлен матрицы $A'$ делится на $(\lambda - t)^k$. А поскольку $A'$ подобна $A$, их характеристические многочлены совпадают (это мы доказали выше). Значит, $p_A(t)$ делится на $(\lambda - t)^k$, то есть корень $\lambda$ имеет кратность не меньше $k$:
$$m_a(\lambda) \ge k = m_g(\lambda)$$Что и требовалось.
Определение: Матрица называется дефектной, если хотя бы для одного её собственного значения геометрическая кратность строго меньше алгебраической: $m_g(\lambda) < m_a(\lambda)$. Разность $m_a(\lambda) - m_g(\lambda)$ называют дефектом этого собственного значения.
Важное следствие теоремы: если $m_a(\lambda) = 1$, то из $1 \le m_g \le m_a = 1$ немедленно получаем $m_g(\lambda) = 1$. Простому корню всегда отвечает ровно одна прямая собственных векторов — тут вариантов нет и проверять нечего. Расхождение кратностей возможно только у кратных корней, и только там его нужно искать.
Ещё одно наблюдение о балансе. Если характеристический многочлен раскладывается на линейные множители над $\mathbb{R}$, то сумма алгебраических кратностей равна $n$ — это просто число корней многочлена степени $n$ с учётом кратности. Сумма же геометрических кратностей может быть меньше $n$: каждое слагаемое не превосходит соответствующей алгебраической кратности, а для дефектных значений строго меньше. Итог формулируется так:
$$\sum_\lambda m_g(\lambda) \;\le\; \sum_\lambda m_a(\lambda) \;=\; n$$Число $\sum_\lambda m_g(\lambda)$ — это максимальное количество линейно независимых собственных векторов, которые вообще можно набрать у матрицы. Когда оно равно $n$, собственных векторов хватает на базис всего пространства; когда меньше — не хватает. Что из этого следует и как этим пользоваться, разбирается в следующем уроке.
Разбор примеров
Пример 1. Кратности у двух матриц с одинаковым многочленом.
Вернёмся к матрицам $C$ и $D$ из предыдущего раздела. У обеих $p(\lambda) = -(\lambda - 2)^2(\lambda - 5)$, то есть $m_a(2) = 2$ и $m_a(5) = 1$.
Для $C = \begin{pmatrix} -1 & 3 & -3 \\ -3 & 5 & -3 \\ 3 & -3 & 5 \end{pmatrix}$ матрица $C - 2I$ имела три пропорциональные строки, то есть $\operatorname{rank}(C - 2I) = 1$, откуда
$$m_g(2) = 3 - 1 = 2 = m_a(2)$$Собственное подпространство $E_2$ — плоскость с базисом $(1,1,0)^T$, $(-1,0,1)^T$. Для $\lambda = 5$: $\operatorname{rank}(C - 5I) = 2$, значит $m_g(5) = 1 = m_a(5)$. Сумма геометрических кратностей: $2 + 1 = 3 = n$. Собственных векторов хватает на базис $\mathbb{R}^3$.
Для $D = \begin{pmatrix} 4 & 1 & -2 \\ 3 & 2 & -3 \\ -1 & 1 & 3 \end{pmatrix}$ матрица $D - 2I$ имела ранг 2, откуда
$$m_g(2) = 3 - 2 = 1 < 2 = m_a(2)$$Собственное подпространство $E_2$ — всего лишь прямая с базисом $(1,0,1)^T$. Для $\lambda = 5$ снова $m_g = m_a = 1$. Сумма геометрических кратностей: $1 + 1 = 2 < 3$. Матрица $D$ дефектная, дефект собственного значения $2$ равен единице.
Сведём в таблицу.
| Величина | Матрица $C$ | Матрица $D$ |
|---|---|---|
| характеристический многочлен | $-(\lambda-2)^2(\lambda-5)$ | $-(\lambda-2)^2(\lambda-5)$ |
| след / определитель | $9$ / $20$ | $9$ / $20$ |
| $m_a(2)$ | 2 | 2 |
| $\operatorname{rank}(A - 2I)$ | 1 | 2 |
| $m_g(2)$ | 2 | 1 |
| $E_2$ | плоскость | прямая |
| независимых собственных векторов всего | 3 | 2 |
| дефектная | нет | да |
Верхние строки таблицы совпадают полностью, нижние расходятся. Это и есть ответ на вопрос, почему характеристический многочлен не определяет матрицу однозначно.
Пример 2. Самая простая дефектная матрица.
$$N = \begin{pmatrix} 5 & 1 \\ 0 & 5 \end{pmatrix}$$Матрица треугольная, собственные значения читаются с диагонали: $\lambda = 5$ дважды, $m_a(5) = 2$. Ищем собственное подпространство:
$$N - 5I = \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix}$$Ранг равен 1, значит $m_g(5) = 2 - 1 = 1$. Система сводится к уравнению $x_2 = 0$, откуда $E_5 = \{(t, 0)^T\}$ — горизонтальная ось. Проверка: $N(1,0)^T = (5, 0)^T = 5(1,0)^T$.
Геометрия здесь наглядная. Преобразование растягивает всё в пять раз и вдобавок сдвигает: точка $(x_1, x_2)$ идёт в $(5x_1 + x_2,\ 5x_2)$. Векторы, лежащие на горизонтальной оси, сдвигать некуда — у них $x_2 = 0$, — и они просто растягиваются. Любой вектор с $x_2 \ne 0$ получает добавку вдоль горизонтали и с прямой сходит. Поэтому инвариантное направление ровно одно, хотя собственное значение «весит» два.
Пример 3. Максимально возможная геометрическая кратность.
$$5I = \begin{pmatrix} 5 & 0 \\ 0 & 5 \end{pmatrix}$$Тот же характеристический многочлен $(\lambda - 5)^2$, та же алгебраическая кратность $m_a(5) = 2$. Но $5I - 5I$ — нулевая матрица, её ранг равен нулю, и
$$m_g(5) = 2 - 0 = 2$$Собственное подпространство $E_5$ — вся плоскость: любой ненулевой вектор собственный. Крайние случаи $N$ и $5I$ показывают весь диапазон: при одном и том же многочлене геометрическая кратность может принимать любое значение от $1$ до $m_a$.
Пример 4. Промежуточный случай в размерности 3.
$$G = \begin{pmatrix} 3 & 0 & 1 \\ 0 & 3 & 0 \\ 0 & 0 & 3 \end{pmatrix}$$Треугольная, на диагонали три тройки: $m_a(3) = 3$, других собственных значений нет.
$$G - 3I = \begin{pmatrix} 0 & 0 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{pmatrix}$$Ранг равен 1, значит $m_g(3) = 3 - 1 = 2$. Система сводится к $x_3 = 0$, свободные переменные $x_1, x_2$, базис $E_3$: векторы $(1,0,0)^T$ и $(0,1,0)^T$. Собственное подпространство — координатная плоскость $Ox_1x_2$.
Проверка неравенства: $1 \le 2 \le 3$. Матрица дефектная с дефектом $3 - 2 = 1$. Всего независимых собственных векторов два, до базиса $\mathbb{R}^3$ одного не хватает.
Пример 5. Собственное подпространство при $\lambda = 0$.
$$H = \begin{pmatrix} 1 & 2 & 3 \\ 2 & 4 & 6 \\ 3 & 6 & 9 \end{pmatrix}$$Все строки пропорциональны первой, значит $\operatorname{rank} H = 1$ и $\det H = 0$ — ноль будет собственным значением. Более того, $E_0 = \ker H$ имеет размерность $3 - 1 = 2$, то есть $m_g(0) = 2$.
Найдём базис: система сводится к $x_1 + 2x_2 + 3x_3 = 0$, откуда $x_1 = -2x_2 - 3x_3$. Свободные $x_2, x_3$:
$$e_1 = \begin{pmatrix} -2 \\ 1 \\ 0 \end{pmatrix}, \qquad e_2 = \begin{pmatrix} -3 \\ 0 \\ 1 \end{pmatrix}$$Третье собственное значение находится без вычислений: сумма всех трёх равна следу $1 + 4 + 9 = 14$, а два из них нули, значит $\lambda_3 = 14$. Соответствующий вектор — $(1, 2, 3)^T$: проверим, $H(1,2,3)^T = (1 + 4 + 9,\ 2 + 8 + 18,\ 3 + 12 + 27)^T = (14, 28, 42)^T = 14 \cdot (1,2,3)^T$. Верно.
Итого $m_a(0) = m_g(0) = 2$ и $m_a(14) = m_g(14) = 1$, матрица не дефектная. Смысл картинки: преобразование сплющивает всё трёхмерное пространство на одну прямую вдоль $(1,2,3)$, растягивая эту прямую в 14 раз; целая плоскость направлений при этом схлопывается в точку.
Почему это важно
Разница между двумя кратностями — это водораздел, от которого зависит буквально всё дальнейшее поведение матрицы.
В теории. Совпадение кратностей у всех собственных значений означает, что собственных векторов хватает на базис пространства, и в этом базисе преобразование выглядит как набор независимых растяжений по осям. Дефект означает, что такого базиса нет и приходится довольствоваться более сложным описанием (жорданова форма — тема, к которой курс подойдёт позже). Следующий урок разбирает этот вопрос целиком.
В вычислениях. Дефектность — источник численной неустойчивости. У дефектной матрицы собственные векторы «почти совпадают», и малейшее возмущение элементов резко меняет ответ. На практике программы редко видят точную дефектность (случайная матрица дефектной не бывает), но регулярно видят «почти дефектность», и она портит сходимость итерационных методов.
В приложениях. Кратность собственного значения — это размерность семейства решений с одинаковым поведением. В механике кратная собственная частота означает, что конструкция может колебаться на этой частоте по-разному, в целом семействе форм. В PCA кратное собственное значение ковариационной матрицы означает, что данные в этой плоскости разбросаны одинаково во всех направлениях — и выбор конкретных главных компонент внутри такой плоскости произволен, что сразу объясняет, почему разные библиотеки могут вернуть разные (и одинаково правильные) компоненты.
Свойства собственных значений и векторов
Этот раздел — набор фактов, которые превращают собственные числа из результата вычисления в рабочий инструмент. Каждый доказывается в одну-две строки прямо из определения, и каждый экономит потом много времени.
Векторы разных собственных значений независимы
Теорема: Собственные векторы, отвечающие попарно различным собственным значениям, линейно независимы.
Случай двух значений. Пусть $Av_1 = \lambda_1 v_1$, $Av_2 = \lambda_2 v_2$, причём $\lambda_1 \ne \lambda_2$ и оба вектора ненулевые. Предположим, что они зависимы. Для двух векторов зависимость означает пропорциональность (урок 169): $v_2 = c v_1$ при некотором $c \ne 0$. Тогда
$$\lambda_2 v_2 = A v_2 = A(cv_1) = c \lambda_1 v_1 = \lambda_1 (c v_1) = \lambda_1 v_2$$Отсюда $(\lambda_2 - \lambda_1)v_2 = \mathbf{0}$, а поскольку $v_2 \ne \mathbf{0}$, получаем $\lambda_1 = \lambda_2$ — противоречие с условием. Значит, векторы независимы.
Случай трёх значений. Пусть $Av_i = \lambda_i v_i$ для $i = 1,2,3$, все $\lambda_i$ попарно различны. Пусть
$$c_1 v_1 + c_2 v_2 + c_3 v_3 = \mathbf{0} \qquad (*)$$Применим к обеим частям матрицу $A$:
$$c_1 \lambda_1 v_1 + c_2 \lambda_2 v_2 + c_3 \lambda_3 v_3 = \mathbf{0} \qquad (**)$$Теперь умножим $(*)$ на $\lambda_3$ и вычтем из $(**)$ — третье слагаемое исчезнет:
$$c_1(\lambda_1 - \lambda_3)v_1 + c_2(\lambda_2 - \lambda_3)v_2 = \mathbf{0}$$Векторы $v_1$ и $v_2$ отвечают разным собственным значениям, значит, по уже доказанному случаю двух, они независимы. Поэтому оба коэффициента равны нулю:
$$c_1(\lambda_1 - \lambda_3) = 0, \qquad c_2(\lambda_2 - \lambda_3) = 0$$Разности $\lambda_1 - \lambda_3$ и $\lambda_2 - \lambda_3$ отличны от нуля по условию, значит $c_1 = c_2 = 0$. Подставляя это в $(*)$, получаем $c_3 v_3 = \mathbf{0}$, откуда $c_3 = 0$. Все коэффициенты нулевые — векторы независимы.
Общий случай доказывается точно тем же приёмом по индукции: предполагаем, что для $k - 1$ векторов утверждение верно, берём нулевую комбинацию $k$ векторов, применяем $A$, вычитаем исходную комбинацию, умноженную на $\lambda_k$, и получаем нулевую комбинацию $k - 1$ независимых векторов; отсюда все коэффициенты, кроме последнего, равны нулю, а затем и последний.
Два практических следствия, которые стоит держать в голове.
-
Если у матрицы порядка $n$ ровно $n$ различных вещественных собственных значений, то отвечающие им $n$ собственных векторов образуют базис $\mathbb{R}^n$, и матрица заведомо не дефектная (у каждого значения $m_a = m_g = 1$).
-
Векторы из одного собственного подпространства теоремой не охвачены: они как раз отвечают одному и тому же собственному значению и могут быть какими угодно, в том числе зависимыми. Независимость внутри $E_\lambda$ надо обеспечивать самому — выбирая базис, то есть ФСР.
Треугольные и диагональные матрицы
Факт: У треугольной матрицы (верхней или нижней) собственные значения — это в точности элементы главной диагонали, взятые с учётом кратности.
Доказательство мы уже видели: матрица $A - \lambda I$ остаётся треугольной, а определитель треугольной матрицы равен произведению диагональных элементов, значит
$$p_A(\lambda) = (a_{11} - \lambda)(a_{22} - \lambda)\cdots(a_{nn} - \lambda)$$Корни этого произведения — сами $a_{ii}$.
Этот факт стоит применять всегда, когда матрица треугольная хотя бы «в блоках». Скажем, у матрицы
$$\begin{pmatrix} 2 & 7 & 1 & 5 \\ 0 & 2 & 3 & 9 \\ 0 & 0 & 6 & 4 \\ 0 & 0 & 0 & -1 \end{pmatrix}$$спектр читается мгновенно: $\{2, 2, 6, -1\}$, причём $m_a(2) = 2$. Никаких вычислений определителя $4 \times 4$ не требуется. А вот геометрические кратности всё равно придётся считать через ранг — диагональ про них ничего не говорит, что видно из пары примеров $N$ и $5I$ предыдущего раздела.
Диагональная матрица — частный случай: её собственные значения на диагонали, а собственные векторы — базисные орты $e_1, \dots, e_n$.
Спектр производных матриц
Все четыре факта ниже строятся по одной схеме: берём $Av = \lambda v$ и что-то с ним делаем.
Свойство 1 (степени). Если $Av = \lambda v$, то $A^k v = \lambda^k v$ при любом натуральном $k$. Собственные векторы у $A^k$ те же, собственные значения возводятся в степень $k$.
Доказательство индукцией. База $k = 1$ — само условие. Шаг: пусть $A^{k}v = \lambda^{k}v$, тогда
$$A^{k+1}v = A(A^k v) = A(\lambda^k v) = \lambda^k (Av) = \lambda^k \cdot \lambda v = \lambda^{k+1} v$$Свойство 2 (обратная матрица). Если $A$ обратима и $Av = \lambda v$, то $\lambda \ne 0$ и
$$A^{-1}v = \frac{1}{\lambda}\,v.$$
Сначала о том, почему $\lambda \ne 0$: у обратимой матрицы $\det A \ne 0$, а произведение всех собственных значений равно определителю, так что ноль в спектр входить не может. Теперь само равенство: умножим обе части $Av = \lambda v$ слева на $A^{-1}$:
$$v = A^{-1}(\lambda v) = \lambda\, A^{-1}v \quad \Longrightarrow \quad A^{-1}v = \frac{1}{\lambda}v$$Собственные векторы те же, собственные значения переворачиваются. Заодно понятна связь с числом обусловленности из урока 166: если у матрицы есть очень маленькое по модулю собственное значение, у обратной появится очень большое, и решение системы станет крайне чувствительным к погрешностям.
Свойство 3 (сдвиг). Если $Av = \lambda v$, то $(A + cI)v = (\lambda + c)v$ при любом числе $c$. Собственные векторы те же, все собственные значения сдвигаются на $c$.
Доказательство в одну строку:
$$(A + cI)v = Av + cIv = \lambda v + c v = (\lambda + c)v$$Отсюда же следует: спектр матрицы $cA$ — это спектр $A$, умноженный на $c$, потому что $(cA)v = c(Av) = c\lambda v$.
Свойство 4 (многочлен от матрицы). Если $Av = \lambda v$ и $q(t) = a_m t^m + \dots + a_1 t + a_0$ — многочлен, то
$$q(A)\,v = q(\lambda)\,v, \qquad \text{где } q(A) = a_m A^m + \dots + a_1 A + a_0 I.$$
Это объединение первых трёх свойств: каждое слагаемое $a_j A^j$ действует на $v$ как умножение на $a_j\lambda^j$, а сумма даёт $q(\lambda)$.
Свойство 5 (транспонирование). Матрицы $A$ и $A^T$ имеют одинаковый характеристический многочлен, а значит, одинаковый спектр с теми же алгебраическими кратностями. Собственные векторы при этом, вообще говоря, разные.
Доказательство опирается на то, что определитель не меняется при транспонировании (урок 159):
$$\det(A^T - \lambda I) = \det\big((A - \lambda I)^T\big) = \det(A - \lambda I)$$Использовано ещё и то, что $I^T = I$. А вот собственные векторы совпадать не обязаны, и в разборе примеров мы это увидим на числах.
Все пять свойств удобно свести в таблицу — она пригодится в задачах, где спектр $A$ дан, а спрашивают про производную матрицу.
| Матрица | Собственные значения | Собственные векторы |
|---|---|---|
| $A$ | $\lambda$ | $v$ |
| $A^k$ | $\lambda^k$ | те же $v$ |
| $A^{-1}$ (если существует) | $1/\lambda$ | те же $v$ |
| $A + cI$ | $\lambda + c$ | те же $v$ |
| $cA$ | $c\lambda$ | те же $v$ |
| $q(A)$ | $q(\lambda)$ | те же $v$ |
| $A^T$ | $\lambda$ (те же) | вообще говоря, другие |
| $C^{-1}AC$ | $\lambda$ (те же) | $C^{-1}v$ |
Последняя строка — это результат про подобие, переписанный для векторов: если $Av = \lambda v$, то $(C^{-1}AC)(C^{-1}v) = C^{-1}Av = \lambda C^{-1}v$.
Разбор примеров
Пример 1. Спектр производных матриц по готовому спектру.
Пусть про матрицу $M$ порядка 3 известно, что её собственные значения равны $-2$, $1$, $4$. Что можно сказать, не зная самой матрицы?
Определитель: $\det M = (-2) \cdot 1 \cdot 4 = -8$. След: $\operatorname{tr} M = -2 + 1 + 4 = 3$. Матрица обратима, потому что нуля в спектре нет.
Спектр $M^2$: $\{4, 1, 16\}$. Обрати внимание, что у $M^2$ значения $4$ и $16$ различны, а вот если бы в спектре $M$ были $-2$ и $2$, у квадрата оба дали бы $4$ — при возведении в степень разные собственные значения могут склеиться.
Спектр $M^{-1}$: $\{-1/2,\ 1,\ 1/4\}$. Определитель обратной: $(-1/2)(1)(1/4) = -1/8 = 1/\det M$. Сходится.
Спектр $M + 3I$: $\{1, 4, 7\}$. Все положительны — сдвигом можно «поднять» спектр над нулём.
Спектр $M^T$: тот же $\{-2, 1, 4\}$.
Спектр $q(M)$ для $q(t) = t^2 - 3t + 2$: считаем $q(-2) = 4 + 6 + 2 = 12$, $q(1) = 1 - 3 + 2 = 0$, $q(4) = 16 - 12 + 2 = 6$. Спектр $\{12, 0, 6\}$, и раз в нём есть ноль, матрица $q(M)$ вырождена: $\det q(M) = 0$.
Пример 2. Одинаковый спектр, разные векторы у $A$ и $A^T$.
Возьмём несимметричную матрицу:
$$A = \begin{pmatrix} 3 & 4 \\ 0 & 1 \end{pmatrix}$$Матрица треугольная, спектр $\{3, 1\}$. Для $\lambda = 3$: $A - 3I = \begin{pmatrix} 0 & 4 \\ 0 & -2 \end{pmatrix}$, откуда $x_2 = 0$ и $v = (1,0)^T$. Для $\lambda = 1$: $A - I = \begin{pmatrix} 2 & 4 \\ 0 & 0 \end{pmatrix}$, откуда $x_1 = -2x_2$ и $v = (-2,1)^T$.
Теперь $A^T = \begin{pmatrix} 3 & 0 \\ 4 & 1 \end{pmatrix}$ — тоже треугольная, спектр тот же $\{3, 1\}$. Для $\lambda = 3$: $A^T - 3I = \begin{pmatrix} 0 & 0 \\ 4 & -2 \end{pmatrix}$, откуда $2x_1 = x_2$ и $v = (1,2)^T$. Для $\lambda = 1$: $A^T - I = \begin{pmatrix} 2 & 0 \\ 4 & 0 \end{pmatrix}$, откуда $x_1 = 0$ и $v = (0,1)^T$.
Спектры совпали, векторы — нет: $(1,0)$ против $(1,2)$ и $(-2,1)$ против $(0,1)$. Это не ошибка, а общее правило: транспонирование сохраняет собственные значения и меняет направления.
Пример 3. Проверка независимости на числах.
Для матрицы $A$ из примера 2 раздела про алгоритм мы нашли три собственных вектора:
$$v_1 = (-1,-1,1)^T \ (\lambda = 2), \qquad v_2 = (-1,0,1)^T \ (\lambda = 3), \qquad v_3 = (1,-1,-2)^T \ (\lambda = 4)$$Собственные значения попарно различны, значит, по теореме векторы независимы. Проверим напрямую через определитель (критерий из урока 169): составим матрицу из этих столбцов и посчитаем определитель.
$$\begin{vmatrix} -1 & -1 & 1 \\ -1 & 0 & -1 \\ 1 & 1 & -2 \end{vmatrix} = -1\begin{vmatrix} 0 & -1 \\ 1 & -2 \end{vmatrix} + 1\begin{vmatrix} -1 & -1 \\ 1 & -2 \end{vmatrix} + 1\begin{vmatrix} -1 & 0 \\ 1 & 1 \end{vmatrix}$$$$= -1(0 + 1) + 1(2 + 1) + 1(-1 - 0) = -1 + 3 - 1 = 1 \ne 0$$Определитель ненулевой, векторы независимы — теорема подтвердилась вычислением.
Пример 4. Как свойство степеней читается геометрически.
Возьмём $A = \begin{pmatrix} 2 & 1 \\ 1 & 2 \end{pmatrix}$ со спектром $\{3, 1\}$ и векторами $(1,1)$, $(1,-1)$. Тогда $A^{10}$ имеет тот же набор собственных векторов и спектр $\{3^{10}, 1^{10}\} = \{59049,\ 1\}$.
Смысл: за десять применений преобразования компонента вдоль $(1,1)$ выросла в 59 тысяч раз, а компонента вдоль $(1,-1)$ не изменилась вовсе. Любой вектор общего положения после десяти применений практически ляжет на прямую $y = x$ — «главное» направление подавляет всё остальное. Это наблюдение и есть идея степенного метода, к которому мы придём через два раздела.
Почему это важно
Эти свойства позволяют отвечать на вопросы про сложные матрицы, ни разу их не вычисляя.
Классический сюжет из численной практики: нужно найти собственное значение, ближайшее к заданному числу $\mu$. Прямого способа нет, но свойства 2 и 3 дают обходной путь. Сдвинем матрицу: у $A - \mu I$ собственные значения равны $\lambda_i - \mu$, и то из них, что ближе всего к $\mu$, станет самым маленьким по модулю. Обратим: у $(A - \mu I)^{-1}$ оно станет самым большим по модулю. А наибольшее по модулю собственное значение умеет искать степенной метод. Так из двух школьных свойств собирается алгоритм обратных итераций со сдвигом — рабочая лошадка численной линейной алгебры.
Второй сюжет — устойчивость. Поведение системы $x_{k+1} = Ax_k$ описывается степенями матрицы, а свойство 1 говорит, что вдоль собственных направлений степени действуют как $\lambda^k$. Значит, вся долгосрочная динамика определяется наибольшим по модулю собственным значением, и ответ на вопрос «взорвётся или затухнет» получается без единого шага моделирования. В разделе про ML мы применим это к рекуррентным нейросетям.
Когда вещественных собственных значений нет
Поворот: направлений, которые остаются на месте, просто нет
Возьмём поворот плоскости на 90 градусов против часовой стрелки. Из урока 171 известна его матрица:
$$R = \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix}$$Геометрия здесь говорит всё сама. Собственный вектор — это направление, которое преобразование оставляет на своей прямой. Поворот на 90 градусов переводит каждую прямую, проходящую через начало координат, в перпендикулярную ей прямую. Прямая, перпендикулярная самой себе, не существует. Значит, ни одно направление не сохраняется, и собственных векторов в $\mathbb{R}^2$ у поворота нет вообще.
Алгебра подтверждает: мы уже считали $p_R(\lambda) = \lambda^2 + 1$, и это уравнение не имеет вещественных корней, потому что квадрат вещественного числа не бывает отрицательным.
Полезно сразу увидеть общую картину. Матрица поворота на угол $\varphi$ имеет вид
$$R_\varphi = \begin{pmatrix} \cos\varphi & -\sin\varphi \\ \sin\varphi & \cos\varphi \end{pmatrix}, \qquad \operatorname{tr} R_\varphi = 2\cos\varphi, \qquad \det R_\varphi = \cos^2\varphi + \sin^2\varphi = 1$$Характеристический многочлен: $\lambda^2 - 2\cos\varphi\cdot\lambda + 1$, его дискриминант
$$\mathcal{D} = 4\cos^2\varphi - 4 = -4\sin^2\varphi \le 0$$Дискриминант отрицателен при любом $\varphi$, кроме тех, где $\sin\varphi = 0$, то есть кроме $\varphi = 0$ (тождественное преобразование, $\lambda = 1$) и $\varphi = 180^\circ$ (центральная симметрия, $\lambda = -1$). Во всех остальных случаях вещественных собственных значений нет — и это ровно тот геометрический факт, что поворот на угол, отличный от нуля и развёрнутого, не оставляет на месте ни одного направления.
Над комплексными числами картина другая. Уравнение $\lambda^2 + 1 = 0$ имеет корни $\lambda = \pm i$, и у поворота появляются комплексные собственные значения и комплексные собственные векторы. Это не формальный трюк: модуль такого числа равен единице (поворот не растягивает), а его аргумент равен углу поворота. Техника работы с комплексными числами в этом курсе разбирается позже, поэтому здесь мы ограничимся честной оговоркой: над $\mathbb{R}$ собственных значений может не быть, над $\mathbb{C}$ у матрицы порядка $n$ их всегда ровно $n$ с учётом кратности (это следствие основной теоремы алгебры). Все задачи этого урока решаются над вещественными числами, и правильный ответ «вещественных собственных значений нет» — полноценный ответ, а не признак ошибки.
Нечётный порядок: хотя бы одно вещественное значение есть всегда
Многочлен нечётной степени с вещественными коэффициентами обязательно имеет вещественный корень: при $\lambda \to +\infty$ и $\lambda \to -\infty$ он стремится к бесконечностям разных знаков, а непрерывная функция, меняющая знак, обращается в ноль (теорема о промежуточном значении из уроков про непрерывность).
Отсюда: у любой вещественной матрицы нечётного порядка есть хотя бы одно вещественное собственное значение. У матрицы $3 \times 3$ — минимум одно, у $5 \times 5$ — минимум одно, и так далее. А вот у матрицы чётного порядка их может не быть совсем, как у поворота плоскости.
Именно этот факт стоит за теоремой Эйлера о вращении, упомянутой в исторической части. Матрица поворота трёхмерного пространства имеет порядок 3, значит, вещественное собственное значение у неё есть; можно показать, что оно равно единице, и отвечающий ему вектор — это ось вращения. Поворот в пространстве всегда оставляет на месте целую прямую, в отличие от поворота на плоскости, который не оставляет ни одной.
Симметричные матрицы: вещественность гарантирована
Есть важный класс матриц, где неприятностей не бывает никогда.
Факт (теорема о симметричных матрицах). Если вещественная матрица $A$ симметрична, то есть $A^T = A$, то все $n$ корней её характеристического многочлена вещественны. Более того, у симметричной матрицы геометрическая кратность каждого собственного значения совпадает с алгебраической, то есть симметричная матрица никогда не бывает дефектной.
Общее доказательство требует техники, которой у нас пока нет (оно проводится через комплексные числа либо через скалярное произведение), поэтому принимаем это как факт. Но для порядка 2 всё проверяется в две строки. Пусть
$$A = \begin{pmatrix} a & b \\ b & c \end{pmatrix}, \qquad p_A(\lambda) = \lambda^2 - (a + c)\lambda + (ac - b^2)$$Дискриминант:
$$\mathcal{D} = (a+c)^2 - 4(ac - b^2) = a^2 + 2ac + c^2 - 4ac + 4b^2 = (a - c)^2 + 4b^2 \ge 0$$Сумма двух квадратов неотрицательна всегда, значит корни вещественны при любых $a, b, c$. Причём $\mathcal{D} = 0$ возможно только при $a = c$ и $b = 0$, то есть только для скалярной матрицы $aI$ — а у неё геометрическая кратность и так равна двум. Так что для $2 \times 2$ доказаны оба утверждения сразу.
Для несимметричной матрицы такой гарантии нет: у $\begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix}$ вещественных корней нет вовсе, у $\begin{pmatrix} 5 & 1 \\ 0 & 5 \end{pmatrix}$ корни вещественны, но матрица дефектна. Симметрия убирает обе беды разом.
Почему это важно на практике. Симметричные матрицы возникают в приложениях не случайно, а системно, и почти всегда там, где есть «взаимность»:
-
ковариационная матрица выборки: ковариация признаков $i$ и $j$ равна ковариации $j$ и $i$ по определению, поэтому матрица симметрична, и все её собственные значения вещественны — иначе PCA не имел бы смысла;
-
матрица Грама $X^TX$, которая появляется в нормальных уравнениях линейной регрессии: транспонируя, получаем $(X^TX)^T = X^T(X^T)^T = X^TX$;
-
гессиан дважды непрерывно дифференцируемой функции: смешанные производные равны, $\partial^2 f/\partial x_i \partial x_j = \partial^2 f/\partial x_j \partial x_i$ (теорема Шварца), и матрица вторых производных симметрична;
-
матрица смежности неориентированного графа, матрица расстояний, матрица корреляций — везде симметрия следует из содержательной взаимности отношения.
Практический вывод простой: если матрица, с которой ты работаешь, симметрична, можно смело рассчитывать на полный набор вещественных собственных значений и на то, что собственных векторов хватит на базис. Для симметричных матриц верен и более сильный результат — базис можно выбрать взаимно перпендикулярным, — но ортогональность и связанная с ней спектральная теорема разбираются дальше по курсу. Здесь достаточно факта о вещественности.
Отдельно стоит запомнить, что в коде для симметричных матриц есть отдельная функция. numpy.linalg.eigh (буква h — от «эрмитова», комплексного обобщения симметричности) работает быстрее numpy.linalg.eig, использует только нижний треугольник матрицы, возвращает вещественный массив вместо комплексного и упорядочивает собственные значения по возрастанию. Для ковариационных матриц и гессианов её и нужно использовать.
Степенной метод: наибольшее собственное значение без определителей
Интуиция: доминирующее направление побеждает
В разборе примеров прошлого раздела было наблюдение: у матрицы $\begin{pmatrix} 2 & 1 \\ 1 & 2 \end{pmatrix}$ компонента вдоль $(1,1)$ за десять шагов вырастает в $3^{10}$ раз, а компонента вдоль $(1,-1)$ не растёт вовсе. Превратим это наблюдение в алгоритм.
Пусть у матрицы $A$ порядка $n$ есть $n$ независимых собственных векторов $v_1, \dots, v_n$ с собственными значениями $\lambda_1, \dots, \lambda_n$, причём одно из них строго больше остальных по модулю:
$$|\lambda_1| > |\lambda_2| \ge |\lambda_3| \ge \dots \ge |\lambda_n|$$Такое $\lambda_1$ называют доминирующим собственным значением. Возьмём произвольный стартовый вектор $x_0$ и разложим его по базису из собственных векторов:
$$x_0 = c_1v_1 + c_2v_2 + \dots + c_nv_n$$Применим матрицу $k$ раз. По свойству степеней каждое слагаемое умножается на свой $\lambda_i^k$:
$$A^kx_0 = c_1\lambda_1^kv_1 + c_2\lambda_2^kv_2 + \dots + c_n\lambda_n^kv_n$$Вынесем $\lambda_1^k$ за скобку:
$$A^kx_0 = \lambda_1^k\left(c_1v_1 + c_2\left(\frac{\lambda_2}{\lambda_1}\right)^{\!k}v_2 + \dots + c_n\left(\frac{\lambda_n}{\lambda_1}\right)^{\!k}v_n\right)$$Все дроби $\lambda_i/\lambda_1$ по модулю строго меньше единицы, значит их степени стремятся к нулю. При больших $k$ в скобке остаётся практически один член $c_1v_1$:
$$A^kx_0 \approx c_1\lambda_1^k\,v_1$$Направление вектора $A^kx_0$ сходится к направлению $v_1$, а отношение длин двух подряд идущих векторов сходится к $|\lambda_1|$. Это и есть степенной метод: умножай матрицу на вектор, нормируй, повторяй.
Скорость сходимости определяется отношением $|\lambda_2/\lambda_1|$: ошибка убывает примерно как геометрическая прогрессия с этим знаменателем. Чем сильнее первое собственное значение отрывается от второго, тем быстрее метод сходится.
Алгоритм
Шаг 0. Выбрать стартовый вектор $x_0 \ne \mathbf{0}$ (обычно $(1, 0, \dots, 0)^T$ или вектор из единиц).
Шаг 1. Посчитать $y = Ax_k$.
Шаг 2. Найти нормирующий множитель $\mu_{k+1}$ — например, координату вектора $y$, наибольшую по модулю.
Шаг 3. Положить $x_{k+1} = y/\mu_{k+1}$.
Шаг 4. Повторять, пока $\mu$ и $x$ не перестанут меняться в нужном знаке. Тогда $\mu \approx \lambda_1$, а $x \approx v_1$.
Нормировка на каждом шаге нужна по чисто вычислительной причине: без неё координаты растут (или падают) как $\lambda_1^k$ и быстро вылезают за пределы разрядной сетки. Делить можно на что угодно ненулевое — на максимальную координату, на длину вектора, на первую координату; направление от этого не меняется.
Численный пример, прогнанный до конца
Возьмём матрицу из первого примера алгоритма, у которой ответ нам уже известен: $\lambda_1 = 5$ с вектором $(1,1)^T$ и $\lambda_2 = 2$ с вектором $(1,-2)^T$.
$$A = \begin{pmatrix} 4 & 1 \\ 2 & 3 \end{pmatrix}, \qquad x_0 = \begin{pmatrix} 1 \\ 0 \end{pmatrix}$$Стартовый вектор раскладывается так: $(1,0)^T = \tfrac{2}{3}(1,1)^T + \tfrac{1}{3}(1,-2)^T$ (проверка: $\tfrac23 + \tfrac13 = 1$ и $\tfrac23 - \tfrac23 = 0$). Отношение $|\lambda_2/\lambda_1| = 2/5 = 0{,}4$, значит на каждом шаге погрешность должна уменьшаться примерно в 2,5 раза.
Нормируем делением на первую координату (она здесь всегда наибольшая по модулю). Вот реально просчитанные итерации:
| $k$ | $Ax_{k-1}$ | оценка $\mu_k$ | нормированный $x_k$ | погрешность $5 - \mu_k$ |
|---|---|---|---|---|
| 1 | $(4;\ 2)$ | 4,000000 | $(1;\ 0{,}500000)$ | 1,000000 |
| 2 | $(4{,}500000;\ 3{,}500000)$ | 4,500000 | $(1;\ 0{,}777778)$ | 0,500000 |
| 3 | $(4{,}777778;\ 4{,}333333)$ | 4,777778 | $(1;\ 0{,}906977)$ | 0,222222 |
| 4 | $(4{,}906977;\ 4{,}720930)$ | 4,906977 | $(1;\ 0{,}962085)$ | 0,093023 |
| 5 | $(4{,}962085;\ 4{,}886256)$ | 4,962085 | $(1;\ 0{,}984718)$ | 0,037915 |
| 6 | $(4{,}984718;\ 4{,}954155)$ | 4,984718 | $(1;\ 0{,}993869)$ | 0,015282 |
| 7 | $(4{,}993869;\ 4{,}981606)$ | 4,993869 | $(1;\ 0{,}997544)$ | 0,006131 |
Оценка $\mu_k$ идёт к пятёрке, нормированный вектор — к $(1,1)^T$. Посмотри на последний столбец: отношения соседних погрешностей равны $0{,}5$, $0{,}444$, $0{,}419$, $0{,}408$, $0{,}403$, $0{,}401$ — они сходятся ровно к $0{,}4 = |\lambda_2/\lambda_1|$, как и предсказывала теория. Каждая итерация даёт примерно $\log_{10}(1/0{,}4) \approx 0{,}4$ верного десятичного знака.
Проверим третью строку вручную по формуле разложения. При $k = 3$:
$$A^3x_0 = \tfrac{2}{3}\cdot 5^3\begin{pmatrix} 1 \\ 1 \end{pmatrix} + \tfrac{1}{3}\cdot 2^3\begin{pmatrix} 1 \\ -2 \end{pmatrix} = \begin{pmatrix} 83{,}333\ldots + 2{,}666\ldots \\ 83{,}333\ldots - 5{,}333\ldots \end{pmatrix} = \begin{pmatrix} 86 \\ 78 \end{pmatrix}$$Нормируем: $78/86 = 0{,}906977$ — в точности вторая координата из таблицы. Формула и итерации сошлись.
Когда метод не работает
У степенного метода есть ровно три способа сломаться, и все три видны из вывода.
-
Нет доминирующего значения. Если $|\lambda_1| = |\lambda_2|$ (например, $\lambda_1 = 3$, $\lambda_2 = -3$), ни один член в скобке не выигрывает, и последовательность не сходится, а колеблется. Для матрицы поворота, у которой вещественных собственных значений нет вовсе, вектор просто крутится по кругу.
-
Неудачный старт. Если случайно окажется $c_1 = 0$, то есть стартовый вектор лежит в подпространстве, натянутом на остальные собственные векторы, метод сойдётся не туда. На практике это почти невозможно: случайный вектор попадает в такое подпространство с нулевой вероятностью, а округления при вычислениях всё равно подмешивают крошечную компоненту вдоль $v_1$, и она постепенно вытягивает процесс в нужную сторону.
-
Медленная сходимость. Если $|\lambda_2/\lambda_1|$ близко к единице (скажем, $0{,}99$), для одного верного знака нужны сотни итераций. Лечится сдвигом: у матрицы $A - cI$ спектр смещён, и подходящим $c$ отношение можно улучшить.
Метод находит только одно собственное значение — наибольшее по модулю. Этого мало для полного анализа матрицы, но во многих прикладных задачах именно оно и нужно: доминирующая компонента данных, стационарное распределение цепи Маркова, ранг важности страниц в интернете, спектральная норма весовой матрицы. Ко всем этим сюжетам мы сейчас и перейдём.
Собственные векторы в машинном обучении
PCA: главные компоненты — это собственные векторы ковариационной матрицы
Метод главных компонент решает задачу: найти в облаке точек направления наибольшего разброса и описать данные в новых координатах, отбросив малозначимые оси.
Пусть у нас выборка из $m$ объектов и $n$ признаков, записанная матрицей $X$ размера $m \times n$. Первым делом данные центрируют — из каждого столбца вычитают его среднее, чтобы облако точек оказалось вокруг начала координат. Затем считают ковариационную матрицу
$$\Sigma = \frac{1}{m-1}X_c^TX_c, \qquad \Sigma_{ij} = \frac{1}{m-1}\sum_{s=1}^{m}(x_{si} - \bar{x}_i)(x_{sj} - \bar{x}_j)$$Это квадратная матрица порядка $n$ (по числу признаков), на диагонали которой стоят дисперсии признаков, а вне диагонали — их ковариации. Она симметрична, поэтому все её собственные значения вещественны, и собственных векторов гарантированно хватает на базис.
Главные компоненты — это собственные векторы ковариационной матрицы. Объяснённая дисперсия каждой компоненты — это отвечающее ей собственное значение. Доля объяснённой дисперсии — отношение $\lambda_i / (\lambda_1 + \dots + \lambda_n)$.
Почему собственное значение — это дисперсия, видно из прямого подсчёта: если спроецировать центрированные данные на направление единичного вектора $u$, дисперсия проекций равна $u^T\Sigma u$; для собственного вектора $\Sigma u = \lambda u$ это выражение превращается в $\lambda\, u^Tu = \lambda$. Направление с наибольшим собственным значением — направление наибольшего разброса.
А сумма всех собственных значений равна следу $\Sigma$, то есть сумме дисперсий исходных признаков. Отсюда и трактовка долей: спектр раскладывает общую изменчивость данных по независимым осям.
Считаем на реальном примере. Возьмём шесть точек на плоскости:
$$(1;\,3),\quad (5;\,5),\quad (6;\,1),\quad (9;\,11),\quad (10;\,7),\quad (11;\,9)$$Средние: $\bar{x} = (1+5+6+9+10+11)/6 = 42/6 = 7$ и $\bar{y} = (3+5+1+11+7+9)/6 = 36/6 = 6$. Центрированные точки:
$$(-6;-3),\quad (-2;-1),\quad (-1;-5),\quad (2;5),\quad (3;1),\quad (4;3)$$Считаем суммы: $\sum x_c^2 = 36+4+1+4+9+16 = 70$, $\sum y_c^2 = 9+1+25+25+1+9 = 70$, $\sum x_cy_c = 18+2+5+10+3+12 = 50$. Делим на $m - 1 = 5$:
$$\Sigma = \begin{pmatrix} 14 & 10 \\ 10 & 14 \end{pmatrix}$$Дальше — обычный алгоритм этого урока. След равен 28, определитель $196 - 100 = 96$, характеристический многочлен $\lambda^2 - 28\lambda + 96 = (\lambda - 24)(\lambda - 4)$. Собственные значения: $\lambda_1 = 24$, $\lambda_2 = 4$.
Для $\lambda_1 = 24$: $\Sigma - 24I = \begin{pmatrix} -10 & 10 \\ 10 & -10 \end{pmatrix}$, откуда $x = y$ и первая главная компонента — направление $(1,1)$, после нормировки $\left(\tfrac{1}{\sqrt2}, \tfrac{1}{\sqrt2}\right)$. Для $\lambda_2 = 4$ аналогично получается $(1,-1)$.
Доли объяснённой дисперсии:
$$\frac{24}{24 + 4} = \frac{24}{28} \approx 0{,}8571, \qquad \frac{4}{28} \approx 0{,}1429$$Первая компонента объясняет 85,71% разброса, вторая — 14,29%. Если оставить только первую, мы сожмём двумерные данные в одномерные, потеряв 14,29% изменчивости.
Проверка на честность: спроецируем центрированные точки на направление $(1,1)/\sqrt{2}$. Получаются числа $-6{,}364$; $-2{,}121$; $-4{,}243$; $4{,}950$; $2{,}828$; $4{,}950$. Их выборочная дисперсия равна ровно $24{,}0$ — совпадает с первым собственным значением. Проекции на $(1,-1)/\sqrt{2}$ дают дисперсию $4{,}0$ — второе собственное значение. Теория подтверждена числами.
Как выбирают число компонент. Три ходовых правила.
-
По накопленной доле. Берут столько компонент, чтобы суммарная объяснённая дисперсия достигла порога — обычно 90%, 95% или 99%. В
sklearnэто записывается какPCA(n_components=0.95). -
По «локтю». Строят график собственных значений по убыванию (scree plot) и ищут точку излома, после которой значения выходят на пологую часть.
-
По правилу Кайзера. Если данные предварительно стандартизированы (каждый признак поделён на своё стандартное отклонение), след ковариационной матрицы равен $n$, и среднее собственное значение равно единице. Оставляют компоненты с $\lambda_i > 1$ — то есть те, что объясняют больше, чем «средний» признак.
Что означает нулевое собственное значение. Если один признак линейно выражается через другие, ковариационная матрица вырождена и в её спектре появляется ноль. Проверим на трёхпризнаковом наборе, где третий столбец равен $2 \cdot (\text{первый}) + (\text{второй})$:
$$\begin{pmatrix} 2 & 1 & 5 \\ 4 & 3 & 11 \\ 6 & 4 & 16 \\ 8 & 6 & 22 \\ 10 & 6 & 26 \end{pmatrix}$$Реально посчитанные собственные значения ковариационной матрицы: $84{,}805$, $0{,}195$ и $0{,}000$. Доли объяснённой дисперсии: $99{,}77\%$, $0{,}23\%$ и $0\%$. Третья компонента не объясняет ничего — она отвечает как раз направлению линейной зависимости $(2, 1, -1)$, вдоль которого данные вообще не разбросаны. Ранг ковариационной матрицы равен 2 при трёх признаках, и это ровно та связь между рангом и «истинной размерностью данных», о которой шла речь в уроке 162, — только теперь мы видим её через спектр.
В коде всё это занимает три строки:
import numpy as np
X = np.array([[1,3],[5,5],[6,1],[9,11],[10,7],[11,9]], dtype=float)
Sigma = np.cov(X, rowvar=False) # [[14., 10.], [10., 14.]]
vals, vecs = np.linalg.eigh(Sigma) # vals: [ 4. 24.] по возрастанию
order = np.argsort(vals)[::-1] # переставляем по убыванию
vals, vecs = vals[order], vecs[:, order]
print(vals) # [24. 4.]
print(vals / vals.sum()) # [0.85714286 0.14285714]
print(np.round(vecs, 4)) # столбцы — главные компоненты
sklearn.decomposition.PCA делает то же самое, только через сингулярное разложение центрированной матрицы (численно устойчивее, чем явное построение $X^TX$), и складывает результат в атрибуты components_, explained_variance_ и explained_variance_ratio_. Числа получаются те же: explained_variance_ — это собственные значения ковариационной матрицы, explained_variance_ratio_ — их доли.
PageRank: собственный вектор с $\lambda = 1$
Идея Брина и Пейджа: важность страницы определяется важностью тех, кто на неё ссылается. Формализуется это одной строкой. Пусть $r_i$ — ранг страницы $i$, а страница $j$ ссылается на $d_j$ страниц. Тогда
$$r_i = \sum_{j \to i} \frac{r_j}{d_j}, \qquad \text{то есть} \qquad r = Mr$$где $M_{ij} = 1/d_j$, если $j$ ссылается на $i$, и ноль иначе. Каждый столбец матрицы $M$ в сумме даёт единицу — такие матрицы называют стохастическими по столбцам.
Равенство $r = Mr$ — это в точности $Mr = 1 \cdot r$: вектор рангов является собственным вектором матрицы $M$ с собственным значением, равным единице. Никакой отдельной теории тут нет, вся задача Google сводится к задаче этого урока.
Почему единица гарантированно входит в спектр стохастической матрицы? Потому что сумма элементов каждого столбца равна 1, то есть строка из единиц $u^T = (1,1,\dots,1)$ удовлетворяет $u^TM = u^T$. Транспонируя: $M^Tu = u$, значит $\lambda = 1$ — собственное значение матрицы $M^T$. А спектры $M$ и $M^T$ совпадают (свойство 5 из раздела о свойствах), значит единица есть и в спектре $M$.
Реальный веб-граф добавляет к этому две поправки: «телепортацию» (с вероятностью $1 - d$ пользователь переходит на случайную страницу) и обработку страниц без исходящих ссылок. Итоговая матрица
$$G = d\,M + \frac{1 - d}{N}\,J, \qquad d = 0{,}85,$$где $J$ — матрица из одних единиц, а $N$ — число страниц. Она тоже стохастическая, а вдобавок все её элементы строго положительны, что по теореме Перрона — Фробениуса гарантирует единственность вектора с $\lambda = 1$ и его положительность.
Считаем на игрушечном примере из четырёх страниц. Ссылки: страница 1 ссылается на 2 и 3; страница 2 — на 3; страница 3 — на 1; страница 4 — на 1 и 3. Матрица переходов:
$$M = \begin{pmatrix} 0 & 0 & 1 & 0{,}5 \\ 0{,}5 & 0 & 0 & 0 \\ 0{,}5 & 1 & 0 & 0{,}5 \\ 0 & 0 & 0 & 0 \end{pmatrix}$$Сумма каждого столбца равна единице. Строим $G$ при $d = 0{,}85$, $N = 4$ и запускаем степенной метод из равномерного начального распределения $(0{,}25;\,0{,}25;\,0{,}25;\,0{,}25)$. Вот что реально получается:
| итерация | $r_1$ | $r_2$ | $r_3$ | $r_4$ |
|---|---|---|---|---|
| 1 | 0,356250 | 0,143750 | 0,462500 | 0,037500 |
| 2 | 0,446562 | 0,188906 | 0,327031 | 0,037500 |
| 3 | 0,331414 | 0,227289 | 0,403797 | 0,037500 |
| 5 | 0,382799 | 0,206083 | 0,373618 | 0,037500 |
| 10 | 0,380872 | 0,198717 | 0,382910 | 0,037500 |
| 20 | 0,379739 | 0,198881 | 0,383880 | 0,037500 |
| 30 | 0,379734 | 0,198887 | 0,383879 | 0,037500 |
Собственный вектор матрицы $G$ с $\lambda = 1$, посчитанный через numpy.linalg.eig и нормированный на единичную сумму, равен $(0{,}379734;\ 0{,}198887;\ 0{,}383879;\ 0{,}037500)$ — ровно то, к чему сошлись итерации. Спектр $G$ целиком: $\{1;\ -0{,}425 \pm 0{,}425i;\ 0\}$, второе по модулю собственное значение равно $0{,}601$, и именно с такой скоростью убывает ошибка на каждой итерации.
Пара наблюдений по числам. Страница 4 получила ровно $0{,}0375 = (1 - d)/N$ — минимальный ранг, потому что на неё никто не ссылается, и весь её вес приходит только от телепортации. Страницы 1 и 3 идут почти вровень, хотя на страницу 3 ссылаются трое, а на страницу 1 — только двое: страница 3 получает вес от слабой страницы 2, а страница 1 — от сильной страницы 3. Это и есть суть PageRank: важен не счётчик ссылок, а вес ссылающихся.
И главное: степенной метод из предыдущего раздела — это буквально алгоритм PageRank. Умножили матрицу на вектор, нормировали, повторили. В работе 1998 года авторы сообщали, что на базе из 322 миллионов ссылок процесс сходился примерно за 52 итерации — при том что размер матрицы измерялся сотнями миллионов. Никакой характеристический многочлен здесь, разумеется, не строится.
Спектральная кластеризация
Ещё один сюжет, где спектр решает задачу, на первый взгляд к линейной алгебре не относящуюся. По набору объектов строят граф похожести, из него — матрицу Лапласа $L = D - W$ (где $W$ — матрица весов рёбер, $D$ — диагональная матрица сумм весов). Матрица $L$ симметрична, её собственные значения неотрицательны, а число нулевых собственных значений равно числу связных компонент графа. Собственные векторы, отвечающие нескольким наименьшим собственным значениям, дают новое представление объектов, в котором обычный $k$-means легко разделяет кластеры сложной формы — те самые «две вложенные окружности», на которых $k$-means в исходных координатах проваливается. Реализация: sklearn.cluster.SpectralClustering. Разбор самой техники выходит за рамки урока, но механизм тот же: собственные векторы специально построенной симметричной матрицы.
Гессиан: что спектр говорит о ландшафте функции потерь
При обучении модели минимизируют функцию потерь $L(w)$. В окрестности критической точки её поведение описывается матрицей вторых производных — гессианом. Гессиан симметричен, значит его собственные значения вещественны, и они читаются так.
-
Все $\lambda_i > 0$ — точка является локальным минимумом, во все стороны функция растёт. Ландшафт похож на чашу.
-
Все $\lambda_i < 0$ — локальный максимум.
-
Знаки разные — седловая точка: по одним направлениям вниз, по другим вверх. В глубоком обучении критические точки почти всегда именно седловые, а не локальные минимумы, и застревание оптимизатора связано в первую очередь с ними.
-
Есть нулевые $\lambda_i$ — плоские направления, вдоль которых функция потерь не меняется; параметры вдоль них не определяются данными (это ровно неидентифицируемость из урока 167, увиденная со стороны второй производной).
Но интереснее не знаки, а разброс собственных значений. Для квадратичной задачи с гессианом $H$ градиентный спуск с оптимальным постоянным шагом сходится со скоростью геометрической прогрессии со знаменателем
$$\frac{\kappa - 1}{\kappa + 1}, \qquad \kappa = \frac{\lambda_{\max}}{\lambda_{\min}}$$где $\kappa$ — число обусловленности из урока 166, записанное через спектр. Посчитаем на конкретных числах, прогнав градиентный спуск на функции $f(x, y) = \tfrac12(\lambda_{\min}x^2 + \lambda_{\max}y^2)$ из точки $(1, 1)$ до нормы $10^{-6}$:
| спектр гессиана | $\kappa$ | знаменатель $(\kappa-1)/(\kappa+1)$ | фактическое число итераций |
|---|---|---|---|
| $\{1,\ 10\}$ | 10 | 0,818182 | 71 |
| $\{1,\ 100\}$ | 100 | 0,980198 | 709 |
| $\{1,\ 1000\}$ | 1000 | 0,998002 | 7082 |
Рост числа итераций линеен по $\kappa$: увеличили разброс в 10 раз — получили примерно в 10 раз больше шагов. Причина видна геометрически: линии уровня из окружностей превращаются в вытянутые эллипсы, и градиент почти нигде не смотрит в сторону минимума, заставляя оптимизатор зигзагом спускаться по узкому оврагу.
Отсюда растёт половина инженерных практик обучения. Нормализация признаков выравнивает диагональ гессиана и уменьшает $\kappa$. Batch normalization и layer normalization делают то же самое внутри сети. Метод моментов (momentum) и Adam частично компенсируют вытянутость, накапливая направление движения. А методы второго порядка вроде L-BFGS явно используют информацию о кривизне. Всё это — борьба с разбросом спектра гессиана.
Считать полный гессиан большой сети невозможно (для модели с миллионом параметров это матрица $10^6 \times 10^6$), поэтому на практике оценивают только крайние собственные значения — тем самым степенным методом, которому нужно лишь умножение гессиана на вектор, а его умеют вычислять через двойное автоматическое дифференцирование (torch.autograd.functional.hvp).
Спектральная норма и устойчивость рекуррентных сетей
Рекуррентная сеть на каждом шаге применяет к скрытому состоянию одну и ту же матрицу весов: $h_{k+1} = W h_k + \dots$. За $T$ шагов состояние проходит через $W^T$, а при обратном распространении градиент проходит через степени $W^T$ в обратную сторону. По свойству степеней вдоль собственного направления это умножение на $\lambda^T$.
Отсюда классические болезни рекуррентных сетей, и обе — про модуль наибольшего собственного значения (его называют спектральным радиусом $\rho(W) = \max_i|\lambda_i|$):
-
$\rho(W) > 1$ — взрыв градиента. При $\rho = 1{,}1$ и длине последовательности 100 множитель равен $1{,}1^{100} \approx 13\,781$; при длине 200 — уже около $1{,}9 \cdot 10^8$. Обучение разваливается на первом же длинном примере.
-
$\rho(W) < 1$ — затухание градиента. При $\rho = 0{,}9$ и $T = 100$ множитель равен $0{,}9^{100} \approx 2{,}66 \cdot 10^{-5}$, при $T = 200$ — около $7 \cdot 10^{-10}$. Сигнал от далёких шагов до весов не доходит, и сеть не выучивает длинные зависимости.
Лекарства выстроены вокруг этого числа: обрезка градиента по норме (torch.nn.utils.clip_grad_norm_) прямо ограничивает эффект взрыва; ортогональная инициализация рекуррентной матрицы стартует с $\rho = 1$; архитектуры LSTM и GRU обходят проблему, заменяя умножение на матрицу управляемым сложением; спектральная нормализация (torch.nn.utils.parametrizations.spectral_norm) делит матрицу весов на её спектральную норму и применяется в обучении GAN. Внутри спектральной нормализации, кстати, работает всё тот же степенной метод — одна итерация на каждый шаг обучения.
Одно терминологическое уточнение. Спектральная норма матрицы — это её наибольшее сингулярное число, и для произвольной матрицы она не совпадает со спектральным радиусом. Совпадение гарантировано для симметричных матриц: там спектральная норма равна $\max_i|\lambda_i|$. Сингулярные числа и SVD — отдельная большая тема, до которой курс дойдёт позже; здесь достаточно понимать, что долгосрочное поведение степеней $W^k$ управляется именно спектральным радиусом.
Инструменты
Короткая шпаргалка по функциям, которые закрывают всю практику.
import numpy as np, torch
A = np.array([[4., 1.], [2., 3.]])
vals, vecs = np.linalg.eig(A) # общий случай; в свежих версиях numpy
# массив комплексный даже при вещественном
# спектре: [5.+0.j 2.+0.j]
print(np.linalg.eigvals(A)) # только значения, без векторов — быстрее
S = np.array([[14., 10.], [10., 14.]])
w, V = np.linalg.eigh(S) # для симметричных: вещественный результат,
# значения по возрастанию: [ 4. 24.]
T = torch.tensor([[4., 1.], [2., 3.]])
print(torch.linalg.eigvals(T)) # комплексный тензор: 5+0j и 2+0j
print(torch.linalg.eigvalsh(torch.tensor(S))) # симметричный вариант
Три правила, которые стоит запомнить.
-
Для симметричной матрицы всегда бери
eigh/eigvalsh, а неeig. Быстрее, устойчивее, возвращает вещественные числа и заодно упорядочивает их. -
Собственные векторы возвращаются столбцами матрицы
vecs: вектор, отвечающийvals[i], — этоvecs[:, i], а неvecs[i]. Это самая частая ошибка при работе сnumpy.linalg.eig. -
Знак и масштаб собственного вектора не определены. Библиотеки возвращают вектор единичной длины, но знак может отличаться от запуска к запуску и от версии к версии. Поэтому сравнивать компоненты PCA «по значениям» нельзя — сравнивают либо по модулю, либо по проекциям данных.
Практика: 30 заданий
Базовые задания (1–10)
Задание 1: Найди собственные значения и собственные векторы матрицы
$$A = \begin{pmatrix} 5 & 2 \\ 2 & 2 \end{pmatrix}$$Задание 2: Найди собственные значения и собственные векторы матрицы
$$A = \begin{pmatrix} 1 & 2 \\ 3 & 2 \end{pmatrix}$$Задание 3: Найди собственные значения и собственные векторы диагональной матрицы
$$D = \begin{pmatrix} 7 & 0 \\ 0 & -3 \end{pmatrix}$$Задание 4: Найди собственные значения и собственные векторы треугольной матрицы
$$A = \begin{pmatrix} 3 & 7 \\ 0 & -2 \end{pmatrix}$$Задание 5: Дана матрица $A = \begin{pmatrix} 4 & -2 \\ 1 & 1 \end{pmatrix}$. Проверь, являются ли её собственными векторами $v = (2, 1)^T$ и $u = (1, 0)^T$. Для собственного найди отвечающее ему собственное значение.
Задание 6: Есть ли у матрицы $A = \begin{pmatrix} 1 & -2 \\ 1 & -1 \end{pmatrix}$ вещественные собственные значения?
Задание 7: Найди собственные значения матрицы
$$A = \begin{pmatrix} 2 & 3 & 1 \\ 0 & -1 & 4 \\ 0 & 0 & 5 \end{pmatrix}$$и собственный вектор, отвечающий наибольшему из них.
Задание 8: Известно, что собственные значения матрицы $M$ порядка 3 равны $2$, $-1$ и $3$. Найди собственные значения матриц $M^2$, $M^{-1}$, $M + 4I$, $3M$ и $M^T$.
Задание 9: Собственные значения матрицы $A$ порядка 4 равны $1$, $2$, $2$ и $-3$ (с учётом кратности). Найди след и определитель матрицы $A$. Обратима ли она?
Задание 10: Матрица $P = \dfrac{1}{2}\begin{pmatrix} 1 & 1 \\ 1 & 1 \end{pmatrix}$ задаёт проекцию плоскости на прямую $y = x$. Не считая характеристический многочлен, угадай её собственные векторы и собственные значения из геометрии, а потом проверь ответ подстановкой.
Средние задания (11–20)
Задание 11: Найди все собственные значения и собственные векторы матрицы
$$A = \begin{pmatrix} 1 & -2 & 0 \\ 4 & 3 & 4 \\ 4 & 2 & 5 \end{pmatrix}$$Задание 12: Найди все собственные значения и собственные векторы матрицы
$$A = \begin{pmatrix} 2 & -2 & 2 \\ 3 & 2 & -3 \\ 3 & -2 & 1 \end{pmatrix}$$Задание 13: Для матрицы
$$A = \begin{pmatrix} -2 & -3 & 3 \\ 3 & 4 & -3 \\ -3 & -3 & 4 \end{pmatrix}$$найди собственные значения, базисы собственных подпространств и укажи для каждого значения алгебраическую и геометрическую кратности.
Задание 14: Для матрицы
$$A = \begin{pmatrix} 1 & 1 & -1 \\ -2 & 2 & 1 \\ -2 & 1 & 2 \end{pmatrix}$$найди собственные значения, обе кратности каждого и определи, является ли матрица дефектной.
Задание 15: При каком значении параметра $a$ матрица $A = \begin{pmatrix} a & 2 \\ 3 & 1 \end{pmatrix}$ имеет собственное значение $4$? Найди при этом $a$ весь спектр и собственные векторы.
Задание 16: При каком значении параметра $a$ матрица $A = \begin{pmatrix} 3 & a \\ 1 & 5 \end{pmatrix}$ имеет кратное собственное значение? Найди это значение, обе его кратности и определи, дефектна ли матрица.
Задание 17: Матрица $R = \dfrac{1}{5}\begin{pmatrix} -3 & 4 \\ 4 & 3 \end{pmatrix}$ задаёт отражение плоскости относительно прямой $y = 2x$. Угадай её собственные векторы и значения из геометрии, потом проверь подстановкой.
Задание 18: Для матрицы $A = \begin{pmatrix} 2 & 4 \\ 1 & -1 \end{pmatrix}$ найди собственные значения и собственные векторы, затем то же самое для $A^T$. Сравни результаты.
Задание 19: Сравни собственные значения и обе кратности у матриц
$$J = \begin{pmatrix} 2 & 1 & 0 \\ 0 & 2 & 1 \\ 0 & 0 & 2 \end{pmatrix} \qquad \text{и} \qquad B = \begin{pmatrix} 2 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & 2 \end{pmatrix}$$Задание 20: Выполни пять итераций степенного метода для матрицы $A = \begin{pmatrix} 5 & 2 \\ 3 & 4 \end{pmatrix}$, стартуя с $x_0 = (1, 0)^T$ и нормируя делением на первую координату. Сравни полученную оценку с точным наибольшим собственным значением.
Продвинутые задания (21–30)
Задание 21: Матрица переходов марковской цепи с двумя состояниями равна
$$P = \begin{pmatrix} 0{,}8 & 0{,}3 \\ 0{,}2 & 0{,}7 \end{pmatrix}$$(столбцы в сумме дают единицу). Найди её спектр и стационарное распределение — собственный вектор с $\lambda = 1$, нормированный так, чтобы сумма координат равнялась единице. Проверь ответ четырьмя шагами степенного метода из начального распределения $(1;\ 0)^T$.
Задание 22: При каких значениях параметра $a$ матрица
$$A(a) = \begin{pmatrix} a & 1 & 1 \\ 1 & a & 1 \\ 1 & 1 & a \end{pmatrix}$$вырождена? Для каждого такого $a$ выпиши весь спектр с алгебраическими и геометрическими кратностями.
Задание 23: Для матрицы
$$A = \begin{pmatrix} 2 & 1 & 3 & 4 \\ 0 & 2 & 5 & 6 \\ 0 & 0 & -1 & 7 \\ 0 & 0 & 0 & 3 \end{pmatrix}$$найди спектр, обе кратности собственного значения $\lambda = 2$ и базис подпространства $E_2$. Дефектна ли матрица?
Задание 24: Пусть $v$ — собственный вектор матрицы $A$ с собственным значением $\lambda$, а $u$ — собственный вектор той же матрицы с собственным значением $\mu$, причём $\lambda \ne \mu$. Докажи, что сумма $v + u$ собственным вектором матрицы $A$ не является.
Задание 25: Пусть $Av = \lambda v$. Докажи, что $(A^2 - 3A + 2I)v = (\lambda^2 - 3\lambda + 2)v$. Затем: известно, что спектр матрицы $A$ порядка 3 равен $\{1, 2, 4\}$; найди спектр матрицы $B = A^2 - 3A + 2I$ и $\det B$. Проверь вывод на матрице
$$A = \begin{pmatrix} 3 & 3 & -2 \\ -4 & -2 & 4 \\ -5 & -3 & 6 \end{pmatrix}$$Задание 26: При каких значениях параметра $a$ матрица
$$A(a) = \begin{pmatrix} 4 & 1 & 0 \\ 0 & 4 & a \\ 0 & 0 & 4 \end{pmatrix}$$дефектна? Найди геометрическую кратность собственного значения $\lambda = 4$ как функцию параметра.
Задание 27: Дана выборка из пяти точек на плоскости:
$$(1;\,1),\quad (3;\,5),\quad (5;\,8),\quad (7;\,9),\quad (9;\,7)$$Построй ковариационную матрицу (делитель $m - 1$), найди её собственные значения и собственные векторы, укажи главные компоненты и доли объяснённой дисперсии.
Задание 28: Для матрицы
$$N = \begin{pmatrix} 0 & 2 & 3 \\ 0 & 0 & 4 \\ 0 & 0 & 0 \end{pmatrix}$$найди спектр, обе кратности, базис собственного подпространства. Вычисли $N^2$ и $N^3$ и объясни связь результата со спектром.
Задание 29: При каких значениях параметра $a$ матрица
$$A(a) = \begin{pmatrix} a & 1 & 0 \\ 1 & a & 0 \\ 0 & 0 & 2 \end{pmatrix}$$имеет кратное собственное значение? Для каждого такого $a$ укажи обе кратности и определи, дефектна ли матрица.
Задание 30: Характеристический многочлен матрицы $A$ порядка 3 равен
$$p_A(\lambda) = -\lambda^3 + 7\lambda^2 - 14\lambda + 8$$Найди спектр, след и определитель матрицы $A$, спектр матрицы $A^{-1}$ и величину $\det(A + 2I)$.
Частые ошибки
Ошибка 1. Считают нулевой вектор собственным.
Как выглядит: решая систему $(A - \lambda I)x = \mathbf{0}$, записывают в ответ «$v = (0,0,0)$» — обычно в ситуации, когда система оказалась невырожденной и других решений нет.
Почему возникает: нулевой вектор формально удовлетворяет равенству $Av = \lambda v$, и его хочется засчитать.
Как правильно: нулевой вектор исключён из определения намеренно — иначе любое число было бы собственным значением любой матрицы. Если система $(A - \lambda I)x = \mathbf{0}$ дала только тривиальное решение, это означает, что взятое $\lambda$ не является собственным значением, и надо перепроверить корни характеристического уравнения. Матрица $A - \lambda I$ при правильном $\lambda$ обязана быть вырожденной.
Ошибка 2. Путают «нулевой вектор запрещён» и «нулевое собственное значение запрещено».
Как выглядит: найдя корень $\lambda = 0$, отбрасывают его со словами «нулевое собственное значение не бывает».
Почему возникает: два разных условия сливаются в памяти в одно.
Как правильно: $\lambda = 0$ — полноценное собственное значение. Оно означает ровно то, что $\det A = 0$ и ядро матрицы непусто, а отвечающие ему собственные векторы — это ненулевые элементы $\ker A$. Запрещён только нулевой вектор.
Ошибка 3. Считают, что кратность корня равна числу собственных векторов.
Как выглядит: видят $(\lambda - 2)^2$ в разложении и сразу пишут «для $\lambda = 2$ будет два независимых собственных вектора», не считая ранг.
Почему возникает: в большинстве учебных примеров кратности совпадают, и это закрепляется как правило.
Как правильно: число независимых векторов — это геометрическая кратность $m_g(\lambda) = n - \operatorname{rank}(A - \lambda I)$, и она может быть строго меньше алгебраической. В разборе примеров у матриц $C$ и $D$ был один и тот же множитель $(\lambda - 2)^2$, но $m_g$ равнялась 2 и 1 соответственно. Ранг надо считать явно всякий раз, когда корень кратный.
Ошибка 4. Забывают, что собственный вектор определён с точностью до множителя, и «не сходятся» с ответом.
Как выглядит: получили $(2, 1)$, в ответе стоит $(-4, -2)$ или $(1;\ 0{,}5)$ — решают, что ошиблись.
Почему возникает: привычка сверять ответ буквально.
Как правильно: если $Av = \lambda v$, то и $A(cv) = \lambda(cv)$ при любом $c \ne 0$. Все векторы одной прямой равноправны. Проверять надо не совпадение координат, а пропорциональность: разделить один вектор на другой покоординатно и убедиться, что получилось одно и то же число. То же касается вывода numpy.linalg.eig, который возвращает нормированные векторы с произвольным знаком.
Ошибка 5. Ищут собственные векторы, подставляя $\lambda$ в исходную матрицу вместо $A - \lambda I$.
Как выглядит: решают систему $Ax = \mathbf{0}$ вместо $(A - \lambda I)x = \mathbf{0}$ и получают либо нули, либо ядро исходной матрицы.
Почему возникает: спешка: шаг «вычесть $\lambda$ из диагонали» пропускается.
Как правильно: система для собственного вектора — всегда $(A - \lambda I)x = \mathbf{0}$. Ядро самой матрицы $A$ — это частный случай, отвечающий $\lambda = 0$. Полезная контрольная точка: после подстановки правильного $\lambda$ в матрице $A - \lambda I$ при приведении к ступенчатому виду обязана появиться хотя бы одна нулевая строка.
Ошибка 6. Проверяют найденный вектор подстановкой в $A - \lambda I$, а не в $A$.
Как выглядит: «подставил в матрицу, получил нули — значит, всё верно», хотя ошибка была допущена при составлении $A - \lambda I$.
Почему возникает: последняя матрица, с которой работали, — именно $A - \lambda I$, её и берут.
Как правильно: проверка должна замыкать всю цепочку: посчитать $Av$ по исходной матрице и сравнить с $\lambda v$. Это ловит и ошибки в характеристическом многочлене, и ошибки при вычитании $\lambda$ с диагонали.
Ошибка 7. Знак в характеристическом многочлене.
Как выглядит: для матрицы $3\times3$ пишут $p_A(\lambda) = \lambda^3 - \dots$ вместо $-\lambda^3 + \dots$ и затем неправильно применяют формулы Виета, получая след и определитель с обратными знаками.
Почему возникает: определитель $\det(A - \lambda I)$ при нечётном $n$ имеет старший коэффициент $-1$, а привычка — работать с приведёнными многочленами.
Как правильно: находить корни удобно, домножив уравнение на $-1$: корни от этого не меняются. Но при чтении коэффициентов как инвариантов нужно помнить про множитель $(-1)^n$. Самая надёжная защита — не читать коэффициенты, а проверять ответ напрямую: сумма корней равна следу, произведение — определителю. Эти два равенства верны при любом соглашении о знаке.
Ошибка 8. Считают, что вещественные собственные значения есть всегда.
Как выглядит: получив $\lambda^2 + 4 = 0$, начинают искать ошибку в вычислениях или пишут $\lambda = \pm 2$.
Почему возникает: все учебные примеры до этого момента давали вещественные корни.
Как правильно: характеристический многочлен вещественной матрицы может не иметь вещественных корней — типичный пример это поворот. Ответ «вещественных собственных значений нет» полноценен. Гарантии есть только в двух случаях: у матрицы нечётного порядка есть хотя бы одно вещественное значение, а у симметричной матрицы вещественны все.
Ошибка 9. Полагают, что одинаковый характеристический многочлен означает одинаковые матрицы (или подобные).
Как выглядит: «у обеих матриц многочлен $(\lambda - 2)^2(\lambda - 5)$, значит они устроены одинаково».
Почему возникает: характеристический многочлен — сильный инвариант, и кажется исчерпывающим.
Как правильно: многочлен фиксирует только алгебраические кратности. Матрицы $C$ и $D$ из разбора примеров имеют одинаковый многочлен, но у одной $m_g(2) = 2$, а у другой $m_g(2) = 1$; подобными они быть не могут, потому что подобие сохраняет и ранги матриц $A - \lambda I$. Полное описание требует и многочлена, и всех геометрических кратностей.
Ошибка 10. В матрице $A^{-1}$ или $A^k$ пересчитывают собственные векторы заново.
Как выглядит: тратят полстраницы на поиск собственных векторов $A^2$, хотя они те же, что у $A$.
Почему возникает: свойства спектра производных матриц воспринимаются как теория, а не как рабочий инструмент.
Как правильно: $A^k$, $A^{-1}$, $A + cI$, $cA$ и любой многочлен от $A$ имеют те же собственные векторы, что и $A$; меняются только собственные значения по известным формулам. Пересчитывать надо только для $A^T$ — там векторы действительно другие, хотя значения те же.
Ошибка 11. При работе с numpy.linalg.eig берут строки вместо столбцов.
Как выглядит: vals, vecs = np.linalg.eig(A), а затем vecs[0] в качестве первого собственного вектора — и проверка $Av = \lambda v$ не сходится.
Почему возникает: массив печатается построчно, и первая строка выглядит как «первый вектор».
Как правильно: собственные векторы лежат в столбцах: вектору vals[i] соответствует vecs[:, i]. Проверка занимает одну строку: np.allclose(A @ vecs[:, i], vals[i] * vecs[:, i]). Для симметричных матриц заодно стоит перейти на eigh, где ещё и порядок значений предсказуем (по возрастанию).
Главное запомнить
-
Определение: ненулевой вектор $v$ — собственный для $A$, если $Av = \lambda v$. Геометрически это направление, которое преобразование не сворачивает, а только растягивает, сжимает или отражает.
-
Нулевой вектор собственным не бывает никогда; нулевое собственное значение бывает и означает, что $\det A = 0$, а соответствующие векторы лежат в $\ker A$.
-
Равенство $Av = \lambda v$ равносильно однородной системе $(A - \lambda I)v = \mathbf{0}$. Нетривиальное решение существует тогда и только тогда, когда $\det(A - \lambda I) = 0$ — это характеристическое уравнение.
-
Характеристический многочлен $p_A(\lambda) = \det(A - \lambda I)$ имеет степень $n$. Для $2\times2$: $p_A(\lambda) = \lambda^2 - (\operatorname{tr} A)\lambda + \det A$.
-
Сумма всех собственных значений (с кратностями) равна следу, произведение — определителю. Это лучшая бесплатная проверка ответа.
-
Подобные матрицы имеют одинаковый характеристический многочлен, поэтому собственные значения принадлежат оператору, а не его матрице в конкретном базисе.
-
Алгоритм: $\det(A - \lambda I) = 0$ → корни → для каждого корня решить $(A - \lambda I)x = \mathbf{0}$ методом Гаусса → выписать ФСР → проверить подстановкой в $A$.
-
Собственное подпространство $E_\lambda = \ker(A - \lambda I)$ — это подпространство, его базис — ФСР соответствующей однородной системы, а его размерность равна $n - \operatorname{rank}(A - \lambda I)$.
-
Две кратности: алгебраическая $m_a$ — кратность корня многочлена; геометрическая $m_g = \dim E_\lambda$ — число независимых собственных векторов. Всегда $1 \le m_g \le m_a$.
-
Матрица дефектна, если для какого-то $\lambda$ выполнено $m_g < m_a$. У простого корня расхождения не бывает никогда: $m_a = 1$ влечёт $m_g = 1$.
-
Собственные векторы, отвечающие различным собственным значениям, линейно независимы. Если у матрицы порядка $n$ ровно $n$ различных вещественных собственных значений, соответствующие векторы образуют базис.
-
У треугольной (и диагональной) матрицы собственные значения стоят на главной диагонали. Геометрические кратности при этом всё равно надо считать через ранг.
-
Спектр производных матриц: у $A^k$ значения $\lambda^k$, у $A^{-1}$ значения $1/\lambda$, у $A + cI$ значения $\lambda + c$, у $cA$ значения $c\lambda$, у $q(A)$ значения $q(\lambda)$ — и во всех этих случаях собственные векторы те же. У $A^T$ значения те же, а векторы другие.
-
Вещественных собственных значений может не быть вовсе (поворот плоскости). У матрицы нечётного порядка хотя бы одно вещественное значение есть всегда; у симметричной матрицы вещественны все, и дефектной она не бывает.
-
Степенной метод: умножай матрицу на вектор и нормируй; при наличии доминирующего собственного значения процесс сходится к нему со скоростью $|\lambda_2/\lambda_1|$ за шаг.
-
В ML: главные компоненты PCA — собственные векторы ковариационной матрицы, объяснённая дисперсия — её собственные значения; PageRank — собственный вектор стохастической матрицы с $\lambda = 1$; знаки собственных чисел гессиана различают минимум, максимум и седло, а их разброс определяет скорость градиентного спуска; спектральный радиус весовой матрицы отвечает за взрыв и затухание градиентов.
Связь с другими темами курса
Что нужно было знать до этого урока
Урок собран почти целиком из уже пройденного. Из уроков 158–160 взята техника вычисления определителей — без неё не раскрыть $\det(A - \lambda I)$; оттуда же свойство определителя треугольной матрицы, дающее спектр по диагонали, и мультипликативность определителя, на которой держится доказательство инвариантности характеристического многочлена. Из урока 161 — критерий обратимости $\det A \ne 0$, превратившийся здесь в «ноль не входит в спектр». Из урока 162 — ранг, которым считается геометрическая кратность. Из уроков 163–164 — метод Гаусса, базисные и свободные переменные: именно ими решается система $(A - \lambda I)x = \mathbf{0}$ на каждом шаге алгоритма. Из урока 166 — число обусловленности, которое в этом уроке переписалось через отношение собственных значений. Из урока 167 — критерий существования нетривиального решения однородной системы, ядро матрицы и ФСР: собственное подпространство это ядро, а его базис это ФСР. Из уроков 169–170 — линейная независимость, базис, размерность, дополнение до базиса и матрица перехода. Из урока 171 — матрица оператора, подобие $A' = C^{-1}AC$ и инварианты (след, определитель), а также геометрические примеры операторов: поворот, отражение, проекция, растяжение, на которых мы проверяли ответы «на глаз».
Что изучить дальше
Урок 173 «Диагонализация матриц» отвечает на вопрос, который этот урок только поставил: что делать, когда собственных векторов хватает на базис, и что делать, когда не хватает. Там появится разложение матрицы через её собственные векторы, критерий диагонализируемости и быстрый способ вычислять степени матрицы. Урок 174 «Квадратичные формы» использует собственные значения симметричной матрицы для классификации форм и определения знакоопределённости — тот самый инструмент, который в оптимизации отличает минимум от седла. Урок 175 «Евклидово пространство» даст ортогональность, ортонормированный базис и процесс Грама — Шмидта; там же будет доказано, что у симметричной матрицы собственные векторы разных собственных значений взаимно перпендикулярны, и появится спектральная теорема — усиленная версия того факта, который в этом уроке принят без доказательства. Дальше по курсу идут сингулярное разложение (SVD) и жорданова форма — обобщения на случаи, где сегодняшней техники не хватает.
Где это нужно в жизни
💻 Программирование. Функции numpy.linalg.eig, numpy.linalg.eigh, numpy.linalg.eigvals, scipy.sparse.linalg.eigsh (для больших разреженных матриц), torch.linalg.eigvals — прямая реализация материала урока. В компьютерной графике собственный вектор матрицы поворота задаёт ось вращения. В физических движках собственные значения тензора инерции определяют главные оси тела. Забавная деталь: numpy.roots ищет корни многочлена, вычисляя собственные значения его сопровождающей матрицы, — то есть задача о корнях и задача о спектре взаимно сводятся друг к другу.
🤖 ML/AI. PCA и вся линейка методов снижения размерности, спектральная кластеризация, PageRank и его наследники в графовых алгоритмах, анализ гессиана функции потерь, спектральная нормализация в GAN, диагностика взрыва и затухания градиентов в рекуррентных сетях. Отдельная большая область — спектральный анализ графов, на котором стоят графовые нейронные сети.
📊 Data Science. Ковариационная и корреляционная матрицы, их спектр и «истинная размерность» данных; факторный анализ; латентный семантический анализ текстов; выявление мультиколлинеарности через малые собственные значения матрицы $X^TX$; методы обнаружения аномалий, использующие расстояние в пространстве главных компонент.
🔬 Наука. Собственные частоты и формы колебаний конструкций (мост, крыло, здание), главные оси инерции твёрдого тела, тензор напряжений и главные напряжения в механике сплошных сред. В квантовой механике уравнение Шрёдингера $\hat{H}\psi = E\psi$ — буквально задача на собственные значения, где $E$ это уровни энергии. В химии метод Хюккеля вычисляет энергии молекулярных орбиталей как собственные значения матрицы связности молекулы.
💰 Финансы. Анализ главных компонент кривой доходности: первые три компоненты традиционно интерпретируются как параллельный сдвиг, наклон и изгиб кривой, и вместе они обычно объясняют более 95% её движений. В риск-менеджменте спектр ковариационной матрицы доходностей отделяет структурные факторы от шума. В моделях межотраслевого баланса Леонтьева условие устойчивости формулируется через собственные значения матрицы прямых затрат.
Интересные факты
-
Слово «собственный» в этом контексте пришло из немецкого: Давид Гильберт в работах по интегральным уравнениям начиная с 1904 года употреблял термины Eigenwert и Eigenfunktion. Русский язык перевёл корень («собственное значение»), а английский не стал: там прижилось гибридное eigenvalue, где немецкий корень соседствует с английским словом. Это редкий случай, когда в англоязычной математической терминологии сохранился непереведённый иностранный корень.
-
Историческое название характеристического уравнения — вековое уравнение (от латинского saeculum, «столетие»). Оно родилось в небесной механике XVIII века у Лагранжа и Лапласа, где корни этого уравнения задавали частоты вековых, то есть очень медленных, изменений планетных орбит. Термин secular equation до сих пор встречается в физической литературе, а вопрос «вещественны ли корни» тогда означал «устойчива ли Солнечная система».
-
Теорема Эйлера о вращении (1775) — прямое следствие того, что у вещественной матрицы нечётного порядка есть вещественное собственное значение. Любой поворот трёхмерного пространства оставляет неподвижной целую прямую — ось вращения, — и эта прямая есть собственное подпространство с $\lambda = 1$. На плоскости такого не бывает: поворот на 90 градусов не оставляет на месте ни одного направления.
-
В работе 1998 года, где Брин и Пейдж описали PageRank, сообщается, что на базе из 322 миллионов ссылок степенной метод сходился примерно за 52 итерации. Матрица размером в сотни миллионов строк, ноль вычислений определителя — просто повторное умножение матрицы на вектор. Это один из самых наглядных примеров того, как задача из линейной алгебры превращается в промышленный алгоритм.
-
Связь между корнями многочленов и собственными значениями работает в обе стороны. По теореме Абеля — Руффини для многочленов степени 5 и выше нет формулы корней через радикалы, значит нет и общей формулы для собственных значений матриц порядка 5 и выше — их можно находить только численно. Но есть и обратный ход: у любого многочлена есть сопровождающая матрица, для которой он является характеристическим. Именно этим пользуется
numpy.roots, вычисляя корни многочлена черезnumpy.linalg.eigvalsсопровождающей матрицы — то есть решая задачу о корнях как задачу о спектре.
Лайфхаки и полезные трюки
-
Для матрицы $2\times2$ не раскрывай определитель. Считай след и определитель и сразу пиши $\lambda^2 - (\operatorname{tr} A)\lambda + \det A$. Это быстрее, короче и не даёт ошибиться в знаках. Например, для $\begin{pmatrix} 5 & 2 \\ 2 & 2 \end{pmatrix}$: след 7, определитель 6, многочлен $\lambda^2 - 7\lambda + 6$, корни 6 и 1 — за десять секунд без единой скобки.
-
Всегда сверяй ответ по следу и определителю. Сумма найденных корней должна равняться следу, произведение — определителю. Эта проверка занимает пять секунд и ловит подавляющее большинство арифметических ошибок в характеристическом многочлене. Если сошлось и то, и другое, корни почти наверняка верны.
-
Смотри на матрицу до того, как считать. Треугольная — читай диагональ. Симметричная — жди вещественных корней и отсутствия дефекта. Есть пропорциональные строки — жди $\lambda = 0$ в спектре. Сумма всех строк равна нулевой строке — тоже $\lambda = 0$. Все строки в сумме дают одно и то же число $s$ — тогда вектор из единиц собственный с $\lambda = s$ (проверь: каждая координата $A\mathbf{1}$ равна сумме своей строки).
-
Ищи целые корни среди делителей свободного члена. Для $3\times3$ свободный член характеристического многочлена равен $\det A$, поэтому целые корни надо искать среди делителей определителя. В учебных задачах определитель обычно маленький, и перебор занимает полминуты. Подобрал один корень — раздели многочлен и добей квадратное уравнение.
-
Не раскрывай определитель $3\times3$ с $\lambda$ в лоб. Быстрее собрать многочлен из трёх готовых чисел: $-\lambda^3 + (\operatorname{tr} A)\lambda^2 - (\text{сумма главных миноров } 2\times2)\lambda + \det A$. Три несложных вычисления вместо одного громоздкого, и каждое из них проверяемо отдельно.
-
Появление нулевой строки — встроенная контрольная точка. При правильном $\lambda$ матрица $A - \lambda I$ обязана быть вырожденной, и при приведении к ступенчатому виду хотя бы одна строка обязана обнулиться. Не обнулилась — ошибка либо в корне, либо в арифметике; ищи её прямо сейчас, не решая систему дальше.
-
Уходи от дробей выбором свободной переменной. Если базисные переменные выражаются через свободную с дробными коэффициентами, положи свободную переменную равной общему знаменателю. В примере с треугольной матрицей это дало $(-14, 4, 3)$ вместо $(-14/3,\ 4/3,\ 1)$ — тот же вектор, но считать проверку в целых числах вдвое приятнее.
-
Для геометрических операторов угадывай ответ раньше, чем считаешь. У проекции на прямую собственные значения 1 (вдоль прямой) и 0 (перпендикуляр). У отражения — 1 (ось) и $-1$ (перпендикуляр). У растяжения по осям — коэффициенты растяжения с базисными ортами. У поворота на угол, отличный от 0 и 180 градусов, вещественных значений нет. Угадать и проверить подстановкой быстрее, чем считать характеристический многочлен, и заодно страхует от арифметических ошибок.
-
Задачи с параметром решай через нужное условие, а не через полный спектр. Если спрашивают «при каком $a$ число $\mu$ является собственным значением», не выписывай весь многочлен — реши уравнение $\det(A - \mu I) = 0$ относительно $a$. Если спрашивают про кратный корень, приравняй к нулю дискриминант. И обязательно подставь найденное значение обратно, а заодно проверь пару значений по обе стороны от него: это ловит и потерянные корни, и лишние.
-
В коде используй
eighдля симметричных матриц и не забывай про столбцы.numpy.linalg.eighбыстрее, устойчивее, возвращает вещественные числа по возрастанию. Собственные векторы всегда лежат в столбцах:vecs[:, i], а неvecs[i]. И проверяй результат так же, как на бумаге:np.allclose(A @ v, lam * v)— эта строчка ловит и опечатки в индексах, и неверное понимание формата вывода.
Собственные векторы — это точка, с которой линейная алгебра перестаёт быть техникой решения систем и становится языком описания. До этого урока матрица была таблицей чисел и правилом счёта; теперь у неё есть внутренняя структура — набор выделенных направлений и чисел, которые эту структуру задают, не зависят от системы координат и предсказывают поведение матрицы при возведении в степень, обращении и сдвиге. Именно поэтому спектр всплывает везде, где линейная модель встречается с данными: от главных компонент до ландшафта функции потерь. А следующий шаг напрашивается сам собой: мы уже видели, что у одних матриц собственных векторов хватает на целый базис, а у дефектных нет. Что из этого следует и как этим пользоваться — тема урока 173.
Понял тему? Закрепи в боте! 🚀
Попрактикуйся на задачах и получи персональные рекомендации от AI
💪 Начать тренировку