ベクトルの割り算fin 〜ベクトルの完全な積〜
少し重要なことをやっていて更新が遅れていたが、先にこちらの方を書いておくべきだということが分かったのでこちらを優先して投稿する。
第一回で、私は『ベクトル単純積』という、割り算が可能なベクトルの積演算を提案した。それは以下のような、2つのベクトルから1つのベクトルを作る演算だ。
(a1,a2)(b1,b2)=(a1b1, a2b2)
(余談だが、第一回の記事ではこの演算にひらがなの『かける』を演算子として置いていた。しかし、隣接する分野の演算から類推すると、この演算は『演算子を省略する』というのが一貫性があるようだ)
第二回で、割り算できる外積にあたる『ベクトル単純外積』を提案した。これは以下のような、2つのベクトルから3つのベクトルを作る演算だ。
(a1, a2, a3)カケル(b1, b2, b3)=
(a1b2, a2b1, 0)
(0, a2b3, a3b2)
(a1b3, 0, a3b1)
さて、この2つを並べて見ると、もう一つ効率のよい掛け算があるのではないかと思われる。
それは、単純積と単純外積を組み合わせた計算だ。
つまり、以下のような計算になる。
ベクトル(a1,a2,a3)と(b1,b2,b3)をお互いの全ての成分についてかけて、9成分の値を作る。すなわち
(a1,a2,a3)⚪︎(b1,b2,b3)=
a1b1, a1b2, a1b3
a2b1, a2b2, a2b3
a3b1, a3b2, a3b3
だ
⚪︎は、仮に置いた演算子である。……である?
さて、この結果の各成分を見ていこう。
正方形のような形になっているが、左から右の対角線には添字が一致している成分が並んでいる。これは、単純積の成分である。ここから三次元のベクトル
(a1b1,a2b2,a3b3)
を作れば、それは単純積と一致する。そしてその成分の和
a1b1+a2b2+a3b3
は内積と一致する。
次に、それ以外の成分は単純外積と一致する。対角線を挟んで対称な位置にある成分でベクトルを作ると、例えば
(a1b2, b2a1, 0)
となり、単純外積のベクトルである。これを『エディントンのイプシロン』という記号を使って計算すると
(0, 0, a1b2-a2b1)
という擬ベクトルになって、これは外積と一致する。
さて、第一回、第二回と、私は自分で提案した演算に自分で名前を付けていたが、今回の⚪︎で表した演算には既に名前が存在する。
名前を『直積』という。
この計算にはいくつかの名前があって、人名から『デカルト積』、『クロネッカー積』、計算結果がテンソルとなることから『テンソル積』とも呼ぶ。紛らわしいことに、実は『外積(outer product)』と呼ぶこともある。以下では『直積』の呼称で統一する。
直積の演算子は、呼称と同様にいくつかあるが、以下の記号を使うことが一般的だ。
⊗
このような⚪︎の内側にバツの入った記号である。が、変換で出すことも難しいし、⚪︎で代用されることもある。(Wikipediaの『クロス積』の項目ではそのような記法があった)
さてつまり、この3回に渡るベクトル計算に関するnoteで私が主張したいのは、以下のことである。
『ベクトルにおける積演算とは、内積と外積ではない。単純積と直積である。これらには除算が存在する』
とくに、直積にはベクトルの単純積と、単純外積、内積・外積の全ての情報が含まれているため、直積こそがベクトルの『完全な積』ということができるだろう。
では、直積の除算について説明しよう。
その前に、(1, 1, 1)との直積を考えておく。
(a1, a2, a3)⊗(1, 1, 1)=
a1, a1, a1
a2, a2, a2
a3, a3, a3
改めて、直積の除算を考える。といっても難しいことはなく、ベクトルの各成分で直積の各成分を割るだけだ。
a1b1, a1b2, a1b3
a2b1, a2b2, a2b3 ÷(b1, b2, b3)
a3b1, a3b2, a3b3
=
a1b1/b1, a1b2/b2, a1b3/b3
a2b1/b1, a2b2/b2, a2b3/b3
a3b1/b1, a3b2/b2, a3b3/b3
=
a1, a1, a1
a2, a2, a2
a3, a3, a3
ここで、
(a1,a2,a3)⊗ (b1,b2,b3)÷(b1, b2, b3)
の結果が
(a1, a2, a3)⊗(1, 1, 1)
と一致した。
第一回のベクトル単純積の議論で、(1, 1, 1)がベクトルの積演算の単位元であることを示した。
外積においても同様だと考えると、
a1, a1, a1
a2, a2, a2 = (a1, a2, a3)
a3, a3, a3
と考えることができ、
a1b1, a1b2, a1b3
a2b1, a2b2, a2b3 ÷(b1, b2, b3)
a3b1, a3b2, a3b3
=(a1, a2, a3)
という逆演算を計算することができた。
(右左についてはもう少し整理する必要がある)
さて、ここまでで直積がベクトルの積の情報を全て含むことと、直積には除算が定義できることを示したが、ほんとうに直積はベクトルの積としての性質を満たしているだろうか?
例えば、直積を繰り返し計算した場合でも変わらずベクトルの積としての性質を満たすだろうか?
ここで、ベクトルの外積(クロス積)には『ベクトル三重積』という、よく知られた関係がある。直積の場合でもそれは成立するだろうか?
ベクトル三重積は以下のように表される。
a×(b×c)=(a・c)b-(a・b)c
では、直積三重積について考えてみよう。
a⊗(b⊗c)
これは、3×3×3の、27成分のテンソルになる。ちょうどルービックキューブのような立方体を想像していただきたい。
ほんとうは各成分書き下して考えたいところだが、いささか煩雑がすぎるので省略して書く。
まず、外積には関係のない成分を書く。それは
axb1c1のような、bとcに共通の添字が含まれている成分だ。立方体で考えると、a1b1c1の頂点を含んで、側面の正方形の対角線で立方体を半分に切る面のことだ。
この成分は、bとcの単純積ベクトルbcと、aとの直積
a⊗bc
を表している。この成分は9個ある。
次に、外積が関係する成分だ。
これは
a1b1cx または a1bxc1
のように、aとb、もしくはaとcの添字が同じで、残りの添字が異なっているようなものだ。
一例を挙げて計算すると
a2b1c2-a2b2c1-a3b3c1+a3b1c3
のようになっており、ベクトル三重積の性質を満たしている。各次元に4成分を使うので、12成分がこれになる。
さて、直積三重積a⊗(b⊗c)は、
9成分が a⊗bc であり、
12成分が a×(b×c)
であった。
直積三重積は3×3×3の27成分からなるテンソルだ。では、残りの6成分はなんだろうか?
残りの6成分は以下のような成分である。
a1b2c3
のように、全ての添字が異なっている成分だ。
ここでもう一度、エディントンのイプシロンを使って、それらの成分をたし合わせると次のようになる。
-a1b2c3-a2b3c1-a3b1c2+a1b3c2+a3b2c1+a2b1c3
この計算は、実は知られている。三項演算によって、6項のたし合わせの1成分を得る計算。
3つのベクトルの積によって、それらのベクトル全てと直交するベクトルの大きさを得る計算。
つまり、『4次元のベクトル空間における外積』だ。
外積計算を[]で表記すると[a,b,c]になる。
つまり、直積三重積a⊗(b⊗c)は、
単純積ベクトルとの直積 a⊗bc 9成分
ベクトル三重積 a×(b×c)12成分
4次元の外積 [a,b,c]6成分
からなるテンソルである。
(一部の符号は間違っているかもしれない)
以上のように、直積は3回繰り返して計算した場合でも、それまでのベクトルの積演算の法則を満たし、その上で4次元の外積の情報まで含まれることが分かった。
議論は以上となる。『ベクトルの積演算』というものの定義について、ここまでの内容で示したような若干の変更が必要なのではないかと私は提起したい。
これらの考察の結果、私は驚くような果実を得たが、それはまた別の話。
ただ一つ言えることは、
『物理学と数学は結婚している』
というあの言葉は本当なんだなぁ、と、私は感じたということだ。