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

Столбцы — это образы базиса

В двумерной плоскости всё раскладывается по двум опорным векторам:

e1=(10),e2=(01),x=x1e1+x2e2.e_1=\begin{pmatrix}1\\0\end{pmatrix},\qquad e_2=\begin{pmatrix}0\\1\end{pmatrix},\qquad x=x_1e_1+x_2e_2.

Пусть TT — линейное преобразование: оно уважает сложение и растяжение. Тогда

T(x)=x1T(e1)+x2T(e2).T(x)=x_1\,T(e_1)+x_2\,T(e_2).

Значит, TT полностью задано двумя векторами T(e1)T(e_1) и T(e2)T(e_2). Запишем их столбцами — получим матрицу AA, и формула превращается в T(x)=AxT(x)=Ax.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Слева базис e1, e2 и вектор x равный их сумме внутри единичного квадрата. Справа после преобразования: столбец Ae1 равен (2,0), столбец Ae2 равен (1,1), их сумма Ax равна (3,1), а квадратная сетка превратилась в косую
Рис. 36.1. Матрица задана образами двух стрелок

Красная и синяя стрелки — образы базиса, то есть столбцы AA. Зелёный вектор x=e1+e2x=e_1+e_2 переходит в сумму столбцов Ax=(3,1)Ax=(3,1). Сетка показывает действие сразу на все точки, а не на три примера.

Что делает матрица с квадратом

Матрица

A=(abcd)A=\begin{pmatrix}a&b\\c&d\end{pmatrix}

переводит e1e_1 в столбец (a,c)(a,c), а e2e_2 в столбец (b,d)(b,d). Единичный квадрат, натянутый на e1,e2e_1,e_2, превращается в параллелограмм, натянутый на эти столбцы. По одному этому параллелограмму видно всё: поворот, растяжение, сдвиг и потерю измерения, если столбцы легли на одну прямую.

Определитель — ориентированная площадь

Насколько параллелограмм больше исходного квадрата, говорит определитель:

detA=adbc.\det A=ad-bc.

Его модуль показывает, во сколько раз изменилась площадь, а знак говорит, сохранилась ли ориентация или пространство вывернулось наизнанку (отражение). Если detA=0\det A=0, столбцы зависимы, квадрат сплющивается в отрезок, и обратного преобразования нет.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Три панели. Слева матрица с определителем 2 растягивает квадрат в прямоугольник вдвое большей площади, обход вершин против часовой стрелки. В центре определитель минус 1 отражает квадрат, обход вершин по часовой стрелке. Справа определитель 0,02 сплющивает квадрат почти в тонкую линию
Рис. 36.2. Определитель как площадь и ориентация

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

Потрогай матрицу

Перетащите столбцы матрицы

Загружается живая иллюстрация…

Две стрелки — это столбцы AA. Тащите их концы и смотрите, как деформируется настоящая фотография и координатная сетка. Внизу в реальном времени меняются определитель, сингулярные числа и обусловленность. Попробуйте свести столбцы на одну прямую — определитель обратится в ноль, а фотография схлопнется в полосу.

Композиция и умножение матриц

Применим сначала BB, потом AA:

x  Bx  A(Bx)=(AB)x.x\ \longmapsto\ Bx\ \longmapsto\ A(Bx)=(AB)x.

Именно отсюда берётся правило «строка на столбец»: столбец jj произведения ABAB равен AA, применённой к столбцу jj матрицы BB. Умножение матриц — это не случайная выдумка, а запись композиции движений.

Порядок движений почти всегда важен:

ABBA.AB\ne BA.

Повернуть, а потом растянуть — не то же самое, что растянуть, а потом повернуть.

::::

Собственные направления

У некоторых векторов направление при преобразовании не меняется — они лишь растягиваются:

Av=λv.Av=\lambda v.

Число λ\lambda — собственное значение, вектор vv — собственный. На деформированной сетке такие стрелки остаются на своих прямых: их не поворачивает, только удлиняет (а при λ<0\lambda<0 ещё и разворачивает).

Русская линия здесь прямая. Академик А. Н. Крылов, корабельный инженер и математик, в 1931 году предложил способ вычислять собственные значения больших матриц через повторные умножения матрицы на вектор. Из этой идеи выросли крыловские подпространства — рабочий инструмент всей современной вычислительной линейной алгебры, от расчёта колебаний корпуса корабля до решения огромных систем внутри нейросетей.

Окружность, эллипс и число обусловленности

Определитель говорит про площадь, но молчит про форму. Чтобы увидеть форму, подадим на матрицу единичную окружность: она превратится в эллипс. Полуоси этого эллипса — сингулярные числа σ1σ2\sigma_1\ge\sigma_2, а их отношение

κ2(A)=σmaxσmin\kappa_2(A)=\frac{\sigma_{\max}}{\sigma_{\min}}

называют числом обусловленности. Оно показывает, насколько эллипс вытянут.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Пунктирная единичная окружность и её образ — вытянутый эллипс. Красная стрелка вдоль большой полуоси длиной сигма 1 равно 2,29, зелёная вдоль малой полуоси сигма 2 равно 0,87; число обусловленности каппа равно 2,62
Рис. 36.3. Окружность превращается в эллипс

Единичная окружность становится эллипсом. Большая полуось σ1\sigma_1 — самое сильное растяжение, малая σ2\sigma_2 — самое сильное сжатие; их отношение κ\kappa измеряет вытянутость.

Число обусловленности важнее определителя для устойчивости. У матриц diag(100;0,01)\operatorname{diag}(100;\,0{,}01) и единичной один и тот же определитель 11, но первая превращает круг в иглу с κ=10000\kappa=10\,000, а вторая ничего не искажает и имеет κ=1\kappa=1. При обращении самое сжатое направление усиливается в 1/σmin1/\sigma_{\min} раз — вместе с шумом. «Обратимо» и «устойчиво обратимо» — разные свойства.

Аффинные преобразования и однородные координаты

Одни матрицы не умеют сдвигать начало координат: A0=0A\cdot 0=0 всегда. Чтобы добавить перенос, берут аффинное преобразование y=Ax+ty=Ax+t. При t0t\ne0 оно уже не линейно (ноль уходит в tt), но его снова можно записать одной матрицей, поднявшись в однородные координаты:

(y1)=(At01)(x1).\begin{pmatrix}y\\1\end{pmatrix}= \begin{pmatrix}A&t\\0&1\end{pmatrix} \begin{pmatrix}x\\1\end{pmatrix}.

Теперь цепочка «повернуть, масштабировать, сдвинуть» — это одно произведение матриц. Поворот вокруг центра картинки собирают из трёх шагов: перенести центр в ноль, повернуть, вернуть обратно.

Взгляд Клейна ровно про эту главу: геометрия есть набор допустимых движений, а матрицы служат их языком. Жёсткие движения сохраняют длины, аффинные сохраняют прямые и параллельность, проективные — ещё меньше; каждой геометрии отвечает свой класс матриц.

Смена базиса

Иногда объект удобнее описать в других координатах. Если столбцы матрицы PP — это новый базис, то координаты вектора в нём равны z=P1xz=P^{-1}x, а тот же оператор в новом языке записывается как

P1AP.P^{-1}AP.

Сам оператор не изменился — изменился язык координат. В базисе из собственных векторов матрица становится диагональной, и её степень AnA^n считается мгновенно. Этот же приём — записать данные в базисе главных направлений — лежит в основе сжатия из автокодировщика и PCA.

Поворот изображения: обратный проход

Повернуть фотографию матрицей AA можно двумя способами, и только один из них работает. Наивный «прямой проход» берёт каждый входной пиксель и кидает его в A(координата)A\cdot(\text{координата}) — но после округления часть выходных клеток остаётся пустой, появляются дыры. Правильный «обратный проход» идёт от результата: для каждого выходного пикселя yy находят, откуда он пришёл, x=A1yx=A^{-1}y, и берут яркость оттуда, интерполируя соседей. Дыр не остаётся.

::::

Что забрать с собой

Матрица — это движение пространства, а её столбцы — это места, куда уходят базисные стрелки. Определитель отвечает за площадь и ориентацию, сингулярные числа — за форму (окружность становится эллипсом), а их отношение κ\kappa — за устойчивость. Умножение матриц — это композиция движений, и порядок в ней важен. Собственные направления не поворачиваются, и в их базисе матрица диагональна. Из этих же кирпичей сложены и матричный слой полносвязной сети, и сжатие данных в PCA. Дальше мы разберём, во что обходится умножение матриц и почему порядок скобок меняет цену, а не ответ.

Задачи