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

Линейная алгебра кватернионов

Время на прочтение15 мин
Количество просмотров10K
Разбирал для себя кватернионный аппарат с точки зрения линейной алгебры с оглядкой на возможность его применения в теориях относительности. Над второй частью ещё работаю, а законспектированный инструментарий решил опубликовать отдельно.

Предисловие


При изучении кватернионов я столкнулся с некоторой нехваткой форм и определений, предлагаемых источниками, в том числе первоисточниками У.Р.Гамильтона, А.У.Конуэя и Ф.Кляйна. В комментариях любезно предложили хорошую книгу П.Лоунесто «Алгебры Клиффорда и спиноры», однако и там эти сущности не выделены. Итого, получается, что, кроме уже известных кватеринонных концепций, в статье рассматриваются следующие аспекты, освещение которых мне не удалось пока найти:
1. Выделена скалярная часть кватернионного произведения, как самостоятельная операция.
2. Кватернионное произведение представлено суммой трёх самостоятельных оперций — билинейных отображений.
3. Описан частный случай вещественно-мнимого поворота для сжатия пространства по заданной оси.
4. Показано, что, собственно, любой кватернион является таким поворотом вещественного числа относительно произвольной оси мнимого трёхмерного пространства.
Буду весьма признателен за ссылки на похожие изыскания в комментариях.


Оглавление


0. Обозначения.
1. Пространство кватернионов.
2. Пространство октонионов.
3. Мнимое подпространство кватернионов.
4. Редуцирование произведение кватернионов.
5. Место редуцированного произведения в алгебре кватернионов.
6. Интраскалярное и компланарное произведения кватернионов.
7. Произведение кватернионов как сумма билинейных отображений.
8. Норма пространства кватернионов.
9. Форма интраскалярного умножения.
10. Поворот базиса во мнимом пространстве.
11. Поворот элементов во мнимом пространстве.
12. Вещественно-мнимый поворот.
13. Масштабирование.
14. Красивая картинка для статьи.

0. Обозначения


Примем следующие обозначения:

$ \begin{array}{ccl} \mathbf{q} & \in & \mathbb{H} , \\ -1 & = & \imath \jmath k = \imath^2 = \jmath^2 = k^2 , \\ -\hat{h}^2 & = & \hat{\imath} \hat{ \jmath } \hat{ k } = \hat{ \imath }^2 = \hat{ \jmath }^2 = \hat{ k }^2 : \\ \mathbf{q} & = & x^0 \hat{h} + x^1 \hat{\imath} + x^2 \hat{\jmath} + x^3 \hat{k} \\ & = & x^0 \hat{h} + \vec{q} \\ & = & x^0 + \vec{q} \\ & = & x^0 \hat{h} + q \hat{q} \\ & = & | \mathbf{q} | ( \cos \angle_q + \hat{q} \sin \angle_q ) \\ & = & | \mathbf{q} | \ e^{\angle_q \hat{q}} \\ & = & | \mathbf{q} | \ \hat{\mathbf{q}} \\ & = & [ x^0, \vec{q} ] , \\ \vec{q} & = & q\hat{q} \\ & = & | \mathbf{q} | \ ( \sin \angle_q ) \ \hat{q} , \\ | \mathbf{q} | & = & \sqrt{ (x^0)^2 + (x^1)^2 + (x^2)^2 + (x^3)^2 } , \\ \hat{\mathbf{q}} & = & \{ \mathbf{q} \in \mathbb{H} | \ | \mathbf{q} | = 1 \} \\ & = & \cos \angle_q + \hat{q} \sin \angle_q , \\ { \mathbf{q} }^* & = & \{ \mathbf{q} \in \mathbb{H} | \ x^0 = 0 \} \\ & = & q \hat{q}, \quad \mathbf{q}^* \in \Im \\ & = & [ 0, \vec{q} ] , \\ \hat{q} & = & \{ \mathbf{q} \in \mathbb{H} | \ | \mathbf{q} | = 1 , \ x^0 = 0, \} \\ & = & \hat{\mathbf{q}}^*, \quad \hat{q} \in \Im \\ \overline{ \mathbf{q} } & = & x^0 \hat{h} - x^1 \hat{\imath} - x^2 \hat{\jmath} - x^3 \hat{k} \\ & = & x^0 - \vec{q} \\ & = & | \mathbf{q} | \ e^{- \angle_q \hat{q}} \\ \end{array} $


$ \mathbf{q} $ — «болдед кью», кватернион.
$ \hat{h}, \hat{\imath}, \hat{\jmath}, \hat{k} $ — единичные векторы ортонормированного базиса кватернионного пространства.
$ x^0 .. x^4 $ — вещественные числа, координаты в кватернионном пространстве.
$ \vec{q} $ — мнимая часть кватерниона, вектор во мнимом подпространстве кватернионного пространства.
$ \hat{q} $ — единичный вектор мнимой части кватерниона, единичный вектор во мнимом подпространстве кватернионного пространства.
$ q $ — вещественное число, «длина» вектора мнимой части кватерниона (в кавычках, потому что в общем случае q может быть и отрицательным в отличие от длины-нормы).
$ \hat{\mathbf{q}} $ — единичный кватернион.
$ | \mathbf{q} | $ — модуль кватерниона.
$ \angle_q = \xi $ — аргумент кватерниона.
$ { \mathbf{q} }^* $ — чистый кватернион (без вещественной составляющей).
$ \| \mathbf{q} \| $ — норма в кватернионном пространстве.
$ \overline{ \mathbf{q} } $ — сопряжённый кватернион.

1.1. Пространство кватернионов


Рассмотрим множество $ \mathbb{H} $ элементов вида $ \{a + b\imath + c \jmath + d k \} $кватернионы — в качестве векторного пространства над полем $ \mathbb{R} $ вещественных чисел.
Множество кватернионов является векторным пространством над полем вещественных чисел.
Определим правило сложения в соответствии с обычными правилами сложения кватернионов:

$ \begin{array}{cccl} ] & \mathbf{q}_1 & = & x^0 + x^1 \hat{\imath} + x^2 \hat{\jmath} + x^3 \hat{k}, \\ & \mathbf{q}_2 & = & y^0 + y^1 \hat{\imath} + y^2 \hat{\jmath} + y^3 \hat{k}, \\ & \mathbf{q}_1 + \mathbf{q}_2 & = & (x^0 + y^0) + (x^1 + y^1) \hat{\imath} + (x^2 + y^2) \hat{\jmath} + (x^3 + y^3) \hat{k} \\ & & = & \mathbf{q}_3 \ \in \mathbb{H} \end{array} $


Сложение коммутативно и замкнуто на множестве $ \mathbb{H} $ (операция возвращает элемент множества).
Операция умножения на вещественное число также коммутативна и тоже замкнута на множестве $ \mathbb{H} $:

$ \begin{array}{cccl} ] & \lambda & \in & \mathbb{R} : \\ & \lambda \mathbf{q} & = & (\lambda x^0) \hat{h} + (\lambda x^1) \hat{\imath} + (\lambda x^2) \hat{\jmath} + (\lambda x^3) \hat{k} \\ & & = & \mathbf{p} \ \in \mathbb{H} \end{array} $


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

$ \begin{array}{cccl} 1) & \mathbf{q}_1 + \mathbf{q}_2 & = & \mathbf{q}_2 + \mathbf{q}_1; \\ 2) & (\mathbf{q}_1 + \mathbf{q}_2) + \mathbf{q}_3 & = & \mathbf{q}_1 + (\mathbf{q}_2 + \mathbf{q}_3); \\ 3) & \mathbf{q} + 0 & = & \mathbf{q}, \quad \forall \mathbf{q}; \\ 4) & \forall \mathbf{q} \ne 0 , \ \exists \bar{\mathbf{q}} & \rightarrow & \mathbf{q} + \bar{\mathbf{q}} = 0; \\ 5) & 1 \cdot \mathbf{q} & = & \mathbf{q}, \quad \forall \mathbf{q}; \\ 6) & \lambda (\mu \mathbf{q}) & = & (\lambda \mu) \mathbf{q}, \quad \lambda, \mu \in \mathbb{R}; \\ 7) & (\lambda + \mu) \mathbf{q} & = & \lambda \mathbf{q} + \mu \mathbf{q}; \\ 8) & \lambda (\mathbf{q}_1 + \mathbf{q}_2) & = & \lambda \mathbf{q}_1 + \lambda \mathbf{q}_2 . \end{array} $


Следовательно, множество $\mathbb{H}$ является вещественным $ ( \lambda, \mu \in \mathbb{R} )$ линейным пространством.


Размерность вещественного пространства $ \mathbb{H} $ равна четырём. Очевидным базисом является тройка мнимых векторов $ (\hat{\imath}, \hat{\jmath}, \hat{k}) $ и вещественный вектор, назовём его $ \hat{h} $.
Итого получается $\mathbb{H} \simeq \mathbb{R}^4 (\hat{h}, \hat{\imath}, \hat{\jmath}, \hat{k}) $.

1.2. Пространство октонионов


Сразу упомянем ещё одно пространство $ \mathbb{O} $ октонионов (октав, см. Алгебра Кэли).
Аналогичное пространству кватернионов — линейное пространство над полем вещественных чисел, снабжённое согласованной операцией умножения, оно отличается от $ \mathbb{H} $ количеством мнимых единиц (в нём их семь), а следовательно, и размерностью — восемь (удвоенное относительно пространства кватернионов, см. процедура Кэли-Диксона).
Последнее отличие от кватернионов — ослабление свойства ассоциативности умножения (альтернативность умножения).
В этом несложно убедиться, выбрав тройку разных единиц из таблицы умножения октав (совсем разных — не кватернионную), и перемножив их в разном порядке:

$ \begin{array}{c|c|c|c|c|c|c|c|c} \mathbf{e}_\mu \circ \mathbf{e}_\nu & \mathbf{h} & \mathbf{i} & \mathbf{j} & \mathbf{k} & \mathbf{ l } & \mathbf{m} & \mathbf{n} & \mathbf{o} \\ \hline \mathbf{h} & 1 & \imath & \jmath & k & \ell & m & n & o \\ \hline \mathbf{i} & \imath & -1 & k & - \jmath & m & -\ell & -o & n \\ \hline \mathbf{j} & \jmath & -k & -1 & \imath & n & o & -\ell & -m \\ \hline \mathbf{k} & k & \jmath & -\imath & -1 & o & -n & m & -\ell \\ \hline \mathbf{l} & \ell & -m & -n & -o & -1 & \imath & \jmath & k \\ \hline \mathbf{m} & m & \ell & -o & n & -\imath & -1 & -k & \jmath \\ \hline \mathbf{n} & n & o & \ell & -m & -\jmath & k & -1 & -\imath \\ \hline \mathbf{o} & o & -n & m & \ell & -k & -\jmath & \imath & -1 \\ \end{array} $


$ \underline { ( \jmath \circ \ell ) \circ m } = n \circ m = k \ne \underline{ \jmath \circ (\ell \circ m ) } = \jmath \circ \imath = -k $


Обозначения мнимых единиц будем использовать в соответствии с таблицей выше, а обозначения операций — аналогично кватернионам ( $ \mathbf{o} $ — «болдед о», октонион и т.д.).

1.3. Мнимое подпространство кватернионов


Обратимся теперь к подмножеству элементов $ \Im = \{ b\imath + c \jmath + d k \} = \{\mathbf{q} \in \mathbb{H} \ | \ \mathbf{q} + \bar{\mathbf{q}} = 0 \} $ $ \Im = \mathbb{R}^3 (\hat{\imath}, \hat{\jmath}, \hat{k}) \in \mathbb{R}^4 (\hat{h}, \hat{\imath}, \hat{\jmath}, \hat{k}) $ образуемому множеством чистых кватернионов (без вещественной части).
Подмножество чистых кватернионов образует вещественное векторное подпространство пространства кватернионов.
Для подмножества $ \Im $ выполняется:

$ \begin{array}{cccl} 1) & ] \ \mathbf{q}_1 & = & x^1 \hat{\imath} + x^2 \hat{\jmath} + x^3 \hat{k}; \\ & \mathbf{q}_2 & = & y^1 \hat{\imath} + y^2 \hat{\jmath} + y^3 \hat{k} : \\ & \mathbf{q}_1 + \mathbf{q}_2 & = & (x^1 + y^1) \hat{\imath} + (x^2 + y^2) \hat{\jmath} + (x^3 + y^3) \hat{k}; \\ & & = & \mathbf{q}_3 \in \Im ; \\ 2) & \lambda \mathbf{q}_1 & \in & \Im, \qquad \forall \lambda \in \mathbb{R} ; \\ \end{array} $


Следовательно, подмножество $ \Im \in \mathbb{H} $ является вещественным векторным подпространством $ \mathbb{H} $.

Операция умножения любых двух элементов подпространства $ \Im $ в общем случае возвращает вектор пространства $ \mathbb{H} $ с отрицательным скалярным произведением исходных векторов в вещественной части и векторным произведением во мнимой:

$ \begin{array}{cccl} ] & \mathbf{q}_1 & = & x^1 \hat{\imath} + x^2 \hat{\jmath} + x^3 \hat{k} \\ & & = & 0 + \vec{q}_1, \\ & \mathbf{q}_2 & = & y^1 \hat{\imath} + y^2 \hat{\jmath} + y^3 \hat{k} , \\ & & = & 0 + \vec{q}_2 : \\ & \vec{q}_1, \vec{q}_2 & \in & \Im: \\ & \vec{q}_1 \circ \vec{q}_2 & = & [ - \vec{q}_1 \cdot \vec{q}_2, \vec{q}_1 \times \vec{q}_2 ] \\ & & = & [ - (x^1 y^1 + x^2 y^2 + x^3 y^3), (x^2 y^3 - y^2 x^3) \hat{ \imath } + (x^3 y^1 - y^3 x^1) \hat{ \jmath } + (x^1 y^2 - x^2 y^1 ) \hat{ k } ] \end{array} $


Можно сказать, что такая операция возвращает отрицательное скалярное произведение в вещественное подпространство $\Re \in \mathbb{H}$ и векторное произведение во мнимое подпространство $ \Im \in \mathbb{H} $.
Воспользуемся этим, и введём на подпространстве $ \Im $ следующее правило называемое скалярным произведением двух элементов:

$ \begin{array}{cccl} ] & \mathbf{q}^*_1 & = & \vec{q}_1 , \\ & \mathbf{q}^*_2 & = & \vec{q}_2 , \\ & \mathbf{q}^*_1, \mathbf{q}^*_2 & \in & \Im: \\ & ( \mathbf{q}^*_1, \mathbf{q}^*_2 ) & = & \vec{q}_1 \cdot \vec{q}_2 \\ & & = & \vec{q}_1 \times \vec{q}_2 - \vec{q}_1 \circ \vec{q}_2 \\ & & = & \vec{q}_2 \cdot \vec{q}_1 \ \in \mathbb{R} \end{array} $


Это и есть скалярное произведение по определению, мы просто задаём его через операции векторного и кватернионного произведений, поэтому все аксиомы для скалярного произведения выполняются, следовательно, подпространство $ \Im $ можно считать вещественным евклидовым пространством.
Отсюда же вполне естественно вытекает норма подпространства $ \Im $ (во избежание путаницы сразу замечу, что далее в форме для интервала длина «развёрнута» в отрицательную сторону, здесь просто для наглядности приведена привычная положительно определённая норма 3D-пространства):

$ \| \vec{q} \| = \sqrt{ \vec{q} \times \vec{q} - \vec{q} \circ \vec{q}} = \sqrt{ 0 - \vec{q}^2} = \sqrt{- \hat{q}^2 |q|^2 } = |q| , \quad \forall \ \vec{q} \in \Im $


Снова же все аксиоматические требования к норме выполняются по определению, и подпространство $ \Im^3 $ можно считать нормированным, а его норма совпадает с нормой вещественного евклидова пространства $ \mathbb{R}^3 $, с которым они изоморфны.
Тем легче нам будет далее представлять пространство $ \Im (\hat{\imath}, \hat{\jmath}, \hat{k}) $ пространством наблюдателя, а норму в нём — длиной.

1.4. Редуцированное произведение кватернионов


Вернёмся к кватернионам и посмотрим, как можно ввести скалярное умножение на их пространстве.
Кватернионное произведение в общем виде выглядит следующим образом:

$ \begin{array}{cccl} ] & \mathbf{q}_1 & = & [x^0, \vec{q}_1 ] , \\ & \mathbf{q}_2 & = & [y^0, \vec{q}_2 ] : \\ & \mathbf{q}_1 \circ \mathbf{q}_2 & = & [ \color{red}{ x^0 y^0 - \vec{q}_1 \cdot \vec{q}_2 }, \color{green}{ x^0 \vec{q}_2 + y^0 \vec{q}_1 } + \color{blue}{\vec{q}_1 \times \vec{q}_2} ] \\ & \mathbf{q}_2 \circ \mathbf{q}_1 & = & [ \color{red}{ x^0 y^0 - \vec{q}_1 \cdot \vec{q}_2 }, \color{green}{ x^0 \vec{q}_2 + y^0 \vec{q}_1 } + \color{blue}{\vec{q}_2 \times \vec{q}_1} ] \\ \end{array} $


Синим выделена составляющая — векторное произведение — препятствующая установлению свойства коммутативности операции умножения, являющегося первым аксиоматическим требованием к операции скалярного произведения в вещественном евклидовом пространстве.
Зелёным выделена составляющая, наоборот препятствующая выполнению аксиомы $ ( \mathbf{q}, \mathbf{p} ) = \overline{ ( \mathbf{p}, \mathbf{q} ) } $ для комплексного евклидового пространства.
А красным — скаляр.
Скалярное произведение кватернионов в рамках алгебры кватернионов имеет вид:

$ \begin{array}{ccl} \mathbf{q}_1 \cdot \mathbf{q}_2 & = & \frac{1}{2} \left( \bar{\mathbf{q}}_1 \circ \mathbf{q}_2 + \bar{\mathbf{q}}_2 \circ \mathbf{q}_1 \right) \\ & = & \frac{1}{2} \left( [x^0, -\vec{q}_1] \circ [y^0, \vec{q}_2] + [y^0, -\vec{q}_1] \circ [x^0, \vec{q}_2] \right) \\ & = & \frac{1}{2} \Big( [x^0 y^0 + \vec{q}_1 \cdot \vec{q}_2, x^0 \vec{q}_2 - y^0 \vec{q}_1 - \vec{q}_1 \times \vec{q}_2 ] + \\ & + & [x^0 y^0 + \vec{q}_1 \cdot \vec{q}_2, y^0 \vec{q}_1 - x^0 \vec{q}_2 - \vec{q}_2 \times \vec{q}_1] \Big) \\ & = & x^0 y^0 + \vec{q}_1 \cdot \vec{q}_2 \\ \end{array} $


и, как видно, возвращает вещественное значение, отличающееся от скаляра в кватернионном произведении.
Последовательно разложим кватернионное произведение на составляющие.
Исключим векторное произведение из кватернионного, и назовём представленную операцию, возвращающую элемент из $ \mathbb{H} $, укороченным, редуцированным произведением кватернионов:

$ \begin{array}{cccl} ] & \mathbf{q}_1 & = & [x^0, \vec{q}_1 ] , \\ & \mathbf{q}_2 & = & [y^0, \vec{q}_2 ] : \\ & \mathbf{q}_1 \odot \mathbf{q}_2 & = & \frac{1}{2} (\mathbf{q}_1 \circ \mathbf{q}_2 + \mathbf{q}_2 \circ \mathbf{q}_1 )\\ & & = & [ x^0 y^0 - \vec{q}_1 \cdot \vec{q}_2, x^0 \vec{q}_2 + y^0 \vec{q}_1 ] \\ & & = & \mathbf{q}_2 \odot \mathbf{q}_1 \\ \end{array} $


которое будем обозначать $ \odot $ — чуть больше, чем просто скалярное, и чуть меньше, чем кватернионное.

1.5. Место редуцированного произведения в алгебре кватернионов


Из приведённого выше определения можно увидеть сходство между редуцированным произведением и симметричной частью тензора:

$ \begin{array}{cccl} & \mathbf{q}_1 \odot \mathbf{q}_2 & = & \frac{1}{2} \left( \mathbf{q}_1 \circ \mathbf{q}_2 + \mathbf{q}_2 \circ \mathbf{q}_1 \right) \\ & U_{(i,j)} & = & \frac{1}{2} \left( U_{ij} + U_{ji} \right) \\ \end{array} $


Равно, как между векторным произведением кватернионов и антисимметричной частью тензора:

$ \begin{array}{cccl} & \mathbf{q}_1 \times \mathbf{q}_2 & = & \frac{1}{2} \left( \mathbf{q}_1 \circ \mathbf{q}_2 - \mathbf{q}_2 \circ \mathbf{q}_1 \right) \\ & U_{[i,j]} & = & \frac{1}{2} \left( U_{ij} - U_{ji} \right) \\ \end{array} $


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

$ \begin{array}{cccl} & U_{i,j} & = & U_{(i,j)} + U_{[i,j]} \\ & \mathbf{q}_1 \circ \mathbf{q}_2 & = & \mathbf{q}_1 \odot \mathbf{q}_2 + \mathbf{q}_1 \times \mathbf{q}_2 \\ & & = & \mathbf{q}_1 \odot \mathbf{q}_2 - \mathbf{q}_2 \times \mathbf{q}_1 \\ \end{array} $


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

1.6. Интраскалярное и компланарное произведения кватернионов


Чтобы далее разложить редуцированное произведение на составляющие, соответствующие кватернионному произведению, введём интраскалярное произведение кватернионов (intra — «внутрь»: $ x^0y^0 - \vec{q}_1 \cdot \vec{q}_2 $ в противопоставление обычному «extra-», экстра- скалярному $ x^0y^0 + \vec{q}_1 \cdot \vec{q}_2 $):

$ \begin{array}{cccl} ] & \mathbf{q}_1 & = & [x^0, \vec{q}_1 ] , \\ & \mathbf{q}_2 & = & [y^0, \vec{q}_2 ] : \\ ] & \mathbf{q}_1 \ast \mathbf{q}_2 & = & \frac{1}{2} ( \mathbf{q}_1 \circ \mathbf{q}_2 + \overline{ \mathbf{q}_1 \circ \mathbf{q}_2 } ) \\ & & = & \frac{1}{2} ( \mathbf{q}_1 \circ \mathbf{q}_2 + \mathbf{\bar{q}}_2 \circ \mathbf{\bar{q}}_1 ) \\ & & = & x^0 y^0 - \vec{q}_1 \cdot \vec{q}_2 \\ & & = & \mathbf{q}_2 \ast \mathbf{q}_1, \quad \in \mathbb{R} \\ \end{array} $


Сравним таблицы умножения ортов для интра- и экстра- скалярного произведений:

$ { \begin{array}{c|c|c|c|c} \mathbf{e}_\mu \ast \mathbf{e}_\nu & \mathbf{h} & \mathbf{i} & \mathbf{j} & \mathbf{k} \\ \hline \mathbf{h} & 1 & 0 & 0 & 0 \\ \hline \mathbf{i} & 0 & -1 & 0 & 0 \\ \hline \mathbf{j} & 0 & 0 & -1 & 0 \\ \hline \mathbf{k} & 0 &0 & 0 & -1 \\ \end{array} \qquad \begin{array}{c|c|c|c|c} \mathbf{e}_\mu \cdot \mathbf{e}_\nu & \mathbf{h} & \mathbf{i} & \mathbf{j} & \mathbf{k} \\ \hline \mathbf{h} & 1 & 0 & 0 & 0 \\ \hline \mathbf{i} & 0 & 1 & 0 & 0 \\ \hline \mathbf{j} & 0 & 0 & 1 & 0 \\ \hline \mathbf{k} & 0 &0 & 0 & 1 \\ \end{array} } $


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

$ \begin{array}{cccl} ] & \mathbf{q}_1 & = & [x^0, \vec{q}_1 ] , \\ & \mathbf{q}_2 & = & [y^0, \vec{q}_2 ] : \\ ] & \mathbf{q}_1 \diamond \mathbf{q}_2 & = & \frac{1}{2} ( \mathbf{q}_2 \circ \mathbf{q}_1 - \overline{ \mathbf{q}_1 \circ \mathbf{q}_2 } ) \\ & & = & \frac{1}{2} ( \mathbf{q}_2 \circ \mathbf{q}_1 - \mathbf{\bar{q}}_2 \circ \mathbf{\bar{q}}_1 ) \\ & & = & x^0 \vec{q}_2 + y^0 \vec{q}_1 \\ & & = & \mathbf{q}_2 \diamond \mathbf{q}_1, \quad \in \Im \\ \end{array} $


И тоже выпишем табличку:

$ \begin{array}{c|c|c|c|c} \mathbf{e}_\mu \diamond \mathbf{e}_\nu & \mathbf{h} & \mathbf{i} & \mathbf{j} & \mathbf{k} \\ \hline \mathbf{h} & 0 & \imath & \jmath & k \\ \hline \mathbf{i} & \imath & 0 & 0 & 0 \\ \hline \mathbf{j} & \jmath & 0 & 0 & 0 \\ \hline \mathbf{k} & k & 0 & 0 & 0 \\ \end{array} $


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

$ \begin{array}{cccl} ] & \mathbf{q}_1 & = & [x^0, \vec{q}_1 ] , \\ & \mathbf{q}_2 & = & [y^0, \vec{q}_2 ] : \\ & \mathbf{q}_1 \odot \mathbf{q}_2 & = & \mathbf{q}_1 \circ \mathbf{q}_2 - \mathbf{q}_1 \times \mathbf{q}_2 \\ & & = & \mathbf{q}_1 \ast \mathbf{q}_2 + \mathbf{q}_1 \diamond \mathbf{q}_2 \\ & & = & \frac{1}{2} ( \mathbf{q}_1 \circ \mathbf{q}_2 + \overline{ \mathbf{q}_1 \circ \mathbf{q}_2 } ) + \frac{1}{2} ( \mathbf{q}_2 \circ \mathbf{q}_1 - \overline{ \mathbf{q}_1 \circ \mathbf{q}_2 } ) \\ & & = & \color{red}{ x^0 y^0 - \vec{q}_1 \cdot \vec{q}_2 } + \color{green}{ x^0 \vec{q}_2 + y^0 \vec{q}_1 } \\ & & = & [ x^0 y^0 - \vec{q}_1 \cdot \vec{q}_2, x^0 \vec{q}_2 + y^0 \vec{q}_1 ] \\ & & = & \frac{1}{2} (\mathbf{q}_1 \circ \mathbf{q}_2 + \mathbf{q}_2 \circ \mathbf{q}_1 ) \\ & & = & \mathbf{q}_2 \odot \mathbf{q}_1 \\ \end{array} $


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

$ \begin{array}{cccl} & \mathbf{q}_1 \circ \mathbf{q}_2 & = & \color{brown}{ \mathbf{q}_1 \odot \mathbf{q}_2 } + \color{blue}{ \mathbf{q}_1 \times \mathbf{q}_2 } \\ & & = & \color{red}{ \mathbf{q}_1 \ast \mathbf{q}_2 } + \color{green}{ \mathbf{q}_1 \diamond \mathbf{q}_2 } + \color{blue}{ \mathbf{q}_1 \times \mathbf{q}_2 } \\ & & = &\frac{1}{2} \Big[ ( \mathbf{q}_1 \circ \mathbf{q}_2 + \overline{ \mathbf{q}_1 \circ \mathbf{q}_2 } ) + ( \mathbf{q}_2 \circ \mathbf{q}_1 - \overline{ \mathbf{q}_1 \circ \mathbf{q}_2 } ) + ( \mathbf{q}_1 \circ \mathbf{q}_2 - \mathbf{q}_2 \circ \mathbf{q}_1 ) \Big] \\ & & = & x^0 y^0 - \vec{q}_1 \cdot \vec{q}_2 + x^0 \vec{q}_2 + y^0 \vec{q}_1 + \vec{q}_1 \times \vec{q}_2 \\ & & = & A + B + C \\ & A & = & \mathbf{q}_1 \ast \mathbf{q}_2 \\ & & = & x^0 y^0 - \vec{q}_1 \cdot \vec{q}_2 \\ & B & = & \mathbf{q}_1 \diamond \mathbf{q}_2 \\ & & = & x^0 \vec{q}_2 + y^0 \vec{q}_1 \\ & C & = & \mathbf{q}_1 \times \mathbf{q}_2 \\ & & = & \vec{q}_1 \times \vec{q}_2 \\ \end{array} $


A — скаляр (вещественное число), B — вектор, компланарный исходным в $ \Im $, C — вектор, ортогональный исходным в $ \Im $.

1.7. Произведение кватернионов как сумма билинейных отображений


Если рассматривать кватернион как вектор, описывающий объект в заранее определённом базисе, то множество кватернионов представляет собой просто совокупность таких векторов, приведённых к одному четырёхмерному базису $ (\hat{h}, \hat{\imath}, \hat{\jmath}, \hat{k}) $.
В нём каждая из частей кватернионного произведения может быть представлена билинейным отображением, а само кватернионное произведение — их суммой:

$ \begin{array}{cccl} ] & \mathbf{q}_1& = & [x^0, \vec{q}_1 ] \\ & & = & x^0 \hat{h} + x^1 \hat{\imath} + x^2 \hat{\jmath} + x^3 \hat{k} , \\ & \mathbf{q}_2 & = & [y^0, \vec{q}_2 ] \\ & & = & y^0 \hat{h} + y^1 \hat{\imath} + y^2 \hat{\jmath} + y^3 \hat{k} : \\ & \mathbf{q}_1 \circ \mathbf{q}_2 & = & \mathbf{q}_1 \ast \mathbf{q}_2 + \mathbf{q}_1 \diamond \mathbf{q}_2 + \mathbf{q}_1 \times \mathbf{q}_2 \\ & & = & x^0 y^0 - \vec{q}_1 \cdot \vec{q}_2 + x^0 \vec{q}_2 + y^0 \vec{q}_1 + \vec{q}_1 \times \vec{q}_2 \\ & & = & A + B + C \\ & A & = & \mathbf{q}_1 \ast \mathbf{q}_2 \\ & & = & x^0 y^0 - \vec{q}_1 \cdot \vec{q}_2 \\ & & = & \sum_{ \mu, \nu =1 }^4 A_{\mu \nu} x^\mu y^\nu \\ & B & = & \mathbf{q}_1 \diamond \mathbf{q}_2 \\ & & = & x^0 \vec{q}_2 + y^0 \vec{q}_1 \\ & & = & \sum_{ \mu, \nu =1 }^4 B_{\mu \nu} x^\mu y^\nu\\ & C & = & \mathbf{q}_1 \times \mathbf{q}_2 \\ & & = & \vec{q}_1 \times \vec{q}_2 \\ & & = & \sum_{ \mu, \nu =1 }^4 C_{\mu \nu} x^\mu y^\nu \\ & \mathbf{q}_1 \circ \mathbf{q}_2 & = & \sum_{ \mu, \nu =1 }^4 \left( ( A_{\mu \nu} + B_{\mu \nu} + C_{\mu \nu} ) x^\mu y^\nu \right) \\ & & = & ( A_{\mu \nu} + B_{\mu \nu} + C_{\mu \nu} ) \ x^\mu y^\nu \\ \end{array} $


где $ A_{\mu \nu}, \ B_{\mu \nu}, \ C_{\mu \nu} $ — матрицы интраскалярного, компланарного и векторного произведений, а $ x^\mu y^\nu $ — «координаты» векторов (вещественные коэффициенты $ a, b, c, d $ кватернионов). В последней строке предполагается суммирование по соглашению Эйнштейна.
Матрицы A, B, C компонент кватернионного произведения будут равны:

$ \begin{array}{cccl} ] & \mathbf{q}_1& = & x^0 \hat{h} + x^1 \hat{\imath} + x^2 \hat{\jmath} + x^3 \hat{k} , \\ & \mathbf{q}_2 & = & y^0 \hat{h} + y^1 \hat{\imath} + y^2 \hat{\jmath} + y^3 \hat{k} , \\ & \mathbf{q}_1, \mathbf{q}_2 & \in & \mathbb{H} : \\ & \mathbf{q}_1 \circ \mathbf{q}_2 & = & ( \mathbf{q}_1 \ast \mathbf{q}_2 ) + ( \mathbf{q}_1 \diamond \mathbf{q}_2 ) + ( \mathbf{q}_1 \times \mathbf{q}_2 ) \\ & & = & ( \color{red}{A_{\mu \nu}} + \color{green}{B_{\mu \nu}} + \color{blue}{C_{\mu \nu}} ) x^\mu y^\nu \\ & & = & (x^0 y^0 \hat{h}^2 + x^1 y^1 \hat{\imath}^2 + x^2 y^2 \hat{\jmath}^2 + x^3 y^3 \hat{k}^2 ) + \\ & & + & (x^0 y^1 \hat{h} \hat{\imath} + x^0 y^2 \hat{h} \hat{\jmath} + x^0 y^3 \hat{h} \hat{k} + x^1 y^0 \hat{\imath} \hat{h} + x^2 y^0 \hat{\jmath} \hat{h} + x^3 y^0 \hat{k} \hat{h} ) + \\ & & + & (x^1 y^2 \hat{\imath} \hat{\jmath} + x^1 y^3 \hat{\imath} \hat{k} + x^2 y^1 \hat{\jmath} \hat{\imath} + x^2 y^3 \hat{\imath} \hat{k} + x^3 y^1 \hat{h} \hat{\imath} + x^3 y^2 \hat{k} \hat{\jmath} ) \\ & & = & \sum_{ \mu, \nu =1 }^4 \color{red}{ \left( \matrix{ 1 & 0 & 0 & 0 \\ 0 & -1 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & -1 } \right) } x^\mu y^\nu + \\ & & + & \sum_{ \mu, \nu =1 }^4 \color{green}{ \left( \matrix{ 0 & \hat{\imath} & \hat{\jmath} & \hat{k} \\ \hat{\imath} & 0 & 0 & 0 \\ \hat{\jmath} & 0 & 0 & 0 \\ \hat{k} & 0 & 0 & 0 } \right) } x^\mu y^\nu + \\ & & + & \sum_{ \mu, \nu =1 }^4 \color{blue}{ \left( \matrix{ 0 & 0 & 0 & 0 \\ 0 & 0 & \hat{k} & -\hat{\jmath} \\ 0 & -\hat{k} & 0 & \hat{\imath} \\ 0 & \hat{\jmath} & -\hat{\imath} & 0 } \right) } x^\mu y^\nu \\ \end{array} $


Не сложно убедиться, что каждая из матриц описывает билинейное отображение (A, B, C), то есть для каждой операции выполняются следующие соотношения:

$ \begin{array}{cccl} ] & \mathbf{q}_1, \mathbf{q}_2, \mathbf{q}_3 & \in & \mathbb{H} , \\ & \mathbf{F} ( \mathbf{q}_1, \mathbf{q}_2 ) & = & \mathbf{A} ( \mathbf{q}_1, \mathbf{q}_2 ) \lor \mathbf{B} ( \mathbf{q}_1, \mathbf{q}_2 ) \lor \mathbf{C} ( \mathbf{q}_1, \mathbf{q}_2 ) : \\ & \mathbf{F} ( \mathbf{q}_1 + \mathbf{q}_2 , \mathbf{q}_3 ) & = & \mathbf{F} ( \mathbf{q}_1 , \mathbf{q}_3 ) + \mathbf{F} (\mathbf{q}_2 , \mathbf{q}_3 ) , \\ & \mathbf{F} (\mathbf{q}_1 , \mathbf{q}_2 + \mathbf{q}_3 ) & = & \mathbf{F} ( \mathbf{q}_1 , \mathbf{q}_2 ) + \mathbf{F} ( \mathbf{q}_1 , \mathbf{q}_3 ) , \\ & \mathbf{F} ( \lambda \mathbf{q}_1 , \mathbf{q}_2 ) & = & \lambda \mathbf{F} ( \mathbf{q}_1 , \mathbf{q}_2 ) , \\ & \mathbf{F} ( \mathbf{q}_1 , \lambda \mathbf{q}_2 ) & = & \lambda \mathbf{F} ( \mathbf{q}_1 , \mathbf{q}_2 ) , \qquad \forall \lambda \in \mathbb{R} \\ \end{array} $


При этом $ \mathbf{A} ( \mathbf{q}_1, \mathbf{q}_2 ) \in \mathbb{R} $, cледовательно, отображение $ \mathbf{A}: \mathbb{H} \times \mathbb{H} \rightarrow \mathbb{R} $ в базисе $ (\hat{h}, \hat{\imath}, \hat{\jmath}, \hat{k}) $ является симметричной, невырожденной, билинейной формой.
Оба оставшихся отображения создают образы, которые являются векторами во мнимом подпространстве $ \Im \in \mathbb{H} $:

$ \mathbf{B} ( \mathbf{q}_1, \mathbf{q}_2 ) \in \Im \ \Rightarrow \mathbf{B}: \mathbb{H} \times \mathbb{H} \rightarrow \Im \\ \mathbf{C} ( \mathbf{q}_1, \mathbf{q}_2 ) \in \Im \ \Rightarrow \mathbf{C}: \mathbb{H} \times \mathbb{H} \rightarrow \Im $


Отображение, задаваемое квадратичной формой, будем называть собственным отображением элемента и для краткости указывать только один вектор в скобках, таким образом $ \mathbf{A} ( \mathbf{q} ) $ — собственное вещественное отображение элемента $ \mathbf{q} $, $ \mathbf{B} ( \mathbf{q} ) $ — собственное мнимое отображение, их сумма — полное собственное отображение элемента.

1.8. Норма пространства кватернионов


Стандартной нормой пространства кватернионов, как известно, является модуль:

$ \| \mathbf{q} \| = | \mathbf{q} | = \sqrt{\mathbf{q} \overline{ \mathbf{q}} } $


В основании этой нормы лежит также билинейная форма, обозначим её E, и определим:

$ \mathbf{E} ( \mathbf{q}_1 , \mathbf{q}_2 ) = \frac{1}{2} ( \overline{\mathbf{q}}_1 \circ \mathbf{q}_2 + \overline{ \mathbf{q}}_2 \circ \mathbf{q}_1 ) = x^0 y^0 + x^1 y^1 + x^2 y^2 +x^3 y^3 $


Она полярна квадратичной форме вида:

$ \mathbf{E} ( \mathbf{q}, \mathbf{q} ) = \overline{\mathbf{q}} \circ \mathbf{q} = x^0 x^0 + x^1 x^1 + x^2 x^2 +x^3 x^3 = | \mathbf{q} |^2 $


Если вводить норму на пространстве через форму E, то скалярным свойством всякого вектора в пространстве будет его модуль. Наличие модуля в смысле нормы вектора позволяет представлять произвольный элемент в виде произведения скалярной величины на единичный кватернион:

$ \mathbf{q} = | \mathbf{q} | \hat{\mathbf{q}} $


Для пространства $ \mathbb{H} $ с заданной на нём нормой в виде экстраскалярного произведения выполняются все аксиомы, необходимые, чтобы считать пространство евклидовым:

$ \begin{array}{cccl} ] & \mathbf{q}_1 & = & [x^0, \vec{q}_1 ] , \\ & \mathbf{q}_2 & = & [y^0, \vec{q}_2 ] , \\ & \mathbf{q}_3 & = & [z^0, \vec{q}_3 ] : \\ 1^\circ. & ( \mathbf{q}_1, \mathbf{q}_2) & = & \mathbf{q}_1 \cdot \mathbf{q}_2 \\ & & = & [ x^0 y^0 + \vec{q}_1 \cdot \vec{q}_2 ] \\ & & = & ( \mathbf{q}_2, \mathbf{q}_1) \qquad \in \mathbb{R}. \\ 2^\circ. & ( \mathbf{q}_1 + \mathbf{q}_2, \mathbf{q}_3 ) & = & ( [ x^0 + y^0 , \vec{q}_1 + \vec{q}_2] , [ z^0 , \vec{q}_3] ) \\ & & = & x^0 z^0 + y^0 z^0 + \vec{q}_1 \cdot \vec{q}_3 + \vec{q}_2 \cdot \vec{q}_3 \\ & & = & (\mathbf{q}_1, \mathbf{q}_3) + (\mathbf{q}_2, \mathbf{q}_3) \qquad \in \mathbb{R}. \\ 3^\circ. & (\lambda \mathbf{q}_1, \mathbf{q}_2) & = & ( \lambda [x^0, \vec{q}_1] , [y^0, \vec{q}_2] ) \\ & & = & [ \lambda x^0 y^0 + \lambda \vec{q}_1 \cdot \vec{q}_2 ] \\ & & = & \lambda [ x^0 y^0 + \vec{q}_1 \cdot \vec{q}_2 ] \\ & & = & \lambda ( \mathbf{q}_1, \mathbf{q}_2 ) \qquad \forall \ \lambda \in \mathbb{R}. \\ 4^\circ. & ( \mathbf{q}_1, \mathbf{q}_1 ) & = & ( x^0 )^2 + ( \vec{q}_1 )^2 \\ & & > & 0 \qquad \forall \ \mathbf{q}_1 \ne 0. \end{array} $


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

$ \begin{array}{cccl} \forall & \mathbf{X} (\mathbf{q}_1, \mathbf{q}_2) & = & \{ \mathbf{X} \in \mathbb{R} | \ ( \mathbf{q}_1 \in \mathbb{H} ) \times ( \mathbf{q}_2 \in \mathbb{H} ) \rightarrow \mathbb{R} \} \\ \exists! & \mathbf{U} : \\ & \mathbf{X} (\mathbf{q}_1, \mathbf{q}_2) & = & (\mathbf{U} \mathbf{q}_1, \mathbf{q}_2) \end{array} $


Для случая билинейной формы самого эсктраскалярного произведения как нормы получается $ \mathbf{U} = 1 $:

$ \mathbf{E} ( \mathbf{q}_1, \mathbf{q}_2 ) = ( \mathbf{q}_1, \mathbf{q}_2 ) $


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

1.9. Форма интраскалярного умножения


Рассмотрим теперь первое из трёх билинейных отображений, составляющих кватернионное произведение. Напомню билинейное отображение A является билинейной формой и задаётся следующим образом:

$ \begin{array}{cccl} & \mathbf{A} (\mathbf{q}_1, \mathbf{q}_2) & = & \mathbf{q}_1 \ast \mathbf{q}_2 \\ & & = & \frac{1}{2} ( \mathbf{q}_1 \circ \mathbf{q}_2 + \overline{ \mathbf{q}_1 \circ \mathbf{q}_2 } ) \\ & & = & x^0 y^0 - \vec{q}_1 \cdot \vec{q}_2 \\ & & = & \sum_{ \mu, \nu =1 }^4 A_{\mu \nu} x^\mu y^\nu \\ & & = & \sum_{ \mu, \nu =1 }^4 \left( \matrix{ 1 & 0 & 0 & 0 \\ 0 & -1 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & -1 } \right) x^\mu y^\nu \end{array} $


Линейный оператор, соответствующий данной билинейной форме, должен соответствовать следующему тождеству:

$ \begin{array}{cccl} & \mathbf{A} (\mathbf{q}_1, \mathbf{q}_2 ) & = & ( \mathbf{U} \mathbf{q}_1, \mathbf{q}_2 ) \\ & & = & \mathbf{E} ( \mathbf{U}\mathbf{q}_1, \mathbf{q}_2 ) : \\ & \mathbf{A} (\mathbf{q}_1, \mathbf{q}_2 ) & = & \frac{1}{2} ( \mathbf{q}_1 \circ \mathbf{q}_2 + \overline{ \mathbf{q}_1 \circ \mathbf{q}_2 } ) \\ & & = & \frac{1}{2} ( \overline{ \mathbf{U} \mathbf{q}_1 } \circ \mathbf{q}_2 + \overline{ \mathbf{q}_2 } \circ \mathbf{U} \mathbf{q}_1 ) \end{array} $


Невооружённым взглядом видно, что оператор должен выполнять операцию сопряжения (сопряжение линейно) для целевого вектора (вообще говоря, любого из пары, потому что форма A симметрична): $ \mathbf{U} \mathbf{q}_1 = \overline{\mathbf{q}}_1 $.
Таким образом, на поле кватернионов можем утверждать выполнение равенств (1):

$ \begin{array}{cccl} & \mathbf{A} (\mathbf{q}_1, \mathbf{q}_2 ) & = & \frac{1}{2} ( \mathbf{q}_1 \circ \mathbf{q}_2 + \overline{ \mathbf{q}_1 \circ \mathbf{q}_2 } ) , \\ & \mathbf{E} ( \mathbf{q}_1, \mathbf{q}_2 ) & = & \frac{1}{2} ( \overline{ \mathbf{q}_1 } \circ \mathbf{q}_2 + \overline{ \mathbf{q}_2 } \circ \mathbf{q}_1 ) : \\ (1) & \mathbf{A} (\mathbf{q}_1, \mathbf{q}_2 ) & = & \mathbf{E} ( \overline{\mathbf{q}}_1, \mathbf{q}_2 ) \\ & & = & \mathbf{E} ( \mathbf{q}_1, \overline{\mathbf{q}}_2 ) \\ \end{array} $


И обратных как результат инволюции сопряжения и симметричности форм:

$ \begin{array}{cccl} & \mathbf{E} ( \mathbf{q}_1, \mathbf{q}_2 ) & = & \mathbf{A} ( \overline{\mathbf{q}}_1, \mathbf{q}_2 ) \\ & & = & \mathbf{A} ( \mathbf{q}_1, \overline{\mathbf{q}}_2 ) \\ (1) & \mathbf{q}_1 \ast \mathbf{q}_2 & = & \overline{\mathbf{q}}_1 \cdot \mathbf{q}_2 = \mathbf{q}_1 \cdot \overline{\mathbf{q}}_2 \\ & \mathbf{q}_1 \cdot \mathbf{q}_2 & = & \overline{\mathbf{q}}_1 \ast \mathbf{q}_2 = \mathbf{q}_1 \ast \overline{\mathbf{q}}_2 \\ \end{array} $


Доказывается прямой подстановкой.
Что же нам мешает принять интраскалярное произведение в качестве нормы на пространстве кватернионов (а кто об этом не задумался, глядя на матрицу A?!)?
Во-первых, нарушается четвёртая аксиома о положительности скалярного произведения ненулевых элементов:

$ \begin{array}{cccl} ] & \mathbf{q}_1 & = & [x^0, \vec{q}_1 ] , \\ & \mathbf{q}_2 & = & [y^0, \vec{q}_2 ] , \\ & \mathbf{q}_3 & = & [z^0, \vec{q}_3 ] : \\ 1^\circ. & \mathbf{A} ( \mathbf{q}_1, \mathbf{q}_2) & = & \mathbf{q}_1 \ast \mathbf{q}_2 \\ & & = & [ x^0 y^0 - \vec{q}_1 \cdot \vec{q}_2 ] \\ & & = & \mathbf{A} ( \mathbf{q}_2, \mathbf{q}_1) \qquad \in \mathbb{R}. \\ 2^\circ. & \mathbf{A} ( \mathbf{q}_1 + \mathbf{q}_2, \mathbf{q}_3 ) & = & ( [ x^0 + y^0 , \vec{q}_1 + \vec{q}_2] , [ z^0 , \vec{q}_3] ) \\ & & = & x^0 z^0 + y^0 z^0 - \vec{q}_1 \cdot \vec{q}_3 - \vec{q}_2 \cdot \vec{q}_3 \\ & & = & \mathbf{A} (\mathbf{q}_1, \mathbf{q}_3) + \mathbf{A} (\mathbf{q}_2, \mathbf{q}_3) \qquad \in \mathbb{R}. \\ 3^\circ. & \mathbf{A}(\lambda \mathbf{q}_1, \mathbf{q}_2) & = & ( \lambda [x^0, \vec{q}_1] , [y^0, \vec{q}_2] ) \\ & & = & [ \lambda x^0 y^0 - \lambda \vec{q}_1 \cdot \vec{q}_2 ] \\ & & = & \lambda [ x^0 y^0 - \vec{q}_1 \cdot \vec{q}_2 ] \\ & & = & \lambda \mathbf{A}( \mathbf{q}_1, \mathbf{q}_2 ) \qquad \forall \ \lambda \in \mathbb{R}. \\ 4^\circ. & \mathbf{A} ( \mathbf{q}_1, \mathbf{q}_1 ) & = & ( x^0 )^2 - ( \vec{q}_1 )^2 \\ & & <=> & 0. \end{array} $


В результате чего, мы получаем не евклидово, а псевдоевклидово пространство, заданное билинейной формой с сигнатурой, соответствующей пространству Минковского $ \mathbb{E}^4_{(1,3)} $.
Так что эту помеху в интересах физики обошли давно.
Вторым препятствием для введения интраскалярного произведения в качестве нормы является наличие нетривиальных делителей нуля. Действительно, если приравнять результат действия формы на два произвольных элемента нулю:

$ \begin{array}{cccl} ] & \mathbf{q}_1 & = & |\mathbf{q}_1| ( \cos\xi + \hat{q}_1 \sin\xi ) , \\ & \mathbf{q}_2 & = & |\mathbf{q}_2| ( \cos \zeta + \hat{q}_2 \sin\zeta ) , \\ & \mathbf{A} ( \mathbf{q}_1, \mathbf{q}_2 ) & = & |\mathbf{q}_1| |\mathbf{q}_2| ( \cos\xi \ \cos\zeta - \sin\xi \ \sin\zeta \cos\Upsilon ) \\ & & = & 0 : \\ & |\mathbf{q}_1| |\mathbf{q}_2| & \ne & 0 \Rightarrow \\ & \cot\xi \ \cot\zeta & = & \cos\Upsilon \\ \end{array} $


где $ \Upsilon $ — 3-пространственный угол в $ \Im $ между $ \hat{q}_1 $ и $ \hat{q}_2 $, видно, что каждому элементу $ \mathbf{q}_1 $ с аргументом $ \xi $ найдётся множество таких ненулевых векторов $ \mathbf{q}_2 $, что их интраскалярное произведение будет равно нулю. То есть все они будут нетривиальными делителями нуля.
Однако, если пристальнее взглянуть на условие обнуления интраскалярного произведения
можно заметить, что $ \mathbf{q}_1 $ и $ \mathbf{q}_2 $ качественно различны для произвольного $ \Upsilon $.
Выделим в $ \mathbb{H} $ три непересекающихся подпространства:

$ \begin{array}{cccl} 1. & \mathbb{T} & \subset& \mathbb{H} : \\ & \mathbf{A} ( \mathbf{q} ) & > & 0 \\ & & \Downarrow & \\ & \mathbf{q} & \in & \mathbb{T} . \\ 2. & \mathbb{S} & \subset& \mathbb{H} : \\ & \mathbf{A} ( \mathbf{q} ) & < & 0 \\ & & \Downarrow & \\ & \mathbf{q} & \in & \mathbb{S} . \\ 3. & \mathbb{P} & \subset& \mathbb{H} : \\ & \mathbf{A} ( \mathbf{q} ) & = & 0 \\ & & \Downarrow & \\ & \mathbf{q} & \in & \mathbb{P} . \\ \end{array} $


Совокупно $ \mathbb{S} + \mathbb{T} + \mathbb{P} = \mathbb{H} $ полностью накрывают множество $ \mathbb{H} $.
Если принять вещественную координату за время, а три мнимые за пространственные координаты, то подпространство $ \mathbb{T} $ (time) будет аналогично конусу времениподобных векторов, $ \mathbb{S} $ (space) — конусу пространственноподобных векторов, а $ \mathbb{P} $ (photon) — световому конусу (граница), принятым в СТО.
Если разобраться с условием обнуления формы двух произвольных элементов, представив его так:

$ \begin{array}{cccll} & \cot\xi & = & \cos\Upsilon\ \cot ( \frac{\pi}{2} - \zeta ) : \\ & \xi & \in & [ 0, \frac{\pi}{4} ) \\ & & \Downarrow & \\ & \zeta & \in & [\frac{\pi}{2}, \frac{\pi}{4} ) & \cos \Upsilon \in (0, 1] \\ & \zeta & \in & [ -\frac{\pi}{2} , -\frac{\pi}{4} ) & \cos \Upsilon \in [-1, 0) \\ & \zeta & = & \pm \frac{\pi}{4} & \cos \Upsilon = 0 \\ \end{array} $


То, возвращаясь к билинейной форме $ \mathbf{A} ( \mathbf{q}_1, \mathbf{q}_2 ) $, из приведённого уравнения обнаружим, что $ \mathbf{q}_1 $ и $ \mathbf{q}_2 $ всегда относятся к разным подпространствам, кроме пограничного случая:

$ \begin{array}{cccl} ] & \mathbf{A} ( \mathbf{q}_1, \mathbf{q}_2 ) & = & 0 : \\ 1. & \mathbf{q}_1 & \in & \mathbb{T} \\ & & \Downarrow & \\ & \mathbf{q}_2 & \in & \mathbb{S} . \\ 2. & \mathbf{q}_1 & \in & \mathbb{S} \\ & & \Downarrow & \\ & \mathbf{q}_2 & \in & \mathbb{T} . \\ 3. & \mathbf{q}_1 & \in & \mathbb{P} \\ & & \Downarrow & \\ & \mathbf{q}_2 & \in & \mathbb{P} . \\ \end{array} $


Ремарка: уже после написания этой части наткнулся на статью 1946 года мистера А. У. Конуэя, где по такому же принципу вводится понятие обратных относительно 3-конуса тетрад. Кому-то может быть там будет нагляднее.

Таким образом, если мы, исходя из соображений применения формы, считаем, что физических объектов типа $ \mathbb{T} $ не существует (скорость больше скорости света) и под этим предлогом исключаем их из рассмотрения, то единственным нулевым случаем формы останется взаимодействие элементов множества $ \mathbb{P} $. Но нулевая норма элементов светового конуса — снова принятая данность теории относительности, то есть и эту преграду уже обошли.
Означает ли это, что форму A можно ввести в качестве нормы на пространстве кватернионов, чтобы получить псевдоевклидово пространство изоморфное пространству Минковского и использовать его для каких-то утилитарных задач?
Ваши ответы в комментариях могут косвенно поспособствовать освоению космоса нашими потомками. А могут не способствовать, смотрите сами.
Далее рассмотрим некоторые инструменты алгебры кватернионов.

1.10. Поворот базиса во мнимом пространстве


Поворот базиса в пространстве кватернионов не очень востребован, хоть, в принципе, возможен. Источников, на которые можно было бы просто дать ссылку, я не нашёл, поэтому разберём этот вопрос.
Вследствие изоморфизма между евклидовым вещественным трёхмерным пространством и мнимым пространством кватерниона переход осуществляется похоже. Представим орты сферической системы координат, подразумевая под базисом $ (\hat{\imath}, \hat{\jmath}, \hat{k}) $ уже мнимую тройку вместо вещественной:

$ \begin{array}{ccl} \mathbf{e}_1 & = & \sin\theta \cos\phi \ \hat{ \imath } + \sin\theta \sin \phi \ \hat{ \jmath } + \cos\theta \ \hat{k} \\ \mathbf{e}_2 & = & \cos \theta \ \cos\phi \ \hat{ \imath } + \cos \theta \ \sin\phi \ \hat{ \jmath } - \sin\theta \ \hat{ k } \\ \mathbf{e}_3 & = & -\sin\phi \ \hat{ \imath } + \cos\phi \ \hat{ \jmath } \\ \end{array} $


Не сложно убедиться, что вне зависимости от значения углов $ \theta, \phi $, квадрат векторов всегда равен минус единице: $ (\mathbf{e}_1)^2 = (\mathbf{e}_2)^2 = (\mathbf{e}_3)^2 = -1 $; а попарные произведения идентичны мнимой тройке $ (\hat{\imath}, \hat{\jmath}, \hat{k}) $:

$ \begin{array}{ccl} \mathbf{e}_1 \mathbf{e}_2 & = & ( \sin\theta \cos\phi \ \imath + \sin\theta \sin \phi \ \jmath + \cos\theta \ k) ( \cos\theta \cos\phi \ \imath + \cos\theta \sin \phi \ \jmath - \sin\theta \ k) \\ & = & - \sin \phi \ \imath + \cos \phi \ \jmath \\ & = & \mathbf{e}_3 \\ \mathbf{e}_2 \mathbf{e}_3 & = & ( \cos\theta \cos\phi \ \imath + \cos\theta \sin \phi \ \jmath - \sin\theta \ k) (- \sin \phi \ \imath + \cos \phi \ \jmath) \\ & = & \sin\theta \cos\phi \ \imath + \sin\theta \sin \phi \ \jmath + \cos\theta \ k \\ & = & \mathbf{e}_1 \\ \mathbf{e}_3 \mathbf{e}_1 & = & (- \sin \phi \ \imath + \cos \phi \ \jmath) ( \sin\theta \cos\phi \ \imath + \sin\theta \sin \phi \ \jmath + \cos\theta \ k) \\ & = & ( \cos\theta \cos\phi \ \imath + \cos\theta \sin \phi \ \jmath - \sin\theta \ k) \\ & = & \mathbf{e}_2 \\ \mathbf{e}_1 \mathbf{e}_3 & = & ( \sin\theta \cos\phi \ \imath + \sin\theta \sin \phi \ \jmath + \cos\theta \ k) (- \sin \phi \ \imath + \cos \phi \ \jmath) \\ & = & - \cos \theta \cos\phi \ \imath - \cos \theta \sin \phi \ \jmath + \sin\theta \ k \\ & = & - \mathbf{e}_2 \\ \mathbf{e}_2 \mathbf{e}_1 & = & ( \cos\theta \cos\phi \ \imath + \cos\theta \sin \phi \ \jmath - \sin\theta \ k) ( \sin\theta \cos\phi \ \imath + \sin\theta \sin \phi \ \jmath + \cos\theta \ k) \\ & = & \sin\phi \ \imath - \cos\phi \ \jmath \\ & = & - \mathbf{e}_3 \\ \mathbf{e}_2 \mathbf{e}_3 & = & (- \sin \phi \ \imath + \cos \phi \ \jmath) ( \cos\theta \cos\phi \ \imath + \cos\theta \sin \phi \ \jmath - \sin\theta \ k) \\ & = & - \sin\theta \cos\phi \ \imath - \sin\theta \sin \phi \ \jmath - \cos\theta \ k \\ & = & - \mathbf{e}_1 \\ \end{array} $


Скалярные попарные произведения будут нулевыми. Направление тройки сохраняется.
Таким образом, тройка ортов $ ( \mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3 ) $ является поворотом базиса $ (\hat{\imath}, \hat{\jmath}, \hat{k}) $, при котором можно условно представить, что вектор $ \hat{\imath} $ переходит в вектор $ \mathbf{e}_1 $, попадая в один из восьми октантов мнимого пространства в зависимости от значения углов $ \theta, \phi $:

$ \begin{array}{ c | c | c | c } № & \theta \in & \phi \in & \mathbf{e}_1 (\imath, \jmath, k) \\ \hline 1. & ( 0, \frac{\pi}{2} ) & ( 0, \frac{\pi}{2} ) & (+, +, +) \\ \hline 2. & ( 0, \frac{\pi}{2} ) & ( \frac{\pi}{2}, \pi ) & (-, +, +) \\ \hline 3. & ( 0, \frac{\pi}{2} ) & ( \pi, \frac{3\pi}{2} ) & (-, -, +) \\ \hline 4. & ( 0, \frac{\pi}{2} ) & ( \frac{3\pi}{2}, 2\pi ) & (+, -, +) \\ \hline 5. & ( \frac{\pi}{2}, \pi ) & ( 0, \frac{\pi}{2} ) & (+, +, -) \\ \hline 6. & ( \frac{\pi}{2}, \pi ) & ( \frac{\pi}{2}, \pi ) & (-, +, -) \\ \hline 7. & ( \frac{\pi}{2}, \pi ) & ( \pi, \frac{3\pi}{2} ) & (-, -, -) \\ \hline 8. & ( \frac{\pi}{2}, \pi ) & ( \frac{3\pi}{2}, 2\pi ) & (+, -, -) \\ \hline 7. & ( \pi, \frac{3\pi}{2} ) & ( 0, \frac{\pi}{2} ) & (-, -, -) \\ \hline 8. & ( \pi, \frac{3\pi}{2} ) & ( \frac{\pi}{2}, \pi ) & (+, -, -) \\ \hline 5. & ( \pi, \frac{3\pi}{2} ) & ( \pi, \frac{3\pi}{2} ) & (+, +, -) \\ \hline 6. & ( \pi, \frac{3\pi}{2} ) & ( \frac{3\pi}{2}, 2\pi ) & (-, +, -) \\ \hline 3. & ( \frac{3\pi}{2}, 2\pi ) & ( 0, \frac{\pi}{2} ) & (-, -, +) \\ \hline 4. & ( \frac{3\pi}{2}, 2\pi ) & ( \frac{\pi}{2}, \pi ) & (+, -, +) \\ \hline 1. & ( \frac{3\pi}{2}, 2\pi ) & ( \pi, \frac{3\pi}{2} ) & (+, +, +) \\ \hline 2. & ( \frac{3\pi}{2}, 2\pi ) & ( \frac{3\pi}{2}, 2\pi ) & (-, +, +) \\ \end{array} $


image
Рисунок из статьи в Википедии.
Заметки на полях. Каждый плоский угол, образуемый $ \mathbf{e}_1 $ и соответствующими октанту единичными векторами, по теореме синусов пропорционален проекции $ \mathbf{e}_1 $ на плоскость, которой полярен образующий его (угол) орт, и равен кусочку дуги большого круга, на который он опирается.
Кроме того, пересечения больших кругов, образуемых парами $ ( \mathbf{e}_1, \hat{\imath} ), ( \mathbf{e}_1, \hat{\jmath} ), ( \mathbf{e}_1, \hat{k} ) $, вокруг окончания $ \mathbf{e}_1 $ на единичной сфере дают углы, пропорциональные значениям координат $ \mathbf{e}_1 $.

Конечно, такой поворот не обеспечивает полного многообразия вращений базиса,
жёстко привязывая второй и третий орт к значениям углов, заданных изначально для ориентации первого орта. Орт $ \mathbf{e}_2 $ — касательная к большому кругу, образуемуму $ ( \mathbf{e}_1, \ \hat{ k } ) $, орт $ \mathbf{e}_2 $ — касательная к малому кругу, образуемому вращением $ \mathbf{e}_1 $ вокруг $ \hat{ k } $.
Обеспечить полное покрытие всех возможных ориентаций базиса мы можем, например, вторым этапом довернув второй и третий орты вокруг оси первого:

$ \begin{array}{ccl} \mathbf{e}_2' & = & \cos \psi \ \mathbf{e}_2 + \sin \psi \ \mathbf{e}_3 \\ \mathbf{e}_3' & = & - \sin \psi \ \mathbf{e}_2 + \cos \psi \ \mathbf{e}_3 \\ \end{array} $



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

$ \begin{array}{ccl} \vec{r} & = & r^1 \ \hat{ \imath } + r^2 \ \hat{ \jmath } + r^3 \ \hat{ k } \\ & = & | r | \hat{ r } \\ & = & | r | ( \sin\theta \cos\phi \ \hat{ \imath } + \sin\theta \sin \phi \ \hat{ \jmath } + \cos\theta \ \hat{ k } ) \\ & = & | r | \mathbf{e}_1 \\ \end{array} $


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

$ \begin{array}{ccl} T & = & \left( \matrix{\sin\theta \cos\phi & \sin\theta \sin \phi & \cos\theta \\ \cos \theta \ \cos\phi & \cos \theta \ \sin\phi & - \sin\theta \\ -\sin\phi & \cos\phi & 0 } \right) \\ \det T & = & 1, \quad \forall \ \theta, \phi \\ ] \quad I & = & \left( \matrix{ \hat{ \imath } \\ \hat{ \jmath } \\ \hat{ k } \ } \right) : \\ \mathbf{e}_\mu & = & \left( \matrix{ \mathbf{e}_1 \\ \mathbf{e}_2 \\ \mathbf{e}_3 } \right) \\ & = & \left( \matrix{\sin\theta \cos\phi & \sin\theta \sin \phi & \cos\theta \\ \cos \theta \ \cos\phi & \cos \theta \ \sin\phi & - \sin\theta \\ -\sin\phi & \cos\phi & 0 } \right) \left( \matrix{ \hat{ \imath } \\ \hat{ \jmath } \\ \hat{ k } \ } \right) \\ & = & T I \\ \end{array} $


Обратный переход тогда будет задан обратной/транспонированной матрицей:

$ \begin{array}{ccl} I & = & T^{-1} ( T I ) \\ & = & T^{-1} \mathbf{e}_\mu \\ & = & \left( \matrix{\sin\theta \cos\phi & \sin\theta \sin \phi & \cos\theta \\ \cos \theta \ \cos\phi & \cos \theta \ \sin\phi & - \sin\theta \\ -\sin\phi & \cos\phi & 0 } \right)^{-1} \mathbf{e}_\mu \\ & = & \left( \matrix{ \sin\theta \cos\phi & \cos \theta \ \cos\phi & - \sin\phi \\ \sin\theta \sin \phi & \cos \theta \ \sin\phi & \cos\phi \\ \cos\theta & -\sin \theta & 0 } \right) \mathbf{e}_\mu \\ & = & T^T \mathbf{e}_\mu \\ \end{array} $


А чтобы привести произвольный элемент подпространства $ \Im $ к новому базису, потребуется представить его произвольный элемент как произведение вектора-строки и вектора-столбца:

$ \begin{array}{ccl} ] \quad \vec{q} & = & x^1 \hat{\imath} + x^2 \hat{\jmath} + x^3 \hat{k} \\ & = & \left( \matrix{ x^1 & x^2 & x^3 } \right) \left( \matrix{ \hat{ \imath } \\ \hat{ \jmath } \\ \hat{ k } \ } \right) \\ & = & X I , \\ I & = & T^T \mathbf{e}_\mu : \\ \vec{q} & = & X T^T \mathbf{e}_\mu \\ & = & \left( \matrix{ x^1 & x^2 & x^3 } \right) \left( \matrix{ \sin\theta \cos\phi & \cos \theta \ \cos\phi & - \sin\phi \\ \sin\theta \sin \phi & \cos \theta \ \sin\phi & \cos\phi \\ \cos\theta & -\sin \theta & 0 } \right) \left( \matrix{ \mathbf{e}_1 \\ \mathbf{e}_2 \\ \mathbf{e}_3 } \right) \\ & = & X' \mathbf{e}_\mu \\ X' & = & \left( \matrix{ x'^1 & x'^2 & x'^3 } \right) : \\ x'^1 & = & x^1 \ \sin\theta \cos\phi + x^2 \ \sin\theta \sin \phi + x^3 \ \cos\theta , \\ x'^2 & = & x^1 \ \cos \theta \cos\phi + x^2 \ \cos \theta \sin\phi - x^3 \ \sin \theta , \\ x'^3 & = & x^1 \ \cos\theta - x^2 \ \sin \theta ; \\ \vec{q} & = & x'^1 \mathbf{e}_1 + x'^2 \mathbf{e}_2 + x'^3 \mathbf{e}_3 \\ & = & x'^\mu \mathbf{e}_\mu \\ \end{array} $


В принципе, вместо матрицы T может быть использована произвольная матрица, задающая поворот, мы же просто использовали «классическую схему».
В матрице преобразования ясно просматриваются два последовательных поворота на углы $ \theta, \phi $, то есть те же манипуляции, что представлены выше в матричном виде, не сложно выполнить средствами кватернионной алгебры, которые описаны далее.

1.11. Поворот элементов во мнимом пространстве


Теперь рассмотрим, как тот же поворот может быть выполнен с помощью кватернионов. Это ширико используемый в компьютерной графике механизм, представляющий собой линейное отображение вида $ \mathbf{R} : \mathbf{q} \mapsto \hat{\mathbf{r}} \mathbf{q} \hat{\mathbf{r}}^{-1} $; являющееся ортогональным преобразованием — поворотом элемента во мнимом подпространстве кватернионов.
Его описал ещё Сэр Уильям Роуэн Гамильтон в далёком 1845 году.
Во-первых, оно не влияет на вещественную часть элемента:

$ \begin{array}{cccl} ] & \mathbf{R} & : & \mathbf{q} \mapsto \hat{\mathbf{r}} \mathbf{q} \hat{\mathbf{r}}^{-1} : \\ & \Re(\mathbf{q}) & = & ( \mathbf{q} + \bar{\mathbf{q}} ) / 2 , \\ & \Re(\mathbf{R}) & = & \Re(\hat{\mathbf{r}} \mathbf{q} \hat{\mathbf{r}}^{-1}) \\ & & = & ( \hat{\mathbf{r}} \mathbf{q} \hat{\mathbf{r}}^{-1} + \overline{ \hat{\mathbf{r}} \mathbf{q} \hat{\mathbf{r}}^{-1} } ) / 2 \\ & & = & ( \hat{\mathbf{r}} \mathbf{q} \hat{\mathbf{r}}^{-1} + \overline{ \hat{\mathbf{r}}^{-1} } \ \overline{ \hat{\mathbf{r}}^{-1} \mathbf{q} } ) / 2 \\ & & = & ( \hat{\mathbf{r}} \mathbf{q} \hat{\mathbf{r}}^{-1} + \hat{\mathbf{r}} \ \overline{ \mathbf{q} } \hat{\mathbf{r}}^{-1} ) / 2 \\ & & = & \hat{\mathbf{r}} ( \mathbf{q} + \overline{ \mathbf{q} } ) \hat{\mathbf{r}}^{-1} / 2 \\ & & = & \hat{\mathbf{r}} \ \Re(\mathbf{q}) \ \hat{\mathbf{r}}^{-1}, \Re(\mathbf{q}) \in \mathbb{R} : \\ & & = & \Re(\mathbf{q}) \ \hat{\mathbf{r}} \ \hat{\mathbf{r}}^{-1} \\ & & = & \Re(\mathbf{q}) , \quad \forall \hat{\mathbf{r}} \\ \end{array} $


Во-вторых, оно, конечно, будучи поворотом, не влияет на длину мнимой части вектора:

$ \begin{array}{cccl} ] & \mathbf{R} & : & \mathbf{q} \mapsto \hat{\mathbf{r}} \mathbf{q} \hat{\mathbf{r}}^{-1} : \\ & \Im(\mathbf{q}) & = & ( \mathbf{q} - \bar{\mathbf{q}} ) / 2 \\ & & = & q \hat{q} \\ & \Im(\mathbf{R}) & = & \Im(\hat{\mathbf{r}} \mathbf{q} \hat{\mathbf{r}}^{-1}) \\ & & = & \hat{\mathbf{r}} ( \mathbf{q} - \overline{ \mathbf{q} } ) \hat{\mathbf{r}}^{-1} / 2 \\ & & = & \hat{\mathbf{r}} \ \Im(\mathbf{q}) \ \hat{\mathbf{r}}^{-1} \\ & & = & q \ ( \hat{\mathbf{r}} \ \hat{q} \ \hat{\mathbf{r}}^{-1} ) \\ & & = & q \ ( \hat{q}' ) \\ \end{array} $


Следовательно, отображение вида $ \mathbf{R} $ не влияет на аргумент элемента, и является ортогональным преобразованием, сохраняющим собственную форму A элемента:

$ \begin{array}{cccl} ] & \mathbf{R} (\mathbf{q}) & = & \{ \mathbb{H} \mapsto \mathbb{H} | \ \mathbf{R} (\mathbf{q}_1) \ast \mathbf{R} (\mathbf{q}_2) = \mathbf{q}_1 \ast \mathbf{q}_2 \} \\ & & = & \hat{ \mathbf{r}} \circ \mathbf{q} \circ \hat{ \mathbf{r}}^{-1} , \\ & \hat{ \mathbf{r}} & = & \{ \mathbf{r} \in \mathbb{H} | \ | \mathbf{r} | = 1 \} : \\ & \mathbf{R} ( \mathbf{q}_1 ) \ast \mathbf{R} ( \mathbf{q}_2 ) & = & \frac{1}{2} \left( \hat{ \mathbf{r}} \circ \mathbf{q}_1 \circ \hat{ \mathbf{r}}^{-1} \circ \hat{ \mathbf{r}} \circ \mathbf{q}_2 \circ \hat{ \mathbf{r}}^{-1} + \overline{\hat{ \mathbf{r}} \circ \mathbf{q}_1 \circ \hat{ \mathbf{r}}^{-1} \circ \hat{ \mathbf{r}} \circ \mathbf{q}_2 \circ \hat{ \mathbf{r}}^{-1}} \right) \\ & & = & \frac{1}{2} \left( \hat{ \mathbf{r}} \circ \mathbf{q}_1 \circ \mathbf{q}_2 \circ \hat{ \mathbf{r}}^{-1} + \overline{\hat{ \mathbf{r}} \circ \mathbf{q}_1 \circ \mathbf{q}_2 \circ \hat{ \mathbf{r}}^{-1}} \right) \\ & & = & \frac{1}{2} \left( \hat{ \mathbf{r}} \circ \mathbf{q}_1 \circ \mathbf{q}_2 \circ \hat{ \mathbf{r}}^{-1} + \hat{ \mathbf{r}} \circ \overline{ \mathbf{q}_1 \circ \mathbf{q}_2 } \circ \hat{ \mathbf{r}}^{-1} \right) \\ & & = & \hat{\mathbf{r}} \circ \frac{1}{2} \left( \mathbf{q}_1 \circ \mathbf{q}_2 + \overline{ \mathbf{q}_1 \circ \mathbf{q}_2 } \right) \circ \hat{ \mathbf{r}}^{-1} \\ & & = & \mathbf{R} ( \mathbf{q}_1 \ast \mathbf{q}_2 ) \\ & & = & \mathbf{q}_1 \ast \mathbf{q}_2 \qquad \lor \\ \end{array} $


ЧТД, как говорится.
Отсутствие изменения формы E проверяется аналогично, подтверждая очевидное: норма при повороте мнимого пространства не меняется.
Для порядка взглянем сразу и на отображение B повёрнутого вектора:

$ \begin{array}{cccl} & \mathbf{R} ( \mathbf{q}_1 ) \diamond \mathbf{R} ( \mathbf{q}_2 ) & = & \frac{1}{2} \left( \hat{ \mathbf{r}} \circ \mathbf{q}_2 \circ \hat{ \mathbf{r}}^{-1} \circ \hat{ \mathbf{r}} \circ \mathbf{q}_1 \circ \hat{ \mathbf{r}}^{-1} - \overline{\hat{ \mathbf{r}} \circ \mathbf{q}_1 \circ \hat{ \mathbf{r}}^{-1} \circ \hat{ \mathbf{r}} \circ \mathbf{q}_2 \circ \hat{ \mathbf{r}}^{-1}} \right) \\ & & = & \frac{1}{2} \left( \hat{ \mathbf{r}} \circ \mathbf{q}_2 \circ \mathbf{q}_1 \circ \hat{ \mathbf{r}}^{-1} - \overline{\hat{ \mathbf{r}} \circ \mathbf{q}_1 \circ \mathbf{q}_2 \circ \hat{ \mathbf{r}}^{-1}} \right) \\ & & = & \frac{1}{2} \left( \hat{ \mathbf{r}} \circ \mathbf{q}_2 \circ \mathbf{q}_1 \circ \hat{ \mathbf{r}}^{-1} - \hat{ \mathbf{r}} \circ \overline{ \mathbf{q}_1 \circ \mathbf{q}_2 } \circ \hat{ \mathbf{r}}^{-1} \right) \\ & & = & \hat{\mathbf{r}} \circ \frac{1}{2} \left( \mathbf{q}_2 \circ \mathbf{q}_1 - \overline{ \mathbf{q}_1 \circ \mathbf{q}_2 } \right) \circ \hat{ \mathbf{r}}^{-1} \\ & & = & \mathbf{R} ( \mathbf{q}_1 \diamond \mathbf{q}_2 ) \\ \end{array} $


Билинейным отображением B двух повёрнутых векторов является соответствующий поворот их билинейного отображения.
Вращение мнимого пространства не влияет на формы A и E, и влияет на отображение B сообразно повороту, оставляя неизменным в пространстве.
С помощью этого отображения можно не просто вращать объекты:
image
А делать это с варьируемой осью:
image
rotateC
function Q = rotateC(Q, r)

rot = normalize(r);

index = 2;

for b = 1:index
    for c = 1:index
        for d = 1:index
        Q(b,c,d) = rot^(-1) * Q(b,c,d) * rot;
        end
    end
end


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

1.12. Вещественно-мнимый поворот


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

$ \begin{array}{cccl} ] & \mathbf{D} (\mathbf{q}) & = & \{ \mathbb{H} \mapsto \mathbb{H} | \ \mathbf{D} (\mathbf{q}_1) \cdot \mathbf{D} (\mathbf{q}_2) = \mathbf{q}_1 \cdot \mathbf{q}_2 \} \\ & & = & \hat{ \mathbf{d}} \circ \mathbf{q} \circ \hat{ \mathbf{d}} \\ \end{array} $


Дальше для упрощения представления нам пригодится установленное ранее свойство отсутствия влияния вращения во мнимом подпространстве на формы, за счёт которого мы всегда можем привести базис $ ( \hat{\imath}, \hat{\jmath}, \hat{k} ) $ мнимого пространства к согласованию с единичным вектором $ \hat{d} $ ротора, иначе при их перемножении будет непроходимая жесть с применением формулы Бэйкера-Кэмпбелла-Хаусдорфа. К согласованию здесь, значит, положение $ \hat{d} $ коллинеарное одному из ортов базиса.
То есть для упрощения мы сразу представим случай $ \hat{d} \parallel \hat{\imath} $, для общего же случая нам надо было бы сначала повернуть мнимое пространство, что в общем виде будет:

$ \mathbf{q}' = \hat{\mathbf{r}}^{-1} \circ \mathbf{q} \circ \hat{\mathbf{r}} \quad \Rightarrow \mathbf{D} ({\mathbf{q}'}) = \overline{ \hat{\mathbf{d}} \circ \hat{\mathbf{r}}^{-1} \circ \mathbf{q} \circ \hat{\mathbf{r}} \circ \hat{\mathbf{d}} } $


В явном виде для упрощённого варианта действие отображения типа D получится таким:

$ \begin{array}{cccl} ] & \hat{\mathbf{d}} & = & \cos \frac{\psi}{2} + \hat{\imath} \sin \frac{\psi}{2} : \\ & \mathbf{D} (\mathbf{q}) & = & \hat{\mathbf{d}} \circ \mathbf{q} \circ \hat{\mathbf{d}} \\ & & = & (\cos\frac{\psi}{2} + \hat{\imath} \sin \frac{\psi}{2} ) (x^0 + x^1 \hat{\imath} + x^2 \hat{\jmath} + x^3 \hat{k} ) ( \cos\frac{\psi}{2} + \hat{\imath} \sin \frac{\psi}{2} ) \\ & & = & \cos^2 \frac{\psi}{2} \ (x^0 + x^1 \hat{\imath} + x^2 \hat{\jmath} + x^3 \hat{k} ) + \sin^2 \frac{\psi}{2} (- x^0 - x^1 \hat{\imath} + x^2 \hat{\jmath} + x^3 \hat{k} ) + \\ & & + & 2 \cos\frac{\psi}{2} \sin \frac{\psi}{2} \hat{\imath} \ x^0 - 2 \cos\frac{\psi}{2} \sin \frac{\psi}{2} \ x^1 \\ & & = & \cos \psi (x^0 + x^1 \hat{\imath}) + \sin \psi (x^0 \hat{\imath} - x^1) + x^2 \hat{\jmath} + x^3 \hat{k} \\ & & = & \cos \psi \ x^0 - \sin \psi \ x^1 + (\sin \psi \ x^0 + \cos \psi \ x^1 ) \hat{\imath} + x^2 \hat{\jmath} + x^3 \hat{k} \\ \end{array} $


Назовём такое преобразование вещественно-мнимым поворотом. Его можно попробовать использовать, как и предыдущее преобразование, в компьютерной графике для растяжения/сжатия объекта по произвольной оси, но уже с обязательной нормализацией, так как «масштаб» объекта во мнимом пространстве изменяется.
Для наглядности представим его через более принятый в линейной алгебре инструмент — в виде матриц:

$ \begin{array}{cccl} ] & \mathbf{e}_\alpha & = & \left( \matrix{\hat{h} \\ \hat{\imath} \\ \hat{\jmath} \\ \hat{k}} \right) , \\ & \mathbf{x}^\alpha & = & \left( \matrix{x^0 & x^1 & x^2 & x^3 } \right) , \\ & D & = & \left( \matrix{ \cos \psi & \sin \psi & 0 & 0 \\ -\sin \psi & \cos \psi & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1} \right) \\ & \det D & = & 1 \qquad \forall \psi : \\ & \mathbf{q} & = & \left( \matrix{x^0 & x^1 & x^2 & x^3 } \right) \left( \matrix{\hat{h} \\ \hat{\imath} \\ \hat{\jmath} \\ \hat{k}} \right) \\ & & = & \mathbf{x}^\alpha \mathbf{e}_\alpha , \\ & \mathbf{D} (\mathbf{q}) & = &\left( \matrix{x^0 & x^1 & x^2 & x^3 } \right) \left( \matrix{\cos \psi & \sin \psi & 0 & 0 \\ -\sin \psi & \cos \psi & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1} \right) \left( \matrix{\hat{h} \\ \hat{\imath} \\ \hat{\jmath} \\ \hat{k}} \right) \\ & & = & \mathbf{x}^\alpha D \mathbf{e}_\alpha . \end{array} $


Матрица D соответствует повороту (ортогональному преобразованию) элемента $ \mathbf{q} \mapsto \mathbf{q}' $ в базисе $ \mathbf{e}_\alpha $, а также, естественно, может быть представлена как поворот базиса $ \mathbf{e}_\alpha \mapsto \mathbf{e}_\mu $ для неизменного набора координат $ \mathbf{x}_\mu = \mathbf{x}_\alpha $:

$ \begin{array}{cccl} ] & \mathbf{e}_\mu & = & \left( \matrix{ \mathbf{e}_0 \\ \mathbf{e}_1 \\ \mathbf{e}_2 \\ \mathbf{e}_3 } \right) \\ & & = & \left( \matrix{ \cos \psi & \sin \psi & 0 & 0 \\ -\sin \psi & \cos \psi & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1} \right) \left( \matrix{\hat{h} \\ \hat{\imath} \\ \hat{\jmath} \\ \hat{k}} \right) \\ & & = & D \mathbf{e}_\alpha : \\ & \mathbf{D}(\mathbf{q}) & = & \mathbf{x}^\alpha ( D \mathbf{e}_\alpha ) \\ & & = & \mathbf{x}^\mu \mathbf{e}_\mu . \\ \end{array} $


Проверим утверждение об ортогональности преобразования (сохранении нормы):

$ \begin{array}{cccl} & \mathbf{D}(\mathbf{q}_1) \cdot \mathbf{D}(\mathbf{q}_2) & = & \frac{1}{2} ( \overline{ \hat{\mathbf{d}} \circ \mathbf{q}_1 \circ \hat{\mathbf{d}} } \circ \hat{\mathbf{d}} \circ \mathbf{q}_2 \circ \hat{\mathbf{d}} + \overline{ \hat{\mathbf{d}} \circ \mathbf{q}_2 \circ \hat{\mathbf{d}} } \circ \hat{\mathbf{d}} \circ \mathbf{q}_1 \circ \hat{\mathbf{d}} ) \\ & & = & \frac{1}{2} ( \overline{ \hat{\mathbf{d}}} \circ \overline{ \mathbf{q}_1 } \circ \mathbf{q}_2 \circ \hat{\mathbf{d}} + \overline{ \hat{\mathbf{d}} } \circ \overline{ \mathbf{q}_2 } \circ \mathbf{q}_1 \circ \hat{\mathbf{d}} ) \\ & & = & \mathbf{q}_1 \cdot \mathbf{q}_2 \qquad \lor \\ \end{array} $


D-поворот не влияет на норму, следовательно, является ортогональным преобразованием.
При D-повороте форма A уже, совершенно очевидно, в общем случае не сохраняется:

$ \begin{array}{cccl} & \mathbf{D}(\mathbf{q}_1) \ast \mathbf{D}(\mathbf{q}_2) & = & \frac{1}{2} ( \hat{\mathbf{d}} \circ \mathbf{q}_1 \circ \hat{\mathbf{d}} \circ \hat{\mathbf{d}} \circ \mathbf{q}_2 \circ \hat{\mathbf{d}} + \overline{ \hat{\mathbf{d}} \circ \mathbf{q}_1 \circ \hat{\mathbf{d}} \circ \hat{\mathbf{d}} \circ \mathbf{q}_2 \circ \hat{\mathbf{d}} } ) \\ & & = & \hat{\mathbf{d}}^{-1} \circ \Big[ \frac{1}{2} ( \hat{\mathbf{d}} \circ \mathbf{q}_1 \circ \hat{\mathbf{d}}^2 \circ \mathbf{q}_2 \circ \hat{\mathbf{d}} + \overline{ \hat{\mathbf{d}} \circ \mathbf{q}_1 \circ \hat{\mathbf{d}}^2 \circ \mathbf{q}_2 \circ \hat{\mathbf{d}} } ) \Big] \circ \hat{\mathbf{d}} \\ & & = & \frac{1}{2} ( \mathbf{q}_1 \circ \hat{\mathbf{d}}^2 \circ \mathbf{q}_2 \circ \hat{\mathbf{d}}^2 + \overline{ \mathbf{q}_1 \circ \hat{\mathbf{d}}^2 \circ \mathbf{q}_2 \circ \hat{\mathbf{d}}^2 } ) \\ & & = & \mathbf{q}_1 \ast \mathbf{D} (\mathbf{D} ( \mathbf{q}_2 )) \\ & & = & \mathbf{q}_1 \ast \mathbf{D}^2 ( \mathbf{q}_2 ) \qquad (3) \\ \end{array} $


При этом из (3) и свойства коммутативности формы также следует:

$ \begin{array}{cccl} & \mathbf{D}(\mathbf{q}_1) \ast \mathbf{D}(\mathbf{q}_2) & = & \mathbf{q}_1 \ast \mathbf{D}^2 ( \mathbf{q}_2 ) \\ & & = & \mathbf{D}^2 ( \mathbf{q}_1 ) \ast \mathbf{q}_2 \\ \end{array} $


Как видно, эффект D-поворота произвольного объекта в пространстве при применении формы A всегда можно интерпретировать как поворот всех объектов пространства по отношению к повёрнутому объекту, оставляющий при этом сам выделенный элемент неизменным.
Условно говоря, если бы мы находились в обстоятельствах вектора $ \mathbf{q}_2 $ из (3), то наш D-поворот виделся нам поворотом всего прочего пространства при субъективном ощущении неизменности нашего собственного состояния.
Эта относительность применения формы A может позволять иинтерпретировать её как обстоятельства различных инерциальных систем отсчёта.
Кроме того, коротко обращу здесь внимание читателя на простой факт возможности представления любого элемента пространства кватернионов D-поворотом вещественного числа — своего модуля:

$ \mathbf{q} = \mathbf{D} (| \mathbf{q} |) = | \mathbf{q} | \ \hat{ \mathbf{d} }^2 = | \mathbf{q} | \ \hat{ \mathbf{q} }, \quad \hat{ \mathbf{q} } = \hat{ \mathbf{d} }^2 $


Таким образом, если наделить мнимый вектор кватерниона смыслом скорости объекта во мнимом трёхмерном пространстве, то из собственной ИСО, где объект покоится — описывающий его кватернион вещественен, интраскалярные формы прочих элементов пространства будут казаться повёрнутыми. Следовательно, сохранение инвариантности интервала может являться не физической закономерностью, а чисто математическим свойством системы.
Для понимания действия отображения (с нормализацией по длине ребра, а можно, например, по объёму!):
image
streckC
function Q = streckC(Q, a)

ax = normalize(a);

index = 2;

for b = 1:index
    for c = 1:index
        for d = 1:index
        Q(b,c,d) = ax * Q(b,c,d) * ax;
        end
    end
end


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

1.13. Масштабирование.


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

$ \mathbf{q}' = \Re (\mathbf{q}) \cdot \cos \alpha + \Im(\mathbf{q}) \cdot \sin \alpha $


И получается «зум»:
image
zoomC
function Q = zoomC(Q, angle)

Q = Quaternion.operation.realQ(Q) * cos(angle) + Quaternion.operation.imagQ(Q) * sin(angle);

end


realQ
function A = realQ(Q)

[A,~,~,~] = parts(Q);

end


imagQ
function P = imagQ(Q)

[ ~ , B , C , D ] = parts(Q);
A = zeros(size(Q));
P = quaternion( A, B , C , D );

end



1.14. Фото главного испытуемого.


Отдадим должное нашем объекту-испытателю:
image
Его данные:
2×2×2 quaternion array
q(:,:,1) =
0 + 0i + 0j + 0k 0 + 0i + 1j + 0k
0 + 1i + 0j + 0k 0 + 1i + 1j + 0k
q(:,:,2) =
0 + 0i + 0j + 1k 0 + 0i + 1j + 1k
0 + 1i + 0j + 1k 0 + 1i + 1j + 1k

createUnitCube

function [A] = createUnitCube()

index = 2;

for b = 1:index
    for c = 1:index
        for d = 1:index
        A(b,c,d) = quaternion(0,b-1,c-1,d-1);
        end
    end
end 


И визуализатор:
drawC
function Desc = drawC( Q )

%It needs to make a cubic state of Q check
if (size(Q,1) == size(Q,2))&&(size(Q,2) == size(Q,3))&&(size(Q,4) == 1)&&(size(Q,1) == 2)
    %disp('All right, guys. Its a cube.');
    index = size(Q,1);
else
    %disp('Ehhh... Gimme a fine cube, man!');
    return;
end

%Checking Q is a dot
if index == 1
    disp('Its a dot!');
    return;
end

%Hold the graphics field for all following drawnings
hold on;

box on;

%Eight cube's vertexes
[~,i0,j0,k0] = parts(Q(1,1,1));
[~,i1,j1,k1] = parts(Q(2,1,1));
[~,i2,j2,k2] = parts(Q(2,2,1));
[~,i3,j3,k3] = parts(Q(1,2,1));
[~,i4,j4,k4] = parts(Q(1,1,2));
[~,i5,j5,k5] = parts(Q(2,1,2));
[~,i6,j6,k6] = parts(Q(2,2,2));
[~,i7,j7,k7] = parts(Q(1,2,2));

%Six sites
X0 = [ i0 i1 i2 i3 ];
Y0 = [ j0 j1 j2 j3 ];
Z0 = [ k0 k1 k2 k3 ];

X1 = [ i0 i1 i5 i4 ];
Y1 = [ j0 j1 j5 j4 ];
Z1 = [ k0 k1 k5 k4 ];

X2 = [ i0 i3 i7 i4 ];
Y2 = [ j0 j3 j7 j4 ];
Z2 = [ k0 k3 k7 k4 ];

X3 = [ i4 i5 i6 i7 ];
Y3 = [ j4 j5 j6 j7 ];
Z3 = [ k4 k5 k6 k7 ];

X4 = [ i1 i2 i6 i5 ];
Y4 = [ j1 j2 j6 j5 ];
Z4 = [ k1 k2 k6 k5 ];

X5 = [ i2 i3 i7 i6 ];
Y5 = [ j2 j3 j7 j6 ];
Z5 = [ k2 k3 k7 k6 ];

%Draw cubes sides
d1 = fill3(X0, Y0, Z0, [0.5 0.5 1]);
d2 = fill3(X1, Y1, Z1, [0.4 0.4 1]);
d3 = fill3(X2, Y2, Z2, [0.3 0.3 1]);
d4 = fill3(X3, Y3, Z3, [0.9 0.9 1]);
d5 = fill3(X4, Y4, Z4, [0.1 0.1 1]);
d6 = fill3(X5, Y5, Z5, [0.7 0.7 1]);

Desc = [d1 d2 d3 d4 d5 d6];

daspect([2 2 2]);
axis([-2 3 -2 3 -2 3 -1 1]);

xlabel('x')
ylabel('y')
zlabel('z')

hold off



На этом пока всё. Пишите, пожалуйста, свои мысли по поводу прочитанного в комментариях, особенно, если найдёте ошибки. Также буду очень благодарен за ссылки на материалы по теме. Спасибо.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Стоит ли заморачиваться с функционалом из статьи и mlx-пояснялками на GitHub?
59.09% Да13
9.09% Нет2
4.55% Не знаю1
27.27% Не понял вопрос6
Проголосовали 22 пользователя. Воздержались 8 пользователей.
Теги:
Хабы:
Всего голосов 15: ↑13 и ↓2+16
Комментарии15

Публикации

Истории

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань