Перейти к основному содержанию
CalcMax

Калькулятор проекции вектора

Результат

3,0000

Скалярная проекция

Компонента x проекции
3,0000
Компонента y проекции
0,0000
Компонента z проекции
0,0000

Калькулятор проекции вектора находит, какая часть одного вектора лежит вдоль другого, и сообщает ответ дважды: скалярной величиной со знаком и вектором. Введите оба вектора списками чисел, например 3 4 и 1 0, и страница сначала выдаст скалярную проекцию — длину тени, которую исходный вектор отбрасывает вдоль целевого, отрицательную, когда они наклонены в разные стороны, — а затем саму проекцию: ту же тень, записанную настоящим вектором, лежащим на целевом. Скалярная проекция — это скалярное произведение, делённое на длину целевого вектора; проекция берёт это число и возвращает ему направление. Принимаются две или три компоненты, и у обоих векторов их должно быть поровну. Показывать оба вывода — смысл этой страницы, а не избыточность: скалярная проекция измеряется вдоль прямой и потому хранит знак, а проекция знает только саму прямую, поэтому разворот целевого вектора меняет знак первого вывода и не трогает второй. Целевой вектор не должен быть нулевым: у него нет ни направления, ни длины, и проецировать не на что. Исходный может быть нулевым, и тогда проекция равна нулю.

Векторы и их проекции

Исходный вектор uЦелевой вектор vСкалярная проекция u на vКомпонента x проекцииКомпонента y проекцииКомпонента z проекции
3 41 03300
1 23 42.21.321.760
3 4-1 0-3300
1 00 10000
1 1 11 1 11.7321111
2 3 61 1 16.35093.66673.66673.6667
0 03 40000
1 2 22 2 12.66671.77781.77780.8889

Восемь пар, проецируемых в одну сторону: сначала скалярная проекция, затем три компоненты соответствующего ей вектора. Первая и третья строки — та самая пара, ради которой стоит читать таблицу: исходный вектор в обеих 3 4, целевой в одной 1 0, в другой −1 0, и скалярная проекция меняется с 3 на −3, а проекция вектором в обоих случаях остаётся ровно 3, 0, 0. Минус попадает и в числитель, и в возведённый в квадрат знаменатель, поэтому вектор его не замечает, а скаляр замечает. Вторая строка — обычный случай, где ни один вектор не нормирован: скалярная проекция выходит чистой дробью 2,2, а компоненты записываются двумя знаками после запятой. Четвёртая строка — перпендикулярная пара: скаляр равен 0 и проекция вектором нулевая, и это единственное место в таблице, где оба вывода пропадают вместе, хотя ни один вход не нулевой. Пятая строка — вектор, проецируемый сам на себя: скаляр равен собственной длине √3 ≈ 1,7321, а компоненты возвращаются теми же, что и на входе. Шестая строка трёхмерная, у цели все компоненты равны, поэтому равны и три компоненты проекции: 6,3509, делённое на длину цели 1,7321, даёт по 3,6667 на каждую компоненту. Седьмая строка — нулевой исходный вектор: он принимается, и проекция равна нулю. Восьмая строка тоже трёхмерная, и у неё нет ни одной отрицательной компоненты ни в цели, ни в проекции: первые две компоненты проекции равны между собой, потому что равны первые две компоненты цели, а третья ровно вдвое меньше их. Строки с нулевой целью в таблице нет намеренно: такой случай отклоняется, ведь цель задаёт и направление, и делитель. Числа в ячейках считает программа, и печатает она их с точкой и без разделителя разрядов; в тексте выше те же десятичные знаки пишутся с запятой, и это одно и то же число в двух записях.

Формула

s = (u · v) ÷ |v| proj_v u = (s ÷ |v|) · v = ((u · v) ÷ |v|²) · v

Исходный вектор u
Проецируемый вектор — тот, чья тень нужна. Два или три числа, разделённых пробелами, запятыми или точками с запятой. Он может быть нулевым, и тогда его проекция просто равна нулю: тень от точки нулевой длины тоже точка
Целевой вектор v
Вектор, на который падает тень; он же задаёт направление. Это поле и соседнее не взаимозаменяемы: поменяйте их местами, и ответ изменится, поэтому они и подписаны по роли, а не по номеру
u · v
Скалярное произведение: каждая пара компонент перемножается, произведения складываются. Оно стоит в числителе обеих формул, и стоит заметить, что нулевое скалярное произведение означает перпендикулярность векторов — именно тогда проекция получается нулевой
|v|
Длина целевого вектора, на которую делится скалярное произведение. Если длина равна 1, это деление ничего не меняет, и скалярная проекция совпадает со скалярным произведением; первая строка справочной таблицы — как раз этот случай, и проверить её проще всего
s
Скалярная проекция: насколько далеко вдоль направления цели достаёт источник, как число со знаком. Она отрицательна, когда векторы наклонены в целом в противоположные стороны, и равна нулю, когда они перпендикулярны. Это не длина исходного вектора и не скалярное произведение, а скалярное произведение, делённое на длину цели
proj_v u
Проекция вектором: скалярная проекция, умноженная на единичный вектор цели. Умножение возвращает направление и даёт вектор, лежащий ровно на прямой цели. Длина его равна модулю скалярной проекции, то есть знак в длину не переходит
Знак s
Что делает разворот цели. Смена знака целевого вектора переворачивает знак скалярной проекции: числитель меняет знак, а возведённая в квадрат длина в знаменателе — нет. Проекция вектором при этом не меняется, ведь тот же минус появляется и сверху, и снизу
Нулевой целевой вектор
Отклоняется. Целевой вектор даёт и направление, и делитель, а у нулевого нет ни того, ни другого: знаменатель обратился бы в ноль, и проецировать было бы не на что. Нулевой исходный вектор — другое дело: он принимается и даёт проекцию, равную нулю
Без единиц измерения
Скалярная проекция измеряется в единицах компонент, а проекция вектором — вектор, и его компоненты тоже обычные числа. Ничто на странице не знает, в чём были измерены входы, и оба вывода несут эту неизвестную единицу измерения
Четыре знака после запятой
Ширина, в которой печатаются результаты. Скалярная проекция часто оказывается чистой дробью входных чисел — 11, делённое на 5, даёт ровно 2,2, — а компоненты вектора округляются почти всегда

Эта страница нужна, когда два вектора надо разложить друг по другу: сколько от одного лежит вдоль другого и сколько остаётся поперёк. Обычные случаи — сила, тянущая груз под углом к рельсу, скорость относительно течения, работа силы на перемещении, — во всех них нужна доля одного вектора вдоль другого, а не сами векторы. Скалярная проекция отвечает числом и потому удобна для сравнений и для подстановки в следующие формулы; проекция вектором отвечает вектором, и её можно складывать с другими векторами, — вот почему печатаются оба, и вот почему иногда они дают разные знаки. Нулевая скалярная проекция означает перпендикулярные векторы: тени нет вовсе, и это не ошибка, а содержательный ответ. Проекция вектором никогда не выходит за прямую цели, поэтому её и бывает мало: она теряет ту часть исходного вектора, которая направлена поперёк, и если нужна она, понадобится ещё одно вычитание. Принимаются две или три компоненты, и у обоих векторов их должно быть поровну. Целевой вектор должен быть ненулевым: он задаёт и направление, и делитель, и без него задача не определена. Исходный вектор может быть нулевым, и тогда оба вывода равны нулю — это правильный ответ.

Разобранные примеры

  1. 3 4 на 1 0

    1. Скалярное произведение: 3 × 1 + 4 × 0 = 3
    2. Длина целевого вектора: |1 0| = 1
    3. Скалярная проекция: 3 ÷ 1 = 3
    4. Проекция вектором: 3 × (1, 0, 0) = 3, 0, 0

    Вход, с которым страница открывается, и самый простой случай: целевой вектор направлен по оси x и уже имеет длину 1, поэтому делить не на что и скалярная проекция совпадает со скалярным произведением. Геометрически это проекция на ось: тень от вектора 3 4 падает на ось x, длина тени равна первой компоненте, а высота 4 в тень не попадает вовсе. Сравните это с третьим примером: там тот же исходный вектор, но цель смотрит в другую сторону, и знак вывода меняется, а вектор остаётся тем же.

  2. 1 2 на 3 4

    1. Скалярное произведение: 1 × 3 + 2 × 4 = 11
    2. Длина целевого вектора: |3 4| = 5
    3. Скалярная проекция: 11 ÷ 5 = 2,2
    4. Единичный вектор цели: 3 ÷ 5 = 0,6 и 4 ÷ 5 = 0,8
    5. Проекция вектором: 2,2 × (0,6; 0,8; 0) = 1,32; 1,76; 0

    Обычный случай, где ни один из векторов не нормирован, и он показывает, чем два вывода отличаются на практике. Скалярная проекция вышла чистой дробью, 2,2, а компоненты вектора — нет: 1,32 и 1,76 округлять не пришлось, но так везёт не всегда. Заметьте, что обе компоненты проекции сохранили пропорцию цели 3 к 4 — так и должно быть, ведь проекция обязана лежать на прямой целевого вектора, и никакая другая пропорция на ней невозможна.

  3. 3 4 на −1 0

    1. Скалярное произведение: 3 × (−1) + 4 × 0 = −3
    2. Длина целевого вектора: |−1 0| = 1
    3. Скалярная проекция: −3 ÷ 1 = −3
    4. Проекция вектором: −3 × (−1, 0, 0) = 3, 0, 0

    Тот же исходный вектор, что и в первом примере, а цель развёрнута в другую сторону, и это самый поучительный пример страницы. Скалярная проекция сменила знак на −3, а проекция вектором осталась ровно той же тройкой 3, 0, 0: минус попал и в числитель, и в знаменатель, и в результате сократился. Отсюда и правило: знак живёт в скалярном выводе, а векторный знает только прямую, но не её направление. Сравните оба примера подряд, и разница между двумя выводами станет видна сразу.

  4. 1 0 на 0 1

    1. Скалярное произведение: 1 × 0 + 0 × 1 = 0
    2. Длина целевого вектора: |0 1| = 1
    3. Скалярная проекция: 0 ÷ 1 = 0
    4. Проекция вектором: 0 × (0, 1, 0) = 0, 0, 0

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

  5. 0 0 на 3 4

    1. Скалярное произведение: 0 × 3 + 0 × 4 = 0
    2. Длина целевого вектора: |3 4| = 5
    3. Скалярная проекция: 0 ÷ 5 = 0
    4. Проекция вектором: 0 × (0,6; 0,8; 0) = 0; 0; 0

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

Ограничения

У обоих векторов должно быть одинаковое число компонент, и у каждого — две или три. Целевой вектор не может быть нулевым: он задаёт и направление, и делитель, поэтому при нуле в знаменателе задача не определена, и страница откажет, а не напечатает бесконечность. Исходный вектор нулевым быть может, и тогда оба вывода равны нулю. Компоненты читаются как обычные числа: разделитель — точка с запятой, запятая или пробел, а запятая между двумя цифрами считается десятичным разделителем. Осторожно с разрядами: пробел здесь именно разделитель, поэтому скопированное откуда-то число 1 500 распадётся на два числа, 1 и 500, — а для двумерной страницы это ровно два числа, так что проверка пройдёт и проекция будет посчитана для совсем другого вектора. Разряды в этом поле не пишут вовсе: пишите 1500, а не 1 500. Поля не взаимозаменяемы: поменять исходный и целевой векторы местами нельзя, это другая задача с другим ответом, — и подписаны они поэтому по роли, а не по порядку. Знак скалярной проекции зависит от направления целевого вектора, а не от наклона исходного: разворот цели меняет знак первого вывода и не трогает второй. Проекция вектором не выходит за прямую цели и потому теряет поперечную часть исходного вектора: чтобы восстановить её, нужно отдельное вычитание, и эта страница его не делает. Четыре знака после запятой — это ширина записи, а не заявка на точность. Ничто здесь не знает, в чём были измерены компоненты, и оба вывода несут ту же единицу измерения, что и входы.

Частые вопросы

Чем скалярная проекция отличается от проекции вектором?
Скалярная проекция — это одно число со знаком, длина тени, измеренная вдоль целевого вектора. Векторная проекция — это вектор, лежащий на прямой цели, длина которого равна модулю скалярной проекции. Разница видна на знаке: разворот целевого вектора меняет знак скалярной проекции и совсем не меняет проекцию вектором, потому что минус появляется и в числителе, и в знаменателе и сокращается. Оба вывода описывают одно и то же, но один знает, куда именно смотрит цель, а другой — только на какой прямой она лежит.
Почему у векторов 3 4 и 1 0 скалярная проекция равна 3?
Потому что целевой вектор 1 0 уже имеет длину 1, и делить скалярное произведение не на что. Скалярное произведение равно 3 × 1 + 4 × 0 = 3, значит, и проекция равна 3. Смысл ответа простой: вектор 3 4 уходит вдоль оси x на 3, и это и есть его тень на ось x — вторая компонента в тень не попадает, потому что она перпендикулярна цели.
Что означает нулевая проекция?
То, что векторы перпендикулярны: скалярное произведение равно нулю, и тень пропадает целиком, хотя ни один из векторов не нулевой. Это содержательный ответ, а не отсутствие ответа. Не следует путать его с другим нулём — когда нулевым является исходный вектор: тогда проекция тоже равна нулю, но по другой причине, ведь нулевому вектору нечего проецировать.
Почему нулевой целевой вектор отклоняется, а нулевой исходный — нет?
Потому что целевой вектор делает в формуле две работы сразу: он задаёт прямую, на которую падает тень, и он же стоит в знаменателе как длина. У нулевого вектора нет ни направления, ни длины, поэтому задача становится неопределённой, и страница честно отказывается считать. Исходный вектор только проецируется, и если он нулевой, ответ просто равен нулю.
Можно ли поменять исходный и целевой векторы местами?
Нет, это будет другая задача с другим ответом. Проекция 1 2 на 3 4 равна 2,2, а проекция 3 4 на 1 2 равна 7 — числа разные, хотя векторы те же самые. Причина в том, что делителем служит длина целевого вектора, а она у этих векторов разная. Проекция несимметрична по своей природе, и именно поэтому поля подписаны по роли, а не по порядку.
Как проверить проекцию вручную?
Умножьте скалярную проекцию на единичный вектор цели — получится проекция вектором; так и устроена вторая формула на этой странице. Ещё одна проверка: скалярная проекция, делённая на длину исходного вектора, даёт косинус угла между векторами, а он по модулю никогда не превосходит единицы. Если получилось больше, значит, в расчёте ошибка: проекция не может быть длиннее самого вектора, который проецируется.

Источники

Похожие калькуляторы