応力テンソルの存在の証明と、テンソル成分の具体的な構成

## はじめに
この記事の目的は、一般的に誤魔化されることの多い応力テンソルの導入部分を継ぎ目なく説明し、ある程度の納得感を持って応力テンソルを使えるようになることです。
特に、応力テンソルという得体の知れない概念の「感覚的な可能性・有用性」と「理論的な導出」の両面を意識しています。
理論面の正確さを保つために、数学（特にテンソル）の要求レベルは比較的高くなっています。
テンソルを学習するための参考書としては、

https://www.iwanami.co.jp/book/b265520.html

がおすすめです。
また、テンソルについてある程度学んだ読者にとっては、物理学でテンソルが使われる例として最適だと思います。
## 数学的準備
応力テンソルの具体的な表式を考える際に用いる関係式を導出するための準備です。
まず、物理におけるテンソルが何なのかについて簡潔に答えておくと、テンソルとはいくつかのベクトル分の情報を持つ量です。もう少し正確な表現をすると、「n階のテンソルとは、ベクトルn個分の情報を持つ物理量である。」となります。ただし、ここでのベクトルは、$(1,2,3)$のような単なる数字の組ではなく、実際に空間に存在する物理量のことです。
空間の位置ごとに決まる量というのは日常的に見てもたくさんあります。例えば、温度や風速などです。温度は数字一個で表せますが、風速には大きさ（風の強さ）と向きがあります。風向きを示すには、方向を指さすのが手っ取り早いですが、xyz座標を選ぶことで、全ての情報(つまり向きと大きさ)を3つの成分で表すこともできます。よって、風速はベクトル一個分の情報を持つわけです。また、$1=3^0$と考えれば、温度はベクトル0個分の情報を持っていると考えることもできます。このように、空間の各位置ごとに定まる量を「場」と呼びます。
ところで、線形代数を学んだ人であれば、「ベクトルといえば行列」と言ってもピンとくるでしょう。ベクトル(=1階のテンソル)で表せるような物理量があるなら、行列で表せるような物理量もあるのでは？と。これがテンソルを考える一つの理由づけになります。
ちなみに、行列で表せるような物理量=2階のテンソルにはどのような意味があるのでしょうか？2階のテンソルは間接的な存在で、人間が直接認識することは難しいです。行列が線形変換であるように、あるベクトルを指定した時に別のベクトルが返ってくるような場合に2階のテンソルが存在します。


## テンソルの積

ここでは、テンソル同士の基本的な演算について解説します。成分を用いた議論を行い、添え字による変換性、縮約による添え字の変化（共変性と反変性が一つずつ減る）については既知とします。

### テンソル積

まず、テンソル積について説明します。2つのテンソルに対して、テンソルの成分同士を単純に掛け合わせたもの

```math
A^{ij} B^{k}_{lm}
```

は、それぞれの共変と反変を足し合わせた変換性を持ちます。つまり、$m$階と$n$階のテンソルから$m+n$階のテンソルを作る演算が

```math
\mathbf{A} \otimes \mathbf{B} = \mathbf{C}, \quad A^{ij} B^{k}_{lm} = C^{ijk}_{lm}
```

のように定義できます。これをテンソル積の定義とします。

テンソル積は、基底で分解して考えることでさらに理解しやすくなります。例えば、ベクトル$\mathbf{a}$と$\mathbf{b}$について、それぞれを基底で表すと、

```math
\mathbf{a} = a^i \mathbf{e}_i, \quad \mathbf{b} = b^j \mathbf{g}_j
```

となります。これをテンソル積に適用すると、

```math
\mathbf{a} \otimes \mathbf{b} = (a^i \mathbf{e}_i) \otimes (b^j \mathbf{g}_j)
```

のように、\((\mathbf{e}_i \otimes \mathbf{g}_j)\)を基底とした線形結合で表すことができます。これにより、テンソル積は線形性と変換性を満たすことがわかります。

ベクトルのテンソル積を具体的に書くと、次のようになります。

```math
\begin{bmatrix}
a^1 b^1 & a^1 b^2 & a^1 b^3 \\
a^2 b^1 & a^2 b^2 & a^2 b^3 \\
a^3 b^1 & a^3 b^2 & a^3 b^3
\end{bmatrix} = \{a^i\} \{b^j\}^t
```

> $\\{a^i\\}$は、ここでは成分を縦に並べたベクトルのようなものです。

### 内積

次に、内積について説明します。ベクトルの内積は、次のように表されます。

```math
\mathbf{A} \cdot \mathbf{B} = a^i b_i = a^i b^j g_{ij}
```

ここで、$g_{ij}$は計量テンソルと呼ばれるもので、空間の幾何的性質を反映しています。この内積は、共変ベクトルと反変ベクトルのテンソル積の縮約と見ることもできます。

テンソルの内積は、テンソル積の縮約を取ったものと定義されます。例えば、

```math
\mathbf{A} \cdot \mathbf{B} = \mathbf{C}, \quad A^{ij} B^{k}_{il} = C^{jk}_{l}
```

のように定義されます。また、テンソル積と内積の関係を考えると、

```math
(\mathbf{a} \otimes \mathbf{b}) \cdot \mathbf{c} = (\mathbf{b} \cdot \mathbf{c}) \mathbf{a}
```

という関係式が得られます。これは、座標系に依存しない普遍的な関係式であり、3つのベクトルから2階のテンソルを取り出すことができます。

## 応力テンソル

### 導入

初歩的な材料力学では、物体内部に働く応力（力の分布）を考える際には、まずその物体を仮想的に切断します。このとき、切断した断面がどのように力を受けているかを調べて、断面に垂直に作用する力（垂直応力）や、断面に沿って平行に作用する力（せん断応力）を考えます。
よって、切断面の法線方向ベクトルを $\mathbf{n}$ とすると、$\mathbf{n}$ を指定すれば応力ベクトル $\mathbf{t}$ が定まるという変換関係があるといえます。

```math
\mathbf{t}=\mathbf{t}(\mathbf{n}) 
```

と表されます。ここで、$\mathbf{n}$ は閉曲面の外向きに取っています。
このとき、引張と圧縮を区別するために

```math
\mathbf{t}(-\mathbf{n}) = -\mathbf{t}(\mathbf{n})
```
> $\mathbf{n}$と$-\mathbf{n}$が作る断面は同じ断面だが、引張と圧縮は反転する

という関係が要請されます。

もし、法線ベクトルから応力ベクトルへの変換が具体的に定まれば、方向指定が必要な応力ベクトルよりも一般的かつ便利な量になります。
そして、この変換が線形変換であれば、ベクトルからベクトルへの変換を行う物理量、つまりテンソルであると言えるはずです。

> この時の応力テンソルは、法線方向における応力の参照元といえます。

### 存在の証明
![simentai.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494200/64512a24-802b-c992-2c2b-95531d4aad44.jpeg)

連続体という仮定から応力テンソルの存在を示します。

ある点の法線ベクトル $\mathbf{n}$ に垂直な断面に対し、$-\mathbf{i},-\mathbf{j},-\mathbf{k}$方向に張った四面体を考えます。ただし、$\mathbf{i},\mathbf{j},\mathbf{k}$は直交するように取ります。

連続体であるため、この閉曲面にかかる力は応力と体積力のみで、それらがつり合うので次のような式が成り立ちます。

```math
\mathbf{t}(\mathbf{n}) \delta S + \mathbf{t}(-\mathbf{i}) \delta S_i + \mathbf{t}(-\mathbf{j}) \delta S_j + \mathbf{t}(-\mathbf{k}) \delta S_k + \mathbf{K} \rho \delta V = \mathbf{0}
```

ここで、$\delta S$は断面積、$\delta V$は体積を表し、$\mathbf{K}$は体積力です。

連続体であるという仮定から、四面体の形を保ったまま$\delta S$を無限小にしても上式は成立します。$\delta V$ は $\delta S \cdot 0$ の極限で無視できるため、この項は考慮しなくてよいことになります。さらに、$\mathbf{t}(-\mathbf{n}) =-\mathbf{t}(\mathbf{n}) $という関係を用いると、次の式が得られます。

```math
\mathbf{t}(\mathbf{n}) \delta S = \mathbf{t}(\mathbf{i}) \delta S_i + \mathbf{t}(\mathbf{j}) \delta S_j + \mathbf{t}(\mathbf{k}) \delta S_k
```
![seisyaei.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494200/f3cd02b6-6b0d-8c56-f8bf-0c58c15cbc6e.jpeg)

次に、$\delta S$と$\delta S_i$の関係を考えます。$\delta S_i$ は $\delta S$ を射影した面積なので、

```math
\delta S_i = (\mathbf{n} \cdot \mathbf{i}) \delta S
```

となります。ゆえに、

```math
\mathbf{t}(\mathbf{n}) = (\mathbf{n} \cdot \mathbf{i})\, \mathbf{t}(\mathbf{i})+ (\mathbf{n} \cdot \mathbf{j})\, \mathbf{t}(\mathbf{j}) + (\mathbf{n} \cdot \mathbf{k})\, \mathbf{t}(\mathbf{k})
```

となり、$\mathbf{t}(\mathbf{n})$は$\mathbf{n}$に対して線形性を持つことがわかります。さらに、先ほどのテンソルの内積を用いることで、テンソル性を明示することができます。

```math
\mathbf{t}(\mathbf{n}) = (\mathbf{t}(\mathbf{i}) \otimes \mathbf{i} + \mathbf{t}(\mathbf{j}) \otimes \mathbf{j} + \mathbf{t}(\mathbf{k}) \otimes \mathbf{k}) \cdot \mathbf{n}
```  

つまり、$\mathbf{n}$ 方向の応力は、ある2階のテンソルと$\mathbf{n}$ の内積になっています。この2階のテンソル

```math
\mathbf{\sigma} = \mathbf{t}(\mathbf{i}) \otimes \mathbf{i} + \mathbf{t

}(\mathbf{j}) \otimes \mathbf{j} + \mathbf{t}(\mathbf{k}) \otimes \mathbf{k}
```

を応力テンソルと呼びます。

### 応力テンソルの構成

応力テンソルの成分を具体的に求める方法を考えてみます。まず、3つのテンソルを構成する6つのベクトルについて、全て同じ基底で反変成分を取ることで、

```math
\sigma^{\alpha\beta}=t(\mathbf{i})^{\alpha}\,i^{\beta}+t(\mathbf{j})^{\alpha}\,j^{\beta}+t(\mathbf{k})^{\alpha}\,k^{\beta}
```

のように表せます。

直交な3つの方向$\mathbf{i},\mathbf{j},\mathbf{k}$の応力ベクトルの成分を求め、$\mathbf{i},\mathbf{j},\mathbf{k}$の成分とかければ各項の反変成分が求まるので、$\sigma^{\alpha\beta}$も求めることができます。

正規直交基底であれば、初めから$\mathbf{i},\mathbf{j},\mathbf{k}$を基底と同じ方向に取ってしまえば、

```math
i^{\beta} = (1, 0, 0)^T,\,j^{\beta} = (0, 1, 0)^T,\,k^{\beta} = (0, 0, 1)^T
```

とできるので、$\mathbf{\sigma}^{\alpha\beta}$の成分表示は次のようになります。

```math
\begin{bmatrix}
t(\mathbf{i})^1 & t(\mathbf{j})^1 & t(\mathbf{k})^1 \\
t(\mathbf{i})^2 & t(\mathbf{j})^2 & t(\mathbf{k})^2 \\
t(\mathbf{i})^3 & t(\mathbf{j})^3 & t(\mathbf{k})^3
\end{bmatrix}
```

つまり、単に基底方向の応力を並べることで応力テンソルの反変成分を構成することができます。