Про кватернионы. Тут просто спрашивали некоторое время назад.
Я не разбираюсь в кватернионах, но у меня есть кое-какие соображения с точки зрения новичка, которые возможно будут полезны другим начинающим.
1) Из отрицательных чисел нельзя взять квадратный корень. А это значит, что консистентно с действительной прямой мы можем ввести дополнительные числа, степень двойки от которых будут возвращать отрицательные значения. Смысл здесь не в том, что они возвращают минус один, а в том, что:
a) У нас "внутри" комплексного числа появляется два закодированных действительных. Причем кодирование нам позволяет при желании совершать обычные операции над каждым из двух действительных компонентов этого комплексного числа независимо.
b) Кодирование нам так же позволяет совершать операции и между двумя разными компонентами.
c) Закодировать мы можем два и более действительных числа, вводя более одного мнимого члена. В смысле что мы можем ввести такие i и j, что
i !=j
, но
i^2=j^2=-1
. Формально это не противоречит существующему в действительных числах аксиоматическому формализму.
Фактически это нам дает то, что мы можем кодировать просто обычные кортежи чисел. К примеру кватренион
ai + bj + ck + d
кодирует обычный кортеж
(a, b, c, d)
. Ни больше, ни меньше. Как интерпретировать этот кортеж - это открытый вопрос. Его можно интерпретировать как угодно. В чистом виде это просто вектор из четырех компонентов, например.
2) И, например, его можно интерпретировать как оператор аффинного преобразования. То есть как вырожденный случай обычной трехмерной матрицы поворота по трем осям координат. Так в особенности удобно делать, потому что умножение двух комплексных чисел вида
a + bi
работает так же как умножение матриц вида:
a, -b
b, a
Что соответствует матрице вращения вокруг оси, если заменить a и b на cos и sin угла поворота соответственно.
Фактически это означает, что кватрнион-кортеж может задать поворот вокруг произвольной оси. А как мы знаем из аналитической геометрии любая комбинация поворотов может быть представлена одним поворотом вокруг правильно выбранной оси(или собственного вектора матрицы). А значит кватернион может закодировать любой произвольный поворот.
3) Выбор между кватернионным формализмом и матричным это по-моему просто вопрос вкуса. Все что можно задать комбинацией кватернионов можно так же задать комбинацией матриц поворотов. И наоборот.