Смена базиса | Линейная алгебра

Смена базиса

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

Рассмотрим тему смены базиса. На втором занятии курса мы уже находили координаты вектора в новом базисе.

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

Общий принцип

Столбцы матрицы преобразований указывают на положение базисных векторов после трансформации. Другими словами, столбцы матрицы — это комбинации новых базисных векторов после проведения преобразования.

Предположим, что нам дана некоторая матрица преобразований $A$.

$$ A = \begin{bmatrix} a_{11} & a_{12} & a_{13} & \dots & a_{1n} \\ a_{21} & a_{22} & a_{23} & \dots & a_{2n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & a_{m3} & \dots & a_{mn} \end{bmatrix} $$

Кроме того, мы знаем старый $ \mathbf v_1, \mathbf v_2,…, \mathbf v_n $ и новый базисы $ \mathbf w_1, \mathbf w_2,…, \mathbf w_m $. Тогда преобразование $T$ можно записать как

  • $T(\mathbf v_1) = a_{11} \mathbf w_1 + a_{21} \mathbf w_2 + … + a_{m1} \mathbf w_m $ (то есть первый столбец матрицы $A$)
  • $T(\mathbf v_2) = a_{12} \mathbf w_1 + a_{22} \mathbf w_2 + … + a_{m2} \mathbf w_m $ (то есть второй столбец матрицы $A$)
  • и т.д.

Другими словами $ A \mathbf v_n = \mathbf w_m $.

Переход в исходный базис

Зададим два вектора $ \mathbf a $ и $ \mathbf b $ в новом базисе. С точки зрения нового базиса векторы имеют координаты

$$ \mathbf a_{new} = \begin{bmatrix} 1 \\ 0 \end{bmatrix}, \mathbf b_{new} = \begin{bmatrix} 0 \\ 1 \end{bmatrix}$$

При этом, пусть в старой (исходной) системе координат новый базис имеет координаты

$$ \mathbf a_{old} = \begin{bmatrix} 3 \\ 1 \end{bmatrix}, \mathbf b_{old} = \begin{bmatrix} 1 \\ 1 \end{bmatrix} $$

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

$$ A_{old} = \begin{bmatrix} 3 & 1 \\ 1 & 1 \end{bmatrix} $$

Возьмем вектор в новой системе координат $ \mathbf r_{new} = \begin{bmatrix} \frac{3}{2} \\ \frac{1}{2} \end{bmatrix} $.

Выразим вектор $ \mathbf r_{new} $ в исходном (привычном для нас) базисе с помощью координат нового базиса, записанных в старом базисе $ A_{old} $. Другими словами, перенесем вектор $ \mathbf r_{new} $ в соответствии с координатами $ A_{old} $.

$$ \mathbf r_{old} = A_{old} \cdot \mathbf r_{new} = \begin{bmatrix} 3 & 1 \\ 1 & 1 \end{bmatrix} \cdot \begin{bmatrix} \frac{3}{2} \\ \frac{1}{2} \end{bmatrix} = \begin{bmatrix} 5 \\ 2 \end{bmatrix}$$

Продемонстрируем это преобразование с помощью Питона.

смена базиса: переход в исходный базис

Дополнительно поясним, что:

  • синие стрелки — это новый базис
  • зеленые — исходный
  • красной стрелкой обозначается вектор $ \mathbf r_{new} $ в новом базисе
  • черной — вектор $ \mathbf r_{new} $ в старом базисе

Переход в новый базис

Выполним обратное преобразование из исходного базиса в новый. Для этого нам понадобится матрица, обратная исходной матрице $A_{old}$. Можно также сказать, что нам нужно найти исходный базис в координатах нового базиса (т.е. такой, который переводит новый базис (синие стрелки) в исходный (зеленые)).

Выразим вектор $ \mathbf r_{old}$ в новых координатах.

Мы вернулись к вектору $ \mathbf r_{new} = \begin{bmatrix} \frac{3}{2} \\ \frac{1}{2} \end{bmatrix} $.

Ортонормированный базис

Решим аналогичную задачу, но с тем отличием, что новый базис будет ортонормированным (векторы ортогональны друг другу и имеют единичную длину).

смена базиса: переход в новый базис

Возьмем вектор с координатами в новом базисе $ \mathbf r_{new} = \begin{bmatrix} 2 \\ 1 \end{bmatrix} $. Преобразуем его в вектор в старом базисе.

Выполним обратное преобразование, т.е. снова выразим вектор в новом базисе.

Так как новый базис ортонормален, мы можем использовать проекции на векторы нового базиса $ \mathbf a $ и $ \mathbf b $.

Преобразования в новом базисе

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

Решением могло бы быть:

  1. Преобразование нового вектора в старый базис
  2. Поворот в старом, исходном базисе
  3. Возврат к новому базису

Если предствить, что $A_{old}$ преобразует новый базис в старый, $R$ вращает на 45 градусов в старом базисе, а $A_{old}^{-1} = A_{new}$ возвращает вектор из старого базиса в новый, то в целом преобразование можно записать, как

$$ \mathbf r_{new, 45^{\circ}} = A_{new} \cdot (R \cdot (A_{old} \cdot \mathbf r_{new})) $$

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

Мы получили повернутый на 45 градусов вектор в новом базисе.

Ортогональные матрицы

Мы привыкли работать в ортонормированном базисе. Например, для двумерного стандартного базиса $\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}$ легко запомнить, что матрица расширения векторов в два раза будет выглядеть как

$$ S = \begin{bmatrix} 2 & 0 \\ 0 & 2 \end{bmatrix} $$

Математически у ортогональной (orthogonal) матрицы также есть преимущества. В частности, для ортогональной матрицы справедливо следующее (следует из умножения соответствующих векторов матрицы)

$$ Q^TQ = I $$

Если $Q$ — квадратная матрица, то

$$ Q^T = Q^{-1} $$

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

Если кроме того, векторы ортогональной матрицы имеют единичную длину, то матрица становится ортонормальной (orthonormal).

Ортогональная матрица увеличивает пространство на единицу, а значит ее определитель равен 1 или $-1$. При отрицательном определителе пространство переворачивается (в частности, вектор $ \mathbf i$ становится слева от $ \mathbf j$).

Дополнительно замечу, что так как $ A^TA = AA^T $, то можно сказать, что у ортогональной матрицы ортогональны как столбцы, так и строки.

Резюмируем преимущества ортогонального (и тем более ортонормального) базиса:

  • проще найти обратную матрицу
  • преобразование обратимо
  • матрица проекции (помня, что $Q^TQ = I$) равна $ P = Q(Q^TQ)^{-1}Q^T = QQ^T $. Если $Q$ квадратная, то $ QQ^T = I $. Убедимся, что выполняются свойства матрицы проекции
    • $ QQ^T $ — симметричная матрица
    • $ (QQ^T)(QQ^T) = Q(Q^TQ)Q^T = QIQ^T = QQ^T $

Многие уравнения существенно упрощаются, если использовать ортонормальные матрицы. Рассмотрим нормальные уравнения.

$$ A^TA \mathbf x^* = A^T \mathbf b \Rightarrow Q^TQ \mathbf x^* = Q^T \mathbf b \Rightarrow \mathbf x^* = Q^T \mathbf b $$

Другими словами, точка проекции $x^*_i$ просто равна скалярному произведению вектор-строки $\mathbf q^T_i$ на вектор $\mathbf b$, $x^*_i = \mathbf q^T_i \cdot \mathbf b$.

Процесс Грама-Шмидта

Посмотрим как найти ортонормированный базис. Используемый для этого метод называется процессом Грама-Шмидта (the Gram-Schmidt process).

Описание

Рассмотрим абстрактный пример в двумерном пространстве. Возьмем векторы $\mathbf v_1$ и $\mathbf v_2$ и найдем через них ортонормальный базис $\mathbf e_1$ и $\mathbf e_2$. Вначале убедимся, что это два линейно независимых векторов (иначе пространство схлопнется и подобрать базис не получится). Линейную независимость можно проверить через определитель.

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

процесс Грама-Шмидта

Шаг 1. Направление первого вектора $\mathbf v_1$ изменять не будем, нормализуем его и назовем $\mathbf e_1$ (зеленая стрелка).

Шаг 2. Вектор $e_2$ можно представить как составляющую в направлении вектора $\mathbf e_1$ ($proj_{\mathbf e_1} \mathbf v_2$, желтый вектор) и перпендикулярную ему составляющую.

Составляющая в направлении вектора $\mathbf e_1$ представляет собой векторную проекцию $\mathbf v_2$ на $\mathbf e_1$, то есть

$$ proj_{\mathbf e_1} \mathbf v_2 = \frac{\mathbf v_2 \cdot \mathbf e_1}{|| \mathbf e_1 ||} \frac{\mathbf e_1}{|| \mathbf e_1 ||} = \frac{\mathbf v_2 \cdot \mathbf e_1}{1} \frac{\mathbf e_1}{1} = (\mathbf v_2 \cdot \mathbf e_1) \mathbf e_1 $$

Шаг 3. Перпендикулярную $\mathbf e_1$ составляющую (фиолетовый вектор, назовем его $\mathbf u_2$) можно представить, как разницу векторов $\mathbf v_2$ и $proj_{\mathbf e_1} \mathbf v_2$, то есть

$$ \mathbf u_2 = \mathbf v_2-proj_{\mathbf e_1} \mathbf v_2 = \mathbf v_2-(\mathbf v_2 \cdot \mathbf e_1) \mathbf e_1 $$

Шаг 4. Мы нашли вектор $\mathbf u_2$ перпендикулярный вектору $\mathbf e_1$. Для того чтобы превратить $\mathbf u_2$ в $\mathbf e_2$ остается его нормализовать

$$ \mathbf e_2 = \frac{\mathbf u_2}{|| \mathbf u_2 || } $$

Для большего количества измерений процесс будет выглядеть аналогично. Обобщим процесс для трех измерений.

$$ \mathbf e_1 = \frac{\mathbf v_1}{|| \mathbf v_1 ||} $$

$$ \mathbf u_2 = \mathbf v_2-proj_{\mathbf e_1} \mathbf v_2 \rightarrow \mathbf e_2 = \frac{\mathbf u_2}{|| \mathbf u_2 ||} $$

$$ \mathbf u_3 = \mathbf v_3-proj_{\mathbf e_1} \mathbf v_3-proj_{\mathbf e_2} \mathbf v_3 \rightarrow \mathbf e_3 = \frac{\mathbf u_3}{|| \mathbf u_3 ||} $$

Разумеется, ничто не мешает нам объединить вектор-столбцы $\mathbf e_1, \mathbf e_2, \mathbf e_3$ в матрицу

$$ E = \Bigg[ \mathop{\mathbf e_1}\limits_|^| \ \mathop{\mathbf e_2}\limits_|^| \ \mathop{\mathbf e_3}\limits_|^| \Bigg] $$

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

Пример

Предположим, у нас есть некоторый неортономальный базис линейно независимых векторов, формирующих трехмерную линейную оболочку. У нас есть вектор в этом базисе, и мы хотим выполнить его отражение. Опять же матрицы отражения в неортонормальном базисе у нас нет. Как поступить?

  1. Найти ортонормальный базис в задаваемом исходными векторами пространстве
  2. Взять матрицу отражения в ортонормальном базисе и выполнить отражение
  3. Вернем вектор из ортонормального базиса в исходный

Приведем векторы в исходном неортонормальном базисе

Ортонормированный базис

Проверим, что векторы линейно независимы.

Найдем первый базисный вектор $e_1$.

Найдем второй базисный вектор $e_2$.

Найдем третий базисный вектор $e_3$.

Проверим ортогональность и единичную длину.

Соединим их в матрицу. Эта матрица будет переводить вектор из ортонормированного базиса в неортонормированный.

Сразу найдем обратную матрицу, которая преобразует вектор из неортонормированного базиса в ортонормированный.

QR-разложение

Замечу, что ортонормальный базис также можно найти с помощью разложения матрицы на Q и R компоненты (QR-decomposition). Первый компонент этого разложения Q и будет ортонормальным базисом. Приведем пример.

Убедимся в его ортонормальности.

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

Матрица отражения

Возьмем матрицу отражения в ортонормальном базисе. В данном случае ее задача будет заключаться в том, чтобы отразить вектор относительно плоскости, задаваемой $e_1$ и $e_2$.

Отражение и смена базиса

Теперь возьмем вектор в исходном неортонормальном базисе.

Последовательно применим смену базиса, отражение и возвращение в исходный базис.

В результате мы получили отраженный вектор в исходном неортонормальном базисе.

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

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

Дополнительные материалы

Перейдем ко второму разделу курса и теме разложения матриц.