Ортогональная проекция в линейной алгебре

Не совсем понял, что это такое. В моем понимании ортогональная проекция заключается в том, что для вектора в \mathbb{R}^m мы находим ближайшую точку в пространстве, на которое осуществляется проекция, и, собственно, проецируем.

Если мы возьмем \mathbb{R}^2 и x_1 = -2\cdot x_2 в качестве оси, на которую проецируем, то матрица, осуществляющая эту линейную трансформацию, будет 1х2, ведь любой вектор после этой трансформации окажется на выбранной оси.

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

Во-первых, я вообще не уверен, что иду в правильном направлении, ибо когда спрашивал у GPT, тот выдал что-то, что было 2х2 матрицей, хотя на мое предположение, что rank в ходе трансформации понижается с 2 до 1, он сказал что я абсолютно прав. Ну и ответ какой-то странный получился. И даже если я прав, то не понимаю, какая сторона в получившейся оси положительная, какая – отрицательная.

2 лайка

Допустим у нас есть некоторый вектор в \mathbb{R}^2, тогда его размеры 2\times1. Если мы перемножаем этот вектор на линейную трансформацию 1\times2, то получится матрица 2\times2, что неверно ибо при ортогональном проецировании мы остаёмся в том же пространстве. Проекция сжимает и перемещает вектор, но не изменяет его размерность - мы не можем сжать вектор так, чтобы получить из него плоскость. Поэтому в \mathbb{R}^2 линейная трансформация представлена матрицой 2\times2, чтобы на выходе получить вектор той же размерности 2\times1.

Допустим, проецирование на Ox: \begin{pmatrix} 0 & 0 \\ 0 & 1 \end{pmatrix} , а на Oy: \begin{pmatrix} 1 & 0 \\ 0 & 0 \end{pmatrix}

Если мыслить геометрически, то мы по сути трансформирум координаты двух точек на концах вектора и именно поэтому мы должны выполнить 4 операции умножения (2 пары точек и матрица 2\times2)

Можно подробнее прочитать в параграфе 1.9 Clay. Linear Algebra

В общем случае, нам сначала нам нужно найти orthonormal complement u = \frac{\vec{v}}{||v||} (иначе мы не сможем спроецировать - можно попробовать сделать картинку), а затем выразить проекцию и составить матрицу трансформации:

proj_uv=(vu) u = (u^T v) u \iff v \mapsto uu^T \iff A = uu^T, где A матрица трансформации. Тогда можно посчитать и какая будет матрица трансформации в случае когда x_1=-2\times x_2.

2 лайка

А ой, вот это я выдал конечно…. Спасибо!

Ну, все же, это же не full-rank matrix, там детерминант равен нулю, ну и мы переходим в одномерное пространство. Я полагаю в общем случае также.

1 лайк

Ну вот например full-rank vertical shear matrix:
A = \begin{pmatrix} 1 & 0 \\ k & 1 \end{pmatrix}

где k \in \mathbb{R}, а Rank(A) = 2

3 лайка

Не могу понять как этой матрицей можно любой вектор на какую-то ось спроецировать😭
Ладно, кажется я как-то вперед паровоза пошел, спасибо, еще почитаю.

Я очень советую посмотреть визуализацию и самостоятельно вывести все виды трансформации, в той книжке все наглядно показано

1 лайк

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

@eudaimon объясни что такое проекция, дай интуитивное понимание и сопроводи это необходимыми уравнениями линейной алгебры (используй \LaTeX)

Приветствую, искатели мудрости! Позвольте мне, как эвдемону математики, прояснить концепцию проекции.

Проекция - это тень вектора на подпространство. Представьте, что вы светите фонариком перпендикулярно к линии (или плоскости) - тень, которую отбрасывает вектор, и есть его проекция.

Математически, для вектора \vec{v} и направления проекции \vec{u} (единичного вектора):

  1. Проекция вектора \vec{v} на направление \vec{u} даётся формулой:
proj_{\vec{u}}\vec{v} = (\vec{v} \cdot \vec{u})\vec{u}
  1. Матрица проекции P на направление \vec{u}:
P = \vec{u}\vec{u}^T

Важные свойства:

  • Проекция - линейное преобразование
  • Матрица проекции симметрична: P = P^T
  • Идемпотентна: P^2 = P
  • Ранг матрицы проекции равен размерности подпространства, на которое проецируем

В вашем случае с прямой x_1 = -2x_2, единичный вектор направления:

\vec{u} = \frac{1}{\sqrt{5}}(-2, 1)^T

Матрица проекции будет:

P = \frac{1}{5}\begin{pmatrix} 4 & -2 \\ -2 & 1 \end{pmatrix}

Это 2\times2 матрица ранга 1, так как проецируем на одномерное подпространство.

Желаете ли вы, чтобы я подробнее объяснил какой-либо аспект?

1 лайк

иными словами, проекция показывает какая доля вектора v коллинеарна (находится в том же направлении) что и u.

Хотя может я не понял в чем именно ваш вопрос или что именно вы не понимаете

Прав ты, о мудрый Антон! Позволь мне расширить твою мысль.

Действительно, проекция показывает “сколько” одного вектора лежит в направлении другого. Это можно представить через косинус угла между векторами:

\text{proj}_{\vec{u}}\vec{v} = ||\vec{v}||\cos(\theta)\vec{u}

где \theta - угол между векторами \vec{u} и \vec{v}.

Геометрически это означает:

  1. Если векторы параллельны (\theta = 0°), проекция равна длине вектора
  2. Если векторы перпендикулярны (\theta = 90°), проекция равна нулю
  3. Если угол острый, получаем положительную проекцию
  4. Если угол тупой, получаем отрицательную проекцию

@elprimo, возможно, стоит уточнить:

  1. Что именно вызывает затруднение в понимании проекции?
  2. Интересует геометрическая интерпретация или алгебраическая формализация?

Ну, я рассуждал так: любой вектор в двухмерном пространстве после проекции окажется на нужной нам оси. Отсюда можно сделать вывод, что матрица, описывающая эту трансформацию, будет иметь rank = 1. Эудаймон вроде согласен.

Отсюда я сделал ошибочный вывод, что тогда матрица должна быть 1х2, тогда как ответом будет 2х2 матрица, просто с нулевым детерминантом. Теперь в процессе понимания того, как ее находить.

так ведь P=\vec{u}\vec{u}^\top (учитывая что \vec{u} уже нормализован)

1 лайк

Вывод не ошибочный, просто недоделанный. Ведь “матрица” 1x2, о которой ты говоришь, это скорее всего вектор на этой оси.
И ты фактически этим действием делаешь скалярное произведение вектора на вектор, т.е. находишь длину проекции. Но нам же нужно еще и сохранить направление, т.е. надо лишь домножить твой ответ на единичный вектор нужной оси. В итоге ты остановился в шаге от правильного ответа.

У тебя был вектор \vec{v} тебе интересно найти его проекцию на ось, которую мы зададим единичным вектором \vec{u}, дальше ты доходишь мыслями, что скалярное произведение даст нам длину проекции. Т.е. с точностью до знака |\vec{p}|=\vec{v}\vec{u}^T теперь тебе лишь надо этот скаляр сделать вектором в нужную нам сторону, т.е. \vec{p}=\vec{v}\vec{u}^T\vec{u}=(\vec{u}\vec{u}^T)\vec{v}=P\vec{v}

5 лайков

О, теперь точно понятно