Существует две операции умножения над векторами. Результатом первой является число(скаляр) отсюда и название скалярное произведение. Результатом второго является вектор и оно носит название векторного произведение. Часто в программирование первое обозначается, как DotProduct, а второе CrossProduct. ====== Скалярное произведение ====== ===== Определение скалярного произведения ===== Скалярное произведение векторов \mathbf{a} и \mathbf{b} в пространстве R^3 - есть произведение длин векторов на угол между ними.\\ 1. \langle\mathbf{a} , \mathbf{b} \rangle= |\mathbf{a}| \cdot |\mathbf{b}| \cdot \cos \angle{(\mathbf{a},\mathbf{b})} Формула скалярного произведения для R^N в водиться по аналогии с R^3 (см. [4]) как\\ 2. \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\\ Тогда число в формуле 3 можно назвать углом между векторами.\\ 3. \frac{\langle \mathbf a, \mathbf b \rangle}{{\langle \mathbf a, \mathbf a \rangle}*{\langle \mathbf b, \mathbf b \rangle}}=cos(\phi) \\ Это можно сделать в виду того, что левая часть не выходит за допустимое значения cos. Т.е больше -1 и меньше 1. Так как формула 2 не требует вычисления cos и корня, то она вычисляется быстрее и обычно используется при расчётах. Приняв скалярное произведение вектора себя на себя, как квадрат длины вектора формула 4, то можно переписать 3 в виде 5.\\ 4. {\langle \mathbf a, \mathbf b \rangle}={|\mathbf{a}|}^2\\ 5. \frac{\langle \mathbf a, \mathbf b \rangle}{{|\mathbf{a}|}*{|\mathbf{b}|}}=cos(\phi) \\ ===== Свойства скалярного произведения ===== Скалярное произведения вектора на себя равно длине вектора в квадрате.\\ 3. \langle \mathbf a, \mathbf a \rangle = \|\mathbf a\|^2 \\ Умножение на число.\\ 4. \langle \lambda\mathbf{a}, \mathbf{b} \rangle=\lambda\langle \mathbf{a}, \mathbf{b} \rangle=\langle \mathbf{a},\lambda\mathbf{b} \rangle .\\ Дистрибутивость\\ 5. \langle \mathbf a,\mathbf b+\mathbf c \rangle = \langle \mathbf a, \mathbf b \rangle+\langle\mathbf a,\mathbf c \rangle \\ Угол между векторами.\\ 6. \cos\theta = \frac{\langle\mathbf{a},\mathbf{b}\rangle}{\|\mathbf{a}\|\,\|\mathbf{b}\|} . Проекции вектора a на вектор b , есть скалярное произведение делённое на длину вектора b .\\ 7. a_b=\frac{\langle\mathbf{a},\mathbf{b}\rangle}{\|\mathbf{b}\|} ===== Код скалярного произведения ===== 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. **Выходные параметры:** * Реальное число равное скалярному произведению векторов. **Примечание:**\\ * Для реальных чисел данный код не является точным, так как не учитывает округления(См. [[ошибки в численных методах]]). Если вместо реальных чисел использовать целые переменной длиной или рациональные числа переменной длиной, то функция будет точной. ====== Векторное произведение ====== ===== Определение векторного произведения ===== Векторным произведением вектора a на вектор b в пространстве R^3 называется вектор c , удовлетворяющий следующим требованиям:\\ длина вектора c равна произведению длин векторов a и b на синус угла \varphi между ними: \left| \mathbf c \right| = \left| \mathbf a \right| \left| \mathbf b \right| \sin \varphi ;\\ вектор c ортогонален каждому из векторов a и b ;\\ вектор c направлен так, что тройка векторов abc является правой;\\ ===== Свойства скалярного произведения ===== ===== Код векторного произведения ===== 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\\