【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

分解型四元数と幾何代数

分解型四元数でベクトルを作って内積外積を計算します。

シリーズの記事です。

  1. 一次変数変換と行列の積
  2. 単位行列と逆行列
  3. 掃き出し法と逆行列
  4. 行列の積の性質
  5. 行列の演算
  6. ケイリー・ハミルトンの定理
  7. 零行列と冪零行列
  8. 冪零行列と二重数
  9. 零因子ペアの生成
  10. 三種類の二元数
  11. 分解型四元数と同型対応
  12. 分解型四元数と幾何代数 ← この記事
  13. 行列表現と外積と行列式

目次

【注意】分解型四元数によってベクトルなどを扱うため、いわゆる標準的な線形代数とは表記法が大きく異なります。標準的な表記法との対応については、いずれ機会を改めて取り上げる予定です。

ベクトル

分解型四元数の $i$ は複素数、$j$ は分解型複素数虚数単位に由来して、$k$ はそれらの積です。次の関係があります。

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

$j$ と $k$ は2乗の値が $1$ で共通しています。$j$ と $k$ の積を見ると、$kj=i$ と組み合わせればマイナスが出ません。そこで次のペアを考えます。

ak+bj

※ この選び方は恣意的ですが、他のペア(例: $ak+bi$)に意味を持たせることも可能です。いずれ機会を改めて取り上げる予定です。

これを2次元平面と対応付けます。$k$ を横方向、$j$ を縦方向として、$ak+bj$ は原点から $(a,b)$ に向かう矢印と考えてベクトルと呼びます。

※ ベクトルは方向と大きさ(長さ)を持った量で、矢印はそのイメージです。

f:id:n7shi:20191126055641p:plain

長さ1のベクトルを単位ベクトルと呼びます。$k$ は横方向の単位ベクトル、$j$ は縦方向の単位ベクトルです。$ak+bj$ は $k$ を $a$ 個、$j$ を $b$ 個つなげた座標 $(a,b)$ を指します。

f:id:n7shi:20191128004851p:plain

分解型四元数の積には幾何学的な意味があります。それを見ていきます。

ベクトルの長さ

ベクトルを2乗すると長さの2乗が得られます。

\begin{aligned} (ak+bj)^2 &=a^2\underbrace{k^2}_1+ab\underbrace{kj}_i+ab\underbrace{jk}_{-i}+b^2\underbrace{j^2}_1 \\ &=a^2+b^2 \end{aligned}

長さが必要な場合は平方根を取ります。

\sqrt{(ak+bj)^2}=\sqrt{a^2+b^2}

ベクトルの積

異なるベクトルの積を計算します。積の実部を内積、虚部を外積と呼びます。

\begin{aligned} (ak+bj)(ck+dj) &=ac\underbrace{k^2}_1+ad\underbrace{kj}_i+bc\underbrace{jk}_{-i}+bd\underbrace{j^2}_1 \\ &=\underbrace{(ac+bd)}_{\text{内積}}+\underbrace{(ad-bc)i}_{\text{外積}} \end{aligned}
f:id:n7shi:20191126055801p:plain

積によって得られた内積外積はベクトルとは異なります。$k,j$ から実部と $i$ が生じているのは、表すものの違いが基底に現れていると考えます。

内積

同じベクトルを掛けると長さの2乗が実数値として得られました。これは内積の特別な場合です。

異なるベクトルの内積も長さに関係がある量です。どちらか片方のベクトルに向かって垂線を下ろして方向を揃えてから、長さを掛けた量です。

f:id:n7shi:20191126055852p:plain f:id:n7shi:20191126055930p:plain

※ 垂線はどちらに向かって下ろしても結果は変わりません。

ベクトルの長さを固定したまま角度を変化させてみます。

f:id:n7shi:20180805162721p:plain
  • 角度を小さくすれば内積は増大して、同じ向きの時に最大となり、長さの積となります。ベクトルの2乗がその例です。
  • 角度を大きくすれば内積は減少して、直交した時に $0$ となります。この性質を利用して、内積が $0$ かどうかで直交を判断します。
  • 角度が直角を超えると内積はマイナスになって、反対向きの時に最小となります。

内積は交換するため、積の順番を変えても値は変わりません。

\begin{aligned} (ak+bj)(ck+dj)&=(ac+bd)+(ad-bc)i \\ (ck+dj)(ak+bj)&=\underbrace{(ac+bd)}_{同じ}-(ad-bc)i \end{aligned}

実部が表す量はスカラーと呼びます。内積スカラーです。

外積

外積は2本のベクトルによって張られる平行四辺形の面積(青色部分)に相当します。

f:id:n7shi:20191126060236p:plain

平行四辺形の面積が $ad-bc$ になることは、脇の三角形の位置を移動すれば直観的に求まります。

f:id:n7shi:20180824200112p:plain

2本のベクトルが一直線上に並ぶ、つまり同じ方向か反対向きであれば、平行四辺形が潰れて面積は $0$ になります。そのためベクトルの2乗では外積がなく内積しか現れません。

外積の符号はベクトル間の角度に関係します。ベクトルの積を $v_1v_2$ とすると、$v_1$ から $v_2$ への角度が反時計回りの場合は正、時計回りなら負となります。これを向き付きの面積(符号付きの面積)と呼びます。向きは面の表裏のようなイメージです。

f:id:n7shi:20191126060117p:plain

面積に向きがあることから、積の順序を入れ替えると外積の符号は反転することも理解できます。積のうち外積の部分だけが反交換です。

\begin{aligned} (ak+bj)(ck+dj)&=(ac+bd)+(ad-bc)i \\ (ck+dj)(ak+bj)&=(ac+bd)\underbrace{\,-\,(ad-bc)i}_{符号反転} \end{aligned}

$i$ が表す量は2ベクトルと呼びます。外積は2ベクトルです。2は面積の単位 $\rm m ^ 2$ の2と同じような意味合いで、面に関係する量です。面積の他にも回転量が2ベクトルで表されますが、いずれ機会を改めて取り上げる予定です。

積の分離

内積を $⋅$(ドット)、外積を $∧$(ウェッジ)の演算子で表します。内積が交換して、外積が反交換であることを利用して次のように分離できます。

\begin{aligned} v_1\,⋅\,v_2&=\frac12(v_1v_2+v_2v_1) \\ v_1∧v_2&=\frac12(v_1v_2-v_2v_1) \end{aligned}

ただ、この定義通りに計算すると煩雑です。まず普通の積のつもりで計算してから、内積では虚部を捨てて、外積では実部を捨てれば良いです。

\begin{alignedat}{7} &(ak+bj)&&&&(ck+dj)&&=ac+adi-bci+bd&&=&(&ac+bd)+&&(ad-bc)i \\ &(ak+bj)&&\,⋅&&(ck+dj)&&=ac+\cancel{adi}-\cancel{bci}+bd&&=&&ac+bd&& \\ &(ak+bj)&&∧&&(ck+dj)&&=\cancel{ac}+adi-bci+\cancel{bd}&&=&&&&(ad-bc)i \end{alignedat}

幾何代数

複素平面は2次元平面ですが、分解型四元数も2次元平面を扱います。増えた基底は次元を増やすのではなく、スカラーや2ベクトルに割り当てます。

分解型四元数では積の計算方法が先にあって、得られた値に内積外積という解釈を与えているのが特徴です。幾何を代数で扱うということから幾何代数幾何学的代数)と呼ばれます。英語では Geometric algebra です。

代数幾何という数学の分野がありますが別物です。

3次元以上への拡張については、いずれ機会を改めて取り上げる予定です。