テンソル Tensor


|| ベクトルとか行列の話を一般化したもの

「線型性を持つ写像」や「数」の総称

スポンサーリンク

 

 

 


目次

 

スカラー0 階テンソルで表現可能な 0,1,2,10 とか」

ベクトル 階テンソルで表現可能な (0,1),(1,0) とか」

行列2 階テンソルで表現可能なベクトルのベクトル」

 

線型空間「ベクトルを問題なく扱える保証」

線型性「ベクトルとか行列が持ってる線っぽい感じ」

 

線型独立「同一の次元じゃ説明できない」

基底「次元の個数を決めるための概念」

次元「線型独立なベクトルの個数が次元になる」

 

テンソル「多次元配列の感覚を抽象化したもの」

テンソル積「テンソルの定義で必要な都合の良い操作」

 

 

 

 

 


スカラー Scalar

 

|| 大きいとか小さいが分かるやつ

「数」というとこれをイメージする人が多いと思います

 

\begin{array}{cccccccccc} -1& 0& 1&2&3&4&5&6&7&8&9&10 \end{array}

 

ベクトルなんかを意識する時

この概念は考えることが多いです。

0 階テンソルの代表的な表現方法に当たる)

 

 

 

 

 

ベクトル Vector

 

|| スカラー値を並べたやつ

「並び順が決まってるスカラーのセット」のこと

 

\begin{array}{l} x,y &&→&&(1,2) \end{array}

 

「方向を持つ点」「組み合せ・セット」

こういう感覚を表現したものです。

 

 

 

 

 

行列 Matrix

 

|| 連立方程式を整理すると出てくるやつ

「ベクトル」の「ベクトル」みたいな感じ

 

\begin{array}{ccccr} ax+by &&→&& \displaystyle \left( \begin{array}{llllll} \displaystyle a&b \end{array} \right) \displaystyle \left( \begin{array}{llllll} \displaystyle x \\ y \end{array} \right) \\ \\ \displaystyle \left( \begin{array}{llllll} \displaystyle ax+by \\ cx+dy \end{array} \right)&&→&& \displaystyle \left( \begin{array}{llllll} \displaystyle a&b \\ c&d \end{array} \right) \displaystyle \left( \begin{array}{llllll} \displaystyle x \\ y \end{array} \right) \end{array}

 

一般形になりますが

 

\begin{array}{llllll} \displaystyle \left( \begin{array}{llllll} \displaystyle ax+by&av+bu \\ cx+dy&cv+du \end{array} \right)&&→&& \displaystyle \left( \begin{array}{llllll} \displaystyle a&b \\ c&d \end{array} \right) \displaystyle \left( \begin{array}{llllll} \displaystyle x & v \\ y & u \end{array} \right) \end{array}

 

要はこういう形の数が

 

\begin{array}{llllll} \displaystyle \left( \begin{array}{llllll} \displaystyle \vec{a_1} \\ \vec{a_2} \end{array} \right)&=&\displaystyle \left( \begin{array}{llllll} \displaystyle a_{11}&a_{12} \\ a_{21} & a_{22} \end{array} \right) \end{array}

 

「行列」と呼ばれるものになります。

(表現方法の1つという側面が強い)

 

 

 

 

 

行列の厳密な定義

 

「行列 \mathrm{Matrix} 」という概念は

『2変数写像 M 』で定義されていて

 

\begin{array}{ccc} M & : & \{ 1,...,n \} \times \{ 1,...,m \} &\to& A \\ \\ && (i,j) &\mapsto& a_{ij} \end{array}

 

その本質は

「添え字 i,j 」と「成分 a_{ij} 」の対応になります。

(写像あるいは写像を定義する集合が行列の定義)

 

 

 

 

 


線型空間 Linear Space

 

|| ベクトルの性質と使用条件をまとめたやつ

「ベクトル」を問題なく使うための保証

 

\begin{array}{cccccc} \displaystyle v,u,w&∈&V &&V \,\, \mathrm{is} \,\, \mathrm{Set \,\, of \,\, Vector} \\ \\ a,b&∈&S &&S \,\, \mathrm{is} \,\, \mathrm{Scalar \,\, Field} \end{array}

 

『扱う数のドメイン V,S 』と

 

\begin{array}{cccccccc} \displaystyle (v+u)+w&=&v+(u+w) &&\mathrm{Associative} \\ \\ v+u&=&u+v &&\mathrm{Commutative} \\ \\ \\ v+\vec{0}&=&v&&\mathrm{Identity} \\ \\ v+(-v)&=&0 &&\mathrm{Inverse} \\ \\ \\ a\times (b\times v)&=&(a\times b)\times v&&\mathrm{Associative} \\ \\ 1\times v&=&v&&\mathrm{Identity} \\ \\ \\ a\times (v+u)&=&a\times v+a\times u&&\mathrm{Distributive} \\ \\ (a+b)\times v&=&a\times v+b\times v&&\mathrm{Distributive} \end{array}

 

『満たすべき性質』で構成されています。

(これを満たさないものはベクトル空間ではない)

 

\begin{array}{llllll} \displaystyle (V,+,\times) \,\, \mathrm{is} \,\, \mathrm{Vector \,\, Space} \,\, \mathrm{on} \,\, S \end{array}

 

本題から逸れる上にテンソルの本質ではないので

この記事ではとりあえず飲み込んでください。

(詳細は線型空間の記事で扱います)

 

 

 

 

 

線型性 Linearity

 

|| 綺麗に並ぶ感じの性質

「加法」「斉次性」で定義されてます

 

\begin{array}{ccc} f(ax)&=&af(x) && 斉次性 \\ \\ f(x+y)&=&f(x)+f(y) && 加法性 \\ \\ f(ax+by)&=&af(x)+bf(y) && 線型性 \end{array}

 

一言で言うなら「内積の感覚」です。

(ベクトルの横並びの感覚の演算バージョン)

 

\begin{array}{lcl} ax+by &→&(a,b)(x,y) \\ \\ ax+by+cz &→&(a,b,c)(x,y,z) \end{array}

 

「多くのデータ」と +,\times を扱う時によく見る

 

\begin{array}{cccc} \displaystyle a_0 x^0 + a_1 x^1 + a_2 x^2 + \cdots + a_n x^n &=&0 \\ \\ x_1 p_1 + x_2 p_2 + x_3 p_3 + \cdots + x_np_n &=&E(X) \end{array}

 

こういう形のことを言ってます。

(見た目一直線だから線型)

 

 

 

 

 

線型独立 Linearly Independent

 

|| ベクトルが一直線上に無い感じ

「次元」を増やさないと説明できない状態

 

\begin{array}{ccccc} \displaystyle\sum_{k=1}^{n}c_kv_k=\vec{0} &&→&& c_1=c_2=\cdots=c_n=0 \end{array}

 

一般的にはこんな感じの「条件」のことを指します。

v_n は零ベクトル \vec{0} ではないとします)

 

 

 

 

 

線形独立の具体的な感じ

 

一般形だと分かり辛いですが

 

\begin{array}{ccc} -2(0,1)+(0,2)&=&(0,0) \\ \\ -2(1,2)+(2,4)&=&(0,0) \end{array}

 

「平面」の話だと分かり易いと思います。

(こういうのが一直線上のもので線形独立じゃないやつ)

 

\begin{array}{ccccc} c_1(a_1,b_1)+c_2(a_2,b_2)=(0,0) &&→&& c_1=c_2=0 \end{array}

 

「線形独立なもの」は ↓ みたいな感じで

 

\begin{array}{rcr} (0,1)+(1,0)&=&(1,1) \\ \\ 0(0,1)+0(1,0)&=&0(1,1) \\ \\ c_1(0,1)+c_2(1,0)&=&(c_1,c_2) \end{array}

 

こういう『 c_1=c_2=0 以外では』

「どうあっても (0,0) にならない状態」を

 

\begin{array}{ccc} c_1≠0 &→& c_1(0,1)+c_2(1,0)≠(0,0) \\ \\ c_2≠0 &→& c_1(0,1)+c_2(1,0)≠(0,0) \end{array}

 

「線形独立」と言います。

(軸 X の数は他の軸 Y の数に作用しない感覚)

 

 

 

 

 

線型従属

 

そしてこの「線形独立ではない」ものには

 

\begin{array}{ccc} -2(0,1)+(0,2)&=&(0,0) \\ \\ -2(1,2)+(2,4)&=&(0,0) \end{array}

 

「1直線上」に存在するベクトルたちであることから

(どのベクトルも拡大縮小と平行移動で表現できる)

 

\begin{array}{ccccc} c_i≠0 &∧& \displaystyle\sum_{k=1}^{n}c_kv_k=\vec{0} \end{array}

 

「線型従属」なんて名前が付いています。

(この場合は次元が n に定まらず定義し辛い)

 

 

 

 

 

線形独立と線形従属の評価の対象

 

この辺り少しややこしいですが

「評価する対象」は『ベクトルの集合』になるので

 

\begin{array}{ccc} ベクトルの集合 & \left\{ \begin{array}{lcl} c_iが全部0の時だけ \vec{0} \\ \\ c_iが全部0じゃなくても \vec{0} \end{array} \right. \end{array}

 

「1つでも同一直線上にベクトルがある」場合

a=nb だと c_1a-c_2nb=0 になる)

 

\begin{array}{ccc} (0,1),(0,2),(1,0) &&× \\ \\ (0,0,0),(1,0,0) &&× \end{array}

 

その『ベクトルの集合』は「線型従属」になります。

(つまり線形独立の条件はわりと厳しい)

 

 

 

 

 


基底 Basis

 

|| 次元の数を決めるもの

「線型独立」な「ベクトルの集まり」のこと

 

\begin{array}{ccccc} (0,1),(0,2) &&→&&\mathrm{Line} \\ \\ (0,1),(1,0) &&→&&\mathrm{Area} \end{array}

 

『テンソルの定義として都合が良い道具』で

 

\begin{array}{ccccc} \displaystyle\sum_{k=1}^{n}c_kv_k=\vec{0} &&→&& c_1=c_2=\cdots=c_n=0 \end{array}

 

特に「線形独立が分かり易い」『標準基底』は

 

\begin{array}{ccc} \{v_1,v_2,v_3,...,v_n\} \end{array}

 

「テンソルの本質」とも言えるものになります。

(実運用上のテンソルはだいたい標準基底を使う)

 

 

 

 

 

標準基底

 

これは簡単に説明するなら

要は『分かり易い線形独立な集合』のことで

 

\begin{array}{ccc} (a,b)&=&a(1,0)+b(0,1) \end{array}

 

このような「ものすごく単純な分解」から分かる

 

\begin{array}{ccc} \{ & (1,0) & (0,1) & \} \end{array}

 

こういう「基底」のことを「標準基底」と言います。

(要は垂直に交わる長さ 1 の縦と横の線)

 

 

補足しておくと

 

\begin{array}{ccc} (a,b,c)&=&\displaystyle \begin{array}{crc} & a(1,0,0) \\ \\ +&b(0,1,0) \\ \\ +&c(0,0,1) \end{array} \end{array}

 

「3次元の標準基底」は

 

\begin{array}{ccc} \{ & (1,0,0) & (0,1,0) & (0,0,1) & \} \end{array}

 

こんな感じになります。

(基底は基本的にはこれだけで説明できる)

 

 

 

 

 

基底と標準基底

 

「標準基底」の分かり易さから分かる通り

「基底」という概念は順番的にはこの一般化で

 

 

「直交(標準基底)」→「向きが違う(基底)」

こんな感じにして抽象的に定義した結果

 

\begin{array}{cc} \displaystyle\sum_{k=1}^{n}c_kv_k=\vec{0} &&→&& c_1=c_2=\cdots=c_n=0 \end{array}

 

「線型独立」のみでの定義になっています。

(これにより標準基底以外の基底で考えることが可能に)

 

 

 

 

 

正規直交基底

 

補足しておくと

 

\begin{array}{ccc} ||v||&=&1 \end{array}

 

『基底の定義』に追加する形で

 

\begin{array}{ccc} i≠j &→&v_i \cdot v_j=0 \end{array}

 

上記2つの条件を満たすものには

「正規直交基底」なんて名前が付いています。

(これの代表例が標準基底や基本ベクトル集合になる)

 

 

 

 

 

基底の厳密な定義

 

「基底」という概念は

「ベクトル空間 V 」に定義されていて

 

\begin{array}{ccc} v_1,v_2,...,v_n&\in&V \end{array}

 

「ベクトル空間になる」という条件が付いた

V の部分集合 V_{\mathrm{part}} 」に対し

 

\begin{array}{ccc} V_{\mathrm{part}}&⊂&V \end{array}

 

V_{\mathrm{part}} の全ての要素 v 」が

 

\begin{array}{ccccc} \displaystyle\sum_{k=1}^{n}c_kv_k=\vec{0} &&→&& c_1=c_2=\cdots=c_n=0 \end{array}

 

この「線型独立」を満たすベクトルの集まりと

 

\begin{array}{ccc} a_1,a_2,...,a_n &\in&R \end{array}

 

任意のスカラーで表現できる時

 

\begin{array}{ccc} a_1 v_1+a_2 v_2+\cdots + a_n v_n &=&v&\in&V_{\mathrm{part}} \end{array}

 

その「ベクトルの集まり」のことを『基底』と言います

(全体を表現可能な基礎的なベクトルの集まりが基底)

 

 

整理すると

 

\begin{array}{ccc} a_1 v_1+a_2 v_2+\cdots + a_n v_n &=&v \end{array}

 

「好きにスカラー a_n を定めれば」

「ベクトル空間の全ての要素 v 」を表現できる

(固定された空間を伸ばしたり回転させたりできる)

 

\begin{array}{ccc} \{ v_1,v_2,v_3,...,v_n \} \end{array}

 

そういう「線型独立」な「ベクトルの集合」が

「基底」の定義になります。

 

 

 

 

 

具体的な感じ

 

↑ だとちょっと抽象的なので捕捉しておくと

 

\begin{array}{ccccc} ( & 1 & 0 & 3 & ) \\ \\ ( & 2 & 0 & 9 & ) \\ \\ ( & 4 & 7 &2 & ) \end{array}

 

例えばこんな「基底」を考えた時

 

\begin{array}{ccc} \begin{array}{ccc} -2 & ( & 1 & 0 & 3 & ) \\ \\ & ( & 2 & 0 & 9 & ) \end{array} &\to& (0,0,3) \end{array}

 

こんな風に連立方程式的な整理をすれば

やってることはそのまま連立方程式)

 

\begin{array}{lclcl} \displaystyle\frac{1}{3} \left( -2(1,0,3) + (2,0,9) \right) &=& (0,0,1) && ×a \\ \\ \displaystyle\frac{1}{2} \left( -9(0,0,1) + (2,0,9) \right) &=& (1,0,0) && ×b \\ \\ \displaystyle \frac{1}{7} \left( -4(1,0,0) -2(0,0,1) + (4,7,2) \right) &=& (0,1,0) && ×c \end{array}

 

「標準基底を作れる」って話で

 

\begin{array}{ccc} a(1,0,0)+b(0,1,0)+c(0,0,1) &=& (a,b,c) \end{array}

 

どの a,b,c にも対応する実数が存在する

これが ↑ の「基底の定義」の主張になります。

 

 

 

 

 

次元 Dimension

 

|| 線 → 面 → 立体 → 時空間 みたいな話

「基底(ベクトルの集合)」の「要素数」のこと

 

\begin{array}{ccc} \mathrm{Dim} \, V &=&n \end{array}

 

「基底の要素」である「ベクトル」が n 個なら

「次元」は必ず n になります。

 

 

より正確には

 

\begin{array}{lcl} 次元の感覚 &\to& 線じゃ説明できない \\ \\ &\to& ベクトルの言語では線形独立 \\ \\ &\to& 次元を線形独立で定義する \end{array}

 

「線型独立」がそのように定義されてるから

「基底の要素数」は「次元」に必ず一致します。

(これの詳細は長くなるので別の記事で)

 

 

 

 

 


テンソル Tensor

 

|| 多次元の配列でベクトルや行列を統一的に扱う感覚

『多次元配列の感覚』を「基底」で厳密に定義したもの

 

\begin{array}{c} \begin{array}{ccc} 0&1 \end{array}&→&a &→&a_{×}&&\mathrm{Scalar} \\ \\ \begin{pmatrix} 0&1 \end{pmatrix}&→& \begin{pmatrix} a_1&a_2 \end{pmatrix} &→& a_{i} && \mathrm{Vector} \\ \\ \begin{pmatrix} 1&0 \\ 0&1 \end{pmatrix} &→& \begin{pmatrix} a_{11}&a_{12} \\ a_{21}&a_{22} \end{pmatrix} &→&a_{ij} && \mathrm{Matrix} \end{array}

 

「スカラー」は「 0 階のテンソル」

「ベクトル」は「 1 階のテンソル」

「行列」は「 2 階のテンソル」で表現可能になります。

 

 

 

 

 

テンソルの見た目

 

厳密な定義では

「線形写像を持つ」という条件が付きますが

(この線形写像はテンソルの組み立て方に相当する)

 

\begin{array}{ccc} \mathrm{Image}&=& \begin{pmatrix} [\mathrm{00},\mathrm{00},\mathrm{00}] &[\mathrm{00},\mathrm{00},\mathrm{FF}] & [\mathrm{00},\mathrm{FF},\mathrm{FF}] \\ [\mathrm{FF},00,00] &[\mathrm{FF},\mathrm{FF},\mathrm{00}] & [\mathrm{FF},\mathrm{FF},\mathrm{FF}] \end{pmatrix} \end{array}

 

こういう「大量の値を1つの数としたもの(配列など)」が

『テンソルとして定義できるもの』で

 

\begin{array}{ccc} \mathrm{Image}[1][1]&=&[00,00,00] \\ \\ \mathrm{Image}[3][2]&=&[\mathrm{FF},\mathrm{FF},\mathrm{FF}] \end{array}

 

「テンソルの中身の1つ」もまた「テンソル」と呼ばれます。

(全体も見た目も組み立て方もテンソルと呼ばれる)

 

 

 

 

 

テンソルの役割

 

この「テンソル」という概念は

 

\begin{array}{ccc} f&:&T&→&T^{\prime} \end{array}

 

基本的には「一括処理」のために使われるもので

(全てが同一時間で動くとする場合とか)

 

\begin{array}{ccc} 2倍の大きさに拡大 \\ \\ \begin{array}{ccc} (0,1) & (1,1) \\ \\ (0,0) & (1,0) \end{array}×2 \end{array}

 

「一度に全ての座標を扱う」場面でよく使われます。

(画像の処理とか映像の処理とかでも使われる)

 

 

 

 

 

性質を保つテンソル

 

理論的な話としては

 

\begin{array}{lcl} \mathrm{Scalar}\times \mathrm{Scalar} & \overset{\times}{\to} & \mathrm{Vector} \\ \\ \mathrm{Scalar}\times \mathrm{Vector}& \overset{R\times R^2=R^3}{\to} & \mathrm{Vector} \\ \\ \mathrm{Vector}\otimes \mathrm{Vector}& \overset{\otimes}{\to} & \mathrm{Tensor} \\ \\ \mathrm{Tensor} \otimes \mathrm{Vector}& \overset{\otimes}{\to} & \mathrm{Tensor} \\ \\ \mathrm{Tensor} \otimes \mathrm{Tensor}& \overset{\otimes}{\to} & \mathrm{Tensor} \end{array}

 

「ベクトル空間の直積 \otimes 」→「テンソル」

「テンソルの積」→「テンソル」という感じに

 

\begin{array}{ccc} \mathrm{Tensor} \otimes \mathrm{Tensor} &\to& \mathrm{Tensor} \end{array}

 

「何度操作を繰り返しても」

「テンソルはテンソル」というような

 

\begin{array}{ccc} v\otimes u &\in& V\otimes V \end{array}

 

「閉じている」状態を作るという

「閉鎖性」の観点で使われることもあります。

(直積操作を制限するような感覚で使われる)

 

 

 

 

 

テンソル積は普遍性により定義される

 

↑ を実現する上で必要な

「テンソル積 \otimes 」という概念は

(これがテンソルの組み立て方に当たる操作)

 

\begin{array}{lclcl} T&=&c && \mathrm{Scalar} \\ \\ T_{i} &=&\displaystyle\sum_{i=1}^{n}c_{i} (e_i) && \mathrm{Vector} \\ \\ T_{ij} &=&\displaystyle\sum_{i=1}^{n}\sum_{j=1}^{m}c_{ij} (e_i\otimes e_j) && \mathrm{Matrix} \\ \\ T_{ijk} &=&\displaystyle\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{k=1}^{l}c_{ijk} (e_i\otimes e_j \otimes e_k) && \mathrm{Tensor}\text{-}\mathrm{Rank}3 \end{array}

 

「基底」として定義できる

「ベクトル空間」の要素である「ベクトル v,u,w 」と

 

\begin{array}{lcl} (v+u)\otimes w &=& v\otimes w +u\otimes w \\ \\ v \otimes (u+w) &=& v\otimes u +v \otimes w \end{array}

 

「スカラー c (実数値)」を使うことにより

 

\begin{array}{ccccc} c(v\otimes u) &=& cv \otimes u &=& v\otimes cu \end{array}

 

まず「欲しい性質が先」に定義されて

その後に「具体的な操作」が定義されます。

(最初の段階では具体的な操作が決まっていない)

 

 

この『求められる性質が先』

というのが「普遍性」という概念の本質で

 

\begin{array}{lcl} 欲しい性質 &\to& 具体的な操作 \end{array}

 

『求められる性質』がまず決まっていて

そこから「操作」が考えられます。

 

\begin{array}{lcl} 良い感じの操作を作る &\to& 操作の性質を調べる \\ \\ &\to& 条件を満たすかどうか確認 \\ \\ &\to& 条件を満たすならテンソル積 \end{array}

 

ちょっと実感し辛いかもしれませんが

これが「テンソル積」の厳密な定義になります。

(テンソル積で普遍的な ↑ の性質は双線型性)

 

 

 

 

 

行列と2階テンソルの違い

 

この「テンソル」という概念と

「2階テンソル」で表現できる「行列」の明確な違いは

 

\begin{array}{ccc} 共変性 && 基底×10 &\to& 成分×10 &&空間を伸ばす \\ \\ 反変性 && \displaystyle 基底×\frac{1}{10} &\to&成分×10 &&単位を変える \end{array}

 

「テンソル」という概念が

「基底」と『性質』で定義されているのに対し

(直感的には組み立て方が明確な配列がテンソル)

 

 

「行列」がその辺り制限なく定義されている点で

(行列は成分を並べたものとして定義されている)

 

\begin{array}{ccc} \left( \begin{array}{ccc} 1&0 &0 \\ 0&1 &0 \\ 0&0&1 \end{array} \right) \end{array}

 

こちらは特に『性質』は要求されておらず

「数字を並べたもの」以上の意味を持ちません。

(組み立て方が定義されると2階のテンソルになる)

 

 

 

 

 

テンソルの厳密な定義

 

この「テンソル」には

「分野」によって分かれる複数の定義があるんですが

(直感的・物理学的・数学的な定義がそれぞれある)

 

\begin{array}{ccc} \mathrm{Vector}&→&\mathrm{Tensor} \end{array}

 

見た目は「ベクトル」を軸に定義されているので

(根本的にはベクトルの延長と捉えて良い)

 

\begin{array}{ccc} V\otimes V && \to && \mathrm{Tensor} \end{array}

 

まずはその辺りの話からしていきます。

(抽象的には数学的定義で統一できる)

 

 

 

 

 

基底によるベクトルの定義

 

まず「ベクトル」なんですが

 

\begin{array}{ccc} a\times b &→&(a,b) \end{array}

 

これは「スカラーの直積」によって得られるもので

 

\begin{array}{lcl} (a,b)&=&c_1e_1+c_2e_2 \\ \\ (a,b)&=&a(1,0)+b(0,1) \end{array}

 

「基底 \{e_1,e_2\} 」を使えば

このような形で表現できます。

(基本的には標準基底を考えればOK)

 

\begin{array}{ccc} (a,b)&=&c_1e_1+c_2e_2 \\ \\ (a_1,a_2,...,a_n)&=&\displaystyle\sum_{k=1}^{n}c_ke_k \end{array}

 

これは「中身のスカラー(成分)」が増えても同様で

 

\begin{array}{ccc} v_n&=&\displaystyle\sum_{k=1}^{n}c_ke_k \end{array}

 

あらゆる「ベクトル v 」は

このような形で「基底」により定義できます。

(テンソルはこの事実に基づいて定義される)

 

 

 

 

 

基底を増やしてみる

 

「スカラーの直積」で ↑ のようになるなら

「ベクトルの直積」ではどうなるのか

 

\begin{array}{ccc} a\times v_n &=& (a,v_n) \\ \\ v_n\times v_m&=& (v_n,v_m) \end{array}

 

これを「スカラーとベクトルの直積」と

「行列の成分表示」を参考にして

 

\begin{array}{lcc} \displaystyle \left( \begin{array}{ccc} c_{11}&c_{12}&c_{13} \\ c_{21}&c_{22}&c_{23} \\ c_{31}&c_{32}&c_{33} \end{array} \right) \\ \\ \displaystyle \left( \begin{array}{ccc} a_1b_1&a_1b_2&a_1b_3 \\ a_2b_1&a_2b_2&a_2b_3 \\ a_3b_1&a_3b_2&a_3b_3 \end{array} \right) &\to& \displaystyle \left( \begin{array}{ccc} a_1 \\ a_2 \\ a_3 \end{array} \right) \otimes \left( \begin{array}{ccc} b_1&b_2&b_3 \end{array} \right) \end{array}

 

良い感じになるよう考えた時

(この時点での \otimes は仮想的な都合の良い演算子)

 

\begin{array}{ccc} v_n\otimes v_m &=& \displaystyle \left( \sum_{i=1}^{n}a_ie_i \right)\otimes \left( \sum_{j=1}^{m}b_je_j \right) \\ \\ &=&\displaystyle\sum_{i=1}^{n}\sum_{j=1}^{m}a_ib_j (e_i\otimes e_j) \end{array}

 

「自然な拡張かもしれない」ものとして

『ベクトルの拡張のような操作』を考えることができて

(この時点じゃ \otimes についてのあれこれは曖昧)

 

\begin{array}{ccc} \displaystyle\sum_{i=1}^{n}\sum_{j=1}^{m}a_ib_j (e_i\otimes e_j) \end{array}

 

a_{i},b_j を「任意の定数」として書き直すと

 

\begin{array}{ccc}v_n\otimes v_m &=& \displaystyle\sum_{i=1}^{n}\sum_{j=1}^{m}c_{ij} (e_i\otimes e_j) \end{array}

 

こんな形で「ベクトルから行列を表現できる」

「基底で定義できる何か \otimes 」を考えることができます。

(これはこういう都合の良い操作だと考えて良いです)

 

 

 

 

 

行列のようなもの

 

整理すると

 

\begin{array}{ccc} \displaystyle\left(\begin{array}{l} a_1 \\ a_2 \\ a_3 \end{array} \right) \otimes \left(\begin{array}{ccc} b_1&b_2&b_3 \end{array} \right) &=& \displaystyle \left( \begin{array}{ccc} a_1b_1 & a_1b_2 & a_1b_3 \\ a_2b_1 & a_2b_2 & a_2b_3 \\ a_3b_1 & a_3b_2 & a_3b_3 \end{array} \right) \end{array}

 

このように「積 \otimes 」を定義した場合

 

e_i\otimes e_j

 

これが「行列を表現できる」とすると

(これは定義の前段階に来る要望)

 

\begin{array}{ccc} \mathrm{Vector} &&\mathrm{Matrix} \\ \\ i &→& ij \end{array}

 

「添え字が増えた意味」を

『良い感じに後付けできる』操作として

 

\begin{array}{ccc}v_n\otimes v_m &=& \displaystyle\sum_{i=1}^{n}\sum_{j=1}^{m}c_{ij} (e_i\otimes e_j) \end{array}

 

こんな形を考えることができ

(こうすると求めていた形になる 詳細は後述)

 

 

同様の手順を踏むと

 

\begin{array}{ccc}v_n\otimes v_m\otimes v_l &=& \displaystyle\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{k=1}^{l}c_{ijk} (e_i\otimes e_j \otimes e_k) \end{array}

 

このような操作も考えることができます。

(この時点じゃ \otimes の中身はまだよく分からない)

 

 

これにより

「ベクトルを拡張した何か」を

 

\begin{array}{lclcl} T&=&c && \mathrm{Scalar} \\ \\ T_{i} &=&\displaystyle\sum_{i=1}^{n}c_{i} (e_i) && \mathrm{Vector} \\ \\ T_{ij} &=&\displaystyle\sum_{i=1}^{n}\sum_{j=1}^{m}c_{ij} (e_i\otimes e_j) && \mathrm{Matrix} \\ \\ T_{ijk} &=&\displaystyle\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{k=1}^{l}c_{ijk} (e_i\otimes e_j \otimes e_k) && \mathrm{Tensor}\text{-}\mathrm{Rank}3 \end{array}

 

より一般化して考えることが可能になるので

 

\begin{array}{lcl} スカラーからベクトル &\to& 直積\times \\ \\ ベクトルから行列 &\to& 謎操作\otimes \\ \\ 行列からなにか &\to& \otimesで統一的に \end{array}

 

結果「直積」の自然な拡張を得ることができます。

(多次元配列の感覚で線形空間を扱えるようになる)

 

 

 

 

 

行列を並べたテンソル

 

↑ じゃイメージしにくいと思うので

 

\begin{array}{ccccc} \mathrm{Scalar},\mathrm{Scalar},... &&→ &&\mathrm{Vector} && \mathrm{Tensor}\text{-}\mathrm{Rank}1 \\ \\ \mathrm{Vector},\mathrm{Vector},... &&→ &&\mathrm{Matrix} && \mathrm{Tensor}\text{-}\mathrm{Rank}2 \end{array}

 

この流れと同様の手順で

 

\begin{array}{ccc} \mathrm{Matrix},\mathrm{Matrix},... &&→ && \mathrm{Tensor}\text{-}\mathrm{Rank}3 \end{array}

 

「行列を並べたもの」を作ってみると

 

 

\begin{array}{ccc} \textcolor{pink}{ \begin{pmatrix} c_{111}&c_{121} &c_{131} \\ c_{211}&c_{221} &c_{231} \\ c_{311}&c_{321} &c_{131} \end{pmatrix} } & \textcolor{steelblue}{ \begin{pmatrix} c_{112}&c_{122} &c_{132} \\ c_{212}&c_{222} &c_{232} \\ c_{312}&c_{322} &c_{132} \end{pmatrix} } & \textcolor{skyblue}{\begin{pmatrix} c_{113}&c_{123} &c_{133} \\ c_{213}&c_{223} &c_{233} \\ c_{313}&c_{323} &c_{133} \end{pmatrix} } \\ \\ \mathrm{front} & \mathrm{middle} & \mathrm{back} \end{array}

 

その形はこのようになります。

(具体的には行列の情報を日付ごとに並べるとか)

 

 

 

 

 

テンソルの和

 

「ベクトルの和」と同様

 

\begin{array}{ccc} (a_1,a_2)+(b_1,b_2)&=&(a_1+b_1,a_2+b_2) \\ \\ &↓ \\ \\ a_i+b_i &=&c_i \end{array}

 

テンソルを ↑ のように定義すると

「行列の和」の延長として

 

\begin{array}{ccc} \begin{pmatrix} a_{11}&a_{12} \\ a_{21}&a_{22} \end{pmatrix}+\begin{pmatrix} b_{11}&b_{12} \\ b_{21}&b_{22} \end{pmatrix}&=&\begin{pmatrix} a_{11}+b_{11}&a_{12}+b_{12} \\ a_{21}+b_{21}&a_{22}+b_{22} \end{pmatrix} \\ \\ &↓ \\ \\ a_{ij}+b_{ij}&=&c_{ij} \end{array}

 

「テンソルの和」の定義は

 

\begin{array}{lclcl} a_{ijk}&+&b_{ijk}&=&c_{ijk} \\ \\ a_{ijk\cdots}&+&b_{ijk\cdots}&=&c_{ijk\cdots} \end{array}

 

かなり直感的な形でシンプルに定義できます。

(正確にはこの和を実現できるよう定義されている)

 

 

 

 

 


テンソル積 Tensor Product

 

|| テンソルを構成するのに都合が良い操作

「ベクトルを拡張できる」『良い感じの積』

 

\begin{array}{ccc} \displaystyle\left(\begin{array}{l} a_1 \\ a_2 \\ a_3 \end{array} \right) b_1 & \displaystyle\left(\begin{array}{l} a_1 \\ a_2 \\ a_3 \end{array} \right) b_2 & \displaystyle\left(\begin{array}{l} a_1 \\ a_2 \\ a_3 \end{array} \right) b_3 \\ \\ \mathrm{left} & \mathrm{middle} & \mathrm{right} \end{array}

 

「ベクトル同士」の「テンソル積」は

 

\begin{array}{ccc} \displaystyle\left(\begin{array}{l} a_1 \\ a_2 \\ a_3 \end{array} \right) \otimes \left(\begin{array}{ccc} b_1&b_2&b_3 \end{array} \right) &=& \displaystyle \left( \begin{array}{ccc} a_1b_1 & a_1b_2 & a_1b_3 \\ a_2b_1 & a_2b_2 & a_2b_3 \\ a_3b_1 & a_3b_2 & a_3b_3 \end{array} \right) \end{array}

 

「行列を得る操作」になって欲しい

 

\begin{array}{lcl} テンソル &\to& 多次元配列の感覚 \\ \\ &\to& ベクトルと行列を表現可能 \\ \\ &\to& スカラーの直積はベクトル \\ \\ &\to& ベクトルから行列を得る操作は曖昧 \\ \\ &\to& ベクトル\otimes ベクトルが行列になるとする \\ \\ &\to& \otimes でこれ以上の拡張が可能とする \end{array}

 

この「要請」から得られたのが「テンソル積」になります。

(具体的な中身はこれを実現するために後で決められる)

 

 

 

 

 

3 つ以上のベクトルとテンソル積

 

この操作を複数回行う場合

 

\begin{array}{ccc} a\otimes b \otimes c &=& (a\otimes b) \otimes c \end{array}

 

例えば 3 回行うなら

 

\begin{array}{ccc} \displaystyle \left( \begin{array}{ccc} a_1b_1 & a_1b_2 & a_1b_3 \\ a_2b_1 & a_2b_2 & a_2b_3 \\ a_3b_1 & a_3b_2 & a_3b_3 \end{array} \right) \otimes \left(\begin{array}{ccc} c_1&c_2&c_3 \end{array} \right) \end{array}

 

これは 3×3×3 の形になり

 

\begin{array}{llcl} \mathrm{front} & T_{ij1} & & \displaystyle \left( \begin{array}{ccc} a_1b_1 & a_1b_2 & a_1b_3 \\ a_2b_1 & a_2b_2 & a_2b_3 \\ a_3b_1 & a_3b_2 & a_3b_3 \end{array} \right)c_1 \\ \\ \mathrm{middle} & T_{ij2} & & \displaystyle \left( \begin{array}{ccc} a_1b_1 & a_1b_2 & a_1b_3 \\ a_2b_1 & a_2b_2 & a_2b_3 \\ a_3b_1 & a_3b_2 & a_3b_3 \end{array} \right)c_2 \\ \\ \mathrm{back} & T_{ij3} & & \displaystyle \left( \begin{array}{ccc} a_1b_1 & a_1b_2 & a_1b_3 \\ a_2b_1 & a_2b_2 & a_2b_3 \\ a_3b_1 & a_3b_2 & a_3b_3 \end{array} \right)c_3 \end{array}

 

それぞれこんな感じになります。

(成分は T_{ijk}=a_ib_jc_k になる)

 

 

 

 

 

テンソル積の由来と役割

 

これは『ベクトルを自然に拡張する』という

「拡張するような操作」という役割が先にあって

 

\begin{array}{ccc} \mathrm{Vector} &\to& \mathrm{Matrix} \end{array}

 

その結果として

 

\begin{array}{lcl} \begin{array}{lcl} e_1 &=& (1,0) \\ \\ e_2&=&(0,1) \end{array} &\to& \begin{array}{lcl} ae_1 &=& (a,0) \\ \\ be_2&=&(0,b) \end{array} \end{array}

 

「基底」の性質を利用する形になっています。

(基底はこれを実現する上で都合の良い道具だった)

 

\begin{array}{ccc} \left( \begin{array}{c} c_{11} & 0 \\ 0 & 0 \end{array} \right) + \left( \begin{array}{cc} 0 & c_{12} \\ 0 & 0 \end{array} \right) + \left( \begin{array}{cclrl} 0 & 0 \\ c_{21} & 0{} \end{array} \right) + \left( \begin{array}{cccc} 0 & 0 \\ 0 & c_{22} \end{array} \right) \end{array}

 

つまりこれは『要望を実現する手段』であって

 

\begin{array}{lcl} \displaystyle\left(\begin{array}{l} 1 \\ 1 \end{array} \right) \otimes \left(\begin{array}{ccc} 1&1 \end{array} \right) &=& \displaystyle \left( \begin{array}{ccc} 1 & 1 \\ 1 & 1 \end{array} \right) \\ \\ \displaystyle\left(\begin{array}{l} a_1 \\ a_2 \end{array} \right) \otimes \left(\begin{array}{ccc} b_1&b_2 \end{array} \right) &=& \displaystyle \left( \begin{array}{ccc} a_1b_1 & a_1b_2 \\ a_2b_1 & a_2b_2 \end{array} \right) \end{array}

 

テンソルの本質とはあまり関係がありません。

(基底で定義するのが結果的に最も都合が良かった)

 

 

 

 

 

順序の整理

 

ちょっとややこしいのでまとめておくと

 

\begin{array}{lcl} ベクトル &\to& いろいろな操作 \\ \\ 行列 &\to& ベクトルと似たような操作 \\ \\ \\ 行列の積 &\to& ベクトルへ \\ \\ ベクトルの積 &\to& スカラーへ \\ \\ \\ 逆の操作は? &\to& スカラー→ベクトルは直積 \\ \\ &\to& ベクトル→行列はなんとなく \\ \\ &\to& 行列→?も定義できる? \\ \\ &\to& 配列を考えると具体的な形が見える \\ \\ &\to& 具体形を作れる\otimes を想定してみる \end{array}

 

『テンソルの発想』の順路はこのようになっているので

(テンソルを定義できるテンソル積の原型はこの時点で出現)

 

\begin{array}{lcl} スカラーから &\to& 直積でベクトルが作れる \\ \\ ベクトルから &\to& \otimes で行列を作れると考える \\ \\ 行列から &\to& \otimes で拡張できると考える \\ \\ \\ 拡張概念 &\to& 生成物をまとめてテンソルと呼ぶ \\ \\ &\to& \otimes をテンソル積と命名する \\ \\ &\to& テンソルが持つべき性質を整理 \\ \\ \\ &\to& 線形性が指標として浮き彫りになる \\ \\ &\to& テンソルへの要請をそのまま定義とする \\ \\ &\to& テンソル積もその要請で定義される \end{array}

 

『テンソルから』考えるとややこしくなります。

(本質は「線形性」指標のベクトルの拡張)

 

 

 

 

 

テンソル積の構成

 

↑ の発想順で観察できるように

これの役割は『直積の線形的な一般化』です。

 

\begin{array}{lclcl} a_{i}&+&b_{i}&=&c_{i} \\ \\ a_{ij}&+&b_{ij}&=&c_{ij} \\ \\ a_{ijk}&+&b_{ijk}&=&c_{ijk} \\ \\ a_{ijk\cdots}&+&b_{ijk\cdots}&=&c_{ijk\cdots} \end{array}

 

「行列」の形を参考にして

「テンソル」という拡張概念を定めるとして

 

\begin{array}{ccc} \left( \begin{array}{ccc} 1 \\ 1 \end{array} \right) \otimes \left( \begin{array}{ccc} 1 & 1 \end{array} \right) &\to& \left( \begin{array}{ccc} 1 & 1 \\ 1&1 \end{array} \right) \end{array}

 

これを実現する「都合の良い積 \otimes 」を考えると

(この時点ではあえてテンソル積と呼ばず話を進める)

 

\begin{array}{ccc} Ab_1 & Ab_2 & Ab_3 \\ \\ \displaystyle\left(\begin{array}{l} a_1 \\ a_2 \\ a_3 \end{array} \right) b_1 & \displaystyle\left(\begin{array}{l} a_1 \\ a_2 \\ a_3 \end{array} \right) b_2 & \displaystyle\left(\begin{array}{l} a_1 \\ a_2 \\ a_3 \end{array} \right) b_3 \\ \\ \mathrm{left} & \mathrm{middle} & \mathrm{right} \end{array}

 

結果としてこのような形の「良い感じの積」が得られます。

(この時点ではベクトルから行列を得る操作)

 

 

 

 

 

根本的には標準基底が主役

 

↑ の話を見て分かる通り

 

\begin{array}{ccc} \left( \begin{array}{ccc} 1 \\ 1 \end{array} \right) \otimes \left( \begin{array}{ccc} 1 & 1 \end{array} \right) &\to& \left( \begin{array}{ccc} 1 & 1 \\ 1&1 \end{array} \right) \end{array}

 

「都合の良い積 \otimes 」の本質はここに集約されています。

(これが積 \otimes の定義における根本原理になる)

 

\begin{array}{ccc} \left( \begin{array}{ccc} 1 \\ 0 \end{array} \right) \otimes \left( \begin{array}{ccc} 1 & 0 \end{array} \right) &=& \left( \begin{array}{ccc} 1 & 0 \\ 0&0 \end{array} \right) \\ \\ \left( \begin{array}{ccc} 0 \\ 1 \end{array} \right) \otimes \left( \begin{array}{ccc} 0 & 1 \end{array} \right) &=& \left( \begin{array}{ccc} 0 & 0 \\ 0&1 \end{array} \right) \end{array}

 

「標準基底の組み合わせ」を用いれば

 

\begin{array}{ccc} \left( \begin{array}{ccc} 0\\ 1 \\ 0 \end{array} \right) \otimes \left( \begin{array}{ccc} 0&1 & 0 \end{array} \right) &=& \left( \begin{array}{ccc} 0&0 & 0 \\ 0&1&0 \\ 0&0&0 \end{array} \right) \end{array}

 

『任意の位置の成分を取り出せる』ことからも

(より正確にはこの単純な形がたまたま標準基底だった)

 

\begin{array}{ccc} \left( \begin{array}{ccc} a_1 \\ 0 \end{array} \right) \otimes \left( \begin{array}{ccc} b_1 & 0 \end{array} \right) &=& \left( \begin{array}{ccc} a_1b_1 & 0 \\ 0&0 \end{array} \right) \end{array}

 

標準基底」で考えるというのは非常に合理的です。

(これを基礎と置くと良い感じになりそうだと予想できる)

 

 

 

 

 

一般化された定義

 

↑ は『テンソルの本質』であり

「実運用上の感覚に近い」話なんですが

 

\begin{array}{lcl} 配列の感覚 &\to& 単純なベクトルで表現 \\ \\ &\to& 単純なベクトルが標準基底 \\ \\ &\to& 標準基底に限らず一般化できる? \end{array}

 

『標準基底に依存しない』という

「使用範囲の拡大」を目的として

 

\begin{array}{lcl} 拡張の必要性 &\to& リーマン幾何学では必要 \\ \\ &\to& 標準基底を固定すると説明が困難 \\ \\ &\to& 標準基底の存在を固定したくない \\ \\ \\ 基底の存在定理 &\to& 範囲を全てのベクトル空間へ \\ \\ &\to& 基底で定義しても積操作は可能 \\ \\ &\to& 標準基底から基底へ一般化 \end{array}

 

「テンソル積」は『基底』にまで一般化されています。

(だいたいは配列で使うので標準基底で良い)

 

 

 

 

 

表現方法と成分のインデックス

 

また「テンソル積の厳密な定義」は

 

\begin{array}{lclcl} T&=&c && \mathrm{Scalar} \\ \\ T_{i} &=&\displaystyle\sum_{i=1}^{n}c_{i} (e_i) && \mathrm{Vector} \\ \\ T_{ij} &=&\displaystyle\sum_{i=1}^{n}\sum_{j=1}^{m}c_{ij} (e_i\otimes e_j) && \mathrm{Matrix} \\ \\ T_{ijk} &=&\displaystyle\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{k=1}^{l}c_{ijk} (e_i\otimes e_j \otimes e_k) && \mathrm{Tensor}\text{-}\mathrm{Rank}3 \end{array}

 

『位置』を意味する「添え字 i,j,k 」で

 

\begin{array}{ccc} \displaystyle\left(\begin{array}{l} a_1 \\ a_2 \\ a_3 \end{array} \right) \otimes \left(\begin{array}{ccc} b_1&b_2&b_3 \end{array} \right) &=& \displaystyle \left( \begin{array}{ccc} a_1b_1 & a_1b_2 & a_1b_3 \\ a_2b_1 & a_2b_2 & a_2b_3 \\ a_3b_1 & a_3b_2 & a_3b_3 \end{array} \right) \end{array}

 

『座標的な感覚』から直接的に定義されていて

 

\begin{array}{llcl} \mathrm{front} & T_{ij1} & & \displaystyle \left( \begin{array}{ccc} a_1b_1 & a_1b_2 & a_1b_3 \\ a_2b_1 & a_2b_2 & a_2b_3 \\ a_3b_1 & a_3b_2 & a_3b_3 \end{array} \right)c_1 \\ \\ \mathrm{middle} & T_{ij2} & & \displaystyle \left( \begin{array}{ccc} a_1b_1 & a_1b_2 & a_1b_3 \\ a_2b_1 & a_2b_2 & a_2b_3 \\ a_3b_1 & a_3b_2 & a_3b_3 \end{array} \right)c_2 \\ \\ \mathrm{back} & T_{ij3} & & \displaystyle \left( \begin{array}{ccc} a_1b_1 & a_1b_2 & a_1b_3 \\ a_2b_1 & a_2b_2 & a_2b_3 \\ a_3b_1 & a_3b_2 & a_3b_3 \end{array} \right)c_3 \end{array}

 

これにより「成分の位置」は厳密に定義されています。

(ベクトルや行列や行列の並びは表現方法の1つ)

 

 

整理すると

「テンソル T 」という『多次元配列の抽象化概念』は

 

\begin{array}{ccc} テンソル && 添え字 && 成分 \\ \\ T &:& (i,j,k,...) &\to& \mathrm{Value} \end{array}

 

『添え字と値の全単射』として厳密に定義されています。

(添え字が具体的に決まると値が1つ決まる)

 

 

 

 

 

テンソルの要請的定義

 

「テンソルの定義」は

「普遍性」という言葉で誤魔化される部分ですが

 

\begin{array}{lcl} 背景整理 &\left\{ \begin{array}{ll} 空間 & ベクトル空間で線形性を保証 \\ \\ 道具 & テンソル積の実現に基底が最適 \end{array} \right. \end{array}

 

その実態は大まかにはこのようになっていて

(既存定義はここから説明するから意味不明)

 

\begin{array}{ccc} テンソルの本質 & \left\{ \begin{array}{ll} 感覚 & 添え字が多い多次元配列 \\ \\ 表現 & 標準基底でアドレス指定可 \\ \\ 運用 & パラメータ管理や一括処理 \end{array} \right. \end{array}

 

「テンソルのコア」となる定義はこのようになっています。

(背景整理はこれを成立させるための事後的な整理)

 

 

 

 

 

順番の整理

 

定義の順番をまとめると

 

\begin{array}{lcl} 拡張概念 &\to& ベクトルから行列を得る操作 \\ \\ &\to& 多次元配列の感覚 \\ \\ &\to& 表現できる単純なベクトルがある \\ \\ &\to& 単純なベクトルは標準基底とも呼べる \\ \\ \\ 一般化要請 &\to& リーマン幾何学の創出 \\ \\ &\to& 標準基底のみでは狭い \\ \\ &\to& 基底にまで範囲を拡張 \end{array}

 

まず「発想」から『テンソルへの要請』が得られて

 

\begin{array}{lcl} 基底の使用 &\to& 基底成立条件の整備 \\ \\ &\to& ベクトルが使える状態が必要 \\ \\ &\to& ベクトル空間を前提とする \end{array}

 

その「正当化のための背景」として

こういった「線形性」が現れています。

 

 

 

 

 

既存定義が難解な理由

 

これは ↑ の観察から分かる通り

 

\begin{array}{lcl} 複雑な理由 & \left\{ \begin{array}{lcl} 多次元配列 &\to& 源感覚が抽象的 \\ \\ 一般化要請 &\to& 抽象感覚が更に抽象化 \\ \\ 実現背景 &\to& 抽象的な背景で説明 \end{array} \right. \end{array}

 

「実体」が『具体的になり過ぎる』

(元が抽象的過ぎて具体例が具体的になり過ぎる)

 

\begin{array}{lclcl} 抽象的 && ちょっと具体的 && 具体的 \\ \\ 多次元配列 &\to& ベクトルや行列 &\to& 配列 \end{array}

 

これが難しくなっている大きな理由で

 

\begin{array}{lcl} 基底の使用許可 & \left\{ \begin{array}{ll} 自由ベクトル空間 & ベクトル使用許可 \\ \\ 商ベクトル空間 & ベクトル空間維持 \end{array} \right. \end{array}

 

これらが「正当化の背景」でありながら

(テンソルはこの上で成立する何かとする)

 

\begin{array}{ccc} 正当化背景 &\to& 添え字と成分の1対1対応 \\ \\ 基底 &\to& T_{ijk...} \end{array}

 

『前面に出てしまっている』点も原因としては大きいです。

(これらは「数理的に扱える保証」であって本質ではない)