今回は、Juliaで四元数、二重四元数を実装して、それを用いて空間群の対象操作を行ってみたいと思います。 四元数 四元数(Quaternion)とは、実数$s, u, v, w$と虚数単位$i, j, k$を用いて以下のように表せる数体系のことです。 $$q = s + ui + vj + wk$$ 虚数単位は以下の条件を満たします。 $$i^2 = j^2 = k^2 = -1$$ $$ij = -ji = k, jk = -kj = i, ki = -ik = j$$ $q$を実数部$s$とベクトル部$\boldsymbol{v}$を用いて$q = (s, \boldsymbol{v})$と書くと便利です。 四元数は三次元空間での任意の回転操作を表現できることが知られています。 四元数の演算 和、差 $$q_1 \pm q_2 = (s_1 \pm s_2,\boldsymbol{v_