23. テンソル(ベクトル解析)

テンソルは、多次元データを表す数学的な構造であり、スカラー、ベクトル、行列を含む一般化された概念である。簡単にまとめると、多次元配列を一般化した概念で、イメージとしては、スカラー、ベクトル、行列をさらに高次元にしたものである。具体的には、以下のように考えられる。
・スカラー:0階テンソル、単一の値(例えば、温度、質量など)。
・ ベクトル:1階テンソル、方向と大きさを持つ量(例えば、力、速度など)。
・ 行列:2階テンソル。2次元配列(例:変換行列、慣性モーメントなど)。
・ 一般のテンソル: 3次元以上の多次元配列。(例:3階テンソルは3次元配列を表す)。物理学や機械学習で頻繁に登場する。

テンソル

線形変換

ベクトル\(A\)の関数であるベクトル\(B\)を\(B = \tau(A)\)と書く。この関数が任意の2つのベクトル\(A_1,\;A_2\)に対して、$$\tau(A_1 + A_2) = \tau(A_1) + \tau(A_2)$$また、スカラー\(\lambda\)に対して$$\tau(\lambda A) = \lambda\, \tau(A)$$を満たすとき、\(\tau\)は線形写像(線形変換)を成すという。
基本ベクトルを\(e_1,\;e_2,\;e_3\)として、\(A = A_1 e_1 + A_2 e_2 + A_3 e_3\)と表すと$$B = \tau(A) = \tau(A_1 e_1 + A_2 e_2 + A_3 e_3) = A_1 \tau(e_1) + A_2 \tau(e_2) + A_3 \tau(e_3) $$となる。ここで、\(\tau(e_i)\)はそれぞれベクトルなので、これを$$\tau(e_i) = \sum_j T_{ji}e_j$$と書き、\(B = \sum_j B_j e_j\)を代入すれば、$$\sum_j B_j e_j = \sum_{i,j} A_i T_{ji} e_j$$なので、$$B_j = \sum_i T_{ji}A_i$$を得る。

テンソル

上記の\(\tau\)は、9個の数の組\(T_{ji}\)によって表され、ベクトルに作用して1つのベクトルを決める。これをベクトルに作用する線形作用素ともいう。これをテンソル、\(T_{ji}\)をその成分という。
テンソルは、インデックスを使って要素を指定する。
1階テンソル(ベクトル)$$ T_i, \quad i = 1, 2, \dots, n$$
2階テンソル(行列)$$T_{ij}, \quad i, j = 1, 2, \dots, n$$
3階テンソル $$T_{ijk}, \quad i, j, k = 1, 2, \dots, n$$
※零テンソルは、すべてのベクトル\(A\)に作用して零ベクトルを生ずるテンソルを零テンソルという。成分はすべて0である。

テンソルの和:成分\(S_{ik}\)をもつテンソルと成分\(T_{ik}\)をもつテンソルの和とは、成分\(S_{ik} + T_{ik}\)をもつテンソルである。同様に差は\(S_{ik} - T_{ik}\)で定義される。また、成分\(T_{ik}\)をもつテンソルとスカラー\(\varphi\)との積は、成分が\(\varphi T_{ik}\)のテンソルである。

ベクトル\(A_1 e_1 + A_2 e_2 + A_3 e_3\)すなわち成分\(A_1,\;A_2,\;A_3\)をもつベクトルのことをベクトル\(A_i\)とよぶので、同様に成分\(T_{ik}\)をもつテンソルのことをテンソル\(T_{ik}\)とよぶ。
テンソル\(T_{ik}\)、ベクトル\(v_i\)、および\(w_i\)があれば、$$\sum_{i,k} T_{ik}v_i w_k$$はスカラーである。

クロネッカーのデルタ関数

クロネッカーのデルタ関数は、以下の式で定義される。$$\delta_{ij} = \left\{\begin{array}{ll} 1 & (i=j) \\ 0 & (i \neq j) \end{array}\right .$$クロネッカーのデルタを成分とするテンソルを\(\delta\)と書けば、\(\delta(A) = A\)である。このことから、クロネッカーのデルタはテンソルといえる。

テンソルの積:線形写像\(\tau\)と\(\sigma\)の積\(\sigma \tau\)は、写像\(\tau\)を行って、その上で\(\sigma\)を行うことを意味する。つまり、$$(\sigma \tau)(A) = \sigma(\tau(A))$$である。\(\tau,\;\sigma\)をそれぞれ、テンソル\(T_{ik},\;S_{ik}\)で表せば、\(\sigma \tau\)は、$$\sum_j S_{ij}T_{jk}$$を成分にもつテンソルである。これを積\(ST\)で表す。一般に\(ST \neq TS\)である。

対称テンソルと交代テンソル

成分\(T_{ik}\)が\(T_{ik} = T_{ki}\)を満足するテンソル、つまり成分の添え字を入れ替えても値が変わらないテンソルを対称テンソルといい、\(T_{ik} = -T_{ki}\)を満足するテンソル、つまり成分の添え字を入れ替えると符号が変わるテンソルを交代テンソル(反対称テンソル)という。
テンソル\(T_{ik}\)に対して成分\(S_{ik}\)が\(S_{ik} = T_{ki}\)を満足するテンソルを\(S\)とする。テンソル$$\frac{1}{2}(T_{ik} + S_{ik}),\quad \frac{1}{2}(T_{ik} - S_{ik})$$すなわち、\(i,\;k\)成分がそれぞれ$$\frac{1}{2}(T_{ik} + T_{ki}), \quad \frac{1}{2}(T_{ik} - T_{ki})$$であるテンソルをテンソル\(T\)(成分は\(T_{ik}\))の対称部分と交代部分という。
任意のテンソルは、その対称部分と交代部分の和として表せる。つまり、$$T_{ik} = \frac{1}{2}(T_{ik} + T_{ki}) +\frac{1}{2}(T_{ik} - T_{ki})$$である。交代テンソルは、行列の形では次の式で書かれる。$$\begin{bmatrix} 0 & T_{12} & T_{13}\\ -T_{12} & 0 & T_{23} \\ -T_{13} & -T_{23} & 0 \end{bmatrix}$$ここで、\(T_{ij} = -T_{ji}\)を満たし、対角成分 \(T_{ii} = 0\)である。このように交代テンソルは、3つの成分\(T_{23},\;T_{31},\;T_{12}\)だけできまる。

ベクトル積と交代テンソル
2つのベクトル間の外積(ベクトル積)は2階の交代テンソルとして表現することができる。
3次元空間における2つのベクトル\(A = (A_1, \; A_2,\; A_3),\quad B = (B_1,\; B_2,\; B_3) \)の外積は、$$A \times B = (A_2 B_3 - A_3 B_2, \; A_3 B_1 - A_1 B_3, \; A_1 B_2 - A_2 B_1)$$と定義される。
一方、2階の交代テンソル\(T\)の成分\(T_{ij}\)は$$T_{ij} = A_i B_j - A_j B_i$$と定義される。この定義より、\(T_{ij} = -T_{ji}\)である。具体的に成分をみると、$$T_{12} = A_1 B_2 - A_2 B_1 \\ T_{13} = A_1 B_3 - A_3 B_1 \\ T_{21} = A_2 B_1 - A_1 B_2 = -T_{12} \\ T_{23} = A_2 B_3 - A_3 B_2 \\ T_{31} = A_3 B_1 - A_1 B_3 = -T_{13} \\ T_{32} = A_3 B_2 - A_2 B_3 = -T_{23}$$である。つまり、外積\(A \times B\)の各成分は、この交代テンソルの特定の成分に対応している。$$(A \times B)_1 = T_{23} \\ (A \times B)_2 = T_{31} \\ (A \times B)_3 = T_{12}$$である。このように、ベクトルの外積は2階の交代テンソルを用いて表現できる。外積の結果はベクトルであるが、このベクトルは対応する交代テンソルの成分から導き出されると考えることができる。

対称テンソルの主軸問題

対称テンソルの主軸問題は、物理学や工学で重要な課題で、特に応力、慣性モーメント、誘電率テンソルなどで現れる。この問題は、対称テンソルの固有値および固有ベクトルを求め、これを用いてテンソルを対角化することに関連し、対称テンソルが与えられたときに、そのテンソルの作用を最も簡単に表現できる座標系、つまり「主軸」を見つける問題である。
2階のテンソル\(T\) が対称であるとは、その成分\(T_{ij}\) が \(T_{ij} = T_{ji}\)を満たすことを意味する。$$T = \begin{bmatrix} T_{11} & T_{12} & T_{13} \\ T_{12} & T_{22} & T_{23} \\ T_{13} & T_{23} & T_{33} \end{bmatrix}$$のように、対角成分に対して対称な形をしている。対称テンソル\(T\)に対して、あるベクトル\(v\)が存在し、$$Tv = \lambda v$$を満たすとき、\(v\)をテンソル\(T\) の固有ベクトル、\(\lambda\)を固有値と呼ぶ。この固有ベクトルの方向が「主軸」である。よって、主軸方向のベクトルに対してテンソル\(T\)を作用させても、ベクトルの方向は変わらず、長さが \(\lambda\) 倍になるだけである。
主軸問題とは、与えられた対称テンソル\(T\) に対して、固有値 \(\lambda\)と固有ベクトル\(v\)をすべて求める問題で、線形代数における固有値問題と等価である。
対称テンソルの固有値はすべて実数であり、異なる固有値に対応する固有ベクトルは互いに直交する。さらに、重複する固有値がある場合でも、互いに直交する固有ベクトルを選ぶことができる。これにより、\(n\)次元空間の対称テンソルに対して、\(n\)個の互いに直交する固有ベクトル(つまり主軸)を見つけることができる。
見つけた固有ベクトルを基底とする座標系を「主軸座標系」と呼ぶ。主軸座標系では、対称テンソル \(T\)は対角行列で表現される。つまり、$$T' = \begin{bmatrix} \lambda_1 & 0 & 0 \\ 0 & \lambda_2 & 0 \\ 0 & 0 & \lambda_3 \end{bmatrix}$$のように、対角成分以外はすべて 0 になる。ここで、\(\lambda_1,\;\lambda_2,\; \lambda_3\)は固有値である。この対角化によって、テンソルの計算が非常に簡単になる。例えば、テンソル\(T\)をベクトルに作用させる場合、主軸座標系では、ベクトルの各成分にそれぞれの固有値を掛けるだけで済む。
主軸問題では、対称テンソルを対角化する座標系(主軸系)を求める。具体的には次の手順に従う。
1.固有値を求める
対称テンソル \(T\) に対して、固有値問題は次の形を取る。$$Tv = \lambda v$$ここで、\(\lambda\)は固有値、\(v\)は固有ベクトルである。行列の固有値を求めるためには、固有値方程式$$\det(T - \lambda I)=0$$を解く。この方程式は\(n\)次元空間で\(n\)次方程式を与える。
2.固有ベクトルを求める
各固有値 \(\lambda\)に対応する固有ベクトル\(v\)を次の線形方程式から求める。$$(T - \lambda I)v = 0$$
固有ベクトル \(v_1, \;v_2,\; v_3\)は互いに直交し(対称テンソルの性質による)、これらを正規化することで正規直交座標系を構成できる。この座標系が主軸系に対応する。

物理学におけるテンソル

慣性テンソル

慣性テンソルは、物体の回転運動を記述する上で重要な概念で、特に3次元空間における回転運動を扱う際に不可欠である。質点 \(m\)が回転軸から距離\(r\)の位置にあるとき、その質点の慣性モーメント\(I\)は、$$I = m r^2$$で定義される。これは、物体が回転運動の変化に対してどれだけ抵抗するかを表す量である。剛体(複数の質点が集まった物体)の場合、慣性モーメントは各質点の慣性モーメントの総和で表される。$$I = \sum m_i r_i^2$$または、連続体の場合は、$$I = \int r^2 dm = \rho(r) r^2 dv$$と表せる。ここで、\(\rho(r)\)は密度、\(dv\)は微小体積である。
以上の慣性モーメントは、回転軸が固定されている場合には有効であるが、物体が自由に回転する場合、回転軸は時間とともに変化する可能性がある。このような場合、慣性モーメントだけでは回転運動を記述することが難しくなる。このため慣性テンソルを導入する。
角運動量 \(L\)は、$$L = \sum r_i \times (m_i v_i)$$で定義される。ここで、\(r_i\)は質点\(i\)の位置ベクトル、\(v\)は速度ベクトルである。剛体が角速度\(\omega\)で回転している場合、質点\(i\)の速度\(v\)は、$$v_i = \omega \times r_i$$で表せる。これを角運動量の式に代入すると、$$L = \sum m_i r_i \times (\omega \times r_i)$$となる。ベクトル三重積の公式 \(a \times (b \times c) = (a \cdot c)b - (a \cdot b)c\)を用いると、$$L = \sum m_i \left\{(r_i \cdot r_i)\omega - (r_i \cdot \omega) r_i\right\}$$となる。ここで、位置ベクトル \(r_i = (x_i,\; y_i,\;z_i)\)と角速度 \(\omega = (\omega_x,\; \omega_y,\; \omega_z)\)を成分で表すと、角運動量の各成分は、$$L_x = I_{xx} \omega_x + I_{xy} \omega_y + I_{xz} \omega_z \\ L_y = I_{yx} \omega_x + I_{yy} \omega_y + I_{yz} \omega_z \\ L_z = I_{zx} \omega_x + I_{zy} \omega_y + I_{zz} \omega_z$$と表せる。ここで、\(I_{\alpha \beta} \quad (\alpha, \beta = x,y,z)\)が慣性テンソルの成分であり、具体的には、$$I_{xx} = \sum m_i (y_i^2 + z_i^2) = \int (y^2 + z^2) dm \\ I_{yy} = \sum m_i (x_i^2 + z_i^2) = \int (x^2 + z^2) dm \\ I_{zz} = \sum m_i (x_i^2 + y_i^2) = \int (x^2 + y^2) dm \\ I_{xy} = I_{yx} = -\sum m_i x_i y_i = - \int xy dm \\ I_{xz} = I_{zx} = - \sum m_i x_i z_i = - \int xz dm \\ I_{yz} = I_{zy} = -\sum m_i y_i z_i = - \int yz dm $$となる。
慣性テンソルは、行列を用いて次のように表せる。$$I = \begin{bmatrix} I_{xx} & I_{xy} & I_{xz} \\ I_{yx} & I_{yy} & I_{yz} \\ I_{zx} & I_{zy} & I_{zz} \end{bmatrix}$$この行列は対称行列であり、\(I_{xy} = I_{yx}, \quad I_{xz} =I_{zx}, \quad I_{yz}=I_{zy}\)が成り立つ。
慣性テンソルにおいて、対角成分\(I_{xx},\;I_{yy},\;I_{zz}\)は、それぞれ\(x\)軸、\(y\)軸、\(z\)軸周りの慣性モーメントを表す。また、非対角成分\(I_{xy},\; I_{xz},\;I_{yz}\)は慣性乗積と呼ばれ、回転軸が座標軸と一致しない場合に生じる効果を表す。
慣性テンソルは対称テンソルであるため、主軸問題が適用できる。慣性テンソルの固有ベクトルを慣性主軸と呼び、対応する固有値を主慣性モーメントと呼ぶ。慣性主軸を座標軸とする座標系(主軸座標系)では、慣性テンソルは対角行列になり、計算が簡単になる。

誘電率テンソル

誘電率テンソルは、物質の電気的な性質、特に電場に対する応答を記述する際に重要な概念である。等方性媒質(例えば真空やガラス)では誘電率はスカラー量で表されるが、異方性媒質(例えば結晶)ではテンソル量として表す必要がある。
誘電率:誘電率は、物質が電場によってどれだけ分極するかを示す尺度です。電場\(E\)と電束密度\(D\)の関係は、等方性媒質では、\(D = \epsilon E\)で表される。ここで、\(\epsilon\) は誘電率でスカラー量である。
異方性媒質では、電場 \(E\)の向きと電束密度\(D\)の向きが必ずしも一致しない。これは、物質の構造が方向によって異なるために、分極のしやすさも方向によって異なるためである。このような場合、誘電率はテンソル量として表す必要があり、以下の式となる。$$D = \epsilon E$$前の式と異なり、\(\epsilon\)は2階のテンソルで、以下の行列で表される。$$\epsilon = \begin{bmatrix} \epsilon_{xx} & \epsilon_{xy} & \epsilon_{xz} \\ \epsilon_{yx} & \epsilon_{yy} & \epsilon_{yz} \\ \epsilon_{zx} & \epsilon_{zy} & \epsilon_{zz} \end{bmatrix}$$成分で表すと、$$D_x = \epsilon_{xx} E_x + \epsilon_{xy} E_y + \epsilon_{xz} E_z \\ D_y = \epsilon_{yx} E_x + \epsilon_{yy} E_y + \epsilon_{yz} E_z \\ D_z = \epsilon_{zx} E_x + \epsilon_{zy} E_y + \epsilon_{zz} E_z$$誘電率テンソルの各成分は、電場の各方向成分に対する電束密度の応答を表している。例えば、\(\epsilon_{xx}\)は\(x\)方向の電場に対する\(x\)方向の電束密度の応答、\(\epsilon_{xy}\)は\(y\)方向の電場に対する\(x\)方向の電束密度の応答を表す。
誘電率テンソルは多くの場合、対称テンソルで、\(\epsilon_{ij} = \epsilon_{ji}\)が成り立つ。対称テンソルであるため、適切な座標変換を行うことで対角化でき、対角化された誘電率テンソルは、主軸座標系における誘電率を表し、各対角成分は主誘電率と呼ばれる。$$\epsilon' = \begin{bmatrix} \epsilon_1' & 0 & 0 \\ 0 & \epsilon_2' & 0 \\ 0 & 0 & \epsilon_3' \end{bmatrix}$$対角化された誘電率テンソルの固有ベクトルは、誘電主軸と呼ばれる。

テンソルの微分

テンソルの微分は、テンソル場(空間の各点にテンソルが対応付けられているもの)がどのように変化するかを記述するための概念である。
ベクトル場の微分:ベクトル場 \(v(x,\;y,\;z)\)の微分は、各成分をそれぞれの変数で偏微分することで得られる。例えば、$$\nabla v = \begin{bmatrix} \frac{\partial v_x}{\partial x} & \frac{\partial v_x}{\partial y} & \frac{\partial v_x}{\partial z} \\ \frac{\partial v_y}{\partial x} & \frac{\partial v_y}{\partial y} & \frac{\partial v_y}{\partial z} \\ \frac{\partial v_z}{\partial x} & \frac{\partial v_z}{\partial y} & \frac{\partial v_z}{\partial z} \end{bmatrix}$$これは、ベクトル場を微分した結果が2階のテンソルになっていることを示している。
テンソル場の微分:テンソル場の微分も同様に、各成分をそれぞれの変数で偏微分することで行う。例えば、2階のテンソル場\(T\)の微分は、3階のテンソルになる。$$(\nabla T)_{ijk} = \frac{\partial T_{ij}}{\partial x_k}$$ここで、\(i, j, k\) はそれぞれテンソルの成分と微分する方向を表すインデックスである。

※この他、テンソルの共変微分など一般相対性理論などで重要な概念があるが、電気数学の範疇を超えるので、またの機会とする。