Projective Geometric Algenbra Illuminated Chapter2
#ProjectiveGeometricAlgebraIlluminated #数学
2.1 Wedge Product
ウェッジ積とはベクトルに対して次のように定義される積である。外積と呼ばれるベクトルへの演算の一つ(というか外積はいっぱいある気がする)。
(1) $ v \wedge v = 0
(2) $ v \wedge w = - w \wedge v
(3) $ (a + b) \wedge c = a \wedge b + a \wedge c (分配法則)
(4) $ a \wedge (b + c) = a \wedge c + b \wedge c (分配法則)
(5) $ (sa) \wedge b = s(a \wedge b) (s is scalar)
(6) $ s \wedge t = t \wedge s = st (s,t are scalar)
(7) $ s \wedge a = a \wedge s = sa (s is scalar)
- Bivector
ウェッジ積によって作られる$ v \wedge wはベクトルではなく、Bivectorと呼ばれるものとなる。
3次元ベクトル$ a,bに対してウェッジ積をすると
$ a \wedge b = a_x b_y (e_1\wedge e_2) + b_y a_x (e_2 \wedge e_1) + a_x b_z(e_1 \wedge e_3) + a_z b_x (e_3 \wedge e_1) + a_z b_x (e_3 \wedge e_1) + b_x a_z (e_1 \wedge e_3)
$ = (a_y b_z - a_z b_y)(e_2 \wedge e_3) + (a_z b_x - a_x b_z)(e_3 \wedge e_1) + (a_x b_y - a_y b_x)(e_1 \wedge e_2)
各要素はクロス積のやつと一致する(これはまあそういう定義なので)
- Trivector
Bibvectorにさらにベクトルをウェッジ積したもの
3次元ベクトル$ a,b,cについては
$ a \wedge b \wedge c = (a_x b_y c_z + a_y b_z c_x + a_z b_x c_y - a_y b_x c_z - a_z b_y c_x) (e_1 \wedge e_2 \wedge e_3)
- k-vector
上のやつを一般化して、ベクトルをk回ウェッジ積を取ったものをk-Vectorと呼ぶ。また、このkをGradeと呼ぶ。
- 基底の取り方
k-vectorの取り方は元のベクトル空間の次元に依存する。n次元ベクトル空間ではk-Vectorの数はでは同じ基底を取らないようにk個のベクターを取る組み合わせに相当するので$ C^n_kと表される。
3次元ベクトル空間であれば、スカラー1、ベクトル3、Bivector3、Trivector1
4次元ベクトル空間であれば、スカラー1、ベクトル4、Bivector6, TriVector4, Quadrivector1
- Antiscalar
最も高いGradeのk-Vectorは必ず1つだけになる。このため、スカラーと対照的になるため、これをAntiscalar $ \mathbb{I}と呼ぶ。(本では黒板文字の1だけどここではかけないので$ \mathbb{I}と表記)
3次元なら$ e_{123}
4次元なら$ e_{1234}
に相当する。
- Multivector
ベクトル空間で定義されるそれぞれのグレードが合わさったものをMultivectorと呼ぶ。3次元ベクトル空間なら
$ s1 + v_x e_1 + v_y e_2 + v_z e_3 + b_x e_{23} + b_y e_{31} + b_z e_{12} + t \mathbb{I}
という風に書くことができる
- Grade, Antigrade
Element $ uに対して(これは1つのgradeのvectorしか存在しない)、そのグレードを$ gr(u)と表記する。また、一方でn次元においてnからグレードを引いた値をAntigrade$ ag(u)と呼ぶ。
$ gr(u) + ag(u) = n
Gradeの公式 Element $ a,bに対して、
$ gr(a\wedge b) = gr(a) + gr(b)
$ a \wedge b = (-1)^{gr(a) gr(b)} b \wedge a
2.2 補数 Complements
補数とは加算すると基準となる数になる数、外積代数ではAntiScalarになるように補数を考える。ただし、ウェッジ積は交換できないので次のように2つの補数を考える
- Righ Complement
$ u \wedge \bar{u} = \mathbb{I}
- Left Complement
$ \underline{u} \wedge u = \mathbb{I}
例えば$ e_{1}に対するRight Complement $ \bar{e_{1}}は$ e_{423}である。Left Complementは$ \underline{e_1}は$ -e_{423}である。
Right Leftはそこまで違うものではなく、全部ひっくり返せばRightからLeft,逆も簡単に作れる。そこで違うのは符号でだけ、ひっくり返す回数で符号が正か負か変わる。
$ \underline{u} = (-1)^{\mathrm{gr}(u) \mathrm{ag(u)}} \bar{u}
$ uに含まれる基底1つあたり$ \bar{u}のgradeつまり$ \mathrm{ag}(u)だけひっくり返す必要がある。それが$ uの基底数、つまり$ \mathrm{gr}、合計$ \mathrm{gr}(u) \mathrm{ag}(u)回の交換を行う必要がある。その偶奇で符号が決定される
Righ ComplementのLeft Complementは元に戻る、逆もしかり
$ \bar{\underline{u}} = u
定義を見れば$ uは$ \bar{u}から見ればLeft Complementということがわかる。
また、同じ方向2回取ったComplementは次のようになる。これは単純に$ u \wedge \bar{u}のウェッジ積をひっくり返したらそのまま出てくる
$ \bar{\bar{u}} = \underline{\underline{u}} = (-1)^{\mathrm{gr}(u) \mathrm{ag(u)}} u
Basis Element $ a,bに対しては補数は次のように作用する。$ sはスカラー(以下同様)
$ \bar{sa} = s \bar{a}
$ \overline{a +b } = \overline{a} + \overline{b}
例えばベクトル$ v = x_1 e_1 + x_2 e_2 + x_3 e_3 + x_4 e_4に対する右補数$ \overline{u}は
$ \overline{u} = x_1 e_{423} + x_2 e_{431} + x_3 e_{412} + x_4 e_{321}
となる。
Vector $ e_1,e_2,...に対して$ \overline{e_1},\overline{e_2},...をAntivectorと呼ぶ
2.3章 Antiproducts
ウェッジ積に対して対照的な演算 Antiwedge積$ \veeを定義する。
$ a \vee b = \underline{\overline{a} \wedge \overline{b}}
一つ一つ見ていく
$ \bar{a}は$ aに対して補集合的(?)な空間を表す、$ \bar{b}も同様
$ \bar{a} \wedge \bar{b}は$ a,bの補集合(?)を合わせるような演算である。
それをLeft Productで戻すとより小さいグレードのElementというのが得られる。
共通している基底を取り出すというような操作に相当する(?) →つまり積集合を取るのと同様
というか、ドモルガン的な法則が成り立つので、補集合という感じで考えた方がわかりやすい気がする。
$ \overline{a \vee b} = \overline{a} \wedge \overline{b}
$ \underline{a \vee b} = \underline{a} \wedge \underline{b}
PGAI (2.26)証明
$ \overline{a \wedge b} = \overline{a} \vee \overline{b}
$ \underline{a \wedge b} = \underline{a} \vee \underline{b}
Antiwedgeは空次元(Empty Dimension)の和を行うオペレーター、そのためアンチスカラーと任意の$ uに対してAntiwedgeしたとしても変わることはない。アンチスカラーは単位として働く
$ \mathbb{I} \vee u = u \vee \mathbb{I} = u
また、一方でスカラーは全ての基底をantiwedgeしたときに現れる。
$ 1 = \overline{e_1} \vee\overline{e_2} \vee\overline{e_3} \vee\overline{e_4}
Antiwedgeでは各ベクトルの役割が反転する。
Antiwedgeではアンチグレードが加算される。
$ \mathrm{ag}(a \vee b) = \mathrm{ag}(a) + \mathrm{ag}(b)
したがって、Gradeは以下のようになる
$ \mathrm{gr}(a \vee b) = \mathrm{gr}(a) + \mathrm{gr}(b) - n
0以下になりえるがその時はアンチウェッジが0になることを示している。
また、交換性についてはウェッジ積と同様になる。antivector $ a,bについては
$ a \vee b = - b \vee a
任意のmultivector$ v,wに対しては
$ v \vee w = (-1)^{\mathrm{ag}(v) \mathrm{ag}(w)} w \vee v
2.4 FlatGeometry
Point
4次元同次座標系を考えた時、ある点$ (p_x, p_y, p_z, p_w)($ p_wはウェイトとする)を次のように表記する
$ p = p_x e_1 + p_y e_2 + p_z e_3 + p_w e_4
Line
点$ p,qのウェッジ積を取ると
$ \begin{aligned} p \wedge q = (q_x p_w - p_x q_w) e_{41} + (q_y p_w - p_y q_w) e_{42} + (q_z p_w - q_w p_z) e_{43} \\ + (p_y q_z - p_z q_y)e_{23} + (p_z q_x - p_x q_z)e_{31} + (p_x q_y - p_y q_x) e_{12} \end{aligned}
この時、ユークリッド空間に射影する$ p_w = q_w = 1ことを考えると
$ \begin{aligned} p \wedge q &= (q_x - p_x) e_{41} + (q_y - p_y) e_{42} + (q_z - q_w) e_{43} \\ &+ (p_y q_z - p_z q_y)e_{23} + (p_z q_x - p_x q_z)e_{31} + (p_x q_y - p_y q_x) e_{12} \end{aligned}
この座標を見ると$ e_{4}の部分はDirectionの座標、$ e_4がない部分はMomentの座標を示していることがわかる。つまりこれはPlucker座標を表している。
Plucker座標系
$ p \wedge q = l_{vx} e_{41} + l_{vy} e_{42} + l_{vz} e_{43} + l_{mx} e_{23} + l_{my} e_{31} + l_{mz} e_{12}
つまりPointの同士のWedge積はそれを通る直線として得ることができる。
いいわね
Plane
LineのMultivectorとPointをウェッジ積するとどうなる? ウェイトはすべて1(ユークリッド空間に射影)して考えると
$ l \wedge p = (l_{vy} p_z - l_{vz} p_y + l_{mx}) \overline{e_1} + (l_{vz} p_x - l_{vx} p_z + l_{my}) \overline{e_2} + (l_{vx} p_y - l_{vy} p_x + l_{mz}) \overline{e_3} - (l_{mx} p_x + l_{mx} p_y + l_{mz} p_z) \overline{e_4}
$ \overline{e_1},\overline{e_2},\overline{e_3}の項の成分は法線の成分と一致している。一方で、$ \overline{e_4}の成分は平面のOffsetに相当することわかる。
PGAI (2.39)証明
したがって、この結果はLine$ lとPoint$ pを通る平面を意味する情報が入っていることがわかる。
Join、Meet
この流れを見るとMultivectorを使うと点、直線、平面といったジオメトリを表すことができ、各ウェッジ積でお互いを含む上の次元のジオメトリへと変換することができることがわかる。
ここで、Geometry $ a,bに対して、$ a,bを含むジオメトリを作る演算をJoinと呼ぶ。この演算はシンプルにウェッジ積として表すことができる。
$ \mathrm{join}(a,b) = a \wedge b
では逆にAntiWedge積$ \veeはGeometryに対してどのような作用があるか?$ \veeは次元を落として、積集合を取るような演算であることから、「Geometry同士が共有しているGeometryを抜き出す」演算であることが推測される。
この演算をMeetと呼び、AntiWedge積で次のように定義する
$ \mathrm{Meet}(a,b) = a \vee b
これは$ a,bが共有しているジオメトリを抜き出す処理となる。
実際、Planeを表すGeometry$ g,hを考えた時、そのMeetを取ると
$ \begin{aligned} \mathrm{Meet}(g,h) = (g_z h_y - g_y h_z) e_{41} + (g_x h_z - g_z h_x) e_{42} + (g_y h_x - g_x h_y) e_{43} \\ +(g_x h_w - g_w h_x) e_{23} + (g_y h_w - g_w h_y) e_{31} + (g_z h_w - g_w h_z) e_{12} \end{aligned}
という風になる。これは投影すれば、平面$ g,hが交わる直線を表すことになる。
平面同士が交わる直線の求め方
Plane$ gとLine $ lでも同様にやると、PlaneとLineの交点を表すジオメトリを求めることができる。
$ \begin{aligned} \mathrm{Meet}(g,l) = (l_{my} g_z - l_{mz} g_y + l_{vx} g_w) e_1 + (l_{mz} g_x - l_{mx} g_z + l_{vy} g_w) e_2 \\ +(l_{mx} g_y - l_{my} g_x + l_{vz} g_w) e_1 - (l_{vx} g_x + l_{vy} g_y + l_{vz} g_z) e_4 \end{aligned}
つまり、レイの衝突判定がMeetという演算によって表現することができる。
Duality
今まで述べてきた概念はDuality(双対性)がある。
スカラー⇔アンチスカラー
Vector ⇔ AntiVector
ウェッジ積⇔アンチウェッジ積
などなど、
あるオブジェクトに対して存在している空間と対称的に存在していない空間というのが考えられる。それぞれをSpace、AntiSpaceと呼ぶ。
Spaceの次元はGrade、AntiSpaceの次元はantigrade、その和は次元$ nに一致する。
続き
Projective Geometric Algenbra Illuminated Chapter2_7~