Калькулятор проекции вектора
Результат
Скалярная проекция
- Компонента x проекции
- 3,0000
- Компонента y проекции
- 0,0000
- Компонента z проекции
- 0,0000
Калькулятор проекции вектора находит, какая часть одного вектора лежит вдоль другого, и сообщает ответ дважды: скалярной величиной со знаком и вектором. Введите оба вектора списками чисел, например 3 4 и 1 0, и страница сначала выдаст скалярную проекцию — длину тени, которую исходный вектор отбрасывает вдоль целевого, отрицательную, когда они наклонены в разные стороны, — а затем саму проекцию: ту же тень, записанную настоящим вектором, лежащим на целевом. Скалярная проекция — это скалярное произведение, делённое на длину целевого вектора; проекция берёт это число и возвращает ему направление. Принимаются две или три компоненты, и у обоих векторов их должно быть поровну. Показывать оба вывода — смысл этой страницы, а не избыточность: скалярная проекция измеряется вдоль прямой и потому хранит знак, а проекция знает только саму прямую, поэтому разворот целевого вектора меняет знак первого вывода и не трогает второй. Целевой вектор не должен быть нулевым: у него нет ни направления, ни длины, и проецировать не на что. Исходный может быть нулевым, и тогда проекция равна нулю.
Векторы и их проекции
| Исходный вектор u | Целевой вектор v | Скалярная проекция u на v | Компонента x проекции | Компонента y проекции | Компонента z проекции |
|---|---|---|---|---|---|
| 3 4 | 1 0 | 3 | 3 | 0 | 0 |
| 1 2 | 3 4 | 2.2 | 1.32 | 1.76 | 0 |
| 3 4 | -1 0 | -3 | 3 | 0 | 0 |
| 1 0 | 0 1 | 0 | 0 | 0 | 0 |
| 1 1 1 | 1 1 1 | 1.7321 | 1 | 1 | 1 |
| 2 3 6 | 1 1 1 | 6.3509 | 3.6667 | 3.6667 | 3.6667 |
| 0 0 | 3 4 | 0 | 0 | 0 | 0 |
| 1 2 2 | 2 2 1 | 2.6667 | 1.7778 | 1.7778 | 0.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, — а компоненты вектора округляются почти всегда
Эта страница нужна, когда два вектора надо разложить друг по другу: сколько от одного лежит вдоль другого и сколько остаётся поперёк. Обычные случаи — сила, тянущая груз под углом к рельсу, скорость относительно течения, работа силы на перемещении, — во всех них нужна доля одного вектора вдоль другого, а не сами векторы. Скалярная проекция отвечает числом и потому удобна для сравнений и для подстановки в следующие формулы; проекция вектором отвечает вектором, и её можно складывать с другими векторами, — вот почему печатаются оба, и вот почему иногда они дают разные знаки. Нулевая скалярная проекция означает перпендикулярные векторы: тени нет вовсе, и это не ошибка, а содержательный ответ. Проекция вектором никогда не выходит за прямую цели, поэтому её и бывает мало: она теряет ту часть исходного вектора, которая направлена поперёк, и если нужна она, понадобится ещё одно вычитание. Принимаются две или три компоненты, и у обоих векторов их должно быть поровну. Целевой вектор должен быть ненулевым: он задаёт и направление, и делитель, и без него задача не определена. Исходный вектор может быть нулевым, и тогда оба вывода равны нулю — это правильный ответ.
Разобранные примеры
3 4 на 1 0
- Скалярное произведение: 3 × 1 + 4 × 0 = 3
- Длина целевого вектора: |1 0| = 1
- Скалярная проекция: 3 ÷ 1 = 3
- Проекция вектором: 3 × (1, 0, 0) = 3, 0, 0
Вход, с которым страница открывается, и самый простой случай: целевой вектор направлен по оси x и уже имеет длину 1, поэтому делить не на что и скалярная проекция совпадает со скалярным произведением. Геометрически это проекция на ось: тень от вектора 3 4 падает на ось x, длина тени равна первой компоненте, а высота 4 в тень не попадает вовсе. Сравните это с третьим примером: там тот же исходный вектор, но цель смотрит в другую сторону, и знак вывода меняется, а вектор остаётся тем же.
1 2 на 3 4
- Скалярное произведение: 1 × 3 + 2 × 4 = 11
- Длина целевого вектора: |3 4| = 5
- Скалярная проекция: 11 ÷ 5 = 2,2
- Единичный вектор цели: 3 ÷ 5 = 0,6 и 4 ÷ 5 = 0,8
- Проекция вектором: 2,2 × (0,6; 0,8; 0) = 1,32; 1,76; 0
Обычный случай, где ни один из векторов не нормирован, и он показывает, чем два вывода отличаются на практике. Скалярная проекция вышла чистой дробью, 2,2, а компоненты вектора — нет: 1,32 и 1,76 округлять не пришлось, но так везёт не всегда. Заметьте, что обе компоненты проекции сохранили пропорцию цели 3 к 4 — так и должно быть, ведь проекция обязана лежать на прямой целевого вектора, и никакая другая пропорция на ней невозможна.
3 4 на −1 0
- Скалярное произведение: 3 × (−1) + 4 × 0 = −3
- Длина целевого вектора: |−1 0| = 1
- Скалярная проекция: −3 ÷ 1 = −3
- Проекция вектором: −3 × (−1, 0, 0) = 3, 0, 0
Тот же исходный вектор, что и в первом примере, а цель развёрнута в другую сторону, и это самый поучительный пример страницы. Скалярная проекция сменила знак на −3, а проекция вектором осталась ровно той же тройкой 3, 0, 0: минус попал и в числитель, и в знаменатель, и в результате сократился. Отсюда и правило: знак живёт в скалярном выводе, а векторный знает только прямую, но не её направление. Сравните оба примера подряд, и разница между двумя выводами станет видна сразу.
1 0 на 0 1
- Скалярное произведение: 1 × 0 + 0 × 1 = 0
- Длина целевого вектора: |0 1| = 1
- Скалярная проекция: 0 ÷ 1 = 0
- Проекция вектором: 0 × (0, 1, 0) = 0, 0, 0
Перпендикулярные векторы, и оба вывода обращаются в ноль — при том что ни один из входов не нулевой. Это лучший пример того, что нулевая проекция не означает отсутствия вектора: тень пропадает потому, что вектор смотрит ровно поперёк цели, и вся его длина остаётся вне проекции. В таблице ниже этот случай тоже есть, и он единственный, где оба вывода равны нулю одновременно, а входы при этом ненулевые.
0 0 на 3 4
- Скалярное произведение: 0 × 3 + 0 × 4 = 0
- Длина целевого вектора: |3 4| = 5
- Скалярная проекция: 0 ÷ 5 = 0
- Проекция вектором: 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 — числа разные, хотя векторы те же самые. Причина в том, что делителем служит длина целевого вектора, а она у этих векторов разная. Проекция несимметрична по своей природе, и именно поэтому поля подписаны по роли, а не по порядку.
- Как проверить проекцию вручную?
- Умножьте скалярную проекцию на единичный вектор цели — получится проекция вектором; так и устроена вторая формула на этой странице. Ещё одна проверка: скалярная проекция, делённая на длину исходного вектора, даёт косинус угла между векторами, а он по модулю никогда не превосходит единицы. Если получилось больше, значит, в расчёте ошибка: проекция не может быть длиннее самого вектора, который проецируется.
Источники
- Scalar projection — the length of the shadow one vector casts along another, signed, which is the first of this page's two outputs — Wolfram MathWorld (United States)
- Dot product — the sum of the products of corresponding components, which is the numerator of the projection and the quantity whose being zero means the vectors are perpendicular — Wolfram MathWorld (United States)
- Unit vector — the vector of length 1 pointing along the target, which is what the scalar projection is multiplied by to give the projection vector — Wolfram MathWorld (United States)