Как стать автором
Обновить

Комментарии 10

Я думаю чтобы понять ГА нужно обязательно написать свою библиотеку для ГА :) Иначе не получается.

Читать не советую: книга Hestenes - New Foundations for Classical Mechanics

Читал. Да, вы правы, как-то он не все использует.

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

Вот если бы библиотеку работы с GA к Maxime прикрутить, было бы здорово.

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

В полярных координатах (r, phi), относительно 1/r. Так что тут удивительного?)

Это относительно угла. А тут относительно времени. Ну почти времени.

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

Если бивектора встречаются относительно часто, то с мОторами встречался всего несколько раз, читая книги по винтовому исчислению (там мОтор определён как совокупность вектора и момента в точке).

Могу порекомендовать по теме, а так же любителям хорошей математики:

Диментберг Ф.М. Винтовое исчисление и его приложения в механике. 1965

Котельников А.П. Винтовое счисление и некоторые приложения его к геометрии и механике. 2006

Теория винтов возникла в начале прошлого столетия,
после появления работ Пуансо, Шаля и Мёбиуса, в
которых изучалась теория пар сил и бесконечно малых
вращений, впервые была установлена аналогия силы и малого
вращения и, как следствие,— аналогия сложения тех
и других. Работами этих авторов установлена
эквивалентность произвольного перемещения тела винтовому
перемещению.
Винт как совокупность вектора и пары, плоскость
которой перпендикулярна вектору, есть геометрический образ,
описывающий как произвольное перемещение твердого
тела, так и произвольную систему сил, действующих на
тело. При изучении движения винт как перемещение во
многих случаях является наиболее естественным
обобщенным перемещением, над которым непосредственно
производятся операции; в то же время силовой винт является
соответственной обобщенной силой. Отсюда возникает
такой метод механики, в котором все перемещения и их произ-
производные, а также силы выражаются винтами и который при-
приводит к результатам, трактуемым на языке винтов.

Диментберг Ф.М. Винтовое исчисление и его приложения в механике. 1965

А разве Винт и Мотор это (почти) одно и то же? Screw = log (Motor); Motor = exp(Screw);

Для PGA в 3d у мультивектора получается 16 компонент, хранить их все и использовать при перемножении - неэффективно.

Можно быстрее ;)
То есть, они конечно по 16 компонент, но существует красивый изоморфизм между алгеброй Cl(n,n) (или комплексной \mathbb{Cl}(2n)) и алгеброй матриц размером (2^n) x (2^n). И этот изоморфизм - самое настоящее быстрое преобразование Фурье. Только в отличие от обычного БПФ, рекурсивно делит не на половинки, а на четвертинки.
И полученные матрицы можно умножать быстрее чем мультивекторы в лоб. Но на маленьких размерностях это действительно не очень заметно.
У меня есть код на Расте, который это делает, но я был очень разочарован в том что const generics в Расте оказались сильно слабже чем мне хотелось, и поэтому красивой либы с проверками на уровне типов не получилось. Могу наверное отдельно модуль clifft куда-нибудь выложить.

Хм, не знал про такой способ, интересно получается!
Но я для себя это решил тем, что просто сгенерировал классы и специализированные методы умножения для каждой пары классов. Потому что на самом деле перемножать мультивекторы особо и не надо, нужнее двигать плоскости-бивекторы-точки с помощью мотора, и когда у плоскости или точки 4 параметра из 16, а у мотора 8 из 16 - умножение упрощается и ускоряется в разы.

Я попробовал, но не понял, что делать с генератором, квадрат которого равен нулю. Я даже для случая с e_1^2=1 и e_2^2 = 0 что-то не смог придумать матрицы 2x2, чтобы выполнялось е_1 e_2 = -e_2 e_1 и e_1 e_2 != +-e_2

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории