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

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

Формула

Чтобы найти косинус угла между векторами нужно найти отношение скалярного произведения векторов и произведение их длин (модулей).

Угол между векторами.

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

Если векторы будут заданы тремя координатами и , то есть в пространстве, то нахождение косинуса угла между векторами нужно выполнить по формуле:

В числителе находится скалярное произведение векторов, то есть каждая координата умножается на соответствующую координату другого вектора и при этом находится сумма всех произведений. А в знаменателе расположено произведение модулей векторов. Каждый модуль равен извлеченному квадратному корню из суммы квадратов координат вектора.

Примеры решений

Пример
Даны два вектора и . Требуется найти косинус угла между векторами.
Решение

Напомним как найти косинус угла между векторами. Необходимо определить на плоскости или в пространстве находятся векторы, то есть сколько у них координат. Затем воспользоваться подходящей формулой.

Первым делом вычисляем скалярное произведение: каждую координату одного вектора умножаем на соответствующую координату другого вектора, а потом суммируем произведения:

Далее находим чему равны модули каждого из векторов:

Теперь можно найти косинус угла между векторами подставив найденные значения в первую формулу:

Ответ
на школьную страницу…

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

С.И.Хашин

Нахождение угла между векторами — самая обычная, часто возникающая задача в компьютерной графике. Пусть, например, нам даны два вектора на плоскости с целыми координатами v1=(x1 , y1 ), v2=(x2 , y2 ). Косинус угла между ними равен

Запишем эту формулу в виде выражения на C++:

(x1*x2+y1*y2)/(sqrt(x1*x1+y1*y1)*sqrt(x2*x2+y2*y2))

Осталось взять арккосинус. Оформим всё это в виде функции на C++:

double angle( int x1, int y1, int x2, int y2) { return acos( (x1*x2+y1*y2)/(sqrt((double)x1*x1+y1*y1)*sqrt((double)x2*x2+y2*y2))); }

Здесь приходится писать, чтобы явно указать компилятору, какой именно вариант функции использовать, а именно — квадратный корень из .

Проверим:

— всё вроде бы сходится. Проверка для самых различных значений дает ожидаемый ответ.

Но давайте найдем угол вектора с самим собой. Конечно, угол должен быть равен 0. Часто так и получается. Но проверим для вектора :

Неужели компьютер сломался? Нет, конечно.

Так почему же? Всё просто.

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

x1*x1+y1*y1=13, sqrt(x1*x1+y1*y1)=3.6055512754640

и

sqrt(x1*x1+y1*y1)*sqrt(x1*x1+y1*y1)=12.999999999999998

— чуть меньше 13.

Поэтому величина

(x1*x2+y1*y2)/(sqrt(x1*x1+y1*y1)*sqrt(x2*x2+y2*y2)

будет чуть больше 1. Арккосинусу это, конечно же не понравилось. Вот он и выдал в результате , то есть ошибку.

Как же быть? Да ничего сложного, просто придется функцию несколько усложнить, например так:

double angle( int x1, int y1, int x2, int y2) { double t = (x1*x2+y1*y2)/(sqrt((double)x1*x1+y1*y1)*sqrt((double)x2*x2+y2*y2)); if (t<-1) t=-1; else if(t> 1) t= 1; return acos(t); }

Краткостью пришлось пожертвовать, зато — всегда работает!

Форум: «Потрепаться»;
Поиск по всему сайту: www.delphimaster.net;
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];

Вниз

Алгоритм функции Arctan 

Cliff   (2003-07-22 03:04) [0]

Кто нибудь знает алгоритм нахождения арктангенса на паскале ????

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

Помогите кто может 8)


default   (2003-07-22 04:37) [1]

вот
из окна CPU содрано


default   (2003-07-22 04:42) [2]

а сама реализация алгоритма — выполняется аппаратно сопроцессором


default   (2003-07-22 05:16) [3]

ещё можно через арккосинус вычислить


Mr. API   (2003-07-22 08:45) [4]

Можно разложить в ряд.


default   (2003-07-22 08:47) [5]

можно и в ряд
в Тейлора что ли?
дольше считать будет только…


Mr. API   (2003-07-22 10:40) [6]

именно в Тейлора. глюки с точностью могут быть. сейчас как программку напишу, так выложу. Там прикол такой, что
arctg(x)=x — x^3/3 + x^5/5 +…+(-1)^((n-1)/2))*x^n/n, где n- нечетное число. ^-возведение в степень.
Т. е. чтобы выглядело как ряд.
acrtg(x)=sum((-1)^n*x^(n-1)/2*n-1,n=1..infinity);
Ну понятно, что a=0.

А проц, наверное, так же считает? или нет?


Mr. API   (2003-07-22 13:21) [7]

можно так.


BOA_KAA   (2003-07-22 13:55) [8]

Проще залезть в модуль Math и посмотреть, как там это сделано


Форум: «Потрепаться»;
Поиск по всему сайту: www.delphimaster.net;
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];

Наверх

Память: 0.72 MB
Время: 0.034 c

Угол между прямой и плоскостью. Метод координат. Задание 14

Ответ оставил Гость

Скалярное произведение этих векторов с одной стороны (по определению)  a*b=|a|*|b|*cosα  ,где  α -угол между  векторами  , с другой стороны (по теореме )       a*b  = a(x)*b(x) +a(y)*b(y) 
Значит :
|a|*|b|*cosα =a(x)*b(x) +a(y)*b(y)      (1) 
———————
|a|²= (a(x))²+(a(y))²    =(1)² + (-2)²  =5   ⇒|a| =√5 ;
|b|²= (b(x))²+(b(y))² =  3² +4²   = 5 ;
a(x)*b(x) +a(y)*b(y)  =1*3 +(-2)*4 = -5;
————- в ыч   .значения поставим в уравнению (1)  ——
√5 *5 *cosα  =   — 5 ;
cosα = -1/√5     (α >90)   ;
1+tq²α= 1/cos²α  ⇒tq²α = 1/cos²α  — 1  =1/(-1/√5)²  — 1 =5 -1 =4  ;
tq²α = 4;
tqα = -2  т.к. (α >90) 

Общим уравнением прямой называется уравнение

, (3.1)

полученное из уравнения

. (3.2)

Геометрический смысл общего уравнения прямой заключается в том, что оно описывает прямую, проходящую через точку перпендикулярно вектору , который называется нормальным вектором прямой

Каноническим уравнением прямой называется уравнение

.

(3.3)

Геометрический смысл канонического уравнения прямой заключается в том, что оно описывает прямую, проходящую через точку параллельно вектору , который называется направляющим вектором прямой:

Уравнением прямой с угловым коэффициентом называется уравнение

, (3.4)

или

. (3.5)

Геометрический смысл коэффициента k – это тангенс угла наклона прямой к положительному направлению оси Ox, т.е. k=tga, b – это отрезок, отсекаемый прямой на оси Oy.

Пример 3.1. Определить при каких значениях a и b две прямые

(a–1)x–2y–1=0 и 6x–4y+b=0

а) пересекаются; б) параллельны; в) совпадают.

Решение. Две прямые L1: и L2: параллельны, если

.

В частности, прямые совпадают, если

.

В случае

,

прямые пересекаются. В нашем случае, из условия

находим, что две прямые совпадают, если a=4 и b=-2. Две прямые параллельные, если a=4 и b¹-2. Если a¹4 при любом значении b, то прямые пересекаются.

Пример 3.2. Определить при каком значении параметра t прямая

а) параллельна оси абсцисс; б) параллельна оси ординат; в) проходит через начало координат.

Решение. Прямая параллельна оси абсцисс, если A=0; параллельна оси ординат, если B=0; проходит через начало координат, если C=0.

В нашем случае, если , т.е. при и , прямые будут параллельны оси абсцисс: и .

Если , т.е. при , то прямая пройдёт параллельно оси ординат: .

Прямая будет проходить через начало координат, если , т.е. при : .

Пример 3.3. Заданы точка M(–1;2) и прямая L: –2x+y–1=0. Написать уравнения прямых L1 и L2, проходящих через точку M и L1||L и L2^L.

Решение. Сделаем чертеж. Чтобы построить прямую, достаточно знать две ее точки. Очевидно, что A(0;1), B(1;3)ÎL. Через найденные точки проводим прямую.

Найдите синус угла между векторами а(1;2) и в(2;1)

Прямая L задана общим уравнением прямой, тогда ее нормальный вектор имеет координаты n={–2;1}. Поскольку L1||L Þ L1^n, то вектор n будет нормальным вектором также и для прямой L1. Тогда используя формула (3.2), получим

–2(x+1)+(y–2)=0,

или

L1: –2x+y–4=0.

Поскольку L2^L Þ L2||n, то вектор n будет направляющим вектором L2. Тогда используя формулу (3.3), получим

,

или

L2: x+2y–3=0.

Пример 3.4. Найти координаты точки М, лежащей на одной прямой с точками A(–1;1) и B(1;5), если абсцисса и ордината этой точки равны между собой.

Решение. Найдем уравнение прямой (АВ), воспользовавшись формулой прямой, проходящей через две точки:

.

Разделив последнее уравнение на 2, получим

(AB): 2x–y+3=0.

Пусть исходная точка имеет координаты M(a;a). Так как она принадлежит прямой (AB), то ее координаты должны удовлетворять уравнению:

2a–a+3=0 Þ a=–3.

Таким образом, искомая точка имеет координаты М(–3;–3).

Пример 3.5.. Из точки M(3;2) выходит луч света под углом j = arctg2 к оси Ox. Найти уравнения падающего и отраженного лучей.

y

 
 

L2L1

j j

K x

Решение. Найдем уравнение падающего луча. Эта прямая L1 проходит через точку M с угловым коэффициентом

k1 = tgj = 2.

Тогда используя уравнение (3.5), получим

y–2 = 2(x–3),

или

L1: 2x–y–4=0.

Это есть уравнение падающего луча. Чтобы составить уравнение отраженного луча L2, нужно знать координаты точки отражения K и угловой коэффициент k2. Координаты точки отражения K можно найти как точку пересечения прямой L1 и оси Ox:

Þ

т.е. K(2;0). Угловой коэффициент k2 найдем из того условия, что «угол падения равен углу отражения». Тогда очевидно, что j2 = 1800–j. Отсюда

k2 = tgj2 = tg(1800–j) = –tgj = –2.

Теперь известны все параметры, чтобы записать уравнение отраженного луча:

y = –2(x–2),

или

L2: 2x+y–4=0.


Предыдущая201202203204205206207208209210211212213214215216Следующая


Дата публикования: 2014-11-03; Прочитано: 1636 | Нарушение авторского права страницы



studopedia.org — Студопедия.Орг — 2014-2018 год.(0.005 с)…

Добавить комментарий

Закрыть меню