Формула угла между векторами
Рассмотрим понятие угла между двумя направлениями в пространстве.
Как и на плоскости, в пространстве направлением называется множество всех лучей, каждый из которых сонаправлен с данным. Таким образом, любой луч из данного множества сонаправленных лучей вполне определяет это направление (подобно тому, как любой направленный отрезок вполне определяет вектор, который он изображает). Поэтому направление в пространстве обычно задают при помощи только одного луча.
Углом между двумя направлениями называется величина наименьшего угла между любыми лучами этих направлений с общим началом.
Угол между лучами l1 и l2 обозначается \(\widehat\). По определению угол между двумя направлениями находится в промежутке [0°; 180°].
Углом между двумя ненулевыми векторами называется угол между направлениями этих векторов. Угол между векторами а и b (рис. 21) обозначается \(\widehat\)
Если угол между векторами а и b равен 90°, то эти векторы называют перпендикулярными (или ортогональными) и пишут: а ⊥ b.
Отметим, что если а\(\upuparrows\)b, то \(\widehat\) = 0°, а если а\(\uparrow\downarrow\)b, то \(\widehat\) =180°.
Рассмотрим некоторую прямую l, на которой выбрана единица измерения длины. Пусть А и В — некоторые точки прямой l такие, что |АВ| = 1.
Тогда векторы \(\overrightarrow\) и \(\overrightarrow\) называются единичными векторами прямой l (рис.22).
Единичные векторы прямой задают на ней два направления. Одно из них называется положительным, другое — отрицательным.
Прямая, на которой выбрана точка О (начало отсчета), задано положительное направление и задана единица измерения длины, называется осью. Вектор е (|е| = 1), задающий направление оси, называется единичным вектором оси (рис. 23).
Углом между вектором и осью, называется величина угла между направлением оси и направлением вектора (рис. 24).
Вычисление угла между двумя векторами.
По определению скалярного произведения
а • b = | а | • | b | cos\(\widehat<(a; b)>\).
Следовательно, если а =/= 0 и b =/= 0, то
т. е. косинус угла между ненулевыми векторами а и b равен скалярному произведению этих векторов, деленному на произведение их длин.
Пусть в пространстве имеется прямоугольная декартова система координат, и пусть заданы векторы а = (x1 ; y1 ; z1) и b = (x2 ; y2; z2). Тогда, как известно,
$$ a\cdot b = x_1 x_2 + y_1 y_2 + z_1 z_2, \\ |a|=\sqrt^2 + ^2 + ^2>, |b|=\sqrt^2 + ^2 + ^2> $$
и поэтому, используя равенство (1), получим формулу
Эта формула позволяет вычислить косинус угла между векторами а и b по координатам этих векторов.
Если векторы а = (x1 ; y1 ) и b = (x2 ; y2) заданы в прямоугольной декартовой системе координат на плоскости, то косинус угла между ними вычисляется по формуле
Задача 1. Даны два вектора а = (3; 4) и b = (4; 3). Найти угол между ними.
Подставив координаты векторов в формулу (3), получим
откуда (по таблице) \(\widehat<(a; b)>\) ≈ 16°.
Задача 2. Найти косинус угла между векторами
а = 2i + 2j — k, b = i — 2j + 2k .
Используя формулу (2), получим
29. Углы между прямой и осями координат
Под углом между прямой
и осью абсцисс
принимается угол
между направляющим вектором
прямой
и ортом
оси
. Для данной прямой 

Угол
с осью
определим из формулы

. (1)
Аналогично определяются углы
и
между прямой
и осями
и
:

(2)
Величины
называются Направляющими косинусами прямой
.
Пример. Найти углы, образуемые прямой

С осями координат.
Решение. Найдем координаты направляющего вектора, как векторное произведение нормалей к данным плоскостям
и
. Координаты нормальных векторов плоскостей
и
:
т. е.
.
Используя формулы (1)-(2), получим



- Главная
- Заказать работу
- Стоимость решения
- Варианты оплаты
- Ответы на вопросы (FAQ)
- Отзывы о нас
- Примеры решения задач
- Методички по математике
- Помощь по всем предметам
- Заработок для студентов
найти угол между вектором и осями координат

Полностью задача звучит так — построить плоскость по трем точкам и найти ее угол с осями координат. Для решения я строю нормаль к плоскости, нормирую ее и беру арксинус как написали в посте
Но то, что получается мало похоже на правду. Что я делаю не так?
import numpy as np import math import plotly.graph_objs as go points = [[6.5612, 5.3440, 2.4175], [1.2279, 6.1946, 4.5744], [9.1216, 9.3959, 2.6394]] p0, p1, p2 = points x0, y0, z0 = p0 x1, y1, z1 = p1 x2, y2, z2 = p2 ux, uy, uz = u = [x1-x0, y1-y0, z1-z0] vx, vy, vz = v = [x2-x0, y2-y0, z2-z0] u_cross_v = [uy*vz-uz*vy, uz*vx-ux*vz, ux*vy-uy*vx] n = np.cross(u, v) point = np.array(p0) normal = np.array(u_cross_v) nn = (points[1] + normal) d = -point.dot(normal) xx, yy = np.meshgrid(range(10), range(10)) zz = (-normal[0] * xx - normal[1] * yy - d) * 1. / normal[2] fig = go.Figure() fig.add_trace(go.Surface(z=zz, opacity=0.5)) fig.add_trace(go.Scatter3d(x=[x0, x1, x2], y=[y0, y1, y2], z=[z0, z1, z2], mode="lines", opacity=1.0)) fig.add_trace(go.Scatter3d(x=[nn[0], x1], y=[nn[1], y1], z=[nn[2], z1], mode="lines", opacity=1.0)) fig.show() nn = n / np.linalg.norm(n) angles = np.abs(np.arcsin(nn)) print("angles", angles) v=[] for i in angles: a=i * 180 / math.pi v.append(a) print("angles", v)
Результат angles [19.08435917574169, 14.857700717809104, 65.44817677698197]
вектор а=(5;4;3;) найти угол между вектором а и осью Ох
Выбираем вектор х (1,0,0)
скалярное произведение (a,x)=a·x·cos(ax)=корень (5·5+4·4+3·3)·1·cos(ax)=корень (50)·cos(ax)
С другой стороны: (a,x)=5·1+4·0+3·0=5
получаем: корень (50)·cos(ax)=5 => угол (ax)=arccos(5/корень (50))
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.