Ортогональная проекция — это ключевое понятие линейной алгебры и аналитической геометрии, без которого невозможно уверенно решать задачи на расстояния, наилучшие приближения, разложение сигналов и построение регрессионных моделей. Интуитивно ортогональная проекция вектора или точки на прямую, плоскость или общее подпространство — это «тень», опущенная перпендикулярно на это множество. Вектор распадается на две части: одну, лежащую в подпространстве, и вторую, перпендикулярную ему. Этот подход позволяет: находить ближайшие точки на линиях и плоскостях, решать переопределённые системы уравнений методом наименьших квадратов, выполнять ортогонализацию (например, в методе Грама—Шмидта), а также анализировать данные (например, через главные компоненты).
Формально, пусть задано подпространство S в евклидовом пространстве. Любой вектор v единственным образом представляется как сумма v = p + r, где p лежит в S, а r перпендикулярен S (то есть скалярное произведение r со всеми векторами подпространства равно нулю). Вектор p и есть ортогональная проекция v на S, а r — ортогональная компонента. Эта конструкция удобна тем, что p — это ближайшая к v точка подпространства S: длина r минимальна среди всех возможных отклонений. Здесь естественно работает «пифагорово» равенство: норма v в квадрате равна сумме квадратов норм p и r. Геометрический смысл прозрачен: проекция «сбрасывает» компоненту, перпендикулярную подпространству, оставляя только «часть», направленную вдоль него.
Начнём с частного, но очень важного случая — проекция на прямую, заданную вектором u. Если u — ненулевой, то проекция вектора v на эту прямую вычисляется по формуле proj_u(v) = ((v·u)/(u·u)) u. Если заранее нормировать u до единичной длины (обозначим такой вектор как e = u/||u||), то формула упрощается: proj_e(v) = (v·e) e. Здесь точка означает скалярное произведение. Пошаговый алгоритм: 1) вычисляем u·u; 2) вычисляем v·u; 3) умножаем u на отношение (v·u)/(u·u). Ключевой контроль результата: вектор ошибки r = v − proj_u(v) обязательно перпендикулярен u, то есть r·u = 0.
Пример с числами для закрепления. Пусть v = (3, 1, 4), u = (1, 2, 2). Тогда u·u = 1 + 4 + 4 = 9; v·u = 3*1 + 1*2 + 4*2 = 13. Следовательно, proj_u(v) = (13/9) u = (13/9, 26/9, 26/9). Ортогональная компонента r = v − p = (3 − 13/9, 1 − 26/9, 4 − 26/9) = (14/9, −17/9, 10/9). Проверка перпендикулярности: r·u = (14/9)*1 + (−17/9)*2 + (10/9)*2 = (14 − 34 + 20)/9 = 0. Значит, вычисление корректно: мы действительно «опустили перпендикуляр» на прямую, натянутую на u.
Теперь рассмотрим проекцию на плоскость в трехмерном пространстве. Если плоскость проходит через начало координат и задана нормальным вектором n, то ортогональная проекция v на эту плоскость находится как p = v − ((v·n)/(n·n)) n. Это логично: мы «убираем» из v именно ту часть, что направлена вдоль нормали n. Пример: v = (2, 0, 1), n = (1, −1, 2). Тогда v·n = 2*1 + 0*(−1) + 1*2 = 4; n·n = 1 + 1 + 4 = 6. Следовательно, p = v − (4/6) n = (2, 0, 1) − (2/3, −2/3, 4/3) = (4/3, 2/3, −1/3). Вектор r = v − p коллинеарен n, а p лежит в плоскости, поскольку p·n = 0. Если плоскость аффинная (не проходит через начало), заданная точкой a на плоскости и нормалью n, то работает формула p = v − (((v − a)·n)/(n·n)) n. Быстрый пример: плоскость x + y + z = 1 (нормаль n = (1, 1, 1)), точка v = (2, 2, 2). Возьмём a = (1, 0, 0), тогда (v − a)·n = (1, 2, 2)·(1, 1, 1) = 5, n·n = 3, и p = (2, 2, 2) − (5/3, 5/3, 5/3) = (1/3, 1/3, 1/3), что действительно удовлетворяет уравнению плоскости.
В общем случае проекция на подпространство S, натянутое на набор линейно независимых векторов (столбцов) матрицы A, удобно записывается в матричной форме. Если столбцы A образуют базис S (не обязательно ортонормированный), то матрица ортогонального проектирования P вычисляется по формуле P = A (A^T A)^{-1} A^T. Здесь A^T — транспонированная матрица, а (A^T A) — грамова матрица, которая по определению невырождена при линейной независимости столбцов. Тогда проекция любого вектора v находится как p = P v. Важно, что ортогональные проекторы обладают двумя фундаментальными свойствами: 1) симметричность P^T = P; 2) идемпотентность P^2 = P. По спектральным свойствам у такого проекторa собственные значения равны 0 или 1, а след (trace) совпадает с размерностью подпространства. Быстрый численный пример: проекция на прямую, заданную u = (1, 1) в R^2. Тогда A — матрица-столбец [1; 1]. Находим A^T A = [2], обратная — [1/2], и P = A (1/2) A^T = (1/2) [[1, 1], [1, 1]]. Для v = (2, 0) получаем p = (1/2) (2, 2) = (1, 1) — ровно та точка на линии x = y, которая ближе всего к исходному вектору.
Как практически считать проекцию на подпространство, если нам даны несколько векторов-образующих? Оптимальный путь — работать с ортонормированным базисом. Если у вас есть ортонормированные векторы e1, e2, …, ek, натягивающие S, то проекция считается как p = (v·e1) e1 + (v·e2) e2 + … + (v·ek) ek. Это быстро, устойчиво и наглядно. Как получить такой базис? Через процедуру Грама—Шмидта или, что численно устойчивее, через QR-разложение: матрица A раскладывается как A = Q R, где столбцы Q ортонормированы. Тогда P = Q Q^T, и p = Q Q^T v. Обратите внимание: решение задачи проекции тесно связано с задачей наименьших квадратов Ax ≈ v. Коэффициенты x из наилучшего приближения дают p = A x, а вычислить x можно, например, через QR, избегая плохо обусловленных нормальных уравнений (A^T A) x = A^T v. Если столбцы A почти линейно зависимы, устойчивее применять SVD или псевдообратную A^+: тогда P = A A^+, что корректно даже при вырожденных случаях.
Подчеркнём важные свойства и проверки, полезные при решении задач.
Рассмотрим инженерно-прикладные аспекты. В компьютерной графике ортогональная проекция — это математическая модель получения «тени» на плоскость, например, при освещении параллельными лучами. В машинном обучении и статистике линейная регрессия фактически строит проекцию целевого вектора на линейную оболочку признаков; остатки регрессии ортогональны пространству признаков, что легко проверить через A^T r = 0. В обработке сигналов разложение по ортогональным базисам (например, синусоиды в Fourier-спектре или вейвлеты) — это последовательность ортогональных проекций на соответствующие подпространства. В контроле и идентификации систем ортогональные проекции используются для отделения измеряемой компоненты от шумовой, оптимальной в среднем квадратичном смысле. В методах снижения размерности (PCA) данные проецируются на пространство первых собственных векторов ковариационной матрицы — это ортогональная проекция, сохраняющая максимальную дисперсию в заданной размерности.
Типичные ошибки и тонкости. Во-первых, забывать нормировать направление при проекции на прямую: в формуле proj_e(v) = (v·e) e вектор e должен иметь единичную длину. Если нормировать не хочется, используйте универсальную форму с u·u в знаменателе. Во-вторых, ошибочно подставлять формулу для плоскости «через начало» к аффинной плоскости; обязательно вычитайте опорную точку a. В-третьих, численная устойчивость: решение через нормальные уравнения (A^T A) x = A^T v может сильно ухудшать обусловленность (число обусловленности по квадрату), лучше применять QR или SVD. В-четвёртых, проверяйте ортогональность остатка: если результат «проекции» даёт r, для которого r·w ≠ 0 для некоторого базисного вектора w подпространства, значит, в вычислениях закралась ошибка. И наконец, помните, что метрика должна быть согласована: если используется взвешенное скалярное произведение c матрицей W (положительно определённой), то формулы меняются, и проекция определяется относительно этой метрики; проектор принимает вид P = A (A^T W A)^{-1} A^T W.
Сформулируем практический алгоритм вычисления проекции на подпространство S, натянутое на столбцы матрицы A.
Ещё один важный взгляд — через углы и длины. Проекция на единичный вектор e вычленяет компоненту v вдоль e: длина проекции равна |v·e|, а сам вектор проекции равен (v·e) e. Если угол между v и e равен θ, то v·e = ||v|| cos θ. Следовательно, ортогональная проекция «сжимает» вектор до его «теневой» длины вдоль заданного направления. В многомерном случае это обобщается: проекция на S сохраняет все компоненты, «лежащие в S», и «обнуляет» то, что перпендикулярно S. Для матричного проектора P верна полезная формула для расстояния: ||v − P v||^2 = v^T (I − P) v, а энергия проекции равна v^T P v. Это удобно в доказательствах минимума нормы остатка и при оценке ошибок приближения.
Завершим ещё одной наглядной задачей «из жизни». Требуется спроецировать точку на отрезок AB. Шаги: 1) сформируйте вектор направления d = B − A; 2) для точки v вычислите t = ((v − A)·d)/(d·d) — это параметр проекции на бесконечную прямую; 3) зажмите t в интервал [0, 1], положив t_clamped = max(0, min(1, t)); 4) искомая ближайшая точка на отрезке — A + t_clamped d. Если t попал внутрь интервала, это ортогональная проекция на отрезок; если вышел за пределы, ближайшим будет один из концов. Та же идея переносится на проекцию на треугольник: сначала проецируем на плоскость, затем проверяем, лежит ли точка внутри по барицентрическим координатам; если нет — переходим к ближайшему ребру и применяем алгоритм «отрезка».
Для полноты картины упомянем более широкий контекст. В бесконечномерных гильбертовых пространствах работает тот же принцип: всякий элемент раскладывается по замыканию подпространства и его ортогональному дополнению. Разложение функции по рядy Фурье — это именно последовательные ортогональные проекции на подпространства, порождённые синусами и косинусами. Ортогональные проекции на пространства многочленов с весами порождают классические ортогональные полиномы (Лежандра, Чебышёва и др.), что используется в численном интегрировании и аппроксимации.
Итоги и короткий «чек-лист». Чтобы правильно выполнить ортогональную проекцию: 1) чётко определите подпространство (линия, плоскость, аффинный сдвиг, базисные векторы); 2) выберите надёжный инструмент вычислений (ортонормированный базис через QR, либо матричный проектор P); 3) вычислите и проверьте перпендикулярность остатка; 4) при необходимости оцените погрешности и устойчивость; 5) интерпретируйте результат геометрически. Умение уверенно находить ортогональные проекции — это фундаментальный навык, который одинаково востребован в геометрии, статистике, численных методах и инженерном моделировании.