ベクトルの共変成分と反変成分

　ディープラーニングなどのAIの基礎をなす線形代数・ベクトル解析の、これまた基礎の基礎である、2次元ベクトル空間の共変成分と反変成分の定義とその意味についてまとめておきます。詳細な証明は示さず定義と事実（意味）だけのまとめです。


　※ここでの議論は[「テンソルの定義」](https://qiita.com/sand/items/642ebc647cc5180ac5a9)でもう少し一般化されます。

#１．共変成分と反変成分
　2次元の斜交座標X-Yで、以下のような基底ベクトルを考えます


```math
e_1 , e_2
\tag{1}
```

　任意のベクトルAを以下のように表します。

```math
A=A^1e_1+A^2e_2
\tag{2}
```

　この時、以下のようなAの成分を**反変成分**と呼びます。これはAベクトルをそれぞれY軸とX軸に**平行**な光で照らしたときの、X軸とY軸への正射影の長さに等しいです。

```math
\begin{pmatrix}
A^1 \\
A^2
\end{pmatrix}
\tag{3}
```

　また次のように定義します。

```math
A_1\equiv A・e_1
\qquad
A_2\equiv A・e_2
\tag{4}
```


　この時、以下のような成分を**共変成分**と呼びます。定義から明らかなように規定ベクトルeが単位ベクトルの場合は、共変成分はそれぞれの規定ベクトルへの垂直な正射影となります。


```math
\begin{pmatrix}
A_1 \\
A_2
\end{pmatrix}
\tag{5}
```

　以上で共変成分と反変成分の定義は終わりました。反変成分は(1)の基底ベクトルでのAベクトルの成分を表しています。しかしこの段階で共変成分についてはベクトルAとの関わりは不明です。


#２．基底ベクトル変換

　共変成分と反変成分の意味は、**基底ベクトル変換**と**ベクトル座標系変換時の成分変換**の関わりの文脈の中で明らかにすることができます。


　基底ベクトル変換を考えます。2次元の斜交座標を2つ考えます。X-Y座標系とX'-Y'座標系で、それぞれの基底ベクトルを以下のようにします。

```math
e_1 , e_2
\qquad
e'_1 ,
e'_2
\tag{6}
```

この時、基底ベクトルの変換行列（直接変換行列）をCとすると以下のように書けます。


```math
\begin{pmatrix}
e_1 \\
e_2
\end{pmatrix}
=C
\begin{pmatrix}
e'_1 \\
e'_2
\end{pmatrix}
\tag{7}
```

　(2)と同じように、任意のベクトルAを以下のように表します。

```math
\begin{align}
&A=A^1e_1+A^2e_2
\qquad
A=A'^1e'_1+A'^2e'_2\\
&i.e.\\
&A^1 , A^2 : X-Y座標系でのベクトルAの成分\\
&A'^1 , A'^2 : X'-Y'座標系でのベクトルAの成分
\end{align}
\tag{8}
```

　この時、2つの座標系の成分に関して以下のように書けることがわかります。（証明略）

```math
\begin{pmatrix}
A'^1 \\
A'^2
\end{pmatrix}
=C^t
\begin{pmatrix}
A^1 \\
A^2
\end{pmatrix}
\tag{9}
```

　これは(7)と比べれば、行列Cが転置してプライム（’）の位置も逆になっています。このように基底eとe'の範囲で考える限りにおいては、基底変換とベクトルの成分変換の関係はあいまいです。


#３．双対基底ベクトル

　(6)の2つの基底に対する、**双対基底を以下のように定義します**。つまり双対基底ベクトルのX軸とY軸は、元の基底ベクトルのY軸とX軸に直交するようにとります。

```math
\begin{align}
&双対基底
\quad
e^1 , e^2
\quad
e'^1 , e'^2
\quad
を以下のように定義する。\\
&e^i・e_j=\delta^i_j
\qquad
e'^i・e'_j=\delta^i_j

\end{align}
\tag{10}
```

　この定義をかみ砕くと以下のように書けます。

```math
\begin{align}
&e_1・e^1=1
\qquad
e_1・e^2=0\\
&e_2・e^1=0
\qquad
e_2・e^2=1\\
\\
&i.e.\\
&\cos\theta=\frac{1}{|e_1||e^1|}　
\end{align}
\tag{10-1}
```


　この定義により、もとの座標系の垂直な正射影を、新しい双対基底の座標系では平行な正射影と見ることができます。また双対基底のサイズも(12)の等式が成立するように決められています。

　また上で述べたように、共変ベクトルを以下のように定義します。

```math
A_1\equiv A・e_1
\qquad
A_2\equiv A・e_2\\
A'_1\equiv A・e'_1
\qquad
A'_2\equiv A・e'_2
\tag{11}
```



　この時以下が成り立ちます。これは双対基底の定義と簡単なベクトル計算から代数的に導かれます。証明は「４－１．双対基底ベクトルの図形的な意味」を参照してください。

```math
A=A_1e^1+A_2e^2
\qquad
A=A'_1e'^1+A'_2e'^2
\tag{12}
```

　さらに以下が成り立ちます。（証明略）

```math
\begin{pmatrix}
A_1 \\
A_2
\end{pmatrix}
=C
\begin{pmatrix}
A'_1 \\
A'_2
\end{pmatrix}
\tag{13}
```

　式(7)と式(13)の相似性に注目してください。このように双対基底を考えることによって、**基底ベクトル変換**＝**ベクトル座標系変換時の成分変換(@双対基底)**のような関係がわかりました。それに比べて式(9)は捻れています。このような事実から式(3)のベクトル成分は**反変成分**、式(5)のベクトル成分は**共変成分**と呼ばれているようです。

　また同じAベクトルでも式(8)のように反変成分に注目しているときは**反変ベクトル**と呼ばれ、式(12)のように共変成分に注目しているときは**共変ベクトル**と呼ばれるようです。


#４．補足説明

##４－１．双対基底ベクトルの図形的な意味
　もともとの座標系X-Y（基底e）での任意のベクトルAを以下のように図示します。**基底eのそれぞれを単位ベクトルとすると以下の図のようになります。**この時、双対基底の座標系X2-Y2（基底ｆ）は以下の点線のようになります。XとY2が直行し、YとX2が直行しています。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61915/70e32d4b-a3a4-2b6d-ff5f-507284d2d6a2.png)

　ここでのトリックはベクトルAのX軸への垂直な正射影を、Y2に平行なX2への正射影として見ることです。赤線に注目します。赤線を２辺とし、ベクトルAを対角線とする平行四辺形を考える、赤線とX2座標の交点B1はA1に等しいことを示します。


```math
\begin{align}
&\frac{A_1|e_1|}{B_1|e^1|}=\cos\theta=\frac{1}{|e_1||e^1|}　（∵\quad 10-1）\\
&∴\quad B_1=A_1　（∵\quad |e_1|^2=1\quad 単位ベクトル）\\
\end{align}
\tag{12-1}
```

　X-Y系とX2-Y2系では基底eと基底fのサイズが違うので、成分が同じでも長さが異なることに注意してください。


　さて図形を離れて（基底eのそれぞれを単位ベクトルとする仮定を置かずに）、代数的に以下の式が成り立つことを証明します。

```math
A=A_1e^1+A_2e^2
\tag{12-2}
```

　(12-1)の証明は以下の通り。この段階でベクトルAと共変成分(5)の関係が明らかでないので、とりあえず以下のようにベクトルBを定義する事から始めて、B=Aであることを証明します。

```math
\begin{align}
&B=A_1e^1+A_2e^2　・・・(a)　　とする。e_1を右からかける。\\
&B・e_1=A_1e^1・e_1+A_2e^2・e_1=A_1　（∵\quad e^i・e_j=\delta^i_j）\\
&∴\quad B・e_1=A・e_1　（∵\quad A_1\equiv A・e_1）\\
&∴\quad (B-A)・e_1=0　・・・(b)\\
&同様にして(a)にe_2を右からかける。\\
&B・e_2=A_1e^1・e_2+A_2e^2・e_2=A_2　（∵\quad e^i・e_j=\delta^i_j）\\
&∴\quad B・e_2=A・e_2　（∵\quad A_2\equiv A・e_2）\\
&∴\quad (B-A)・e_2=0　・・・(c)\\
&(b)と(c)から、２つの基底ベクトルとの内積がゼロだから、\\
&ベクトルとしてB-A=0で、B=Aが成り立つ。
\end{align}
\tag{12-3}
```