Существует две операции умножения над векторами. Результатом первой является число(скаляр) отсюда и название скалярное произведение. Результатом второго является вектор и оно носит название векторного произведение.

Часто в программирование первое обозначается, как DotProduct, а второе CrossProduct.

Скалярное произведение

Определение скалярного произведения

Скалярное произведение векторов <math>\mathbf{a} </math> и <math>\mathbf{b} </math> в пространстве <math>R^3</math> - есть произведение длин векторов на угол между ними.
1. <math>\langle\mathbf{a} , \mathbf{b} \rangle=

\mathbf{a} \cdot \mathbf{b}

Формула скалярного произведения для <math> R^N </math> в водиться по аналогии с <math> R^3 </math>(см. [4]) как
2. <math>\langle \mathbf{a}, \mathbf{b} \rangle=\mathbf{a}^T \mathbf{b} = a_1 \cdot b_1+a_2 \cdot b_2+\dots+a_n \cdot b_n</math>
Тогда число в формуле 3 можно назвать углом между векторами.
3. <math> \frac{\langle \mathbf a, \mathbf b \rangle}langle_mathbf_a_mathbf_a_rangle_langle_mathbf_b_mathbf_b_rangle=cos(\phi) </math>
Это можно сделать в виду того, что левая часть не выходит за допустимое значения cos. Т.е больше -1 и меньше 1.

Так как формула 2 не требует вычисления cos и корня, то она вычисляется быстрее и обычно используется при расчётах.

Приняв скалярное произведение вектора себя на себя, как квадрат длины вектора формула 4, то можно переписать 3 в виде 5.
4. <math>{\langle \mathbf a, \mathbf b \rangle}={|\mathbf{a}|}^2</math>
5.<math> \frac{\langle \mathbf a, \mathbf b \rangle}\mathbf{a}|}*{|\mathbf{b}|=cos(\phi) </math>

Свойства скалярного произведения

Скалярное произведения вектора на себя равно длине вектора в квадрате.
3. <math> \langle \mathbf a, \mathbf a \rangle = \|\mathbf a\|^2 </math>
Умножение на число.
4. <math>\langle \lambda\mathbf{a}, \mathbf{b} \rangle=\lambda\langle \mathbf{a}, \mathbf{b} \rangle=\langle \mathbf{a},\lambda\mathbf{b} \rangle </math>.
Дистрибутивость
5. <math>\langle \mathbf a,\mathbf b+\mathbf c \rangle = \langle \mathbf a, \mathbf b \rangle+\langle\mathbf a,\mathbf c \rangle </math>
Угол между векторами.
6. <math>\cos\theta = \frac{\langle\mathbf{a},\mathbf{b}\rangle}{\|\mathbf{a}\|\,\|\mathbf{b}\|} </math>.

Проекции вектора <math>a </math> на вектор <math>b </math>, есть скалярное произведение делённое на длину вектора <math>b </math>.
7. <math> a_b=\frac{\langle\mathbf{a},\mathbf{b}\rangle}{\|\mathbf{b}\|} </math>

Код скалярного произведения

function DotProduct(a,b:TVectorN):Real;
var i:Integer;
begin
Result:=0;
for i:=0 to Length(a)-1 do
  Result:=Result+a[i]*b[i];
end;

Входные параметры:

  • Вектора реальных чисел a и b.

Выходные параметры:

  • Реальное число равное скалярному произведению векторов.

Примечание:

  • Для реальных чисел данный код не является точным, так как не учитывает округления(См. ошибки в численных методах). Если вместо реальных чисел использовать целые переменной длиной или рациональные числа переменной длиной, то функция будет точной.

Векторное произведение

Определение векторного произведения

Векторным произведением вектора <math>a </math> на вектор <math>b </math> в пространстве <math>R^3</math> называется вектор <math>c </math>, удовлетворяющий следующим требованиям:
длина вектора <math>c </math> равна произведению длин векторов <math>a </math> и <math>b </math> на синус угла <math>\varphi </math> между ними: <math>\left| \mathbf c \right| = \left| \mathbf a \right| \left| \mathbf b \right| \sin \varphi </math>;
вектор <math>c </math> ортогонален каждому из векторов <math>a </math> и <math>b </math>;
вектор <math>c </math> направлен так, что тройка векторов <math>abc</math> является правой;

Свойства скалярного произведения

Код векторного произведения

function CrossProduct(a,b:TVector3):TVector3; 
begin
Result[0]:=a[1]*b[2]-a[2]*b[1];
Result[1]:=-a[0]*b[2]+a[2]*b[0];
Result[2]:=a[0]*b[1]-a[1]*b[0];
end;

Входные параметры:

  • Вектора реальных чисел a и b с числом элементов 3.

Выходные параметры:

  • Вектор реальных чисел с числом элементов 3. Компоненты которого равны векторному произведению векторов a и b.

Список литературы:
[1] http://ru.wikipedia.org/wiki/Векторное_произведение
[2] Б. Н. ДЕЛОНЕ и Д. А. РАЙКОВ; Аналитическая геометрия; том. 1, 1948
[3] А. В. Погорелов, Геометрия, учебник для 7-11 класс средней школы.
[4] Мантуров О.В., Матвеев Н.М. Курс высшей математики Линейная алгебра. Аналитическая геометрия. Дифференциальное исчисление функций одной переменной 1986

 
articles/умножение_вектора_на_вектор.txt · Последнее изменение: d.m.Y H:i — Pavia
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki