Геометрическая алгебра
Здесь речь пойдёт о геометрической алгебре — науке, изучающей алгебраические свойства некоторых геометрических объектов.
Не следует путать геометрическую алгебру с гораздо более сложной и абстрактной алгебраической геометрией — наукой, изучающей геометрические свойства некоторых алгебраических объектов.
Произведения в алгебре
Основные операции в алгебре — сумма и произведение. Какие бы действия этими словами не назывались, обычно от них требуют выполнения распределительных законов:
\[ \begin{aligned} a(x+y) & = ax + ay \\ (a+b)x & = ax + bx \end{aligned} \]
Почти никаких других свойств обычно не требуют, но некоторые прилагаются к распределительным законам более-менее забесплатно.
Например, если есть «единица» — такой объект \(e\), что
\[ ae = ea = a \]
то, если сложение обладает сочетательным законом, выполняется равенство
\[ x + x + y + y = x(e+e) + y(e+e) = (x+y)(e+e) = (x+y)e + (x+y)e = x + y + x + y \]
откуда при возможности сокращения на \(x+\square\) и \(\square+y\) следует переместительный закон сложения:
\[ x + y = y + x \]
Как мы уже знаем, в геометрии широко используются векторы, которые можно складывать между собой и растягивать в числовой коэффициент раз.
А вот о произведении векторов между собой не говорят. Причём по очень простой причине: разных способов ввести осмысленное произведение существует очень много, причём все они обладают билинейностью — расширенной версией распределительных законов: а именно, для любых чисел \(\alpha\) и \(\beta\) выполнено
\begin{aligned} a(\alpha x + \beta y) & = \alpha ax + \beta ay \\ (\alpha a + \beta b)x & = \alpha ax + \beta bx \end{aligned}
Наиболее полезные из произведений мы и рассмотрим в этом разделе. Договоримся при этом, что у нас заранее фиксирован некоторый ортонормированный базис \(e_1\), \(e_2\), \(e_3\). Ортонормированность означает, что вектора перпендикулярны друг другу и все они единичной длины.
Таблица умножения
Заметим, что из билинейности следует, что произведение любой пары векторов можно однозначно задать, задав произведения базисных:
\[ (a_1e_1 + a_2e_2 + a_3e_3)(b_1e_1 + b_2e_2 + b_3e_3) = \sum_{ij} (a_ia_j)(e_ie_j) \]
Зная \(e_ie_j\), мы можем по этой формуле вычислить произведение любой пары векторов.
Скалярное произведение
Обычно обозначается точкой. Результат — число. Имеет следующую таблицу умножения:
\[ \begin{matrix} e_1\cdot e_1 = 1 & e_1\cdot e_2 = 0 & e_1\cdot e_3 = 0 \\ e_2\cdot e_1 = 0 & e_2\cdot e_2 = 1 & e_2\cdot e_3 = 0 \\ e_3\cdot e_1 = 0 & e_3\cdot e_2 = 0 & e_3\cdot e_3 = 1 \end{matrix} \]
Из этой таблицы следует общая формула
\[ (a_1e_1 + a_2e_2 + a_3e_3)\cdot(b_1e_1 + b_2e_2 + b_3e_3) = a_1b_1 + a_2b_2 + a_3b_3 \]
В частности, если \(a_i = b_i\), получается сумма квадратов координат вектора, что, согласно теореме Пифагора, является длиной этого вектора. Поэтому сформулируем
Свойство №1: скалярный квадрат есть квадрат длины
\[ a\cdot a = |a|^2 \]
Далее заметим, что из явной формулы сразу следует
Свойство №2: скалярное произведение коммутативно
\[ a\cdot b = b\cdot a \]
Пусть теперь вектора \(a\) и \(b\) перпендикулярны друг другу. Тогда
\[ (a+b)\cdot(a+b) = |a+b|^2 = \text{по т. Пифагора} = |a|^2 + |b|^2 = a\cdot a + b\cdot b \]
Если мы теперь раскроем скобки в левой части и сократим обе части на \(a\cdot a\) и \(b\cdot b\), то останется
\[ a\cdot b + b\cdot a = 0 \]
А из того, что \(a\cdot b = b\cdot a\), сразу следует
Свойство №3: скалярное произведение перпендикулярных векторов равно нулю
\[ a\cdot b = 0,\;\text{если \(a\) и \(b\) перпендикулярны} \]
Пусть теперь \(a\) и \(b\) — два произвольных вектора, причём \(b\) ненулевой. Обозначим \(A\) проекцию вектора \(a\) на вектор \(b\). Заметим, что тогда вектор
\[ c = a - \frac{A}{|b|}b \]
перпендикулярен вектору \(b\). Поэтому \(c\cdot b = 0\). Раскрывая в этом равенстве \(c\) по определению, получаем
\[ a\cdot b - \frac{a}{|b|}|b|^2 = 0 \]
откуда следует
Свойство №4: скалярное произведение векторов равно произведению проекции одного из них на другой и длины другого
что, с учётом \(A=|a|\cos\angle(a,b)\) можно записать как
\[ a\cdot b = |a||b|\cos\angle(a,b) \]
откуда следует
Свойство №5: если скалярное произведение ненулевых векторов равно нулю, то они перпендикулярны
Каких свойств нет?
Нет, к сожалению, сочетательного закона: результат — число, которое нельзя скалярно умножить на вектор.
Более того, если даже скалярным произведением числа на вектор считать растяжение, сочетательного закона всё равно нет:
\[ e_2 = (e_1\cdot e_1) e_2 \ne e_1 (e_1\cdot e_2) = 0 e_1 \]
Векторное произведение
Обычно обозначается крестиком. Результат — вектор.
Имеет следующую таблицу умножения:
\[ \begin{matrix} e_1\times e_1 = 0 & e_1\times e_2 = e_3 & e_1\times e_3 = -e_2 \\ e_2\times e_1 = -e_3 & e_2\times e_2 = 0 & e_2\times e_3 = e_1 \\ e_3\times e_1 = e_2 & e_3\times e_2 = -e_1 & e_3\times e_3 = 0 \end{matrix} \]
Из этой таблицы следует общая формула
\[ \begin{aligned} (a_1e_1 + a_2e_2 + a_3e_3)\times(b_1e_1 + b_2e_2 + b_3e_3) & = e_1 (a_2b_3 - a_3b_2) \\ & + e_2 (a_3b_1 - a_1b_3) \\ & + e_3 (a_1b_2 - a_2b_1) \end{aligned} \]
Из этой формулы сразу следует
Свойство №1: векторный квадрат любого вектора нулевой
\[ a\times a = 0 \]
Более того, из \(a\times b = 0\) следует, что \(a\) и \(b\) параллельны.
Также из общей формулы сразу следует
Свойство №2: векторное произведение антикоммутативно
\[ a\times b = -b\times a \]
А ещё путём нехитрых вычислений из общей формулы можно получить
Свойство №3: векторное произведение перпендикулярно любому из сомножителей
\[ \begin{aligned} (a\times b) \cdot a & = 0 \\ (a\times b) \cdot b & = 0 \end{aligned} \]
Любители алгебры также могут, вычислив скалярный квадрат векторного произведения, без особого труда доказать
Свойство №4: длина векторного произведения перпендикулярных векторов равна произведению их длин
\[ |a\times b| = |a||b|,\;\text{если \(a\) и \(b\) перпендикулярны} \]
Применив это соображение к вектору \(c\) построенному по паре произвольных \(a\) и \(b\) по рецепту из разговора про скалярное произведение, получим
\[ |a\times b| = |c\times b| = |c||b| \]
что с учётом очевидного соотношения \(|c|=|a|\sin\angle(a,b)\) даёт
Свойство №5: длина векторного произведения равна произведению длин векторов, помноженному на синус угла между ними
\[ |a\times b| = |a||b|\sin\angle(a, b) \]
Каких свойств нет
Нет, к сожалению, сочетательного закона, хотя теперь с типами всё нормально. Вместо него есть тождество Якоби:
\[ (a\times b)\times c + (b\times c)\times a + (c\times a)\times b = 0 \]
Тензорное произведение
Вводится исходя из позиции: «нам нужен сочетательный закон, поэтому к чёрту все остальные свойства!»
Для любой последовательности \(\alpha\) чисел из набора от 1 до 3 введём «базисный» тензор \(e_{\alpha}\) (сюда, конечно же, входят наши \(e_1\), \(e_2\), \(e_3\)). Рангом такого тензора будем называть длину последовательности индексов. Например, базисные вектора — тензоры ранга 1.
(Градуированным) тензором будем называть взвешенную сумму таких базисных тензоров (две суммы равны тогда и только тогда, когда равны результаты «приведения подобных»).
Таблица умножения содержит бесконечное множество ячеек вида
\[ e_{\alpha}\otimes e_{\beta} = e_{\alpha\beta} \]
Например,
\[ (1e + 2e_2)\otimes(3e_{23}+4e_{2}) = 3e_{23} + 6e_{223} + 4e_{2} + 8 e_{22} \]
Какие свойства есть?
Есть сочетательный закон
\[ (a\otimes b)\otimes c = a\otimes(b\otimes c) \]
Никуда не делась билинейность (при помощи которой мы определяем произведение произвольных взвешенных сумм базисных тензоров).
Каких свойств нет?
Да никаких интересных, кроме сочетательного закона и билинейности. Также нет никакого геометрического смысла (а что могла бы означать сумма \(3e + 2e_{1} - 7 e_{1332121}\)?)
Полезное соглашение
Как в многочленах никто без надобности не пишет \(ax^0\), так и в тензорах вместо \(ae\), где \(a\) — число, все обычно пишут просто \(a\).
Геометрическое произведение
Обозначается либо никак, либо знаком ⟑. Мы будем обозначать геометрическое произведение никак.
Для того, чтобы ввести геометрическое произведение, нам понадобится понятие строго упорядоченного базисного тензора (СУБТ). Назовём СУБТ базисный тензор, у которого последовательность индексов строго упорядочена.
В трёхмерном пространстве есть всего 8 СУБТ:
- один — ранга 0: \(e\)
- три — ранга 1: \(e_1\), \(e_2\), \(e_3\)
- три — ранга 2: \(e_{12}\), \(e_{13}\), \(e_{23}\)
- один — ранга 3: \(e_{123}\)
Входы: взвешенные суммы СУБТ. Результат: тензор, который тоже является взвешенной суммой СУБТ.
Можно было бы выписать всю таблицу умножения, но мы вместо этого сформулируем процедуру вычисления произведения \(e_{\alpha}e_{\beta}\):
- сортируем последовательность \(\alpha\beta\) путём обменов
- считаем чётность количество обменов
- выкидываем из неё все пары одинаковых чисел; то, что осталось, назовём \(\gamma\)
- если обменов было чётное число, то результат \(e_{\gamma}\)
- если же обменов было нечётное число, то результат \(-e_{\gamma}\)
Например, \(e_{12}e_{13}\) можно вычислить так:
- отсортированная последовательность \(1123\)
- пузырёк делает ровно один обмен; это — нечётное число
- \(\gamma = 23\)
- результат: \(-e_{23}\)
Конечно, открытым остаётся вопрос о том, почему чётность количества обменов не зависит от способа сортировки. Тем не менее, ответ на этот вопрос прост: каждый обмен изменяет чётность количества пар элементов, стоящих в неправильном порядке — таких пар, в которых правый элемент меньше левого.
Свойство №1: сочетательный закон
Как ни странно, но вышеописанная процедура умножения СУБТ ассоциативна. Поэтому и для произвольных сумм СУБТ выполнено
\[ (ab)c = a(bc) \]
Вариации
То, что мы описали выше, называется \((3,0,0)\)-произведением. В общем случае \((a,b,c)\)-произведение определяется в \((a+b+c)\)-мерном пространстве такой же процедурой за исключением шага с удалением дубликатов:
- за каждый дубликат чисел от \(a+1\) до \(a+b\) нужно результат домножить на \(-1\)
- если есть хотя бы один дубликат числа от \(a+b+1\) до \(a+b+c\), то результат равен 0
Независимо от типа, любое такое произведение обладает сочетательным законом.
Произведения типа \((3,1,0)\) используются в теории относительности, а типа \((3,0,1)\) — в проективной геометрической алгебре. Нам же сейчас понадобится \((0,0,3)\)-произведение.
Внешнее произведение
Это самое \((0,0,3)\)-произведение называется внешним и обозначается \(\wedge\).
Нетрудно получить явную формулу для внешнего произведения векторов:
\[ \begin{aligned} (a_1e_1 + a_2e_2 + a_3e_3)\wedge(b_1e_1 + b_2e_2 + b_3e_3) & = e_{12} (a_1b_2 - a_2b_1) \\ & + e_{13} (a_1b_3 - a_3b_1) \\ & + e_{23} (a_2b_3 - a_3b_2) \end{aligned} \]
Не правда ли, похожа на таковую для векторного произведения? Причём внешнее произведение, в отличие от векторного, имеет сочетательный закон!
Из этой формулы сразу следуют
Свойство №2: внешнее произведение вектора с самим собой равно 0
\[ a\wedge a = 0 \]
Более того, из \(a\wedge b = 0\) следует, что вектора \(a\) и \(b\) параллельны.
Это позволяет сразу договориться о геометрическом смысле внешнего произведения.
Поскольку
\[ a\wedge b = (a + tb)\wedge b \]
для любого числа \(t\), а подобными преобразованиями из пары непараллельных векторов можно сделать пару непараллельных векторов любых направлений (где под «направлением» понимается прямая, а не луч), можно заключить следующее: если пара векторов \(a, b\) задаёт ту же плоскость, что и пара векторов \(u, v\), то произведения \(a\wedge b\) и \(u\wedge v\) пропорциональны друг другу.
Более того, если пары векторов \(a, b\) и \(u, v\) задают разные плоскости, то произведения \(a\wedge b\) и \(u\wedge v\) не пропорциональны. Действительно, из этих пар векторов преобразованиями вышеуказанного вида сделать пары, в которых первые вектора параллельны друг другу. Пусть эти пары \(p, q\) и \(\alpha p, r\). Нетрудно заметить, что если бы произведения были бы пропорциональны:
\[ p \wedge q = \beta (\alpha p \wedge r) \]
то их разность, имеющая вид
\[ p \wedge (q - \alpha\beta r) \]
была бы нулевой. А это означало бы, что \(q - \alpha\beta r\) пропорционально \(p\). То есть \(q\) лежало бы в той же плоскости, что и \(p\) с \(r\). Что противоречит предположению о том, что пары \(a,b\) и \(u,v\) задают разные плоскости.
Итого имеем
Геометрический смысл внешнего произведения векторов: это (с точностью до пропорциональности) — плоскость, в которой лежат сомножители
Более того, любая взвешенная сумма СУБТ второго ранга является внешним произведением пары векторов. Действительно, если рассмотреть ненулевую сумму
\[ x_{12} e_{12} + x_{13} e_{13} + x_{23} e_{23} \]
то ей пропорционально внешнее произведение любой пары из следующих векторов:
- \(x_{13} e_1 + x_{23} e_2\)
- \(x_{23} e_3 - x_{12} e_1\)
- \(x_{13} e_3 + x_{12} e_2\)
два из которых заведомо ненулевые.
Свойство №3: внешнее произведение пары векторов антикоммутативно
\[ a\wedge b = -b\wedge a \]
Тут следует быть внимательным: для невекторов это неверно. Как нетрудно заметить, \(e_{12}\wedge e_{3} = e_{123} = e_{3}\wedge e_{12}\), поскольку последовательность \(312\) сортируется двумя обменами.
Наконец, главное свойство геометрической алгебры (следует из явных формул для геометрического и внешнего произведений)
Свойство №4: геометрическое произведение пары векторов есть сумма их скалярного и внешнего произведений
\[ ab = a\cdot b + a\wedge b \]
В частности, если \(a\) и \(b\) перпендикулярны, то их геометрическое произведение совпадает со внешним.
Свойство №5: геометрическое произведение вектора с самим собой есть квадрат его длины
\[ a^2 = |a|^2 \]
Вращения плоскости и пространства
Пусть \(a\) и \(b\) — ортонормированные вектора. Заметим следующую пару соотношений:
\[ \begin{aligned} a(ab) & = aab = b \\ b(ab) & = bab = -abb = -a \end{aligned} \]
То есть умножение на \(ab\) справа поворачивает вектора \(a\) и \(b\) (и, как следствие, — любой вектор плоскости, в которой лежат \(a\) и \(b\)) на прямой угол по направлению от \(a\) к \(b\).
Поскольку поворот на угол \(\alpha\) можно скомбинировать из тождественного преобразования и поворота на прямой угол, получаем
Формулу №1: поворот векторов плоскости
Отображение
\[ v \mapsto v(\cos\alpha + ab\sin\alpha) \]
поворачивает вектор \(v\), лежащий в плоскости ортонормированной пары \(a, b\), на угол \(\alpha\) по направлению от \(a\) к \(b\).
Если нам нужно соединить два поворота, то достаточно перемножить
\[ (\cos\alpha + ab\sin\alpha)(\cos\beta + ab\sin\beta) \]
Что интересно, такое произведение — наиболее простой способ запомнить (или доказать) формулы косинуса и синуса суммы углов.
Лирическое отступление: алгебра, порождённая действительными числами и СУБТ \(e_{12}\) (или же любым другим произведением ортонормированной пары векторов) называется комплексными числами и известна примерно со середины 16 века благодаря работам Джероламо Кардано (благодаря ему же нам известны многочисленные применения карданного вала и карданного подвеса, а также — метод решения кубических уравнений). Несколько позже комплексные числа начали использовать для удобного описания вращений плоскости.
Заметив, что умножение справа на \(ab\) воздействует на вектора плоскости так же, как и умножение слева на \(ba\), мы можем получить
Формулу №2: поворот векторов плоскости
Отображение
\[ v \mapsto (\cos\alpha - ab\sin\alpha)v \]
поворачивает вектор \(v\), лежащий в плоскости ортонормированной пары \(a, b\), на угол \(\alpha\) по направлению от \(a\) к \(b\).
Более того, скомбинировав эти два преобразования, можно получить преобразование, которое не изменяет вектора, перпендикулярные плоскости.
А именно, если \(c\) перпендикулярен как \(a\), так и \(b\), то
\[ \begin{aligned} & (\cos\alpha - ab\sin\alpha)c(\cos\alpha + ab\sin\alpha) \\ =\; & c((\cos\alpha)^2 + (\sin\alpha)^2) + abc(\cos\alpha\sin\alpha-\sin\alpha\cos\alpha) \\ =\; & 1c + 0abc \\ =\; & c \end{aligned} \]
Как следствие, имеем
Формулу №3: поворот векторов пространства
Отображение
\[ v \mapsto (\cos(\alpha/2) - ab\sin(\alpha/2))v(\cos(\alpha/2) + ab\sin(\alpha/2)) \]
поворачивает произвольный вектор \(v\) на угол \(\alpha\) по направлению от \(a\) к \(b\).
Конечно, хочется иметь возможность задавать поворот не плоскостью и уголом, а осью и углом. Но это, оказывается, несложно.
А именно, если мы произведём замену
\[ \begin{aligned} e_1 & \mapsto e_2e_3 \\ e_2 & \mapsto e_3e_1 \\ e_3 & \mapsto e_1e_2 \end{aligned} \]
то получим из вектора перпендикулярную ему плоскость (точнее, тензор, являющийся произведением пары векторов, в этой плоскости лежащих).
Чтобы это понять, можно провести следующее рассуждение: рассмотрим тройку ортонормированных векторов \(a,b,c\). Вычислим произведение
\[ (Aa + Bb + Cc)ab \]
где \(A,B,C\) — произвольные числа.
Получим следующее:
\[ Ab - Ba + Cabc \]
Как нетрудно видеть, тензоры первого ранга в таком произведении присутствуют тогда и только тогда, когда вектор не перпендикулярен плоскости.
Осталось вычислить
\[ (x_1 e_1 + x_2 e_2 + x_3 e_3)(x_1 e_2e_3 + x_2 e_3e_1 + x_3e_1e_2) \]
и заметить, что все тензоры первого ранга в итоговой сумме взаимоуничтожатся.
Конечно, остаётся вопрос: при каком условии сумма вида \(x_1 e_2e_3 + x_{2} e_3e_1 + x_{3} e_1e_2\) может быть представлена в виде произведения пары ортонормированных векторов?
Мы дадим ответ: тогда и только тогда, когда \(x^2_1 + x^2_2 + x^2_3 = 1\). А доказательство оставим в качестве тривиального упражнения, напомнив лишь, что:
- любая сумма СУБТ второго ранга представляется в виде внешнего произведения векторов
- внешнее произведение перпендикулярных векторов совпадает с их геометрическим произведением
- если \(a\) и \(b\) перпендикулярны, то \((ab)(ab) = -aabb = -|a|^2 |b|^2\)
Опять лирическое отступление: алгебра, порождённая действительными числами и тензорами \(e_{12}\), \(e_{13}\) и \(e_{23}\), называется алгеброй кватернионов. До развития методов геометрической алгебры именно кватернионы применялись для удобного описания вращений пространства. С кватернионами мы ещё встретимся далее.
Некоторые практические задачи
Решение линейных уравнений
Начнём с одной из важнейших задач — решения линейных уравнений.
Допустим, нам известно, что \(ax = b\), и нужно найти \(x\).
В некоторых случаях подобная задача хорошо решается:
- если \(a\) — ненулевой вектор, то \(|a|^2x = ab\), откуда \(x = ab / |a|^2\)
- если \(a = \alpha + v\), где \(\alpha\) — число, а \(v\) — вектор, то \((\alpha-v)(\alpha + v) = \alpha^2 - |v|^2\); если эта разность отлична от нуля, то \(x = (\alpha-v)b / (\alpha^2 - |v|^2)\)
- аналогично, если \(a = \alpha + t\), где \(t\) — тензор второго ранга, то \(x = (\alpha - t)b / (\alpha^2 + |t|^2)\), где \(|t|^2\) — обозначение для суммы квадратов компонент тензора \(t\) в базисе \(e_{12}\), \(e_{13}\), \(e_{23}\)
Вычисление угла между векторами
Допустим, что \(a\) и \(b\) — вектора, и нам известно их геометрическое произведение \(ab\).
Поскольку \(ab = a\cdot b + a\land b\), то \(ba = a\cdot b - a\land b\) и, зная \(ab\) мы можем вычислить \(ba\) просто поменяв знак во всех компонентах второго ранга.
Это означает, что мы можем вычислить \(|a|^2|b|^2 = (ba)(ab)\).
А, зная произведение длин векторов, мы легко можем узнать косинус угла между ними: он равен \(a\cdot b / |a||b|\).