Геометрическая алгебра

Здесь речь пойдёт о геометрической алгебре — науке, изучающей алгебраические свойства некоторых геометрических объектов.

Не следует путать геометрическую алгебру с гораздо более сложной и абстрактной алгебраической геометрией — наукой, изучающей геометрические свойства некоторых алгебраических объектов.

Произведения в алгебре

Основные операции в алгебре — сумма и произведение. Какие бы действия этими словами не назывались, обычно от них требуют выполнения распределительных законов:

\[ \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|\).