Каждый, кто прошел через курс линейной алгебры или физики в универе, помнит этот странный дуализм. Нас учили, что у векторов есть целых ДВА вида произведения. Первое, скалярное, съедает два вектора и выдает число. Геометрически — это что-то про проекции и углы. Второе, векторное, тоже съедает два вектора и… внезапно выплевывает третий вектор, перпендикулярный первым двум. Причем работает этот фокус только в 3D и 7D.

Всегда казалось, что это какой-то математический «костыль».

Почему так сложно? Почему два разных продукта для разных задач? Почему один зависит от косинуса, а другой от синуса?

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

Эта статья — приглашение в мир Геометрической Алгебры. Мы собираемся переизобрести умножение.

Примечание об обозначениях.

Поскольку в статье встречаются несколько видов умножений, будем различать их так

* или отсутствие знака — новое геометрическое произведение

· — скалярное произведение

∧ — внешнее произведение

Часть 1. Философия — каждому объекту по трансформации

Всё-таки, что-то есть в этой студенческой шутке, популярной в МФТИ: "каждому лектору в ...у по вектору, а Дмитрию Владимировичу ортонормированный базис" .

Тут речь идет о Беклемишеве, благодаря которому не только в МФТИ, но и по всему СССР преподавание линейной алгебры стало столь тесно связанным с аналитической геометрией. Когда он был еще 25-летним аспирантом мехмата МГУ, ему пришла в голову эта светлая идея — преподавать сложные абстракции с помощью наглядной науки, и он принялся внедрять ее в МФТИ. Его ждал невероятный успех — к 40 годам созданный Беклемишевым совершенно новый курс в тех или иных вариациях стал распространяться по всему СССР, а он сам преподавал векторную алгебру на советском телевидении.

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

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

  • Число 5: это не просто «пять яблок». Это оператор «увеличить в 5 раз».

  • Комплексное число i: это не просто √-1. Это оператор «повернуть на 90 градусов». Умножьте на i еще раз — повернете на 180. Отсюда и i² = -1.

Эта философия превращает математику из описательного языка в язык действия. Объекты — это глаголы, а не существительные.

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

Это не может быть сдвиг — за это отвечает сложение (v + a). Не может быть и простое масштабирование. Какое самое базовое, самое элементарное геометрическое действие, которое можно совершить в пространстве?

Отражение.

Ключевая идея: давайте предположим, что вектор — это не стрелка. Вектор — это зеркало.

Единичный вектор n задает нам ориентацию зеркала, стоящего в начале координат и перпендикулярного этому вектору. Вся суть вектора — отражать другие объекты.

Вектор n действует как зеркало, отражающее вектор v
Вектор n действует как зеркало, отражающее вектор v

Но почему n это именно перпендикуляр к зеркалу?

Векторы v и n лежат в одной плоскости, и задают одну плоскость (за исключением случая, когда они параллельны). Так что задавать вектор n может любое положение зеркала на этой плоскости. Куда удобнее сделать сам вектор n зеркалом.

Вектор n сам стал зеркалом
Вектор n сам стал зеркалом

Вся мощь геометрической алгебры вырастет из этого простого предположения.

Часть 2. Изобретаем умножение с нуля

Итак, вектор — это зеркало. Как нам описать операцию отражения математически? Мы хотим найти такое «умножение» (*), чтобы оно позволило нам отражать один вектор v относительно другого вектора n.

Но вместо того, чтобы подгонять формулу под ответ, давайте поступим как настоящие исследователи. Давайте потребуем от нашего умножения одно-единственное, но очень важное свойство: обратимость.

В обычной алгебре уравнение 5x = 10 решается делением. Деление — это умножение на обратный элемент (x = 10 * 5⁻¹). Мы хотим так же решать и геометрические уравнения! Если ax = b, мы хотим найти x как a⁻¹b.

Чтобы это было возможно, для любого ненулевого вектора a должен существовать обратный a⁻¹. Логично предположить, что a⁻¹ как-то связан с a. Самый простой вариант — a⁻¹ пропорционален a.

Это значит, что произведение вектора на самого себя, a*a, должно быть простым скаляром. Ведь если a*a = k (где k — число), то мы легко находим a⁻¹ = a/k. Какой скаляр, связанный с вектором, самый главный? Конечно, квадрат его длины!

Постулат 1 (и единственный):

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

v*v = |v|²

Это всё. Больше нам ничего не нужно. Всё остальное мы выведем.

Давайте посмотрим, к чему приведет этот, казалось бы, скромный постулат. Возьмем два вектора a и b и раскроем квадрат их суммы, как в школе:

(a+b)² = (a+b)*(a+b) = a*a + a*b + b*a + b*b

Используя наш постулат, заменим a*a на |a|² и b*b на |b|²:

(a+b)² = |a|² + |b|² + a*b + b*a

С другой стороны, (a+b) — это тоже вектор. А квадрат любого вектора, по нашему постулату, это квадрат его длины:

(a+b)² = |a+b|²

А квадрат длины вектора суммы мы знаем из школы по теореме косинусов:

 |a+b|² = |a|² + |b|² + 2|a||b|cos(θ).

Но |a||b|cos(θ) — это же в точности скалярное произведение a·b!

Получаем: (a+b)² = |a|² + |b|² + 2(a·b).

А теперь приравняем оба выражения для (a+b)²:

 |a|² + |b|² + a*b + b*a = |a|² + |b|² + 2(a·b)

Сокращаем всё лишнее и получаем:

ab + ba = 2(a·b)

Симметричная часть нашего нового умножения (ab+ba) оказалась старым добрым скалярным произведением! Но что же такое ab само по себе?

Давайте рассмотрим самый интересный случай: a и b перпендикулярны.

Пусть наши базисные векторы e₁ и e₂. Их скалярное произведение равно нулю.

 e₁·e₂ = 0.

Подставим это в нашу формулу

 e₁*e₂ + e₂*e₁ = 2 * 0 = 0

А это значит…

 e₁*e₂ = -e₂*e₁

Мы не придумали это. Мы не взяли это с потолка. Мы вывели антикоммутативность для ортогональных векторов из простейшего требования обратимости умножения.

Часть 3. Исследуем плоскость — рождение нового числа

Давайте останемся на плоскости. У нас есть базис e₁, e₂ и три правила игры:

  1. e₁² = 1

  2. e₂² = 1

  3. e₁e₂ = -e₂e₁

Возьмем два произвольных вектора a = a₁e₁ + a₂e₂ и b = b₁e₁ + b₂e₂ и просто перемножим их в лоб, как многочлены:

ab = (a₁e₁ + a₂e₂)(b₁e₁ + b₂e₂)

ab = a₁b₁(e₁e₁) + a₁b₂(e₁e₂) + a₂b₁(e₂e₁) + a₂b₂(e₂e₂)

Применим наши правила: e₁e₁=1, e₂e₂=1 и e₂e₁ = -e₁e₂:

ab = a₁b₁ + a₁b₂(e₁e₂) - a₂b₁(e₁e₂) + a₂b₂

ab = (a₁b₁ + a₂b₂) + (a₁b₂ - a₂b₁)(e₁e₂)

Смотрите, что произошло! Наше геометрическое произведение ab само распалось на две части:

  • Скалярная часть: (a₁b₁ + a₂b₂). Это же в точности скалярное произведение a·b!

  • Не скалярная часть: (a₁b₂ - a₂b₁)(e₁e₂).

    Коэффициент (a₁b₂ - a₂b₁) — это величина, пропорциональная площади параллелограмма на векторах a и b (и синусу угла между ними).

А что за таинственный зверь e₁e₂?

  • Он не скаляр.

  • Он не вектор.

    Давайте посчитаем его квадрат:

    (e₁e₂)² = (e₁e₂)(e₁e₂) = e₁ (e₂e₁) e₂.

  • Пользуясь антикоммутативностью:

    e₁ (-e₁e₂) e₂ = - (e₁e₁) (e₂e₂) = -(1)(1) = -1.

 (e₁e₂)² = -1

Объект, который в квадрате дает -1.

Где-то мы это уже видели… Да это же анал��г мнимой единицы i!

Этот объект I = e₁e₂ называется бивектором. Он не стрелка. Он — сама ориентированная плоскость e₁e₂.

Он говорит: «Я — плоскость, в которой вращение идет от e₁ к e₂».

Наше геометрическое произведение ab — это мультивектор.

ab = (скалярная часть) + (бивекторная часть)

 ab = a·b + a∧b

Здесь a∧b = (a₁b₂ - a₂b₁)I — это внешнее произведение.

Оно представляет собой ориентированную площадь.

Ориентация тут означает, что если поменять два вектора местами, то она умножится на -1.

Часть 4. Открываем формулу отражения. Путь проб и ошибок.

Итак, мы договорились, что вектор a — это зеркало, а отражение — его главное предназначение. Давайте теперь найдем математический язык для этого.

Наша цель — найти формулу, которая берет произвольный вектор v и отражает его в зеркале, заданном единичным вектором a.

Для простоты возьмем нашу плоскость с базисом e₁, e₂.

Пусть зеркалом будет сама ось e₁. Какой вектор v мы будем отражать?

Давайте возьмем самый общий:

 v = v₁e₁ + v₂e₂.

Что мы ожидаем получить после отражения в "зеркале" e₁? Компонента вдоль e₁ должна остаться, а компонента вдоль e₂ (перпендикулярная зеркалу) — инвертироваться. Ожидаемый результат:

 v' = v₁e₁ - v₂e₂.

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

Попытка №1: Умножение слева

Самое простое, что приходит в голову — просто умножить v на e₁ слева:

e₁v = e₁(v₁e₁ + v₂e₂) = v₁(e₁e₁) + v₂(e₁e₂) = v₁ - v₂e₁e₂

(Напомню e₁e₁ = 1 и e₁e₂ = -e₂e₁)

Что это? Скаляр v₁ минус бивектор -v₂e₁e₂. Это даже не вектор. Результат интересный, но это точно не наше отражение. Мимо.

Попытка №2: Умножение справа

Хорошо, попробуем умножить справа:

ve₁ = (v₁e₁ + v₂e₂)e₁ = v₁(e₁e₁) + v₂(e₂e₁) = v₁ + v₂(e₂e₁) = v₁ - v₂(e₁e₂)

Снова скаляр плюс бивектор. Опять мимо.

Попытка №3: "Сэндвич"

Кажется, прос��ого умножения недостаточно. Мы получаем объекты более высокой "степени" (бивекторы). Может, нужно как-то от них избавиться? Что, если мы "обернем" наш вектор v с двух сторон? Попробуем конструкцию e₁ve₁:

e₁ve₁ = e₁ * (v₁ - v₂e₁e₂)

 e₁ve₁ = v₁e₁ - v₂e₁e₁e₂ = v₁e₁ - v₂(1)e₂ = v₁e₁ - v₂e₂

Бинго!

v' = v₁e₁ - v₂e₂.

Мы получили в точности тот результат, который ожидали.

Формула отражения:

отражение вектора v в зеркале, заданном единичным вектором a, описывается сэндвич-произведением:

v' = ava

Работает ли это для любого вектора, а не только для базисного e₁?

Да! Мы можем доказать, что если разложить v на компоненты v_∥ и v_⊥относительно любого единичного вектора a, то операция ava всегда сохранит v_∥ и инвертирует v_⊥, что и является определением отражения.

Доказательство: почему ava — это универсальная формула отражения

Хорошо, наш трюк с "сэндвичем" e₁ve₁ сработал идеально для отражения относительно оси e₁. Но не было ли это просто удачным совпадением? Давайте докажем, что формула v' = ava работает для отражения относительно любого единичного вектора a.

Это доказательство не просто покажет, что формула верна. Оно вскроет, насколько глубоко наше новое умножение "понимает" геометрию.

Шаг 1: Раскладываем вектор на компоненты

Давайте разложим наш вектор v на две компоненты относительно вектора-зеркала a:

  1. v_∥ (v-параллельная).

    Компонента v, которая параллельна a. Это просто проекция v на a.

  2. v_⊥ (v-перпендикулярная).

    Компонента v, которая перпендикулярна a. Это то, что останется от v, если вычесть из него параллельную часть.

Таким образом:

v = v_∥ + v_⊥

Определение отражения:

мы хотим, чтобы наше преобразование оставило v_∥ без изменений (ведь она уже лежит на "линии" зеркала) и инвертировало v_⊥ (ведь она перпендикулярна зеркалу).

Наша цель — доказать, что ava = v_∥ - v_⊥

Шаг 2: Смотрим, как ava действует на каждую компоненту по отдельности

Поскольку наше умножение дистрибутивно, мы можем написать:

Теперь проанализируем каждое слагаемое.

Анализ a(v_∥)a (параллельная часть):

  • По определению, v_∥ параллелен a. Это значит, что v_∥ — это просто a, умноженный на какой-то скаляр.

    v_∥ = k  a.

  • Ключевое свойство: скаляры коммутируют со всем. Их можно выносить за скобки и передвигать где угодно.

  • Давайте посчитаем: a(v_∥)a = a(ka)a = k(aaa).

  • Что такое aaa? Это (aa)a. А так как aединичный вектор, то aa = a² = 1.

  • Значит, aaa = (1)a = a.

  • Возвращаемся к нашему выражению: k(aaa) = ka = v_∥.

Результат А: a(v_∥)a = v_∥.

Операция ava сохраняет параллельную компоненту. Первая часть доказана!

Анализ a(v_⊥)a (перпендикулярная часть):

  • По определению, v_⊥ и a ортогональны.

  • А что мы знаем про геометрическое произведение двух ортогональных векторов? Они антикоммутируют! Это фундаментальное свойство, которое мы вывели ранее.

v_⊥ a = -a v_⊥

  • Теперь давайте применим это к нашему выражению a(v_⊥)a. Мы можем сгруппировать его как a(v_⊥a).

  • Заменим v_⊥a на его антикоммутированный эквивалент

  • Выносим минус и перегруппировываем: -(aa)v_⊥.

  • И снова, так как a — единичный вектор, aa = a² = 1.

  • Получаем: -(1)v_⊥ = -v_⊥.

Результат Б: a(v_⊥)a = -v_⊥.

Операция ava инвертирует перпендикулярную компоненту. Вторая часть доказана!

Шаг 3: Собираем все вместе

Теперь вернемся к нашей сумме:

 ava = a(v_∥)a + a(v_⊥)a

Мы только что показали, что a(v_∥)a = v_∥ и a(v_⊥)a = -v_⊥.

Подставляем эти результаты:

ava = v_∥ - v_⊥

Это в точности математическое определение отражения вектора v относительно линии, заданной вектором a.

Доказательство завершено.

Часть 5. Два отражения = поворот. Рождение ротора.

Мы начали с того, что вектор — это зеркало, а отражение — это фундаментальная операция. Что будет, если сделать два отражения подряд? Любой школьник, игравший с двумя зеркалами, чтобы списать с их помощью на контрольной, знает: это будет поворот!

v' = ava (первое отражение)

v'' = b(v')b = b(ava)b

Сгруппируем скобки по-другому, пользуясь ассоциативностью нашего умножения:

v'' = (ba) v (ab)

Давайте посмотрим на этот новый объект R = ba.

Это результат геометрического произведения двух векторов. Это уже не просто вектор и не просто бивектор, а их сумма — мультивектор. Назовем его ротор.

А что такое ab в этой формуле? Давайте перемножим его на ba:

 (ba)(ab) = b(aa)b = b(1)b = b² = 1

Значит, ab — это в точности обратный элемент к ba! То есть ab = (ba)⁻¹ = R⁻¹.

Наша формула для двух отражений (то есть, для поворота!) превращается в нечто невероятно элегантное.

Формула вращения:

  v' = R v R⁻¹

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

Чаcть 6. В чем обман в векторном произведении векторов?

До сих пор мы говорили "вектор a — это зеркало". И формула v' = ava работала. Но, как мы выяснили, она описывает отражение относительно линии, заданной вектором a.

А как же наше бытовое "зеркало", которое является плоскостью?

Для этого, как мы помним, нужна формула со знаком минус: v' = -ava. Здесь вектор a задает нормаль к плоскости-зеркалу.

Так какая же формула "правильная"? Обе! Они описывают два разных типа отражений.

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

Отражения — это атомы, из которых состоят все движения.

И тут нас ждет сюрприз, связанный с размерностью пространства.

  • В 2D пространстве: "зеркало-плоскость" — это просто линия. Ее нормаль — это вектор. Линия и ее нормаль-вектор однозначно задают друг друга.

  • В 3D пространстве: "зеркало-плоскость" — это плоскость. Ее нормаль — это вектор. Плоскость и ее нормаль-вектор тоже однозначно задают друг друга. А что еще задает плоскость? Бивектор! В 3D пространстве каждому бивектору (плоскости) можно сопоставить единственный перпендикулярный ему вектор (псевдовектор). Это тот самый трюк, на котором основано векторное произведение. Из-за этого "случайного" совпадения в 3D можно подменять бивекторы векторами и наоборот.

  • В 4D и выше: "зеркало-плоскость" — это гиперплоскость (например, 3D-объем в 4D-пространстве). Ее нормаль — это вектор. А вот бивектор по-прежнему задает только 2D-плоскость и повороты на ней!

Вывод.

В пространствах размерности выше 3 бивекторы (генераторы вращений) и гиперплоскости (зеркала для отражений) — это совершенно разные объекты. Бивектор задает вращение в конкретной 2D-плоскости, а отражение происходит сразу во всем (n-1)-мерном пространстве.

Обманчивая простота нашего 3D-мира, где плоскость можно описать и бивектором, и вектором-нормалью, долгое время скрывала эту фундаментальную разницу и заставляла нас пользоваться "костылем" векторного произведения.

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

Чаcть 7. Матрицы Паули из воздуха

Те, кто знаком с квантовой механикой, знают матрицы Паули σ₁, σ₂, σ₃. Это набор матриц 2x2, которые лежат в основе описания спина. Они обладают забавными свойствами: σ₁² = σ₂² = σ₃² = I (единичная матрица) и антикоммутируют (σ₁σ₂ = iσ₃ = -σ₂σ₁).

Откуда они берутся? В геометрической алгебре они появляются сами собой.

Давайте просто отождествим наши базисные векторы e₁, e₂, e₃ с матрицами Паули!

e₁ ↔ σ₁,

e₂ ↔ σ₂,

e₃ ↔ σ₃.

Проверим наши правила:

  • eᵢ² = 1? Да, σᵢ² = I.

  • eᵢeⱼ = -eⱼeᵢ для i≠j? Да, они антикоммутируют.

Что тогда такое бивекторы?

 e₁e₂ ↔ σ₁σ₂ = iσ₃

e₂e₃ ↔ σ₂σ₃ = iσ₁

e₃e₁ ↔ σ₃σ₁ = iσ₂

А тривектор (псевдоскаляр)?

 e₁e₂e₃ ↔ (σ₁σ₂)σ₃ = (iσ₃)σ₃ = i(σ₃)² = iI.

Тривектор пространства — это мнимая единица i, умноженная на единичную матрицу!

Оказывается, матрицы Паули — это не какой-то абстрактный математический трюк. Это матричное представление алгебры нашего трехмерного евклидова пространства. Все эти i в их произведениях — это просто следствие того, что произведение двух векторов порождает бивектор, который в 3D дуален вектору. Геометрическая алгебра вскрывает геометрический смысл, стоящий за матрицами спина.

Часть 8. Выведем сами элементы матриц Паули.

Наша задача: найти три матрицы 2x2, которые ведут себя в точности как наши ортонормированные векторы e₁, e₂ и e₃. То есть, они должны удовлетворять "правилам игры" геометрической алгебры:

  1. σᵢ² = I (где I — единичная матрица 2x2).

  2. σᵢσⱼ = -σⱼσᵢ для i≠j (антикоммутативность).

Мы будем работать с векторами-столбцами вида [α, β], где α и β — комплексные числа. Это стандартный базис для описания спина "вверх" [1, 0] и "вниз" [0, 1].

Шаг 1. σ₃ — оператор "измерения" вдоль оси Z

В квантовой механике σ₃ (или σ_z) — это оператор, который измеряет проекцию спина на ось Z. Его собственные состояния — это спин "вверх" и спин "вниз".

  • Когда σ₃ действует на состояние "вверх" ([1, 0]), он должен дать +1 * [1, 0].

  • Когда σ₃ действует на состояние "вниз" ([0, 1]), он должен дать -1 * [0, 1].

Давайте запишем это в матричной форме.

\sigma_3 = \begin{pmatrix} a & b \\ c & d \end{pmatrix}

\left(\begin{array}{cc} a & b \\ c & d \end{array}\right) \left(\begin{array}{c} 1 \\0 \end{array}\right) = \left(\begin{array}{c} a \cdot 1 + b \cdot 0 \\ c \cdot 1 + d \cdot 0 \end{array}\right) = \left(\begin{array}{c} a \\ c \end{array}\right)

Мы хотим получить [1, 0]. Значит, a=1, c=0.

 \left(\begin{array}{cc} a & b \\ c & d \end{array}\right) \left(\begin{array}{c} 0 \\ 1 \end{array}\right) = \left(\begin{array}{c} a \cdot 0 + b \cdot 1 \\ c \cdot 0 + d \cdot 1 \end{array}\right) = \left(\begin{array}{c} b \\ d \end{array}\right) 

Мы хотим получить -[0, 1] = [0, -1]. Значит, b=0, d=-1.

Собираем матрицу:

\sigma_3 = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix}

Проверим:

 σ₃² =  \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix} *  \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix} =  \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}= I.

Свойство e₃²=1 выполняется. Первая матрица найдена чисто из ее физического смысла.

Шаг 2: σ₁ — оператор "переворота"

Что должен делать оператор e₁ (или σ₁)? В нашем геометрическом мире он перпендикулярен e₃. Какое самое простое действие он может совершать над состояниями "вверх/вниз"? Переворачивать их!

  • σ₁ должен превращать "вверх" в "вниз": σ₁ * [1, 0] = [0, 1].

  • σ₁ должен превращать "вниз" в "вверх": σ₁ * [0, 1] = [1, 0].

Снова ищем матрицу

\sigma_1 = \begin{pmatrix} a & b \\ c & d \end{pmatrix} :

\left(\begin{array}{cc} a & b \\ c & d \end{array}\right) \left(\begin{array}{c} 1 \\0 \end{array}\right) = \left(\begin{array}{c} a \cdot 1 + b \cdot 0 \\ c \cdot 1 + d \cdot 0 \end{array}\right) = \left(\begin{array}{c} a \\ c \end{array}\right)

 \left(\begin{array}{cc} a & b \\ c & d \end{array}\right) \left(\begin{array}{c} 0 \\ 1 \end{array}\right) = \left(\begin{array}{c} a \cdot 0 + b \cdot 1 \\ c \cdot 0 + d \cdot 1 \end{array}\right) = \left(\begin{array}{c} b \\ d \end{array}\right) 

Мы хотим получить [0, 1]. Значит, a=0, c=1.
Мы хотим получить [1, 0]. Значит, b=1, d=0.

Собираем матрицу:

\sigma_1 = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}

Проверим σ₁²=1:

σ₁² =  \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} *  \begin{pmatrix} 0 & 1 \\ 1 & 0  \end{pmatrix} =  \begin{pmatrix} 1 & 0 \\ 0 & 1  \end{pmatrix}= I.

Выполнено.

Самостоятельно можете проверить антикоммутативность с σ₃ .

Шаг 3: σ₂ — магия Геометрической Алгебры

Мы могли бы пытаться угадать геометрический смысл σ₂, но у нас есть путь лучше. В Геометрической Алгебре объекты порождают друг друга!

Мы знаем, что в 3D бивектор e₁e₂ дуален вектору e₃ (с точностью до знака и i).

Давайте определим e₂ через другие векторы и псевдоскаляр

 I₃ = e₁e₂e₃.

Например, e₂ = e₃e₁I₃⁻¹.

В матричном представлении I₃ ↔ iI. Тогда

 I₃⁻¹ ↔ -iI.

Давайте просто перемножим наши "векторы" σ₁ и σ₃ и посмотрим, что получится.

Их произведение должно быть как-то связано с σ₂.

σ₁σ₃ = \begin{pmatrix} 0 & -1 \\ 1& 0 \end{pmatrix}.

Это не σ₂, это бивектор e₁e₃.

Давайте воспользуемся свойством σ₁σ₂ = iσ₃.

Отсюда σ₂ = -iσ₁σ₃.

 σ₂ =  \begin{pmatrix} 0 & -i*(-1) \\ -i*1& 0 \end{pmatrix} =  \begin{pmatrix} 0 & -i*(-1) \\ -i*1& 0 \end{pmatrix} =  \begin{pmatrix} 0 & i \\ -i & 0 \end{pmatrix}.

Постойте-ка, давайте-ка сменим порядок. σ₃σ₁ = -iσ₂.

Отсюда σ₂ = iσ₃σ₁.

 σ₂ = i *  \begin{pmatrix} 0 & 1 \\ -1 & 0 \end{pmatrix} =  \begin{pmatrix} 0 & i \\ -i & 0 \end{pmatrix}

А давайте e_2 через произведение e_1 и e_3? То есть,

e_1 e_3 = I_3 e_2?

В матричном виде:

\sigma_1 \sigma_3 = i \sigma_2?

Тогда

\sigma_2 = -i \sigma_1 \sigma_3 = -i \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix} = \begin{pmatrix} 0 & i \\ -i & 0 \end{pmatrix}

Подождите-ка. Стандартная матрица Паули σ₂ имеет вид  \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix}.

Где мы ошиблись?

Нигде! Выбор знаков (σ₁σ₂ = iσ₃ или σ₁σ₂ = -iσ₃) — это вопрос соглашения о хиральности (правая или левая система координат). Давайте просто определим e₂ через произведение, которое даст стандартный результат.

Вспомним, что бивектор e₃e₁ соответствует iσ₂. Давайте так и потребуем:

 σ₃σ₁ = iσ₂

 σ₂ = (1/i)  σ₃σ₁ = -i  σ₃σ₁

 σ₂ = -i *  \begin{pmatrix} 0 & 1 \\ -1 & 0 \end{pmatrix} =  \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix}

\sigma_2 = \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix}


Вот она, третья матрица, полученная как продукт взаимодействия двух других.

\begin{pmatrix} 0 & -i \\ i& 0 \end{pmatrix}

Проверим σ₂²=1:

\begin{pmatrix} 0 & -i \\ i& 0 \end{pmatrix}  \begin{pmatrix} 0 & -i \\ i& 0 \end{pmatrix} = \begin{pmatrix} -i*i & 0 \\ 0& -i*i \end{pmatrix} = \begin{pmatrix} -(-1) & 0 \\ 0& -(-1) \end{pmatrix}  = \begin{pmatrix} 1 & 0 \\ 0& 1 \end{pmatrix}   = I.

Выполнено. Антикоммутативность с остальными тоже легко проверяется.

Вывод

Мы не "нашли" матрицы Паули. Мы их сконструировали.

  • σ₃ мы построили из требования быть оператором измерения "вверх/вниз".

  • σ₁ мы построили из требования быть оператором "переворота" между "вверх" и "вниз".

  • σ₂ мы получили как геометрическое произведение σ₃ и σ₁ (с нормировкой на i).

Матрицы Паули — это не магия. Это неизбежное следствие попытки представить три ортогональных направления и их произведения в виде матриц 2x2. Геометрическая алгебра вскрывает их внутреннюю логику и показывает, что они — всего лишь одно из возможных "воплощений" вечной геометрии пространства.

Часть 9. Подведем итоги.

Давайте подведем итог, что мы открыли:

  1. Есть только одно умножение. Геометрическое произведение ab. Оно содержит в себе всю информацию о взаимном расположении векторов.

  2. Оно распадается на части. ab = a·b + a∧b. Его симметричная часть (a·b) — скалярное произведение (проекция). Его антисимметричная часть (a∧b) — бивектор (ориентированная площадь).

  3. Оно порождает новые объекты. Умножая векторы, мы получаем бивекторы, которые в 2D ведут себя как i и задают плоскость вращения.

  4. Оно кодирует преобразования. Произведение двух векторов R=ba создает ротор — оператор вращения. Формула v' = RvR⁻¹ работает всегда и везде, от 2D-графики до специальной теории относительности.

Мы начали с простой идеи и, следуя логике, пересобрали всю векторную алгебру, сделав ее проще, мощнее и интуитивнее. Это и есть геометрическая алгебра. И мы с вами лишь приоткрыли дверь в этот удивительный мир.

Это не какая-то эзотерическая математика.

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

А еще с помощью нее можно переписать всю физику!

Комментарии (171)


  1. serjis
    26.10.2025 06:13

    Самое то для воскресного утреннего чтива )


    1. akod67
      26.10.2025 06:13

      Кто дочитал до конца? Я на 30% сломался.


      1. ZSN_2
        26.10.2025 06:13

        Согласился с автором после 7-го слова в заголовке.


      1. Zalechi
        26.10.2025 06:13

        С утра держу открытую вкладку. Вернусь домой с работы, тогда поговорим…


        1. Zalechi
          26.10.2025 06:13

          Почитал комментарии, всё понял — расходимся (занавес)!

          Статья отличная.


      1. dyadyaSerezha
        26.10.2025 06:13

        Автор, я сломался тут:

        Единичный вектор n задает нам ориентацию зеркала, стоящего в начале координат и перпендикулярного этому вектору.

        То есть, с потолка ввели это "перпендикулярный". А потом стали убеждать, что и сам вектор тоже ничего так. Зачем?

        И в самом начале пропущено главное - если ветор это действие, то что же объект этого действия?

        Ну и вообще, много в тексте появляется вдруг, из ниоткуда. Вот не было вектора V, а теперь он вдруг уже есть. Надо же писать: тогда для некого вектора V... Или, допустим, у нас есть вектор V, тогда...

        Так что же объект действия? Похоже, что другой вектор. Тогда получается, мы действуем над действиями? Хмм... И кстати, тогда умножение-зеркалирование - не коммутативная операция? Это все надо писать сразу, не оставляя читателя гадать и блуждать в потемках. Дальше читать не стал - слишком много уже вопросов по тексту)


        1. master_program Автор
          26.10.2025 06:13

          "Так что же объект действия? Похоже, что другой вектор. Тогда получается, мы действуем над действиями? Хмм... "

          А что вас тут смущает? Именно это и описано. Но действовать можно не только на векторы.

          Сразу же как объект действия используется другой вектор.


          1. dyadyaSerezha
            26.10.2025 06:13

            Меня смущает то, что это не сказано явно и в самом начале. Как и то, что такая операция некоммутативная.


        1. master_program Автор
          26.10.2025 06:13

          Если перпендикулярный, то получатся отражения Хаусхолдера известные. Они потом вводятся все же, через минус (а на практике используют мнимую единицу).

          Суть то в том. что зеркало к вектору и под углом можно поставить.


  1. avshkol
    26.10.2025 06:13

    • Число 5: это не просто «пять яблок». Это оператор «увеличить в 5 раз».

    • Комплексное число i: это не просто √-1. Это оператор «повернуть на 90 градусов». Умножьте на i еще раз — повернете на 180. Отсюда и i² = -1.

    Здесь понятно

    давайте предположим, что вектор — это не стрелка. Вектор — это зеркало.

    Единичный вектор n задает нам ориентацию зеркала, стоящего в начале координат и перпендикулярного этому вектору. Вся суть вектора — отражать другие объекты.

    Здесь непонятно. Тогда другие вектора - тоже зеркала или всё же отражаемые объекты?..

    Или, к примеру, у нас есть вектор скорости. Что он отражает, как в зеркале?


    1. master_program Автор
      26.10.2025 06:13

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

      Никаких скоростей пока что тут нет, есть только геометрические векторы.


      1. avshkol
        26.10.2025 06:13

        Хорошо, тогда распишите подробнее, как вы пришли к тому, что вектор - это зеркало, а не, к примеру, ножницы или сито?..


        1. dyadyaSerezha
          26.10.2025 06:13

          Как? Ну это же классика. Свет мой, зеркальце, скажи... (с)


    1. Exlt8
      26.10.2025 06:13

      Тогда другие вектора - тоже зеркала или всё же отражаемые объекты?

      Лично я тоже не люблю абстрактные двойные смыслы, поэтому пользуюсь неким соглашением, что в произведении ab, справа это оператор, слева объект, тогда скаляр это проекция на направление параллельное "a", бивектор - проекция на направление перпендикулярное "a". Но это вопрос предпочтений, а не смысла.

      Для более сложных объектов, представленных матрицами, оператор считается сопряженным и транспонированным (эрмитово-сопряженным), чтобы произведение объекта на себя давало в точности матрицу Грамма.


      1. avshkol
        26.10.2025 06:13

        Для более сложных объектов, представленных матрицами, оператор считается сопряженным и транспонированным (эрмитово-сопряженным), чтобы произведение объекта на себя давало в точности матрицу Грамма.

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

        Даже не представляю, какие ценные знания даёт понимание этой фразы...)))


        1. master_program Автор
          26.10.2025 06:13

          Да нет, это материал первого курса первого семестра по линейной алгебре.

          Матрица Грамма - это симметричная положительно определенная матрица, состоящая из попарных скалярных произведений каких-то векторов.

          \left(\begin{array}{cccc}\left\langle X_1, X_1\right\rangle & \left\langle X_1, X_2\right\rangle & \ldots & \left\langle X_1, X_m\right\rangle \\\left\langle X_2, X_1\right\rangle & \left\langle X_2, X_2\right\rangle & \ldots & \left\langle X_2, X_m\right\rangle \\\ldots & & & \ldots \\\left\langle X_m, X_1\right\rangle & \left\langle X_m, X_2\right\rangle & \ldots & \left\langle X_m, X_m\right\rangle\end{array}\right)

          Тут X - это разные векторы. Если они комплексные, то имеется в виду умножение комплексно сопряженного на исходный вектор.

          Поскольку правило умножения матриц - это "строка на столбец", то эти Х буквально являются столбцами исходной матрицы.

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


        1. AndreyDmitriev
          26.10.2025 06:13

          Для понимания этой фразы, очевидно, требуется бэкграунд в виде десятков тысяч часов

          И даже этого хватит далеко не всем. Тут нужен определённый стиль и образ мышления, их недостаточно знать, тут надо "думать" этими категориями, иметь в голове дополнительные измерения, что ли, чтобы оно уложилось там "правильным образом". Я когда в Физтехе грыз гранит науки, у меня никогда не получалось думать формулами, хотя я их вроде знал, я был практиком, делал эксперименты и подводил под них теорию, но половина потока были "теоретики", для которых любое доказательство начиналось с "очевидно что...", им не нужны были эксперименты, только стол, лист бумаги и авторучка, хотя изначально у нас были одни знания, они могли сделать более далеко идущие выводы.


    1. lgorSL
      26.10.2025 06:13

      Здесь непонятно. Тогда другие вектора - тоже зеркала или всё же отражаемые объекты?..

      Тут примерно как с числами.
      Мы берём и говорим "Чисто N - количество яблок у Васи". Или говорим, что "Число P - курс доллара к рублю". Мы в каждом конкретном случае вкладываем в числа какой-то смысл и не будем делать бессмысленные операции типа сложения яблок с курсом доллара, хотя математика нам не запрещает. Точно так же для конкретного вектора мы можем держать в уме что "это отражение, записанное в виде вектора"

      Но вообще в геометрической алгебре скорость это бивектор. А экспонента скорости, умноженной на время даст трансформацию, R = exp(v * t).


      1. avshkol
        26.10.2025 06:13

        Смысл, вкладываемый в количество яблок или курс доллара понятен 99% населения. Но вот смысл "отражения в виде вектора" далеко не так понятен... И под отражением в статье понималось зеркальное отражение с соответствующими построениями!!!

        Но вообще в геометрической алгебре скорость это бивектор. А экспонента скорости, умноженной на время даст трансформацию, R = exp(v * t).

        Я как раз и обратил внимание на этот стремительный (и не понятный) переход от яблок к вот этому всему...


    1. vvzvlad
      26.10.2025 06:13

      Тогда другие вектора - тоже зеркала или всё же отражаемые объекты?..

      Я могу отразить зеркало в другом зеркале, потому что оно обьект и абстракция одновременно


      1. avshkol
        26.10.2025 06:13

        Тогда у нас будет галерея отражений. Два вектора дают галерею?..


    1. dyadyaSerezha
      26.10.2025 06:13

      Или, к примеру, у нас есть вектор скорости.

      Тут люди о высшем, а вам бы только в GTA погонять)


  1. ALapinskas
    26.10.2025 06:13

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

    Раз так все просто, я лучше промолчу, что ничего не понял.


  1. LinkToOS
    26.10.2025 06:13

    Странный язык изложения.

    В обычной алгебре уравнение 5x = 10 решается делением.

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

    Деление — это умножение на обратный элемент (x = 10 * 5^1)

    Деление — это не умножение. Но деление можно выразить как "умножение на обратный элемент".

    Мы хотим так же решать и геометрические уравнения!

    Почему нет? Уравнения в геометрии это все те же математические уравнения. К ним применимы те же самые принципы преобразования.

    Число 5: это не просто «пять яблок». Это оператор «увеличить в 5 раз».

    Это нейронка выдала?

    Что, если каждый математический объект — это не просто статичная сущность, а оператор, выполняющий преобразование?

    Не могут все математические объекты быть операторами.


    1. master_program Автор
      26.10.2025 06:13

      Число 5 с точки зрения умножения - это увеличить в 5 раз. С точки зрения сложения - это сдвинуться на 5 вдоль числовой оси. На числовой оси число 5 умножением растягивает в 5 раз ось.


      1. EvilTeacher
        26.10.2025 06:13

        В попытках объять необъятное, охватить неохватное и впихнуть невпихуемое - стОит все же сделать различие между скалярным и векторным. Число 5 это всего лишь иероглиф. А вот что этот иероглиф описывает - зависит от фантазии пользователя и той системы аксиом, которых он придерживается....
        Да и вообще - умножения не существует. Есть всего лишь повтороение одного и того же указанное количество раз....


        1. randomsimplenumber
          26.10.2025 06:13

          Умножение на пи, например ;)


        1. APh
          26.10.2025 06:13

          Нет, не "иероглиф". Вы тут путаете знаки и понятия. В разных языках число пять записывается разными знаками ("иероглифами"). Однако, понятие числа — количестве единичных сущностей — не меняется. Все разные знаки в китайском, французском, иврите и марсианском будут обозначать одно и то же. Пять оно и в Африке пять.


          1. Ndochp
            26.10.2025 06:13

            Угу, 5 и в Африке 5, а вот умножение и возведение в степень - уже нет.
            Сравните e^натуральное, e^целое, e^вещественное, e^комплексное. Это 4 одинаковых знака описывающих 4 разные операции.


    1. code07734
      26.10.2025 06:13

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

      К x было применено умножение на 5. Обратная операция(по 1 аргументу) деление на 5. Чтобы не нарушать (не)равенство нужно к 2 аргументу оператора сравнения применить ту же операцию - деление на 5. Перестановки между "частями" уравнения вот это как раз костыль. Да и нет никакой перестановки. Эта мнимая перестановка и есть применение обратных по 1 аргументу операций


    1. master_program Автор
      26.10.2025 06:13

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

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

      А если это строго описывать через аксиомы, то нет такого определения "перенести из одной части в другую". Есть последовательность одинаковых преобразований обеих частей уравнения.


      1. garus_ru
        26.10.2025 06:13

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

        Трудно в 4-ом классе делать преобразование обеих частей, когда они пользуются только натуральными числами. У них тогда должны быть и отрицательные числа, и дроби. Математика Петерсон, если что.


        1. Ndochp
          26.10.2025 06:13

          Зачем? "чтобы сохранялось равенство мы можем делать одинаковые действия над обеими частями (только на 0 умножать нельзя, а то результата не останется)"
          x + 5 = 8
          вычтем 5 с обеих сторон Х + 5 - 5 = 8 - 5
          И никаких отрицательных чисел, просто вычитаем (умеем) положительное целое 5 (знаем)
          А за тем, чтобы х = -2 не получилось следит автор задачника. С дробями аналогично. Делим на целое и все.


    1. Wizard_of_light
      26.10.2025 06:13

      Не могут все математические объекты быть операторами

      О, тут должен быть холивар фанатов функционального программирования)


      1. sundmoon
        26.10.2025 06:13

        Заказываю теорию категории геометрических алгебр.


    1. Andy_U
      26.10.2025 06:13

      Но деление можно выразить как "умножение на обратный элемент".

      А не определить? Если нет, жду ваше определение деления.


      1. R0bur
        26.10.2025 06:13

        Операция деления, насколько я помню, в простом скалярном случае состоит в поиске числа, умножение которого на делитель даёт делимое.


        1. Andy_U
          26.10.2025 06:13

          Так эквивалентные же определения, если мы про поле (или кольцо - уже не помню?) говорим, смысл спорить?


  1. andy_p
    26.10.2025 06:13

    Возможно, если бы с нее начинали в вузах

    Увы, но алгебра Гиббса, которую проходят в школе и вузах победила алгебру Клиффорда. А менять легаси очень непросто. А переписанная на язык геометрической алгебры физика есть, например, в книгах Geometric Algebra for Physics и New Foundations for Classical Mechanics. Не знаю, есть ли перевод на русский язык.


    1. master_program Автор
      26.10.2025 06:13

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


    1. lgorSL
      26.10.2025 06:13

      Не советую читать New Foundations for Classical Mechanics. Там геометрическая алгебра используется только для вращений, и в итоге там какой-то микс геометрической алгебры и обычных формул. Оно и сложно и не сильно понятно зачем. Книга вышла в 1986 году и на мой взгляд устарела.

      Лучше сразу вот эту книжку читать про plane-based геометрическую алгебру: https://bivector.net/PGADYN.html

      Например, если надо тело подвинуть и повращать, Хестенец напишет (dV + R a R^{-1}) и будет это тащить через все дальнейшие формулы, хотя plane-based алгебра позволит это записать как M a M^{-1} и работать с такой формулой на порядок проще.


      1. Andy_U
        26.10.2025 06:13

        работать с такой формулой на порядок проще.

        А с практической точки зрения, вычислительная сложность будет ведь такая же?


        1. lgorSL
          26.10.2025 06:13

          Будет отличаться в мелочах, но примерно так же.
          Но не надо - запись (dV + R a R^{-1}) просто неудобная - комбинировать несколько трансформаций сложно, сделать что-то типа дифференцирования или нахождения логарифма тоже неудобно.

          Например, в plane-based алгебре бивектор скорости вмещает в себя сразу и линейную и вращательные скорости тела. Если разделять линейное и вращательное на две сущности, то сразу удваивается количество формул и количество мест, где можно ошибиться.


          1. Andy_U
            26.10.2025 06:13

            Будет отличаться в мелочах, но примерно так же.

            А стоит ли тогда овчинка выделки?

            Если разделять линейное и вращательное на две сущности

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

            Ну и про расчеты в искривленных пространствах вообще лучше не говорить.


            1. lgorSL
              26.10.2025 06:13

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

              Так в том-то и дело, что нет!

              Будет сущность для инерции (по-сути тоже тензор), которая вмещает и тензор инерции и массу. Так же будет сущность, которая вмещает и силу и момент.
              Будет формула преобразования, которая будет действовать на всё сразу!

              Вот мой код для инерции: https://github.com/Kright/ScalaGameMath/blob/master/pga3dphysics/shared/src/main/scala/com/github/kright/pga3dphysics/Pga3dInertiaSummable.scala

              10 чисел, в которых закодирован и тензор инерции, и масса, и положение центра масс. И что прикольно, для сложения нескольких тел (даже с центрами масс в разных местах), мне достаточно просто покомпонентно сложить.

              Если математически смотреть, то там будет симметричная матрица 6x6, в которой два блока 3х3 - один с тензором инерции и ещё один 3x3, где диагональные элементы это масса тела, потому что "масса" для перемещения вдоль разных осей одна и та же.


              1. Andy_U
                26.10.2025 06:13

                Будет сущность для инерции (по-сути тоже тензор), которая вмещает и тензор инерции и массу.

                Масса - граммы (извините, я так физик-теоретик с академическим бэкгораундом, так что в СГС). а момент инерции тензор g*cm^2. От того, что вы их в общую блочно-диагональную матрицу поместите, эта матрица тензором не станет).

                10 чисел, в которых закодирован и тензор инерции, и масса, и положение центра масс.

                Вы ведь понимаете, что 6 компонентов момента инерции зависят от ориентации тела? А чтобы пересчитать из начального положения в текущее, нужна еще ориентация (типа трех углов, или компонетнов матрицы вращения). Итого 13? Нет, конечно, можно взять за исходную ориентацию ту, где этот тензор инерции диагонален и отсчитывать вращения от нее, ну так тогда эту начальную ориентацию тоже нужно хранить? Жаль используемого вами языка программирования не знаю ;)


                1. lgorSL
                  26.10.2025 06:13

                  Да, в компоненте ww лежат граммы, в компонентах wx, wy, wz граммы на сантиметры или ещё как, в xx, xy... - граммы на квадратные сантиметры.

                  В мультвекторе в разных компонентах разные размерности. Иначе никак оно всё в одну сущность не поместится.

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


                  1. Andy_U
                    26.10.2025 06:13

                    В мультвекторе в разных компонентах разные размерности. Иначе никак оно всё в одну сущность не поместится.

                    Но тогда это не физика, а ООП, где можно и мух и котлеты положить на одну тарелку. Сравните с тензором электромагнитного поля, применение которого облегчает пересчет напряженностей полей при смене системы отсчета.


            1. master_program Автор
              26.10.2025 06:13

              Ну вообще-то геометрическая алгебра сильно упрощает расчеты в искривленных пространствах, особенно если речь про ОТО.


              1. Andy_U
                26.10.2025 06:13

                особенно если речь про ОТО.

                Не верю. Там же 2 отдельных инварианта, как в классике, а один - интервал. А тут все завязано на инвариантность расстояния от вращения.


  1. AndreyDmitriev
    26.10.2025 06:13

    Я вот только что закончил читать "Урожаи и посевы" Александра Гротендика (кстати, офигенная книга, рекомендую), и под впечатлением от прочитанного, вот не могу не заметить, что современная алгебраическая геометрия, если опереть её на схематический формализм Гротендика, позволяет рассматривать геометрическое произведение ab не только как внутреннюю операцию в алгебре Клиффорда, но и как морфизм в более общем пространстве функториальной природы — пространстве Гротендиковой топологии. Здесь взаимное расположение векторов кодируется уже вовсе и не числами, а гомоморфизмами между объектами категорий, а их симметричные и антисимметричные компоненты естественно интерпретируются как когомологические классы в группах когомологии Галуа, отражающих скрытые симметрии поля коэффициентов.

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


    1. acsent1
      26.10.2025 06:13

      Для тех кто не понял статьи обязательно читать этот комментарий


    1. Nocturnal_Rainbow
      26.10.2025 06:13

      Скрытый текст

      Напомнило одно видео


    1. Razoomnick
      26.10.2025 06:13

      "Урожаи и посевы", «Теория поля»… Сложно быть агрономом.


  1. murkin-kot
    26.10.2025 06:13

    Приятная простота. Но что, кроме интуитивности она даёт?

    Если геометрическая алгебра изучается уже давно, то положительные стороны должны себя проявить не только в плане интуитивной понятности. Например, сокращение количества вычислительных операций в каких-то областях было бы неплохим результатом. Ну или даже некие прорывы в ранее застойных областях, именно за счёт нового подхода (на интуитивности).

    Можно найти такие улучшения?

    Похоже, что нет. То есть для начального обучения, для лучшего схватывания и запоминания - да, подходит. Но если человек освоил некий альтернативный метод и хорошо запомнил все необходимые детали, то далее собственно интуитивная часть перестаёт давать серьёзные результаты. Всё потому, что хоть интуитивно понятная основа, хоть совсем непонятная, обе требуют много работы по выдвижению и проверке кучи гипотез, обработке массы попыток. А это нудно и долго. Привыкшие к интуитивности моментально сливаются в таких условиях. А педанты-писатели формул тупо рисуют закорючку за закорючкой и в итоге выводят нужный результат. Ну и что, если пришлось в два раза больше формул написать? Главное - дать старт педанту в нужно направлении, далее он сам, как трактор, пропашет самые что ни на есть неугодья.

    Хотя простота, конечно, очень приятная штука.


    1. master_program Автор
      26.10.2025 06:13

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

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

      Например, вам нужно сложить две дуги на сфере, для этого достаточно два ротора умножить и всё. А с помощью сферической геометрии это сделать куда сложнее.

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


      1. Andy_U
        26.10.2025 06:13

        Например, вам нужно сложить две дуги на сфере, для этого достаточно два ротора умножить и всё. А с помощью сферической геометрии это сделать куда сложнее.

        Что вы понимаете под словом "сложить"?


        1. master_program Автор
          26.10.2025 06:13

          Это значит, что мне надо сначала по направлению одной дуги пройти нужное расстояние, потом по направлению другой и понять, где я оказался.


          1. Andy_U
            26.10.2025 06:13

            Это значит, что мне надо сначала по направлению одной дуги пройти нужное расстояние, потом по направлению другой и понять, где я оказался.

            А как дуги задаются? В любом случае вычисляем 3D координаты начал и концов, строим вектора и складывем. Какая нафиг сферическая геометрия? Также и ваши "роторы".

            Вдогонку, а давайте заменим сферу эллипсоидом с разными осями?


            1. artptr86
              26.10.2025 06:13

              Да вот же. Вроде бы обычно повороты в компьютерной графике задают кватернионами, а «путь по дуге» вычисляют с помощью сферической линейной интерполяции (slerp).


            1. master_program Автор
              26.10.2025 06:13

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

              С эллипсоидом не будет проблемы, можно сменить метрику в пространстве и рассматривать как шар в новых координатах.

              Проблемы могут быть с заданием движения по поверхности произвольной формы. Но эти проблемы не больше аналогичных проблем с декартовыми координатами в той же самой задаче.


    1. lgorSL
      26.10.2025 06:13

      На самом деле очень много всего даёт, причём именно в плане простоты и универсальности.

      Классическое описание с векторами резко теряет всю простоту, если перейти к трёхмерным случаям с вращением.

      Например, в геометрической алгебре, есть вектора, плоскости (внешнее произведение двух векторов) и точки (трёх векторов). Отражение относительно вектора работает одинаково для всего.
      Причём если шагнуть в сторону физики - то сила это бивектор (линия), скорость это тоже бивектор (тоже линия, причём в случае вращения это будет ось вращения), и эти штуки аддитивны и тоже прекрасно отражаются/вращаются по тем же самым формулам.
      И кстати отражение относительно точки - это комбинация трёх отражений.

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

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

      Вот я писал заметки когда разбирался: https://kright.github.io/2024/06/02/Plane-based-геометрическая-алгебра-для-описания-движения-тел.html

      И в итоге я написал свою библиотеку: https://github.com/Kright/ScalaGameMath/tree/master/pga3d
      В процессе разобрался со всем ещё лучше и мне очень понравилось.

      И поверх этого всего написал физический движок, вот можно посмотреть на симуляцию подвески и трансмиссии автомобиля, каждый рычаг подвески честно симулируется: https://www.youtube.com/watch?v=wqt0ylxBqnU

      Сейчас переписываю библиотеку и физический движок на C++ и хочу использовать их в Unreal Engine.


      1. Jijiki
        26.10.2025 06:13

        тоже, но я решил написать свой движочек )

        Скрытый текст

        как использовать бивекторы не знаю, спасибо glm, хотя свою либу по матеше тоже имею ) тут 100 моделек анимированных(99 на репите и 1 игрок) 657 мегабайт(моделька мега оптимизированная - 660 вершин 2500 индексов и 1 рандомная текстурка :) ) всего все анимации предпосчитаны, интересно как такое весит на анриале )

        upd всё в однопотоке - это opengl ) лагов нет(ГПУ и ЦПУ - уже лоу медиум сегмент) - что логично так как всё посчитано в момент загрузки 1 раз, а применяется на ГПУ

        upd2 посмотрел вашу статью, мультивектор частично напомнил кватернион

        можно raylib попробовать он полегче чем анриал, и там примеров навались + glm имеет вроде как ускорение с define GLM_FORCE_INTRINSICS


  1. lgorSL
    26.10.2025 06:13

    Значит, ab — это в точности обратный элемент к ba! То есть ab = (ba)⁻¹ = R⁻¹.

    Наша формула для двух отражений (то есть, для поворота!) превращается в нечто невероятно элегантное.

    Мне кажется, надо всё-таки ввести операцию reverse и явно про неё сказать (та самая, которая меняет порядок векторов на обратный).

    Потому что, например, кватернион это скаляр + бивектор, и reverse для кватерниона меняет знак только для бивекторной части, не трогая скаляр. И что важно - это тривиальная замена знаков, а не что-то потенциально сложное типа нахождения обратной матрицы.

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

    P.S. И ещё очень часто любят вводить дуальность как домножение на I - но в общем случае это некорректно. Лучше вводить дуальный элемент как тот, который при домножении на исходный даст I, типа ab = I.
    Потому что можно взять генератор, у которого квадрат будет равен нулю, и формула вида aI будет давать не тот результат. А генератор с квадратом-нулём как раз будет нужен для представления линейных перемещений.


  1. Andy_U
    26.10.2025 06:13

    Оно распадается на части. ab = a·b + a∧b. Его симметричная часть (a·b)— скалярное произведение (проекция). Его антисимметричная часть(a∧b)— бивектор (ориентированная площадь).

    Так - первая часть - скаляр (вещественное число), вторая внешнее произведение векторов (очень грубо говоря некоторая многокомпонентная хрень). А тогда, что такое - '+'? Вот пусть компоненты векторов будут (a1, a2, a3) и (b1, b2, b3). Чему будет равно ваше произведение?


    1. master_program Автор
      26.10.2025 06:13

      Умножение означает применение оператора к оператору. Сложение означает, что мы складываем полученные объекты после того, как применили операторы.


      1. Andy_U
        26.10.2025 06:13

        Умножение означает применение оператора к оператору. Сложение означает, что мы складываем полученные объекты после того, как применили операторы.

        Это слова а не математически строгое определение. Не зря я не вижу решения моего примераю.


    1. master_program Автор
      26.10.2025 06:13

      Ну так ровно это и будет, что написано: скаляр + бивектор. В координатах

      \begin{array}{rll}a b & =\left(a_1 b_1+a_2 b_2+a_3 b_3\right) & / / \text { Скалярная часть } \\& +\left(a_1 b_2-a_2 b_1\right) e_1 e_2 & / / \text { Бивекторная часть (плоскость XY) } \\& +\left(a_2 b_3-a_3 b_2\right) e_2 e_3 & / / \text { Бивекторная часть (плоскость YZ) } \\& +\left(a_3 b_1-a_1 b_3\right) e_3 e_1 & / / \text { Биве-кторная часть (плоскость ZX) }\end{array}


      1. qw1
        26.10.2025 06:13

        В координатах получается вектор из 4 компонент, то есть (a1,a2,a3)*(b1,b2,b3)=(c1,c2,c3,c4)?


        1. Andy_U
          26.10.2025 06:13

          В координатах получается вектор из 4 компонент,

          Это не вектор (тензор 1-го ранга), который изменяется по определенным правилам при вращении системы координат.


          1. qw1
            26.10.2025 06:13

            Не суть, главное что 4 компонента. А значит, такое умножение не замкнуто. Как на этом строить алгебру?


            1. Andy_U
              26.10.2025 06:13

              4 компоненты - не приговор. Тензор электромагнитного поля 4х4.


              1. qw1
                26.10.2025 06:13

                Я про то, что такое умножение увеличивает размерность на единичку.
                То есть, умножаем два R3-вектора, получаем R4. Ну то есть кольцо на таких операциях не построить.


                1. Andy_U
                  26.10.2025 06:13

                  Ну в этом смысле и со скалярным и c внешним произведениями (не в 3D) по отдельности та же проблема?


            1. lgorSL
              26.10.2025 06:13

              Оно замкнутно.

              Допустим, есть генераторы e1, e2, e3.

              Из них можно собрать 8 комбинаций:

              1. скаляр (без генераторов)

              2. векторы (генераторы e1, e2, e3)

              3. бивекторы (е1*е2, e1*e3, e2*e3)

              4. псевдоскаляр (e1*e2*e3)

              Больше ничего получить невозможно, потому что 1 = e1*e1 = e2*e2 = e3*e3 и при повторении генераторов они схлопываются обратно в скаляр.

              В общем случае в алгебре с тремя генераторами мультивектор будет иметь восемь компонент и это всё будет замкнуто.


              1. Andy_U
                26.10.2025 06:13

                А если не в 3D?


                1. lgorSL
                  26.10.2025 06:13

                  Там два в степени количества генераторов.


                  1. Andy_U
                    26.10.2025 06:13

                    Ладно, ерунду спросил. Но и вы умолчали, что такое, например (e1*e2)*(e2*e3)? Подобные члены ведь возникнут при умножении обсуждаемых объектов?


                    1. lgorSL
                      26.10.2025 06:13

                      Это будет е1 * е3
                      e2 свернутся в единицу.
                      Ещё ei ej = - ej ei для i != j поэтому можно менять порядок элементов


                      1. Andy_U
                        26.10.2025 06:13

                        А точно это умножение ассоциативно, что так скобки раскрывать? А то смотрите, можно и так сделать: (e1*e2)*(e2*e3) = - (e1*e2)*(e3*e2) = -(e1*e2*e3)*e2 = -e2

                        И давайте, вернемся к случаю, пусть четырехмерного пространства. Тут еще и (e1*e2)*(e3*e4) может возникнуть.


                      1. black_warlock_iv
                        26.10.2025 06:13

                        Извиняюсь, что встреваю, но e1*e2*e3 не равно -1. e1*e2*e3 - это псевдоскаляр, особая сущность. Её квадрат равен -1.


                      1. Andy_U
                        26.10.2025 06:13

                        А разве а 3D это не векторно-скалярное произведение 3х векторов?


                      1. black_warlock_iv
                        26.10.2025 06:13

                        Нет. Хотя они тесно связаны. Если не ошибаюсь, a*b*c = |abc| e1*e2*e3, где |abc| - то самое векторно-скалярное произведение.


                      1. Andy_U
                        26.10.2025 06:13

                        Нет. Хотя они тесно связаны

                        Вы все меня окончательно запутали. Драконий покер :(


                      1. master_program Автор
                        26.10.2025 06:13

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


              1. qw1
                26.10.2025 06:13

                Оно замкнутно

                Понятно. Тогда формула выше (для произведения ab) - неполное определение произведения. Нужна формула произведения для 4-х компонентных объектов.

                Или даже не 4 компонента, а больше? Увидел выше ваше сообщение про 8 комбинаций. То есть, элемент в этой алгебре задаётся 8 числами.


                1. master_program Автор
                  26.10.2025 06:13

                  Описанных правил достаточно. Произведение 4-х компонентных объектов следует напрямую из них. Например, e123 e23 = - e123 * e32 = e122 = e1.


                  1. Andy_U
                    26.10.2025 06:13

                    Опять спрошу.

                    • А откуда взялась ассоциативность вашей операции?

                    • С моей точки зрения это можно даказать, лишь приведя конструктивный алгоритм, который из двух массивов, состоящих из 4 вещественных чисел, делает один, такой же длины. Пожалуйста. Это ведь должно быть просто?


                    1. master_program Автор
                      26.10.2025 06:13

                      Ассоциативность следует из того, что смысл умножения тут - это композиция операторов преобразования пространства.

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


                    1. master_program Автор
                      26.10.2025 06:13

                      "С моей точки зрения это можно даказать, лишь приведя конструктивный алгоритм, который из двух массивов, состоящих из 4 вещественных чисел, делает один, такой же длины.  "


                      А какое отношение этот алгоритм имеет к геометрической алгебре?

                      Если вы имеете в виду умножение спиноров в 3D (вектор + скаляр), то вообще-то произведение двух спиноров в общем случае дает сумму спинора с ротором. То есть два массива из 4 чисел дают массив из 7 чисел.

                      Или вы про 2D. Тогда всё просто - таким алгоритмом является алгоритм умножения матриц. Геометрическая алгебра в 2D в качестве матричного представления имеет все возможные матрицы размера 2 на 2, состоящие из вещественных чисел. Устроено это очень просто, вот так:

                      \begin{aligned}& \left(\begin{array}{ll}a & b \\c & d\end{array}\right)=u \cdot \mathbf{I}+v \cdot \mathbf{e}_{\mathbf{1}}+w \cdot \mathbf{e}_{\mathbf{2}}+t \cdot \mathbf{e}_{12} \\& \mathbf{e}_1=\left(\begin{array}{cc}1 & 0 \\0 & -1\end{array}\right), \quad \mathbf{e}_2=\left(\begin{array}{ll}0 & 1 \\1 & 0\end{array}\right), \quad \mathbf{e}_{12}=\left(\begin{array}{cc}0 & 1 \\-1 & 0\end{array}\right)\end{aligned}


            1. master_program Автор
              26.10.2025 06:13

              Так суть этого умножения в том, что оно замкнуто.


      1. Andy_U
        26.10.2025 06:13

        Второй раз спрашиваю, что такое первый '+'? Как вы складывете скаляр и бивектор?


        1. lgorSL
          26.10.2025 06:13

          Так же, как в комплексных числах a + bi складывают вещественную и мнимую часть.
          Только тут "дополнительных" частей много разных.


          1. Andy_U
            26.10.2025 06:13

            Только комплексные числа можно еще и умножать и много что еще. А здесь? Тоже можно? Нет, тогда я продолжаю считать, что это искуственное объединения скаляра и псевдотензона.


            1. lgorSL
              26.10.2025 06:13

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


              1. Andy_U
                26.10.2025 06:13

                В смысле? Покомпонентно, или скаляры отдельно, а бивектора отдельно? Но разве произведение бивекторов, это тоже бивектор?


                1. lgorSL
                  26.10.2025 06:13

                  Умножать геометрическим произведением и смотреть на всё вместе как на мультивектор.

                  Геометрическое произведение бивекторов даст сумму скаляра и бивектора.


                  1. Andy_U
                    26.10.2025 06:13

                    геометрическим произведением

                    Что-то google мне ничего не подсказывает? Просветите, пожалуйста.


                    1. lgorSL
                      26.10.2025 06:13

                      Вы эту статью читали или сразу пришли в комментарии?


                      1. Andy_U
                        26.10.2025 06:13

                        А, не сообразил. Но ведь это "векторное произведение" определено для 2х векторов. А результат не является вектором.


                  1. Andy_U
                    26.10.2025 06:13

                    Геометрическое произведение бивекторов даст сумму скаляра и бивектора.

                    Только сейчас сообразил. У нас ведь уже есть скаляр. Теперь из будет 2?


                    1. master_program Автор
                      26.10.2025 06:13

                      Нет, это тот же самый скаляр.


            1. master_program Автор
              26.10.2025 06:13

              Можно складывать, вычитать, умножать, делить, аналитические функции вычислять.


              1. Andy_U
                26.10.2025 06:13

                Можно складывать, вычитать, умножать, делить, аналитические функции вычислять.

                Конкретно как? Хотя бы про умножение. Так, чтобы по вашей инструкции можно в коде реализовать... И лучше в общем виде, не 3D. Но для начала и так сойдет.


                1. master_program Автор
                  26.10.2025 06:13

                  Так все правила же описал в статье: обычные правила для сложения и умножения, только нет коммутативности. Зато ei*ei = 1, ei*ej = - ej*ei если i не равно j. Больше никаких правил не нужно.


                  1. Andy_U
                    26.10.2025 06:13

                    Это было про вектора. А тут уже говрят про результаты "геометрического умножения". И нужна ассоциативность. Откуда?


                    1. master_program Автор
                      26.10.2025 06:13

                      Ассоциативность есть с самого начала, она никуда не девалась.


                      1. Andy_U
                        26.10.2025 06:13

                        Ассоциативность есть с самого начала, она никуда не девалась.

                        Т.е. вы ее постулировали и система аксиом осталась непротиворечивой?


                      1. master_program Автор
                        26.10.2025 06:13

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


                1. master_program Автор
                  26.10.2025 06:13

                  Ну тут есть 3 основных способа

                  1. Использовать матричные представления, для 3D как раз матрицы Паули отлично подойдут

                  2. Использовать символьные вычисления (правила преобразования символов здесь в статье уже заданы все, их достаточно).

                  3. Задать базис в пространстве мультивекторов и на нем определить все операции

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

                  При этом, видимо, проще всего написать программу, которая эти операции автоматически определяет сама (например, через матричное представление), хранит в виде таблицы и потом использует. Проще говоря, такая программа должна будет:

                  1. Сгенерировать весь базис в лексикографическом порядке и пронумеровать

                  2. Для каждого базисного мультивектора написать матричное представление

                  3. Сгенерировать таблицу умножения базисных мультивекторов

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


                  1. Andy_U
                    26.10.2025 06:13

                    Использовать матричные представления, для 3D как раз матрицы Паули отлично подойдут

                    Извините, я через ваш текст продраться не сумел. Какой-то он очень типа песни о вещем Олеге. Расплываясь мыслью по древу...

                    Но уж если ими воспользоваться, то одной (единичной матрицы) не хватает для полного базиса. См. https://ru.wikipedia.org/wiki/Матрицы_Паули

                    Ладно, заменим скаляр на скаляр, умноженный на sigma[0]. Но тогда оказывается, что эта алгебра изоморфна алгебре кватернионов. Теперь читаем https://ru.wikipedia.org/wiki/Кватернион и начинаем громко смеяться.

                    Итого, поздравляю, вы переизобрели именно что кватернионы. Расходимся.


                    1. master_program Автор
                      26.10.2025 06:13

                      Полный базис - это 8 матриц. Матрицы Паули, единичная матрица, и все они, умноженные на мнимую единицу.

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


                      1. Andy_U
                        26.10.2025 06:13

                        Я вам привел ссылку из википедии. Там написано, что:

                        Матрицы Паули вместе с матрицей σ0 образуют базис в пространстве всех эрмитовых матриц 2×2 (а не только матриц с нулевым следом).


                      1. master_program Автор
                        26.10.2025 06:13

                        А матричное представление алгебры Клиффорда в 3D - это все комплексные матрицы 2 на 2, не только эрмитовые.

                        Эрмитовые являются представлением ее четной подалгебры.


                      1. Andy_U
                        26.10.2025 06:13

                        А зачем вам все? Чтобы "ваши" правила умножения имплементировать, достаточно эрмитовых,

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


                      1. qw1
                        26.10.2025 06:13

                        Есть там эти определения:

                        Этот объект I = e₁e₂ называется бивектором. Он не стрелка. Он — сама ориентированная плоскость e₁e₂.

                        Наше геометрическое произведение ab — это мультивектор

                        Как я понял, "мультивектор" - наиболее общая форма элемента этой алгебры (с любыми ненулевыми компонентами)

                        Хотелось бы уточнений:

                        • 3e₁e₂ - тоже бивектор, или уже нет?

                        • 2e₁e₂+7e₂e₃ - бивектор?

                        если да, то "бивектор" - это форма мультивектора, в которой ненулевые только слагаемые со второй степенью компонент базиса.


                      1. master_program Автор
                        26.10.2025 06:13

                        Да, это всё бивекторы.


                      1. Andy_U
                        26.10.2025 06:13

                        Есть там эти определения:

                        Нет, это не определения в математическом смыле. Я ожидаю что-то типа: есть 4х-мерное линейное пространствo с базисом e0=(1,0,0,0), e1=(0,1,0,0)... Пардон, что не в столбик. Сложение поэлементное, есть умножение на скаляр x*(a,b,c,d)=(xa,xb,xc,xd), Умножение с дистрибутивностью и ассоциативностю, задается на базисе по правилам кватернионов или матриц Паули e1*e2 = i*e3... Тогда бивектор, введенный в рассмотрение автором это: пусть первый вектор, это покампонентно (x1,x2,x3), второй (y1, y2, y3), тогда их бивектор, это (0, x1,x2,x3)*(0,y1,y2,y3). Раскроете скобки, увидите скаляр нулевым элементом, дальше i, умноженное на векторное произведение x и y.

                        Итого - изоморфность кватернионам. Вся статья.


                      1. qw1
                        26.10.2025 06:13

                        Я ожидаю что-то типа: есть 4х-мерное линейное пространствo

                        Вы статью подгоняете под свои ожидания. У автора 3-мерное линейное пространство, над которым он построил 8-мерное множество (не факт, что линейное пространство, но если так, то будет вообще замечательно). И вектора исходного 3-мерного пространства, и их "алгебраические произведения", и скаляры, довольно причудливо ложатся в построенное 8-мерное множество. Что немаловажно, там есть замкнутое сложение и умножение.

                        Было бы интересно увидеть, как перемножаются в общем случае эти 8-компонентные векторы. Есть ли какая-то красивая формула, или это нудное раскрытие скобок, как с многочленами.


                      1. Andy_U
                        26.10.2025 06:13

                        У автора 3-мерное линейное пространство, над которым он построил 8-мерное множество

                        Как, имея всего 4 базисных элемента, можно на них построить 8-мерное пространство?


                      1. qw1
                        26.10.2025 06:13

                        Так 8 базисных элементов:

                        • 3 исходых вектора e₁, e₂, e₃

                        • 3 бивектора (просто говорим, что e₁e₂, e₂e₃, e₁e₃ - новые элементы, прошу любить и жаловать)

                        • скаляр 1

                        • псевдоскаляр e₁e₂e₃


                      1. Andy_U
                        26.10.2025 06:13

                        3 исходых вектора e₁, e₂, e₃

                        e0 забыли, вместо которого просто единицу рисуют. Как в комплексных числах, и где я протупил, не поняв ответа @lgorSL.

                        3 бивектора (просто говорим, что e₁e₂, e₂e₃, e₁e₃ - новые элементы, прошу любить и жаловать)

                        псевдоскаляр e₁e₂e₃

                        Ладно, обозначим e1*e2 как e12 и так далее. Чему же они равны (покомпонентно)? Нет результата, нет умножения.


                      1. qw1
                        26.10.2025 06:13

                        Ладно, обозначим e1*e2 как e12 и так далее. Чему же они равны (покомпонентно)?

                        e12 ничему не равен покомпонентно. Это просто новый символ, добавленный в базис элемент. На него можно натянуть геометрический смысл (про плоскость на векторах e1,e2), а можно не натягивать. Алгебре от этого ни тепло, ни холодно.


                      1. Andy_U
                        26.10.2025 06:13

                        Не то спросил. покомпонентно это, естественно (0,0,0,0,1,0,0,0)

                        Чему равно произведение e12 на все элементы 8-и-мерного базиса?


                      1. qw1
                        26.10.2025 06:13

                        Действуют обычные правила перемножения многочленов, плюс приколы с поглощением второй степени переменной (e12*e12=1), что не позволяет выйти за пределы нового базиса. Плюс антикоммутативность умножения.

                        То есть, умножая e12 на e3, получим e123.
                        e12*e23 = (e1*e2)*(e2*e3) = e1*(e2*e2)*e3 = e13
                        e12*5 = 5e12
                        и т.д.


                      1. qw1
                        26.10.2025 06:13

                        Вот как ложатся исходные вектора на 8-мерное пространство:
                        Скаляр

                        1 = (1, 0,0,0, 0,0,0, 0)
                        

                        Вектора

                        e1 = (0, 1,0,0, 0,0,0, 0)
                        e2 = (0, 0,1,0, 0,0,0, 0)
                        e3 = (0, 0,0,1, 0,0,0, 0)
                        

                        Бивектора

                        e12 = (0, 0,0,0, 1,0,0, 0)
                        e23 = (0, 0,0,0, 0,1,0, 0)
                        e31 = (0, 0,0,0, 0,0,1, 0)
                        


                      1. Andy_U
                        26.10.2025 06:13

                        Да, только я бы обозвал 1 как e0. Чуть меньше путаницы. Но теперь нам еще нужна полная матрица e[i]*e[j]. Пока мы знаем её только для 0 <= i <= 3 и 0 <= j <= 3. Т.е. для левой верхней ее четверти. В статье ведь ее нет?


                      1. qw1
                        26.10.2025 06:13

                        Можно записать всю "таблицу умножения" 8x8, используя правила перемножения как с многочленами + сокращения квадратов, как я написал в примере выше. Но это очень рутинно. Одиночные примеры, типа e1e2 = e12, в статье приведены в избытке.

                        Поэтому я и спрашивал, есть ли красивая формула, возможно в матричном виде, которая двум 8-векторам сомножителям поставит в соответствие 8-вектор произведение.


                      1. Andy_U
                        26.10.2025 06:13

                        Но это очень рутинно.

                        Угу, а автор сопротивляется. Можно, конечно, попробовать Maple использовать, но я его давно не запускал. Ладно, предположим, сделали. Теперь второй вопрос, как кинуть два трехмерных вектора в это пространство, так, чтобы после умножения получить 4 числа, (скалярное произведение и векторное).


                      1. Andy_U
                        26.10.2025 06:13

                        Поэтому я и спрашивал, есть ли красивая формула, возможно в матричном виде, которая двум 8-векторам сомножителям поставит в соответствие 8-вектор произведение.

                        Тут ниже ссылку на github дали. В pypi - clifford. Но мне пришлось сначала последнюю бета-версию numba поставить для 3.14. Там если такой скрипт запустить:

                        Скрытый текст
                        import re
                        
                        from clifford import Cl
                        from clifford.g3 import *
                        
                        
                        def extract_name(s: str) -> str:
                            return match.group(1) if (match := re.match('\\(1\\^(\\S+)\\)', s)) else s
                        
                        
                        def extract_product(s: str) -> str:
                            return f'{match.group(1)}{match.group(2)}' if (match := re.match('(-*)\\(1\\^(\\S+)\\)', s)) else s
                        
                        
                        def main() -> None:
                        
                            basis = [1, e1, e2, e3, e12, e13, e23, e123]
                        
                            for i, ei in enumerate(basis):
                                for j, ej in enumerate(basis):
                                    print(f'{extract_name(str(ei))} * {extract_name(str(ej))} = {extract_product(str(ei*ej))}')
                                print()
                        
                        
                        if __name__ == '__main__':
                            main()

                        то так получается:

                        Скрытый текст
                        1 * 1 = 1
                        1 * e1 = e1
                        1 * e2 = e2
                        1 * e3 = e3
                        1 * e12 = e12
                        1 * e13 = e13
                        1 * e23 = e23
                        1 * e123 = e123
                        
                        e1 * 1 = e1
                        e1 * e1 = 1
                        e1 * e2 = e12
                        e1 * e3 = e13
                        e1 * e12 = e2
                        e1 * e13 = e3
                        e1 * e23 = e123
                        e1 * e123 = e23
                        
                        e2 * 1 = e2
                        e2 * e1 = -e12
                        e2 * e2 = 1
                        e2 * e3 = e23
                        e2 * e12 = -e1
                        e2 * e13 = -e123
                        e2 * e23 = e3
                        e2 * e123 = -e13
                        
                        e3 * 1 = e3
                        e3 * e1 = -e13
                        e3 * e2 = -e23
                        e3 * e3 = 1
                        e3 * e12 = e123
                        e3 * e13 = -e1
                        e3 * e23 = -e2
                        e3 * e123 = e12
                        
                        e12 * 1 = e12
                        e12 * e1 = -e2
                        e12 * e2 = e1
                        e12 * e3 = e123
                        e12 * e12 = -1
                        e12 * e13 = -e23
                        e12 * e23 = e13
                        e12 * e123 = -e3
                        
                        e13 * 1 = e13
                        e13 * e1 = -e3
                        e13 * e2 = -e123
                        e13 * e3 = e1
                        e13 * e12 = e23
                        e13 * e13 = -1
                        e13 * e23 = -e12
                        e13 * e123 = e2
                        
                        e23 * 1 = e23
                        e23 * e1 = e123
                        e23 * e2 = -e3
                        e23 * e3 = e2
                        e23 * e12 = -e13
                        e23 * e13 = e12
                        e23 * e23 = -1
                        e23 * e123 = -e1
                        
                        e123 * 1 = e123
                        e123 * e1 = e23
                        e123 * e2 = -e13
                        e123 * e3 = e12
                        e123 * e12 = -e3
                        e123 * e13 = e2
                        e123 * e23 = -e1
                        e123 * e123 = -1
                        

                        А дальше вот что. Если кидать 3D вектора в базис (e1,e2,e3) то их прозведение оказывается в базисе (1,e12,e13,e23). Если умножать такие объекты, то они в этом базисе и остаются. Причем правила те же, что и для кватернионов.

                        И автор, вообще нехороший человек. Упомянул про алгебру Клиффорда только в списке тегов. В тексте - нет. Некрасиво.


                      1. master_program Автор
                        26.10.2025 06:13

                        Нет тут никакого e0.

                        "Чему же они равны (покомпонентно) ?"

                        Это очень простой вопрос. Вот ответ:

                        e1 = e1

                        e2 = e2

                        e1*e2 = e12


                      1. Andy_U
                        26.10.2025 06:13

                        Извините, вы сейчас лектора из того анекдота напоминаете:


                      1. master_program Автор
                        26.10.2025 06:13

                        Из базовых правил видно, что оно линейное. Более того, все геометрические преобразования, которые описывают все мультивекторы в 3D - это линейные преобразования пространства.


                      1. master_program Автор
                        26.10.2025 06:13

                        "8-мерное множество (не факт, что линейное пространство, но если так, то будет вообще замечательно). "

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

                        Но если брать не базисные элементы, а смешанные, то там есть делители нуля и тому подобные вещи.


                      1. master_program Автор
                        26.10.2025 06:13

                        "Было бы интересно увидеть, как перемножаются в общем случае эти 8-компонентные векторы. Есть ли какая-то красивая формула "

                        На это есть ответ. Никакой красивой формулы нет.


                      1. master_program Автор
                        26.10.2025 06:13

                        Если я так буду писать, то почти никто ничего не поймет, жанр статьи тут - популярная. Написано так, чтобы детям было понятно


                      1. Andy_U
                        26.10.2025 06:13

                        Если я так буду писать, то почти никто ничего не поймет, жанр статьи тут - популярная. Написано так, чтобы детям было понятно

                        То-то вы написали настолько просто, что представить код, имплементирующий вашу логику, сами не можете.


                      1. flx0
                        26.10.2025 06:13

                        То-то вы написали настолько просто, что представить код, имплементирующий вашу логику, сами не можете.

                        Вы прикалываетесь?
                        https://github.com/topics/geometric-algebra
                        Либы на любой язык программирования и вкус.


                      1. Andy_U
                        26.10.2025 06:13

                        Где вы были вчера? :)


                      1. master_program Автор
                        26.10.2025 06:13

                        Легко убедиться, что изоморфности кватернионам нет. e1^2 = 1, а мнимая единица в квадрате дает -1. Зачем вообще вы вспоминаете кватернионы тут в этом контексте?


                      1. Andy_U
                        26.10.2025 06:13

                        Вот конец вашей статьи:

                        Оно распадается на части. ab = a·b + a∧b. Его симметричная часть (a·b)— скалярное произведение (проекция). Его антисимметричная часть(a∧b)— бивектор (ориентированная площадь).

                        Вот выдержка из википедии:

                        Учитывая, что в 3D кросс-произведения e[i]*e[j] - это вектора, то где разница?


                      1. master_program Автор
                        26.10.2025 06:13

                        У меня дано универсальное правило умножения векторов, из которого далее следует, как построить умножение любых объектов и в любой размерности пространства. А эрмитовы матрицы задают правила умножения бивекторов, причем только в 3D (в большей размерности так уже не работает).


                      1. Andy_U
                        26.10.2025 06:13

                        У меня дано универсальное правило умножения векторов, из которого далее следует, как построить умножение любых объектов и в любой размерности пространства

                        Пальцем покажите, пожалуйста.


                      1. master_program Автор
                        26.10.2025 06:13

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

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

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

                        Это как пойти в школу и 7-классникам школьную алгебру через квантовую механику объяснять - вот что вы предлагаете.


  1. Vasya1209
    26.10.2025 06:13

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


    1. edo1h
      26.10.2025 06:13

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

      нет, конечно же. в подаляющем большинстве случаев математические операции «создают» just for fun, а потом им находят практическое применение. или не находят ;)


    1. Pshir
      26.10.2025 06:13

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

      Нет же. Псевдоримановы пространства были придуманы существенно раньше общей теории относительности.


    1. master_program Автор
      26.10.2025 06:13

      Чтобы описывать любые геометрические преобразования и физические процессы.


  1. odietproieci
    26.10.2025 06:13

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


    1. Pshir
      26.10.2025 06:13

      Тут цель же в начале написана: чтобы с векторами работать не только в трёхмерном пространстве. В самом обычном 4-мерном евклидовом пространстве векторного произведения нет, кватернионами ничего описать нельзя, и пентанионов нет.


      1. master_program Автор
        26.10.2025 06:13

        С кватернионами проблема в том, что непонятно, почему они такие, откуда все эти правила. А здесь всё понятно - вот есть отражения, их композиция поворот и т.п.

        Все формулы из понятных базовых правил расписываются.

        У кватернионов же сразу не очень понятные формулы.

        Ну и да, круто то, что нет никакой привязки к размерности пространства.


  1. black_warlock_iv
    26.10.2025 06:13

    Не вполне понятно как это обобщается на дифференцируемые многообразия и получается ли что-то лучше, чем тензорный анализ и дифформы. Векторы в физике -- это обычно не векторы, а векторные поля в криволинейном пространстве.


  1. Pshir
    26.10.2025 06:13

    Спасибо за написание базового туториала! Статью про уравнения Максвелла пришлось целый день в голове крутить, пока уложилось. При наличии этой статьи оно сразу укладывается, как надо, в процессе прочтения.


    1. master_program Автор
      26.10.2025 06:13

      Судя по комментариям, этот базовый еще недостаточно расписан.

      Например, не расписал про дистрибутивность, а также как упрощать мультивекторные выражения, используя эти правила.


    1. master_program Автор
      26.10.2025 06:13

      Тут еще спрашивают "что объект этого действия". А ведь важно то, что объектом этого действия является любой другой объект геом.алгебры, а также само пространство целиком.


  1. MainEditor0
    26.10.2025 06:13

    Но |a||b|cos(θ) — это же в точности скалярное произведение a·b!

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


  1. AlienJust
    26.10.2025 06:13

    Обыватель — вращение вокруг оси

    Математик — вращение в плоскости!


  1. papa_inura
    26.10.2025 06:13

    Слишком много букав в комментах, пожтому если вопрос уже прдняли, прошу прощения.

    Автор предлагает рассматривать объекты как операторы, и произведение операторов - это оператор - результат последовательного применения первоначальных. И тут он вводит вектара как операторы, но их произведение - это уже скаляр, совсем другого вида оператор. На этом читать перестал. Уж простите, времени жалко.


    1. LinkToOS
      26.10.2025 06:13

      Автор излагает свою идею несколько странным языком. Недостаточно строгие и точные формулировки для математики. Это вызывает недопонимание.
      У автора в профиле написано - "Увлекаюсь взаимодействием с LLM (Gemini)". Похоже что слишком увлекся. Они с LLM отлично понимают друг друга. Но читатели статьи уже не очень их понимают.


      1. papa_inura
        26.10.2025 06:13

        Да, тоже заметил неточность и непоследовательность формулмровок.


      1. master_program Автор
        26.10.2025 06:13

        Так цель как раз в том, чтобы популярно и понятно изложить, а не строго и формально.

        Последовательность и логика введения объектов тут как раз в центре всего.


    1. master_program Автор
      26.10.2025 06:13

      "И тут он вводит вектара как операторы, но их произведение - это уже скаляр, совсем другого вида оператор. На этом читать перестал.  "

      Произведение вектора на вектор - это сумма скаляра и бивектора. Это тоже оператор.

      Как раз я тут подробно и анализирую, что из себя он представляет.

      Их произведение - это композиция двух операторов как раз.


  1. saag
    26.10.2025 06:13

    Если время это вектор, то бишь зеркало, то реальность это его отражение, тогда есть и симметричная реальность, как организовать переход оси симметрии из одной реальности в другую?


    1. randomsimplenumber
      26.10.2025 06:13

      Математические абстракции не обязаны соответствовать обьектам в реальности.


  1. bear11
    26.10.2025 06:13

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


  1. cyberxx
    26.10.2025 06:13

    Можете пожалуйста привести пример нескольких задач, которые не решаются или плохо решаются традиционной векторной алгеброй, но решаются геометрической алгеброй? Лучше даже отдельную статью написать, а то пока не очень понятно, где все это нужно (кроме ОТО).


  1. mynameco
    26.10.2025 06:13

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


  1. dmagin
    26.10.2025 06:13

    Впервые дошло, что ГА - это "возьмем некоммутативное произведение векторов, приравняем коммутативному (скалярному) и посмотрим, что из этого выйдет". И в целом это даже не вызывает отторжения в отличие от "возьмем и сложим скалярное и внешнее произведения", хотя, как показано, - оба постулата эквивалентны.
    Еще бы найти какую-то геометрическую интерпретацию произведения точек (в аффинной геометрии вектор - это разность точек), чтобы убедиться, что в центре находится геометрическое умножение, а "остальные планеты движутся вокруг".


    1. flx0
      26.10.2025 06:13

      Аффинная геометрия содержится в проективной геометрической алгебре (PGA) - алгебре Клиффорда Cl(n,0,1) с одним дополнительным вырожденным измерением, т.е. таким что e^2=0.
      Геометрическое произведение точек в PGA - это мотор (так в PGA называют роторы), который соответствует операции параллельного переноса, который переносит первую точку во вторую (ну почти, на самом деле это его квадрат).
      Внешнее произведение - прямая проведенная через эти две точки.


      1. dmagin
        26.10.2025 06:13

        А, "вырожденное измерение" - это видимо то, что я называю нуль-вектором, - ортогонален всем векторам пространства, но его норма в плоском пространстве равна 0.
        Попытался выяснить у дипсика, чему соответствует в ГА граничный оператор - взятие границы симплекса. Ну, например, стандартная граница треугольника: d(A^B^C) = A^B - A^C + B^C.
        Он вначале уверенно заявил, что это скалярное умножение на этот самый "нуль-вектор". Но после уточняющих вопросов сдулся, и заявил, что "вопрос сложный". Может, вы в курсе? - наверняка должно быть что-то простое.


    1. master_program Автор
      26.10.2025 06:13

      Я придумал излагать через идею "а давайте попробуем ввести обратимое умножение, квадрат которого дает длину вектора". Вторая идея - это зеркала.

      Обычно везде, где видел, излагают куда абстрактнее, и сходу непонятно. что это.