Найти тему
Енот-математик

Исчисление геометрии

По просьбам читателей канала, я начинаю небольшой цикл статей, посвящëнный геометрическим числам и алгебрам Клиффорда. Его можно считать естественным продолжением цикла "Изобретаем числа", в котором мы знакомились с разнообразной экзотикой: двойными, дуальными и гиперболическими числами. Теперь мы их смешаем, не взбалтывая так, чтобы числами можно было моделировать целые подпространства и их преобразования.

* * *

Геометрия — это ворота в науку, однако они столь низки и узки, что войти в них можно лишь будучи ребëнком.
Вильям К. Клиффорд

В математике, как и в любой другой сфере, тоже есть мода. Сухость, строгость, неотъемлемый традиционализм не мешают математикам искренне увлекаться новыми красивыми идеями, тенденциями, и, конечно же, следовать принципу "новое это хорошо забытое старое".

В наше десятилетие в среде физиков, специалистов по компьютерной графике, машинному зрению и распознаванию образов, а также у популяризаторов математики мы наблюдаем резкое повышение интереса к внешним и геометрическим алгебрам, известным также, как алгебры Клиффорда.

Использование алгебраических методов в геометрии восходит к началу XVII века, к работам Рене Декарта и Жирара Дезарга, подарившим нам координатный метод и основы проективной геометрии. В середине позапрошлого века работах Германа Грассмана появилось новое понятие внешняя алгебра, после этого Вильям Клиффорд определил геометрические числа и геометрические алгебры. В начале XX века Поль Дирак успешно применили их в разработке релятивистской теории электрона, они оказались полезны и в дифференциальной геометрии и в матфизике и в теории поля, однако до 1980-х годов этот раздел оставался лишь в числе специальных и факультативных в курсах физфака, мехмата. А уж прикладники-компьютерщики — законодатели мод в современной математике, о ней либо не знали вовсе, либо считали слишком абстрактной до начала нашего столетия.

И только, в 2001 году после работы Джона Селига, в которой на лаконичный язык геометрической алгебры была переведена евклидовая геометрия, на неё обратили внимание компьютерщики. В 2008 году вышла работа Микеля Родригеса, посвящённая применению геометрической алгебры для системы распознавания образов. Популяризации геометрических алгебр способствовал блестящий цикл статей Чарльза Гунна, показавший чисто практические аспекты их использования. А потом появились многочисленные блоги, ролики на YouTube и обучающие курсы. И вот мы уже слышим заявления о том, что надо включить геометрические алгебры в базовые курсы математики для всех студентов, а также что пора выбросить на помойку кватернионы, спиноры, координаты Плюккера, матрицы Паули и Дирака, а также векторное произведение, поскольку всё это вместе с комплексными числами и группами Ли появляется "само собой" даже в простейших геометрических алгебрах.

Подобная история случилась лет двадцать назад с теорией категорий с её функторами, монадами и леммой Йонэды, которая благодаря компьютерщикам (а именно, после одной статьи Филиппа Уодлера) из "абстрактной ерунды" превратилась в инструмент повседневной разработки программ в функциональной парадигме и основой теории типов в программировании.

Мода модой, но геометрическая алгебра мне кажется достаточно полезным инструментом, с которым имеет смысл познакомиться всякому, интересующемуся математикой, как прикладной, так и теоретической. В ней есть много красивых положений и стройных обобщений, которые, действительно позволяют существенно упростить описание движения твёрдого тела, проективных построений, релятивистских процессов, физических полей, уравнений матфизики и квантовой механики, конформных отображений и много чего ещё.

Мы увидим, как единый лаконичный и последовательный подход к выражению линейных подпространств с помощью мультивекторов позволяет получать эффектные общие выражения для их преобразований, независимые не только от системы координат или даже от размерности пространства, но и от выбранной геометрии (аффинной, проективной, гиперболической, эллиптической, геометрии пространства-времени Минковского и др.)

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

Что же нам позволяет делать геометрическая алгебра?

В ней точки, прямые, плоскости и прочие линейные подпространства представляются объектами одного класса — мультивекторами, которые рассматриваются, как своеобразные числа, образующие алгебру с операциями сложения и обратимого геометрического умножения. Геометрические числа могут быть решениями алгебраических уравнений и аргументами различных функций (корней, экспонент, логарифмов и т. п.), представляя при этом геометрические объекты. Любые мультивекторы можно комбинировать между собой богатым набором комбинаторов: различными типами умножения: внешним, внутренним, скалярным, двумя сечениями, тремя видами инволюции, а также операциями, двойственными всём перечисленным выше. Эти комбинаторы не только корректно определены для любой геометрической алгебры, но и имеют геометрическое толкование, не зависящее от размерности геометрического пространства и конкретных координатных систем. Принцип двойственности, присущий проективной геометрии в полной мере проявляется и в геометрических алгебрах, играя и в них существенную роль.

Возможно, вы обратили внимание на то, что я говорю о геометрических алгебрах во множественном числе. Начиная со знаменитой эрлангенской программы Феликса Клейна, различные геометрии сами становятся объектом исследования и определяются топологией пространства и группой его преобразований, сохраняющих некий инвариант. Так вот, все базовые преобразования, которые по Клейну, и определяют геометрию: отражения, сдвиги, повороты, проекции, пересечения, прямые суммы, дополнения, инверсии и т. п. также выражаются через элементы и операции геометрической алгебры, то есть, через геометрические числа и их комбинаторы. Получается, что и объекты и их преобразования геометрическая алгебра представляет в совершенно единообразной форме!

Геометрических алгебр, действительно, много: одни отражают геометрию в векторном пространстве Rⁿ, другие — в более богатом пространстве Eⁿ, допускающем сдвиги. Есть вариант, добавляющий идеальные точки и прямые в проективном смысле. Существует геометрическая алгебра, включающая в качестве базовых объектов не только точки, прямые и плоскости, но и окружности, сферы и диполи, расширяя евклидовы изометрии конформными отображениями. Можно построить геометрическую алгебру для пространства Минковского, в котором объектами являются события и мировые линии, или для сферической геометрии. Самое замечательное то, что ключевые определения, операции и формулы во всех этих алгебрах остаются совершенно одинаковыми! Меняются базисные элементы алгебры и геометрические интерпретации геометрических чисел, как объектов и преобразований, но алгебраические законы остаются при этом универсальными.

Это то, что в программировании называется полиморфизмом: когда одна функция или процедура может корректно работать с различными типами данных. В математике так работают абстрактные алгебраические структуры: моноиды, группы, кольца, поля, модули, которые предоставляют единый интерфейс для работы с объектами самой разной природы: подстановками, вещественными или комплексными числами, вычетами или многочленами, линейными операторами и пространствами. Геометрические алгебры Клиффорда лаконично обобщают в себе целые геометрии!

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

Пусть нам дан треугольник, с вершинами A, B и C однозначно определëнными в какой-то привычной двумерной декартовой системе координат. Давайте найдём для этого треугольника, прямую Эйлера, то есть, прямую, проходящую через его ортоцентр (точку пересечения его высот), циркумцентр (точку пересечения срединных перпендикуляров) и центроид (точку пересечения медиан)

1. Находим перпендикуляры, опущенные из точек A и B на противолежащие стороны:

a = (B ∨ C) · A, b = (A ∨ B) · B

2. Ортоцентром будет точка пересечения этих прямых:

O = a ∧ b.

3. Находим срединныe перпендикуляры к сторонам BC и AC:

a' = (B ∨ C) · (B + C)/2, b' = (A ∨ C) · (A + C)/2

4. Циркументр — это точка пересечения срединных перпендикуляров:

O' = a' ∧ b'

5. Находим прямую Эйлера, как прямую, проходящую через ортоцентр и центр описанной окружности:

е = O ∨ O'.

6. Для проверки, построим центроид треугольника, который должен попасть на прямую Эйлера:

O'' = (A + B + C)/3.

Результатом этих вычислений будет уравнение прямой в канонической форме: ax + by + c = 0, где коэффициенты a, b и c окажутся, в конечном счёте, выражены через координаты исходных точек. Однако всё указанные выше операции, определяются не через комбинации координат, а через обобщённые операции над мультивекторами (+, ∧, ∨, ·) и основаны на принципах, обескураживающих своей простотой. Вот как все эти объекты выглядят на чертеже:

-2

А вот как эту же задачу можно решить для трёх точек A, B и С, расположенных в трёхмерном пространстве:

1. Находим плоскости, проходящие через вершины A и B, ортогональные противолежащим сторонам :

a = (B ∨ C) · A, b = (A ∨ C) · B,

2. Ортоцентром будет точка пересечения этих трëх плоскостей и плоскости треугольника (A ∨ B ∨ C):

O = a ∧ b ∧ (A ∨ B ∨ C).

3. Находим плоскости, проходящие через середины сторон треугольника и ортогональные им:

a' = (B ∨ C) · (B + C)/2, b' = (A ∨ C) · (A + C)/2

4. Циркумцентром будет точка пересечения этих трëх плоскостей и плоскости треугольника:

O' = a' ∧ b'∧ (A ∨ B ∨ C)

5. Прямая Эйлера соединяет эти две точки:

е = O ∨ O'.

6. И снова для проверки, построим центроид треугольника, который должен попасть на прямую Эйлера:

O'' = (A + B + C)/3.

Пространство и объекты изменились, однако принципы вычислений и формулы остались прежними! Вот как это построение выглядит на чертеже:

-3

Примечательно, что даже если вершины треугольника A, B и C окажутся на одной прямой, метод вычисления прямой Эйлера не "сломается". Ортоцентр превратится в идеальную точку "на бесконечности", центр описанной окружности окажется на середине самой длинной стороны, а прямая Эйлера совпадёт с прямой, на которой расположились вершины вырожденного треугольника.

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

Замечу, что при построения всех чертежей для этой серии статей, я буду пользоваться собственной библиотекой для работы с геометрическими алгебрами для языка Haskell. Вот как выглядит программа, строящая рисунок, приведённый выше:

-4

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

* * *

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