Линейная алгебра

Смена базиса

Вектор — это не набор чисел, а набор чисел плюс договорённость, в каком базисе они записаны

Шаг 15 из 117 · ~26 мин

Числа сами по себе ничего не значат

Запись v=(3,5)\mathbf{v} = (3, 5) неполна. Полная версия: «координаты v\mathbf{v} в базисе B\mathcal{B} равны (3,5)(3, 5)». Обычно базис стандартный и о нём молчат — но как только базисов становится два, молчание превращается в ошибку.

Обозначение: [v]B[\mathbf{v}]_{\mathcal{B}} — столбец координат v\mathbf{v} в базисе B\mathcal{B}. Сам вектор один, координат у него столько, сколько базисов вы готовы рассмотреть.

Матрица перехода

Пусть B={b1,,bn}\mathcal{B} = \{\mathbf{b}_1, \ldots, \mathbf{b}_n\} — новый базис, записанный в стандартных координатах. Соберём эти векторы в столбцы матрицы PP. Тогда

v=P[v]B\htmlData{k=v}{\mathbf{v}} = \htmlData{k=P}{P}\,\htmlData{k=c}{[\mathbf{v}]_{\mathcal{B}}}

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

[v]B=P1v[\mathbf{v}]_{\mathcal{B}} = P^{-1}\mathbf{v}

Ниже PP показана как отображение: сетка, в которую превращается стандартная, — это и есть новая система координат.

e₁e₂
определитель
-2
ранг
2

Определитель отрицательный: новый базис имеет противоположную ориентацию.

Та же матрица в другом базисе

Пусть отображение задано матрицей AA в стандартном базисе. Какая матрица задаёт то же самое отображение в базисе B\mathcal{B}? Читаем справа налево:

A=P1APA' = P^{-1} A P

Три шага: PP переводит новые координаты в старые, AA действует в старых, P1P^{-1} возвращает результат в новые. Матрицы, связанные таким соотношением, называются подобными. Подобные матрицы — это одно отображение, описанное из разных систем координат.

Отсюда сразу понятно, почему у подобных матриц совпадают след, определитель и собственные значения: это свойства отображения, а не таблицы. И почему не совпадают отдельные элементы: они как раз про таблицу.

Зачем это нужно

Почти вся линейная алгебра дальше — поиск базиса, в котором задача выглядит проще:

  • диагонализация (следующий урок): базис из собственных векторов, в котором отображение это просто растяжение по осям;
  • PCA: базис, в котором координаты некоррелированы, а дисперсия сосредоточена в первых осях;
  • SVD: два базиса сразу — свой для входа и свой для выхода.

Эта же мысль объясняет, почему в глубоком обучении так много матриц, которые «ничего не делают» по существу: линейный слой без нелинейности — это смена координат, и два таких слоя подряд заменяются одним.

Частый источник путаницы

«Повернуть вектор» и «повернуть систему координат» — разные операции, и матрицы у них взаимно обратные. Если базис повернули на +θ+\theta, то координаты неподвижного вектора в новом базисе выглядят повёрнутыми на θ-\theta.

Проверка, которая всегда спасает: подставьте базисный вектор. Координаты b1\mathbf{b}_1 в базисе B\mathcal{B} обязаны быть (1,0,,0)(1, 0, \ldots, 0) — если получилось что-то другое, вы применили матрицу не в ту сторону.

Источники

Проверки

0 из 2
  1. В какую сторону работает матрица перехода

    Базис B\mathcal{B} состоит из векторов b1=(1,1)\mathbf{b}_1 = (1, 1) и b2=(1,1)\mathbf{b}_2 = (1, -1), записанных в стандартных координатах. Матрица PP имеет их своими столбцами.

    Вектор v\mathbf{v} имеет стандартные координаты (4,0)(4, 0). Чему равно [v]B[\mathbf{v}]_{\mathcal{B}}?

  2. Координаты в произвольном базисе

    Реализуйте coordinates(basis, v) — координаты вектора v в базисе basis.

    basis — это список базисных векторов (не строк матрицы), заданных в стандартных координатах. Нужно найти такие cic_i, что

    icibi=v\sum_i c_i \mathbf{b}_i = \mathbf{v}

    Иначе говоря, решить систему Pc=vPc = v, где столбцы PP — элементы basis. Решайте методом Гаусса; базис гарантированно полный, так что система совместна и решение единственно.

    Верните список коэффициентов в том же порядке, что и basis.

    Обратите внимание на транспонирование: если вы соберёте basis как строки матрицы, получите ответ для другой задачи. Проверить себя проще всего на первом случае — координаты базисного вектора в своём же базисе обязаны быть (1,0,)(1, 0, \ldots).

    функция coordinates

    Загрузка редактора…

    Ctrl/⌘ + Enter