4
0

行列と混合テンソルと内積の関係

Last updated at Posted at 2023-12-21

0.はじめに

線形代数と物理を最近勉強しています。
物理でテンソルがでてきて、よくわからないと思っていろいろ考えています。
内積との関係性を考えると結構分解して行列を考えられて面白いなと思ったので書いてみました。
ぴったりな参考書を見つけられておらず、たまたま整合する妄想もあるかもしれません。

1.2階のテンソルと行列

ベクトルを基底の線形結合であらわす

テンソルを考える前にベクトルがその基底の線形結合で表されることを確認しておきます。
基底は標準基底、$\displaystyle v_{1} =\begin{bmatrix}
1\
0
\end{bmatrix}$, $\displaystyle v_{2} =\begin{bmatrix}
0\
1
\end{bmatrix}$ として、

\begin{equation*}
\begin{bmatrix}
a\\
b
\end{bmatrix} =a\begin{bmatrix}
1\\
0
\end{bmatrix} +b\begin{bmatrix}
0\\
1
\end{bmatrix}
\end{equation*}

と表せます。

テンソル積の計算

次にテンソル積を確認します。
2つのベクトル $\displaystyle v=\begin{bmatrix}
a\
b
\end{bmatrix} ,f=\begin{bmatrix}
x\
y
\end{bmatrix}$があり、その基底をそれぞれ、$\displaystyle v_{1} ,v_{2} \ $と$\displaystyle f_{1} ,f_{2}$とすると、

\begin{equation*}
v\otimes f=ax( v_{1} \otimes f_{1}) +bx( v_{2} \otimes f_{1}) +ay( v_{1} \otimes f_{2}) +by( v_{2} \otimes f_{2})
\end{equation*}

となります。

テンソル積を行列を基底とする線形結合で表す

$\displaystyle v,f$それぞれの基底を
$\displaystyle v_{1} =\begin{bmatrix}
1\
0
\end{bmatrix}$, $\displaystyle v_{2} =\begin{bmatrix}
0\
1
\end{bmatrix}$ ,$\displaystyle \ f_{1} =\begin{bmatrix}
1\
0
\end{bmatrix}$, $\displaystyle \ f_{1} =\begin{bmatrix}
0\
1
\end{bmatrix}$ とすると、

\begin{equation*}
v\otimes f=ax( v_{1} \otimes f_{1}) +bx( v_{2} \otimes f_{1}) +ay( v_{1} \otimes f_{2}) +by( v_{2} \otimes f_{2})
\end{equation*}

は$\displaystyle v_{1},v_{2}$を縦に$\displaystyle f_{1},f_{2}$を横軸に取って表現すると

\begin{gather*}
v_{1} \otimes f_{1} =\begin{bmatrix}
1\\
0
\end{bmatrix} \otimes \begin{bmatrix}
1\\
0
\end{bmatrix} =\begin{bmatrix}
1 & 0\\
0 & 0
\end{bmatrix}\\
v_{2} \otimes f_{1} =\begin{bmatrix}
0\\
1
\end{bmatrix} \otimes \begin{bmatrix}
1\\
0
\end{bmatrix} =\begin{bmatrix}
0 & 0\\
1 & 0
\end{bmatrix}\\
v_{1} \otimes f_{2} =\begin{bmatrix}
1\\
0
\end{bmatrix} \otimes \begin{bmatrix}
0\\
1
\end{bmatrix} =\begin{bmatrix}
0 & 1\\
0 & 0
\end{bmatrix}\\
v_{2} \otimes f_{2} =\begin{bmatrix}
0\\
1
\end{bmatrix} \otimes \begin{bmatrix}
0\\
1
\end{bmatrix} =\begin{bmatrix}
0 & 0\\
0 & 1
\end{bmatrix}
\end{gather*}

と書けます。

\begin{equation*}
v\otimes f=ax\begin{bmatrix}
1 & 0\\
0 & 0
\end{bmatrix} +bx\begin{bmatrix}
0 & 0\\
1 & 0
\end{bmatrix} +ay\begin{bmatrix}
0 & 1\\
0 & 0
\end{bmatrix} +by\begin{bmatrix}
0 & 0\\
0 & 1
\end{bmatrix}
\end{equation*}
\begin{equation*}
=\begin{bmatrix}
ax & ay\\
bx & by
\end{bmatrix}
\end{equation*}

として行列を構成できます。

テンソル代数で表すと行列で書けないテンソルがかけて便利

逆に考えると行列をテンソル代数的に書くことも可能です。

\begin{equation*}
\begin{bmatrix}
1 & 3\\
2 & 4
\end{bmatrix} =1( v_{1} \otimes f_{1}) +2( v_{2} \otimes f_{1}) +3( v_{1} \otimes f_{2}) +4( v_{2} \otimes f_{2})
\end{equation*}

行列のような表現で、3階4階のテンソルを書くのは難しいですが、代数的に書けば(長くて読みずらいけど)少なくとも表現で混乱することはなくなります。

一般の行列はベクトルとその双対ベクトルとの混合テンソル

上では触れませんでしたが、一般の行列は、単なるテンソルでなくベクトルとその双対空間のベクトルを基底に持った混合テンソルです。

あるベクトル空間の基底とその双対空間の基底とは以下の関係性を持ちます。

\begin{equation*}
v_{i} \cdot f_{j} =\delta _{i}{}_{j}
\end{equation*}

要は添え字が同じときだけ1となります。また、双対空間のベクトルは区別して上付きの添え字を使うことが多いです。
例えば以下のような感じです。

\begin{equation*}
\begin{bmatrix}
1 & 3\\
2 & 4
\end{bmatrix} =1\left( v_{1} \otimes f^{1}\right) +2\left( v_{2} \otimes f^{1}\right) +3\left( v_{1} \otimes f^{2}\right) +4\left( v_{2} \otimes f^{2}\right)
\end{equation*}

2.内積とテンソル積

内積の計算

いまさらですが、ベクトルの内積を確認すると、

\begin{equation*}
\begin{bmatrix}
a\\
b
\end{bmatrix} \cdot \begin{bmatrix}
x\\
y
\end{bmatrix} =ax+by\ \ 
\end{equation*}

です。

テンソル積とテンソルの縮約

一方テンソル積は

\begin{equation*}
v\otimes f=ax\left( v_{1} \otimes f^{1}\right) +bx\left( v_{2} \otimes f^{1}\right) +ay\left( v_{1} \otimes f^{2}\right) +by\left( v_{2} \otimes f^{2}\right)
\end{equation*}

となります。
テンソルには縮約という操作があり、「同じ添え字の上付きと下付きを合体させて消しちゃう。違う添え字は無かったことにしちゃう」ということをします。初めて見たときは「なんて乱暴な操作なんだろう??」と思いました。

\begin{equation*}
v\otimes f=ax\left( v_{1} \otimes f^{1}\right) +bx\left( v_{2} \otimes f^{1}\right) +ay\left( v_{1} \otimes f^{2}\right) +by\left( v_{2} \otimes f^{2}\right)
\end{equation*}

の縮約は

\begin{equation*}
v\otimes f\ の縮約\ \rightarrow \ ax+by
\end{equation*}

です。

縮約とトレース

さきほど、

\displaystyle v\otimes f= \begin{bmatrix}
ax & ay\\
bx & by
\end{bmatrix} 

としました。この行列をながめてみると、縮約を取るということと

\displaystyle \begin{bmatrix}
ax & ay\\
bx & by
\end{bmatrix}

のトレースをとる事が同じことであることがわかります。
なんだか乱暴に思えた縮約ですが、むかしからなじみのあるトレースと同一視すると、なんだかなじみ深い気がしてきます。

さらに内積との関係

$\displaystyle v\otimes f$ は $\displaystyle v=\begin{bmatrix}
a\
b
\end{bmatrix} ,f=\begin{bmatrix}
x\
y
\end{bmatrix}$と定義したのでした。
この内積は、

\begin{equation*}
\begin{bmatrix}
a\\
b
\end{bmatrix} \cdot \begin{bmatrix}
x\\
y
\end{bmatrix} =ax+by\ \ 
\end{equation*}

ですので、興味深いことにトレースと同じになります。
まとめると

・$\displaystyle v,f$のテンソル積を取って縮約すること
・$\displaystyle v,f$のテンソル積で作った行列のトレース
・$\displaystyle v,f$の内積

は全て同じ結果になります。ちょっとトリッキーな捉え方ですが、「テンソル積は内積を取る操作を途中まで実施した状態」とみなすこともできます。

ちなみに、テンソル積の縮約を「テンソル基底の内積を取る操作」と考えると、

\begin{equation*}
v\otimes f=ax\left( v_{1} \otimes f^{1}\right) +bx\left( v_{2} \otimes f^{1}\right) +ay\left( v_{1} \otimes f^{2}\right) +by\left( v_{2} \otimes f^{2}\right)
\end{equation*}

を縮約することは、

\begin{gather*}
v\otimes fの縮約 \rightarrow ax\left( v_{1} \cdot f^{1}\right) +bx\left( v_{2} \cdot f^{1}\right) +ay\left( v_{1} \cdot f^{2}\right) +by\left( v_{2} \cdot f^{2}\right)\\
=ax( 1) +bx( 0) +ay( 0) +by( 1)\\
=ax+by
\end{gather*}

となります。こうとらえたほうが、「なんで、同じ添え字の物だけ残すわけ?」「何で斜めに和を取るとトレースなわけ?」みたいな無理やり感を感じる疑問が出ないので良い感じだと考えています。

テンソルを考えると、行列をすこし分解して考えられて面白いです。
(ただベクトル同士の内積を考えていますが、行列同士の内積、などの定義とは単純には整合しません)

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0