EssayAI
Блог
Блог
Математика и алгоритмы

Угол между векторами: формула через скалярное произведение

11 июня 2026Время чтения: 9 минут
#угол между векторами#скалярное произведение#косинус угла#векторы#линейная алгебра

Угол между двумя ненулевыми векторами - одна из фундаментальных характеристик в линейной алгебре. Она нужна в физике (проекции сил), в геометрии (перпендикулярность прямых и плоскостей), в машинном обучении (косинусное сходство) и в сотнях задач курса линейной алгебры. Главный инструмент вычисления угла - скалярное произведение: оно связывает координаты векторов с углом между ними через единственную формулу. Ниже - калькулятор, в котором можно выставить направления и длины двух векторов и сразу увидеть угол, косинус и геометрическую картину. После него разберём все детали вывода.

Формула угла через скалярное произведение

Скалярное произведение двух векторов a\mathbf{a} и b\mathbf{b} определяется двумя способами - геометрически и через координаты, и оба дают одно и то же число. Геометрическое определение:

a⋅b=∣a∣ ∣b∣cos⁡θ,\mathbf{a} \cdot \mathbf{b} = |\mathbf{a}|\,|\mathbf{b}|\cos\theta,

где θ∈[0°,180°]\theta \in [0°, 180°] - угол между векторами, ∣a∣|\mathbf{a}| и ∣b∣|\mathbf{b}| - их длины (модули). Отсюда немедленно следует формула угла:

cos⁡θ=a⋅b∣a∣ ∣b∣,θ=arccos⁡ ⁣(a⋅b∣a∣ ∣b∣).\cos\theta = \frac{\mathbf{a} \cdot \mathbf{b}}{|\mathbf{a}|\,|\mathbf{b}|}, \qquad \theta = \arccos\!\left(\frac{\mathbf{a} \cdot \mathbf{b}}{|\mathbf{a}|\,|\mathbf{b}|}\right).

В координатах скалярное произведение в R2\mathbb{R}^2:

a⋅b=axbx+ayby,\mathbf{a} \cdot \mathbf{b} = a_x b_x + a_y b_y,

в R3\mathbb{R}^3:

a⋅b=axbx+ayby+azbz.\mathbf{a} \cdot \mathbf{b} = a_x b_x + a_y b_y + a_z b_z.

Длина (модуль) вектора a=(ax,ay)\mathbf{a} = (a_x, a_y):

∣a∣=ax2+ay2,|\mathbf{a}| = \sqrt{a_x^2 + a_y^2},

и аналогично для b\mathbf{b}. Таким образом, полная формула для угла в R2\mathbb{R}^2:

θ=arccos⁡ ⁣axbx+aybyax2+ay2 bx2+by2.\theta = \arccos\!\frac{a_x b_x + a_y b_y}{\sqrt{a_x^2+a_y^2}\,\sqrt{b_x^2+b_y^2}}.

Два вектора из начала координат: угол между ними плавно меняется от 0 до 180 deg, дуга угла и значение cos theta обновляются синхронно - видно, как скалярное произведение меняет знак при переходе через 90 deg

Геометрический смысл и знак косинуса

Формула cos⁡θ=a⋅b/(∣a∣∣b∣)\cos\theta = \mathbf{a}\cdot\mathbf{b}/(|\mathbf{a}||\mathbf{b}|) позволяет сразу читать знак скалярного произведения как геометрическую информацию:

  • a⋅b>0\mathbf{a} \cdot \mathbf{b} > 0 - острый угол (θ<90°\theta < 90°), векторы «смотрят» в одну полуплоскость;
  • a⋅b=0\mathbf{a} \cdot \mathbf{b} = 0 - прямой угол (θ=90°\theta = 90°), векторы ортогональны;
  • a⋅b<0\mathbf{a} \cdot \mathbf{b} < 0 - тупой угол (θ>90°\theta > 90°), векторы «смотрят» в противоположные полуплоскости.

Это условие ортогональности a⋅b=0\mathbf{a} \cdot \mathbf{b} = 0 - рабочий способ проверить перпендикулярность двух прямых в задачах: достаточно перемножить координаты и сложить, не вычисляя углов вообще.

Угол θ\theta по определению лежит в отрезке [0°,180°][0°, 180°]: он всегда неотрицателен и не превышает развёрнутого угла. Это и есть область значений arccos⁡\arccos. Если вам нужен ориентированный угол (со знаком, с учётом направления обхода), используют atan2\mathrm{atan2} - но это уже другая задача.

Пошаговое решение: пример в R2

Разберём задачу: найти угол между a=(3; 4)\mathbf{a} = (3;\,4) и b=(1; −2)\mathbf{b} = (1;\,-2).

Шаг 1. Скалярное произведение: a⋅b=3⋅1+4⋅(−2)=3−8=−5.\mathbf{a}\cdot\mathbf{b} = 3\cdot1 + 4\cdot(-2) = 3 - 8 = -5.

Шаг 2. Длины векторов: ∣a∣=32+42=9+16=25=5,∣b∣=12+(−2)2=1+4=5.|\mathbf{a}| = \sqrt{3^2+4^2} = \sqrt{9+16} = \sqrt{25} = 5, \quad |\mathbf{b}| = \sqrt{1^2+(-2)^2} = \sqrt{1+4} = \sqrt{5}.

Шаг 3. Косинус угла: cos⁡θ=−55⋅5=−15≈−0,4472.\cos\theta = \frac{-5}{5\cdot\sqrt{5}} = \frac{-1}{\sqrt{5}} \approx -0{,}4472.

Шаг 4. Угол: θ=arccos⁡(−0,4472)≈116,6°.\theta = \arccos(-0{,}4472) \approx 116{,}6°.

Знак скалярного произведения отрицателен - угол тупой, что согласуется с геометрией.

Скалярное произведение как проекция: вектор b проецируется на вектор a, длина проекции умножается на длину a и даёт скалярное произведение. При тупом угле проекция отрицательна
Скалярное произведение как проекция: вектор b проецируется на вектор a, длина проекции умножается на длину a и даёт скалярное произведение. При тупом угле проекция отрицательна

Пример в R3

Дано a=(1; 2; 2)\mathbf{a} = (1;\,2;\,2) и b=(2; −1; 2)\mathbf{b} = (2;\,-1;\,2). Найти угол.

a⋅b=1⋅2+2⋅(−1)+2⋅2=2−2+4=4.\mathbf{a}\cdot\mathbf{b} = 1\cdot2 + 2\cdot(-1) + 2\cdot2 = 2 - 2 + 4 = 4.

∣a∣=1+4+4=3,∣b∣=4+1+4=3.|\mathbf{a}| = \sqrt{1+4+4} = 3, \quad |\mathbf{b}| = \sqrt{4+1+4} = 3.

cos⁡θ=43⋅3=49≈0,444,θ≈63,6°.\cos\theta = \frac{4}{3\cdot3} = \frac{4}{9} \approx 0{,}444, \qquad \theta \approx 63{,}6°.

В трёхмерном случае всё то же самое - просто добавляется третье слагаемое в сумму и третий квадрат под корнем. Формула не меняется.

Нормированные векторы и косинусное сходство

Если вектор нормировать - разделить на свою длину, - получим единичный вектор a^=a/∣a∣\hat{\mathbf{a}} = \mathbf{a}/|\mathbf{a}|. Тогда:

a^⋅b^=cos⁡θ.\hat{\mathbf{a}} \cdot \hat{\mathbf{b}} = \cos\theta.

Скалярное произведение нормированных векторов равно косинусу угла между ними напрямую - никаких делений на длины. Именно этим пользуется косинусная мера сходства в информационном поиске и NLP: «похожесть» двух текстов (представленных как частотные векторы) измеряется косинусом угла между ними. При θ→0°\theta \to 0° тексты идентичны по содержанию, при θ→90°\theta \to 90° - не имеют общих ключевых слов.

Нормирование двух векторов: стрелки сжимаются до единичной длины и укладываются на единичную окружность, угол между ними остаётся неизменным - геометрический смысл нормирования

Проекция вектора и связь с углом

Скалярное произведение напрямую связано с проекцией: длина проекции b\mathbf{b} на направление a\mathbf{a} равна:

прab=∣b∣cos⁡θ=a⋅b∣a∣.\mathrm{пр}_{\mathbf{a}}\mathbf{b} = |\mathbf{b}|\cos\theta = \frac{\mathbf{a}\cdot\mathbf{b}}{|\mathbf{a}|}.

Именно так находят физическую работу A=F⋅s=∣F∣∣s∣cos⁡θA = \mathbf{F}\cdot\mathbf{s} = |\mathbf{F}||\mathbf{s}|\cos\theta: она равна произведению модуля силы на длину пути и косинус угла между ними. При θ=90°\theta = 90° работа равна нулю: сила перпендикулярна перемещению. Это прямое следствие той же формулы угла.

Угол между векторами и вектор нормали к плоскости

В задачах стереометрии часто требуется найти угол между прямой и плоскостью или угол между двумя плоскостями. Для этого используют нормальные векторы. Нормальный вектор плоскости Ax+By+Cz=DAx + By + Cz = D равен n=(A; B; C)\mathbf{n} = (A;\,B;\,C).

  • Угол между двумя плоскостями с нормалями n1\mathbf{n}_1 и n2\mathbf{n}_2 равен углу между нормалями (или его дополнению до 180°180° - берут острый): cos⁡ϕ=∣n1⋅n2∣∣n1∣ ∣n2∣.\cos\phi = \frac{|\mathbf{n}_1 \cdot \mathbf{n}_2|}{|\mathbf{n}_1|\,|\mathbf{n}_2|}.
  • Угол между прямой с направляющим вектором l\mathbf{l} и плоскостью с нормалью n\mathbf{n}: угол φ\varphi между прямой и плоскостью дополняет до 90°90° угол между l\mathbf{l} и n\mathbf{n}, поэтому sin⁡φ=∣l⋅n∣∣l∣ ∣n∣.\sin\varphi = \frac{|\mathbf{l}\cdot\mathbf{n}|}{|\mathbf{l}|\,|\mathbf{n}|}.

В обоих случаях берётся модуль числителя, чтобы результат попадал в [0°,90°][0°, 90°], - угол между геометрическими объектами (в отличие от угла между направленными векторами) всегда неотрицателен и не превышает 90°90°.

Условие параллельности и ортогональности

Из формулы немедленно выводятся два важных условия:

Ортогональность (θ=90°\theta = 90°, cos⁡θ=0\cos\theta = 0): a⊥b  ⟺  axbx+ayby=0.\mathbf{a} \perp \mathbf{b} \iff a_x b_x + a_y b_y = 0.

Коллинеарность (θ=0°\theta = 0° или 180°180°, ∣cos⁡θ∣=1|\cos\theta| = 1): модуль косинуса равен 1, что равносильно равенству нулю «векторного произведения» (в 2D - его скалярного аналога axby−aybx=0a_x b_y - a_y b_x = 0). Для проверки параллельности часто удобнее проверять пропорциональность координат: ax/bx=ay/bya_x/b_x = a_y/b_y (при ненулевых знаменателях).

Эти два условия - рабочий инструмент во множестве задач: от построения ортонормального базиса методом Грама-Шмидта до проверки ортогональности функций в задачах на ряды Фурье (там роль скалярного произведения играет интеграл от произведения функций).

Как применять формулу в матрицах: угол между строками

Когда данные организованы в матрицу (таблица объектов и признаков), каждая строка - это вектор признаков одного объекта. Угол между двумя строками - это мера «похожести» объектов в пространстве признаков. Алгоритм:

  1. Выбрать две строки: a=(a1,a2,…,an)\mathbf{a} = (a_1, a_2, \ldots, a_n) и b=(b1,b2,…,bn)\mathbf{b} = (b_1, b_2, \ldots, b_n).
  2. Посчитать скалярное произведение: a⋅b=∑i=1naibi\mathbf{a}\cdot\mathbf{b} = \sum_{i=1}^n a_i b_i.
  3. Найти длины: ∣a∣=∑ai2|\mathbf{a}| = \sqrt{\sum a_i^2}, ∣b∣=∑bi2|\mathbf{b}| = \sqrt{\sum b_i^2}.
  4. Применить формулу косинуса и взять arccos⁡\arccos.

Это работает в любом числе измерений: формула угла не меняется при переходе от R2\mathbb{R}^2 к R100\mathbb{R}^{100}. Именно поэтому метод так популярен в анализе данных - он масштабируется на произвольную размерность без каких-либо изменений.

Частые ошибки

  • Подстановка координат в неправильном порядке. Скалярное произведение axbx+aybya_x b_x + a_y b_y берётся компонент на компонент: первый с первым, второй со вторым. Смешивать нельзя.
  • Деление на произведение, а не на произведение длин. Делить нужно на ∣a∣⋅∣b∣|\mathbf{a}| \cdot |\mathbf{b}| - произведение двух корней, а не на ∣a⋅b∣|\mathbf{a} \cdot \mathbf{b}| (абсолютное значение числа).
  • Применение arccos к числу вне [-1, 1]. Если из-за ошибок округления получилось cos⁡θ=1,0001\cos\theta = 1{,}0001 - arccos не определён. Всегда стоит зажать: cos⁡θ=min⁡(1, max⁡(−1, x))\cos\theta = \min(1,\,\max(-1,\,x)).
  • Путаница со знаком скалярного произведения. Отрицательный результат - это нормально; он просто означает тупой угол. Брать ∣a⋅b∣|\mathbf{a}\cdot\mathbf{b}| перед делением на ∣a∣∣b∣|\mathbf{a}||\mathbf{b}| - грубая ошибка.
  • Забытый третий компонент в R3. Добавить (axbx+ayby)(a_x b_x + a_y b_y) вместо (axbx+ayby+azbz)(a_x b_x + a_y b_y + a_z b_z) и сократить ∣a∣∣b∣|\mathbf{a}||\mathbf{b}| некорректно.

FAQ

Как найти угол между векторами, если задан только угол каждого с осью X? Если вектор a\mathbf{a} направлен под углом α\alpha к оси OxOx, а b\mathbf{b} - под углом β\beta, то угол между ними θ=∣α−β∣\theta = |\alpha - \beta| (при необходимости берём min⁡(θ,360°−θ)\min(\theta, 360° - \theta), чтобы попасть в [0°,180°][0°,180°]). Это частный случай формулы косинуса разности.

Можно ли найти угол между вектором и плоскостью через скалярное произведение? Да, через нормаль к плоскости. Если n\mathbf{n} - нормальный вектор плоскости, а a\mathbf{a} - вектор, то угол φ\varphi между a\mathbf{a} и плоскостью равен дополнению до прямого угла: φ=90°−θ\varphi = 90° - \theta, где θ\theta - угол между a\mathbf{a} и n\mathbf{n}. Иначе: sin⁡φ=∣cos⁡θ∣=∣a⋅n∣/(∣a∣∣n∣)\sin\varphi = |\cos\theta| = |\mathbf{a}\cdot\mathbf{n}|/(|\mathbf{a}||\mathbf{n}|).

Почему arccos возвращает угол в [0, 180], а не в [-180, 180]? Потому что угол между двумя векторами - это геометрическое расстояние, оно не может быть отрицательным. Для ориентированного угла (например, угол поворота от a\mathbf{a} к b\mathbf{b} против часовой стрелки) используют atan2(axby−aybx,  a⋅b)\mathrm{atan2}(a_x b_y - a_y b_x,\; \mathbf{a}\cdot\mathbf{b}) в двумерном случае.

Коротко

Угол θ\theta между ненулевыми векторами a\mathbf{a} и b\mathbf{b} находится по формуле θ=arccos⁡ ⁣((a⋅b)/(∣a∣∣b∣))\theta = \arccos\!\bigl((\mathbf{a}\cdot\mathbf{b})/(|\mathbf{a}||\mathbf{b}|)\bigr), где скалярное произведение a⋅b=axbx+ayby\mathbf{a}\cdot\mathbf{b} = a_x b_x + a_y b_y (в R2\mathbb{R}^2) или с добавленным azbza_z b_z в R3\mathbb{R}^3. Знак скалярного произведения сразу говорит о характере угла: плюс - острый, ноль - прямой, минус - тупой. Нормированные векторы дают косинус напрямую, без деления на длины.

Доверьте текст нейросети EssayAI

Открыть EssayAI

Бесплатно, на русском языке и без VPN

Читайте также

Скалярное произведение через длины и угол векторов

Скалярное произведение через длины и угол векторов

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

11 июня 20267 минут
Линейная зависимость векторов: критерии и примеры

Линейная зависимость векторов: критерии и примеры

Что такое линейная зависимость векторов, как проверить её определителем и рангом матрицы, чем коллинеарность отличается от компланарности и как всё это связано с базисом.

24 сентября 202610 минут
Свойства определителя: правила и геометрический смысл

Свойства определителя: правила и геометрический смысл

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

24 сентября 202611 минут
Теорема Кронекера-Капелли: ранги и число решений

Теорема Кронекера-Капелли: ранги и число решений

Теорема Кронекера-Капелли: система линейных уравнений совместна, когда ранг основной матрицы равен рангу расширенной. Три исхода, число свободных переменных, разбор системы с параметром.

24 сентября 202610 минут
Правило Крамера: решение СЛАУ через определители

Правило Крамера: решение СЛАУ через определители

Правило Крамера для систем линейных уравнений: формулы, вычисление главного и вспомогательных определителей, случай нулевого определителя, разбор систем 2 и 3 порядка.

2 сентября 20269 минут
Самосопряжённый оператор: спектральная теорема

Самосопряжённый оператор: спектральная теорема

Самосопряжённый оператор и спектральная теорема простыми словами: почему собственные числа вещественны, собственные векторы ортогональны и оператор диагонализуется в ортонормированном базисе.

19 июня 20268 минут