関数としてのテンソル
- テンソルのことを書いている。
- Mathematicaの記事は良い。Metric tensor はこちら、Permutation tensor はこちら、クロネッカーのデルタはこちら
- 自分用のメモとして、ここにも自分なりのてすさびとして、書く。
- テンソルはベクトル空間の関数である。
- ベクトル空間に定義された関数であるテンソルは、引数としてベクトルをとり、その関数で定められた階数・次元のテンソルを返す。
- 今、n次元の2つのベクトルを引数として、スカラー(階数0のテンソル)を返す関数を考える。返される値は、階数が0だから、添字数は0。一方、引数として渡されたベクトルはそれぞれ添字数が1で、その次元はn。したがって、このような関数として定義されるテンソルは、2種類の引数側の添字を用いて、返り値として引数なしの値を返す。テンソルにおいては、引数の値のすべてのペア(nxn)について、どういう処遇にするかを決めておくことが必要である。言い換えれば、nxn要素のテンソルがこのような処遇決定をすることができる。たとえば、第1引数のベクトルと第2引数のベクトルの要素の積を求め、2ベクトルの添字が等しいときにそれに1をかけ、2ベクトルの添字が等しくないときには0をかけた上で、nxnの要素を全部足し合わせる処理を考える。今、
- なるを定義すれば、この処理の解はで表される。Einsteinの省略(異なる添字を持つ値は全部足し合わせるから記号は全部省略)で書き直せば、
- このようなを要素に持つ、2階、(n,n)次元のテンソル(ベクトル)、が、上記処理(引数として2ベクトルをとって、ある規則でスカラーを返す)関数のテンソル表現である
- 引数側に合わせて2つの添字があって、返り値側に添字がなかなったので、このような関数テンソルは添字数は2つだった(関数の階数(添字数)=引数側階数(添字数)+返り値側階数(添字数))。
- 次にn次元のベクトル2つを引数として取って、m次元のベクトルを返すことを考える。計算に用いることができる要素の数は2つの引数から与えられる値の組み合わせnxnで変わらない。nxnの値から、m個の値を計算するとすると、mx(nxn)個の値を決める必要がある。このmx(nxn)の値は階数3、次元数(m,n,n)のテンソルで与えることができる。
- 簡易な説明サイト等では、これ以上のことが書かれておらず、それしか参照していない身としては、若干自信がないところであるが、今、n1階のテンソルとn2階のテンソルを引数として、n3階テンソルを返すためには、n1+n2+n3階の関数テンソルを定義すればよいだろう。