ちまきのブログ

理系大学生が日々の生活ログやその他もろもろをかいてみます

四元数とその行列

〇Wathematicaというサークルで行われているアドベントカレンダー企画(アドベントするものは無し)の一環として書いた記事です。

はじめに

四元数」というものを聞いたことがありますか?物理やプログラミングなどへの応用もあるようですが、 今回は四元数自体の構造と各成分が四元数であるような行列について書きました。四元数複素数の拡張のようなもので、加減乗除ができる構造をもちますが積についての交換法則が成り立ちません。そのため、扱う際に注意が必要となります。この記事の目標は、交換法則が成り立たないことによる不便さを感じて交換法則へのありがたさを実感すること・それ以外の性質(特に結合法則)が生きてくること・不便さの解消、などです。

*がついた項目は少しの群論やB1後期に扱うような線形代数の内容を前提としています。

四元数の定義

四元数の定義からはじめます。 まず集合としては以下のようなものを考えます。

 \mathbb{H} := \{a + ib + jc + kd | a, b, c, d \in \mathbb{R} \}

これは 4次の実ベクトル空間とみることができます。ここで、  i, j, kについて以下の条件:

 i^2 = j^2 = k^2 = ijk = -1 \\
 ij = -ji = k, jk = -kj = i, ki = -ik = j

の下で、分配法則が成り立つように積を定めます(具体的な計算については次節で)。このようにして積を定義すると、結合法則が成り立つことが分かります(証明略)。しかし、交換法則については成立しません。実際、定義より明らかに

 ij = k \neq -k = ji

となります。

具体的な計算

例えば、次のようにして積を計算します。

 (2 + 4j)( i + 3k) = 2i + 6k + 4ji + 12jk = 2i + 6k - 4k + 12i = 14i + 2k
 (a + ib + jc + kd)j = ja + (ij)b + j^2c + (kj)d = aj + kb - b - id

基本的な性質

演算構造

先ほど述べたとおり、もともとの \mathbb{R} 線形空間としての和と上で定めた積について、結合法則・分配法則が成立して環*1になります。また、 \mathbb{H} \ni q = a + ib + jc + kd に対して、 q の共役 \bar{q}

 \bar{q} := a - ib - jc - kd

と定めます。 すると、頑張って計算することで q \bar{q} = a^2 + b^2 + c^2 + d^2 が得られます。 q \neq 0のときこの値は常に正なので、複素数と同様に絶対値が定義でき、また

 \bar{q}^{-1} = \frac{1}{a^2 + b^2 + c^2 + d^2} \bar{q}

により積についての逆元が存在します。よって、 \mathbb{H}は斜体(加除環)*2になります。

基本性質

四元数は積について交換法則が成り立たないために様々な不都合が生じます。例えば、 p, q \in \mathbb{H}について、 \overline{pq}
 = \bar{p}\bar{q}は成り立ちません。 その代わりに以下が成り立ちます。

  1.  p, q \in \mathbb{H} について、 \overline{pq} = \bar{q}\bar{p}
  2.  c \in \mathbb{C} について、 jc = \bar{c}j

これらは今後よく使います。ここでは証明は省略します(大変なので)。

四元数上のベクトル空間

スカラー倍は右から

実数・複素数の時と同様に、 \mathbb{H}^nに対して \mathbb{H}ベクトル空間としての構造を入れることを考えます。和は各成分ごとの和で定め、スカラー倍については後で行列を定義することで分かるある理由があって右からかけることを考えます。すなわち、

 \displaystyle 
\begin{pmatrix} v_1 \\ \vdots \\ v_n \end{pmatrix}\cdot q = 
\begin{pmatrix} v_1 q \\ \vdots  \\ v_n q \end{pmatrix}

としてスカラー倍を定めます。一般のベクトル空間についても同様にして定義します。

四元数のベクトル空間上の内積*

複素ベクトル空間 Vにおけるエルミート内積とは、写像 H: V \times V \rightarrow \mathbb{C}であって条件:

  1. 第一成分について共役線型  \forall \alpha, \beta \in \mathbb{C}, \forall v_1, v_2, w \in V, H(\alpha v_1 + \beta v_2, w) = \bar{\alpha} H(v_1, w) + \bar{\beta} H(v_2, w)
  2. 第二成分について線型  \forall \alpha, \beta \in \mathbb{C}, \forall v, w_2, w_2 \in V, H(v, \alpha w_1 + \beta w_2) = \alpha H(v, w_1) + \beta H(v, w_2)   
  3. 共役対称  \forall v, w \in V, H(v, w) = \overline{H(w, v)}
  4. 正定値  \forall v \in V\setminus \{0\}, H(v, v) > 0

を満たすもののことでした。最も基本的なものとして、 \mathbb{C}^nにおける標準エルミート内積 (\cdot , \cdot ) : \mathbb{C}^n \times \mathbb{C}^n \rightarrow \mathbb{C} が以下のように与えられます:

 \displaystyle v, w \in \mathbb{C}^n, (v, w) := {}^t\bar{v}w = \sum_{i = 1}^n \bar{v_i}w_i

これは実際に内積の定義を満たすことが容易にわかります。これと同様にして、四元数上のベクトル空間にも四元内積を定めます。まず、定義としては複素数のときと同様の条件1 ~ 4を満たす写像とします。ただし、共役は四元数上でとります。また、 \mathbb{H}^nにおける標準四元内積も同様にして定めます。 すると同様にこれが内積の定義を満たすことが確認できるのですが、この確認には少し注意が必要です。ここでは3を確認します。

 \displaystyle \overline{(w, v)} = \overline{ \sum_{i = 0}^n \bar{v_i}w_i } = \sum_{i = 0}^n \overline{\bar{v_i}w_i} = \sum_{i = 0}^n \bar{w_i}\bar{\bar{v_i}} = \sum_{i = 0}^n \bar{w_i}v_i = (w, v)

四元数の行列

行列と線型写像

実数と複素数のときと同様に、各成分が四元数の行列(四元行列)を考えます。簡単のため、以下では正方行列のみを考えます。ここで、行列の積は実数や複素数のときと同じように定めてスカラー倍については先ほどと同様に右から作用させます。 \mathbb{R} \mathbb{C}のときと同様に、行列は線型写像を与えるものであってほしいです。そこで、これを確認してみます。和を保つことは複素数のときと同様なのでスカラー倍を保つことを確認します。 A n次正方行列、 v \in \mathbb{H}^n, q \in \mathbb{H}について、

  (Av) \cdot q = 
\begin{pmatrix} \sum_{i = 1}^n a_{1i} v_i \\ \vdots \\ \sum_{i = 1}^n a_{ni} v_i \end{pmatrix} \cdot q =
\begin{pmatrix} \sum_{i = 1}^n ( a_{1i} v_i ) \cdot q \\ \vdots \\  \sum_{i = 1}^n ( a_{ni} v_i ) \cdot q \end{pmatrix} =
\begin{pmatrix} \sum_{i = 1}^n  a_{1i} ( v_i q ) \\ \vdots \\ \sum_{i = 1}^n  a_{ni} ( v_i q) \end{pmatrix} =
A (v \cdot q)

となるので、スカラー倍を保つことが分かります。(結合法則えらい!!!)ここで、 \mathbb{H}上のベクトル空間に対するスカラー倍を右から作用させたことが生きています。行列は左からかけたいため、それと干渉しないようにスカラー倍は右から作用させたのです。また、四元行列に対する転置は実行列・複素行列と同様に、共役は各成分について共役をとった行列、というように定めます。

行列のなす群*

実数や複素数成分の正則行列全体は、行列の積について \mathrm{GL}_n (\mathbb{R}), \mathrm{GL}_n (\mathbb{C}) という群をなすのでした。これと同様にして \mathrm{GL}_n (\mathbb{H} )を「各成分が四元数正則行列全体」と定義します。注意点として、 \mathbb{H}の非可換性から行列式による特徴づけ(行列式が非零と正則性が同値)はうまくできません。(その代わりにどうするかについては参考文献[3]に載っています。)

また、実行列において標準内積を保つ行列(直交行列)全体のなす直交群 \mathrm{O}(n)・複素行列において標準エルミート内積を保つ行列(ユニタリ行列)全体のなすユニタリ群 \mathrm{U}(n)があったのと同様に、四元行列において標準四元内積を保つ行列全体にも群構造が定まります。これをシンプレクティック群といい、 \mathrm{Sp}(n)と表します。 n次正方四元行列 Aが標準四元内積を保つとは、

 \displaystyle \forall v, w \in \mathbb{H}^n,  (Av, Aw) = (v, w)

が成り立つことなので、

 \displaystyle \forall v, w \in \mathbb{H}^n,  {}^t(\overline{Av})Aw ={}^t \bar{v} {}^t \bar{A} Aw = {}^t \bar{v} = w \iff {}^t A A = E_n

となります。*3 よって、

 \displaystyle \mathrm{Sp}(n) = \{ A \in \mathrm{GL}_n  |  {}^t\bar{A}A = E_n \}

と表せます。これが群をなすことは \mathrm{O}(n), \mathrm{U}(n)と同様にして確認できます。これは、よく知られている実シンプレクティック群・複素シンプレクティック群とは別物ですが、後者の複素シンプレクティック群とは関係があります。それについては次の章で述べます。

四元数複素数表示

表示方法の設定

今までみてきたように、四元数における積は非可換であるため非常に扱いづらいです。そこで、複素数を用いて表すことを考えます。四元数の演算法則に注意すると、 q \in \mathbb{H} q =  a + ib + jc + kd = (a + ib) + j(c - id) と表せます。ここで、 a + ib, c - id \in \mathbb{C}であることから、四元数の各元は  u + jv, u, v \in \mathbb{C} と表すことができると分かります。この表示方法をみて、  q = a + ib + jc + kd = (a + ib) + (c + id)j というように表したほうが分かりやすいじゃないか!と思った方がいるかと思います。(自分もそう思いました)しかし、これには理由があります。それは、「 \mathbb{C}上のベクトル空間としてみたときに \mathbb{H} \mathbb{C}^2と自然に同型になってほしいから」です。ここでいう「自然な同型」とは、複素数表示したときの二つの元を対応させる写像によって同型になる、という意味です。まず、先に述べた良い定義で考えてみます。 \mathbb{H} から \mathbb{C}^2への写像を、 \mathbb{H} \ni q = u + jv \mapsto (u, v) と定めます。これは全単射になります(証明略)。また、 \mathbb{C}線形写像になっていることが確認できます。実際、

 (u + jv) \cdot c = uc + jvc \mapsto (uc, vc) = (u, v) \cdot c

となっています。(スカラー倍は右から作用させていることに注意)一方、だめな定義の方で考えると、

 (u + vj) \cdot c = uc + vjc = uc + j\bar{v} c \mapsto (uc, \bar{v}c) \neq (u, v) \cdot c

となってしまいます。

四元行列の複素数表示*

次に、四元行列についても複素数表示を考えてみましょう。便利のため、 n次正方複素行列全体を \mathrm{M}_n (\mathbb{C} ) n次正方四元行列全体を \mathrm{M}_n (\mathbb{H} )と表します。各 A \in \mathrm{M}_n (\mathbb{H} )は、 X, Y \in \mathrm{M}_n (\mathbb{C})を用いて A = X + jYと一意的に表せることに注意して、写像 \psi_n : \mathrm{M}_n (\mathbb{H} ) \rightarrow \mathrm{M}_{2n} (\mathbb{C}) を、

 \displaystyle \psi_n (X + jY ) = 
\begin{pmatrix} X & -\bar{Y} \\ Y & \bar{X} \end{pmatrix}

と定めます。すると、単純な計算によりこれが単射環準同型を与えることが分かります。*4そこで、 A \in \mathrm{M}_n(\mathbb{H})に対して \psi_n (A) A複素数表示といいます。一般に、「環準同型の乗法群への制限は乗法群から乗法群への群準同型を与える」*5ことが示せるので、 \psi_n  \mathrm{GL}_n(\mathbb{H})への制限を考えることによって、

 \psi_n |_{\mathrm{GL}_n(\mathbb{H})}: \mathrm{GL}_n (\mathbb{H}) \rightarrow \mathrm{GL}_{2n} (\mathbb{C})

という単射群準同型が得られます。

シンプレクティック群再考*

最後に、上で得られた単射群準同型によるシンプレクティック群 \mathrm{Sp}(n)の像を考えてみましょう。その前に、まずは全体の像 \psi_n (\mathrm{M}_n(\mathbb{H}) を考えてみます。頑張って計算することにより、

 \displaystyle J_n := \begin{pmatrix} 0 & E_n \\ -E_n & 0 \end{pmatrix}

として、

 \displaystyle \psi_n ( \mathrm{M}_n(\mathbb{H} ) = \{ A \in \mathrm{M}_{2n} (\mathbb{C}) | J_n A = \bar{A} J_n \}

であることが分かります。*6 \mathrm{GL}_n(\mathbb{H})への制限による像も同じように記述できます。同じように、頑張って計算することにより、

 \displaystyle \psi_n (\mathrm{Sp}(n) ) = \{ A \in \mathrm{GL}_{2n} (\mathbb{C}) | J_n A = \bar{A} J_n, {}^t\bar{A}A = E_{2n} \}

と分かります。*7ここで、一つ目の条件式に対して両辺に左から {}^t Aをかけることにより、二つ目の条件式を用いることで、

 {}^t A J_n A = {}^t A \bar{A} J_n

さらに二つ目の条件式を用いることで右辺は、

 {}^t A \bar{A} J_n = {}^t \bar{\bar{A}} \bar{A} J_n = J_n

と変形できます。以上より、

 \displaystyle \psi_n (\mathrm{Sp}(n) ) = \{ A \in \mathrm{GL}_{2n} (\mathbb{C}) | {}^t A J_n A =  J_n, {}^t\bar{A}A = E_{2n} \}

と表せます。複素シンプレクティック群 \mathrm{Sp}(2n, \mathrm{C} )が、

 \displaystyle \mathrm{Sp}(2n, \mathrm{C} ) := \{ A \in \mathrm{GL}_{2n} (\mathbb{C} | {}^t A J_n A = J_n \}

と定義されていたこと、ユニタリ群 \mathrm{U}(2n) が、

 \displaystyle \mathrm{U}(2n) = \{ A \in \mathrm{GL}_{2n} (\mathbb{C}) | {}^t \bar{A} A = E_{2n} \}

と表せたことを思い出すと、

 \displaystyle \psi_n (\mathrm{Sp}(n)) = \mathrm{Sp}(2n, \mathbb{C}) \cap \mathrm{U} (2n)

が得られます。これが四元数によるシンプレクティック群と複素シンプレクティック群の関係です。(実シンプレクティック群・複素シンプレクティック群については、「交代非退化双線形形式を保存する変換」として特徴づけることができます。このあたりの話についてもいつか書きたいと思っています。)

おわりに

かなり雑でよくわからない記事になってしまいました。可換性がなくなると、いつも当たり前にできていることが成り立たなくなってしまうことがあります。四元数を扱っていると、可換性のありがたさを感じます。また、それを解消するための工夫(右からの作用・複素数表示)なども面白いと思います。はじめに述べたように、四元数には様々な応用があるようなのでそれについても勉強してみたいです。長い文章となってしまいましたが、読んでいただきありがとうございました!!

参考文献

[1] William Fulton, Joe Harris "Representation Theory A First Course" この記事の内容は、この本でゼミをしているときに分からなかったことを他の本で調べて自分でまとめたものがもとになっています。

[2] Lowing W. Tu "トゥー多様体" この本の付録に四元数の話が載っています。

[3] 井ノ口順一 "はじめて学ぶリー群" とても分かりやすい。

[4] 雪江明彦 "代数学1 群論入門"

*1:簡潔にいうと、足し算・引き算・掛け算ができる集合

*2:足し算・引き算・掛け算・割り算ができるが掛け算について交換法則が成り立たない集合

*3: {}^t(AB) \neq {}^t B {}^t A ですが、 {}^t(\overline{AB}) = {}^t \bar{B} {}^t \bar{A} は成立します。

*4:本当は \mathbb{C}代数の凖同型になってほしいんですけど、うまくいきません。どなたかいい方法をご存じでしたら教えてください。

*5: f: A \rightarrow B を環準同型とすると、 f|_{A^\times}が乗法を保つことは明らかなので、 \forall a \in A^{\times}, f(a) \in Bであることを言えばよい。 f(a)f(a^{-1}) = f(1) = 1, f(a^{-1})f(a) = f(1) = 1より f(a)^{-1} = f(a^{-1})なのでOK。

*6:ブロックに分けて計算する。 (\supset )の方が大変。

*7:それぞれ元をとって計算すれば比較的簡単に示せる。