Матрицы и линейные преобразования | Линейная алгебра

Матрицы и линейные преобразования

Все курсы > Линейная алгебра > Занятие 3

На прошлых занятиях мы поговорили про векторы и векторные пространства. Сегодня рассмотрим матрицы и линейные преобразования.

Ноутбук к сегодняшнему занятию

Как матрицы преобразовывают пространство

Посмотрим, как матрица может изменить положение вектора.

Преобразование базисных векторов

Начнем с базисных векторов. Возьмем матрицу $A$ и два базисных вектора $\mathbf i$ и $\mathbf j$.

Если поочередно умножить матрицу на каждый из векторов, то первый столбец матрицы $A$ определит новые координаты вектора $\mathbf i$, второй столбец — вектора $\mathbf j$.

$$ \begin{bmatrix} 2 & 3 \\ 5 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1 \\ 0 \end{bmatrix} = \begin{bmatrix} 2 \\ 5 \end{bmatrix} $$

$$ \begin{bmatrix} 2 & 3 \\ 5 & 1 \end{bmatrix} \cdot \begin{bmatrix} 0 \\ 1 \end{bmatrix} = \begin{bmatrix} 3 \\ 1 \end{bmatrix} $$

Так трансформационная матрица (transformation matrix, левый множитель) оказывает влияние на базисные (и все остальные) векторы и, таким образом, меняет пространство.

Посмотрим на результат на графике.

преобразование базисных векторов с помощью матрицы

Продемонстрируем, что при преобразовании любого вектора, мы по сути меняем базисные векторы, умноженные на скаляр. Рассмотрим, как в результате умножения матрицы A на вектор $\mathbf r$, мы получим новый вектор $\mathbf r’$.

$$A \cdot \mathbf r = \mathbf r’ $$

Очевидно, мы можем умножать векторы $\mathbf r$ и $\mathbf r’$ на скаляр $n$ или представить их в виде суммы двух (базисных) векторов.

$$A \cdot n \mathbf r = n \mathbf r’ $$

$$A \cdot (\mathbf i + \mathbf j) = (\mathbf i + \mathbf j)’ $$

Тогда справедливо, что

$$A \cdot (n \mathbf i+m \mathbf j) = (n \mathbf i+m \mathbf j)’ $$

Выполним умножение.

$$ A \cdot (n \mathbf i + m \mathbf j) = (nA \mathbf i+mA \mathbf j) = n \mathbf i’ + m \mathbf j’ $$

Обратите внимание, что умножение матрицы на скаляр коммутативно, то есть $A n \mathbf i = n A \mathbf i $.

Таким образом, можно сказать, что при преобразовании пространства матрица преобразует масштабированные (scaled) базисные векторы. Приведем пример.

$$  \begin{bmatrix} 2 & 3 \\ 5 & 1 \end{bmatrix} \begin{bmatrix} 2 \\ 4 \end{bmatrix} = \begin{bmatrix} 16 \\ 14 \end{bmatrix} $$

$$  \begin{bmatrix} 2 & 3 \\ 5 & 1 \end{bmatrix} \left( 2 \begin{bmatrix} 1 \\ 0 \end{bmatrix} + 4 \begin{bmatrix} 0 \\ 1 \end{bmatrix} \right)  = \begin{bmatrix} 16 \\ 14 \end{bmatrix} $$

$$ 2 \begin{bmatrix} 2 & 3 \\ 5 & 1 \end{bmatrix} \begin{bmatrix} 1 \\ 0 \end{bmatrix} + 4 \begin{bmatrix} 2 & 3 \\ 5 & 1 \end{bmatrix} \begin{bmatrix} 0 \\ 1 \end{bmatrix} = \begin{bmatrix} 16 \\ 14 \end{bmatrix} $$

$$ 2 \begin{bmatrix} 2 \\ 5 \end{bmatrix} + 4 \begin{bmatrix} 3 \\ 1 \end{bmatrix} = \begin{bmatrix} 16 \\ 14 \end{bmatrix} $$

Иначе говоря, «новые», преобразованные векторы будут иметь те же координаты относительно нового базиса, что и исходный вектор, относительно исходного базиса (потому что $n$ и $m$ или 2 и 4 в примере выше не изменяются при преобразовании).

Свойства преобразований

Вначале дадим описательное определение линейной трансформации пространства.

При линейном преобразовании начало координат не смещается, а линии координатной сетки остаются параллельными и сохраняют исходное расстояние друг от друга (origin remains fixed, grid lines remain parallel and evenly spaced).

Более формально свойства трансформации ($T$), которую также можно назвать функцией (function) или отображением (mapping) относительно векторов $\mathbf v$ и $\mathbf w$ можно выразить через две заданные в линейном пространстве операции сложения и умножения на скаляр.

  1. $ T(\mathbf v + \mathbf w) = T(\mathbf v) + T(\mathbf w) $
  2. $ T(c \mathbf v) = c T(\mathbf v) $

Примечение. Несмещение начала координат можно рассматривать как частный случай свойства 2, так как преобразование нулевого вектора должно дать нулевой вектор $T(\mathbf 0) = \mathbf 0 $. Приведем пример линейного и нелинейного преобразований.

Пример 1. Проекция

Рассмотрим проекцию $T: \mathbb R^2 \rightarrow \mathbb R^2 $.

пример линейного преобразования: проекция

Проверим приведенные выше свойства:

  • $ T(\mathbf v + \mathbf w) = T(\mathbf v) + T(\mathbf w) $
  • если, например, вектор $\mathbf v$ увеличить в два раза, то и проекция увеличится в два раза
  • начало координат при проекции не смещается, то есть $T(\mathbf 0) = \mathbf 0 $

Пример 2. Нелинейное преобразование

Предположим, что мы хотим сместить каждый вектор проскости (в частности, вектор $ \mathbf v $) на некоторый вектор $ \mathbf d $.

пример нелинейного преобразования

Очевидно нарушается второе свойство, например, $ T(2 \mathbf v) \not= 2T(\mathbf v) $. Более того, смещается начало координат, $T(\mathbf 0) = \mathbf d $.

Умножение матрицы на вектор

Важно, что умножение матрицы $A$ на векторы $\mathbf v$ и $\mathbf w$, т.е. $T(\mathbf v) = A \mathbf v$ и $T(\mathbf w) = A \mathbf w$ всегда линейно, так как

  • $ A(\mathbf v + \mathbf w) = A(\mathbf v) + A(\mathbf w) $
  • $ A(c \mathbf v) = c A(\mathbf v) $

Соответственно, задача линейного преобразования сводится к нахождению правильной трансформационной матрицы (причем в известной, заданной системе координат).

Например, если мы хотим перейти от трех измерений к двум, $T: \mathbb R^3 \rightarrow \mathbb R^2$, то нам потребуется матрица $2 \times 3$:

пример линейного преобразования: умножение матрицы на вектор

В общем случае матрица $A$ размерностью $m \times n$ соответствует $ T: R^n \rightarrow R^m $.

Смена базиса

Как уже было сказано, если линейное преобразование задано матрицей, то введена система координат (базис).

  • На вход матрица получает базис $ \mathbf v_1,…, \mathbf v_n \in R^n $
  • На выходе выдает $ \mathbf w_1,…, \mathbf w_m \in R^m $

Другими словами, при преобразовании линейной комбинации $\mathbf v_1,…, \mathbf v_n$ в линейную комбинацию $\mathbf w_1,…, \mathbf w_m$ происходит смена базиса. Например,

$$ \mathbf v = c_1 \mathbf v_1 + c_2 \mathbf v_2 \rightarrow T(\mathbf v) = c_1 \mathbf w_1 + c_2 \mathbf w_2 $$

Пример 3. Производная как линейное преобразование

Интересно, что взятие производной линейно. Предположим, что у нас есть некоторая функция $ f(x) = c_1 + c_2 x + c_3 x^2 $. Ее базис: $\{ 1, x, x^2 \}$. Тогда производной будет $f'(x) = c_2 + 2 c_3 x $ с базисом $\{ 1, x \}$. Найти производную можно с помощью матрицы

$$ \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 2 \end{bmatrix} \begin{bmatrix} c_1 \\ c_2 \\ c_3 \end{bmatrix} = \begin{bmatrix} c_2 \\ 2c_3 \end{bmatrix} $$

Решение системы уравнений как преобразование

Теперь рассмотрим решение системы линейных уравнений (simultaneous equations) с точки зрения трансформации пространства.

$$ \begin{bmatrix} 2 & 3 \\ 5 & 1 \end{bmatrix} \begin{bmatrix} a \\ b \end{bmatrix} = \begin{bmatrix} 8 \\ 13 \end{bmatrix}$$

По сути, нам нужно найти такой вектор $\begin{bmatrix} a \\ b \end{bmatrix}$, при умножении матрицы на который мы окажемся в точке $ \begin{bmatrix} 8 \\ 13 \end{bmatrix} $.

Виды преобразований

Можно выделить некоторые часто встречающиеся виды преобразований. Создадим вектор $\mathbf x$.

Единичная матрица

Если умножить единичную матрицу (identity matrix) на вектор $\mathbf x$, ничего не произойдет.

Обратите внимание, мы легко можем догадаться, что с вектором после преобразования ничего не произойдет, потому что столбцы трансформационной матрицы в точности повторяют векторы базиса $\mathbf i$ и $\mathbf j$.

Сжатие и растяжение

При сжатии или растяжении (scaling) координаты вектора соответственно уменьшаются или увеличиваются в размере. В случае базисных векторов, они не меняют направления. Приведем пример растяжения.

Посмотрим, как это выглядит на графике.

растяжение

Дадим некоторые пояснения. Преобразования пространства удобно описывать с помощью площади, образованной двумя (в пространстве $R^2$) векторами.

  • Зеленый квадрат: площадь базисных векторов
  • Синий квадрат: площадь масштабированных базисных векторов
  • Красный вектор: масштабированный вектор $\mathbf x$

Обратите внимание, векторы базиса $\mathbf i$ и $\mathbf j$ после трансформации сохранили направление, вектор $ \mathbf r $ сместился выше. Понимание того, что некоторые векторы сохраняют направление, а некоторые — нет, очень пригодится позднее.

Приведем пример сжатия. Для этого нужно, чтобы ненулевые координаты матрицы были меньше единицы.

сжатие

Отражение

Отражение (reflection) как бы «перекидывает» вектор на другую сторону от осей координат. Посмотрим на отражение относительно оси y (то есть «перекидывать» мы будем вектор $\mathbf i$). Для этого в первом столбце трансформационной матрицы 1 меняется на $-1$.

отражение относительно оси y

Выполним отражение относительно обеих осей.

отражение относительно обеих осей

Матрица перестановки

Матрица перестановки (permutation matrix) позволяет поменять векторы $\mathbf i$ и $\mathbf j$ местами.

матрица перестановки

Сдвиг (трансвекция)

Сдвиг или трансвекция (shear) предполагает, что один из базисных векторов остается на месте, второй сдвигается.

сдвиг

Вращение

Посмотрим, как можно повернуть (rotate) базисные векторы на 90 градусов против часовой стрелки.

поворот на 90 градусов

Поворот на определенный угол против часовой стрелки.

Смысл такой трансформации представлен на схеме ниже. Для поворота на 90 градусов против часовой стрелки вспомним, что

  • для вектора $\mathbf i \quad cos(90^{\circ}) = 0, \quad -sin(90^{\circ}) = -1$
  • для вектора $\mathbf j \quad sin(90^{\circ}) = 1, \quad cos(90^{\circ}) = 0$
матрица вращения

Видео про линейные преобразования⧉.

Композиция преобразований

Посмотрим, что произойдет, если применить сначала поворот на 90 градусов по часовой стрелке, затем отражение относительно оси y.

Так как матрица преобразования стоит слева от преобразуемого вектора, то для применения двух преобразований, матрица второго преобразования будет стоять слева от матрицы первого.

$$ Reflect_y \cdot (Rotate \cdot \mathbf x ) $$

Подготовим матрицы.

Выполним преобразование.

Посмотрим на этот процесс графически. Вначале первое преобразование (вращение).

композиция преобразований: вращение

Теперь применим второе преобразование (отражение) к результату первого.

композиция преобразований: отражение

Запишем, где оказались векторы $\mathbf i$ и $\mathbf j$ после второго преобразования и соединим эти координаты в матрицу. Затем умножим на исходные векторы $\mathbf i$ и $\mathbf j$.

Результат аналогичен последовательному применению предыдущих преобразований.

Обратите внимание, что порядок операций важен. Поменяв матрицы преобразований местами, мы получим другой результат.

Это еще раз демонстрирует некоммутативность, но ассоциативность умножения матриц.

Приведем ссылки на видео:

Подведем итог

Мы посмотрели, как матрицы преобразовывают пространство и на примерах изучили, чем линейные преобразования отличаются от нелинейных. Кроме того, мы познакомились с основными видами линейных преобразований.

Рассмотрим системы линейных уравнений.