記号的テンソル

Wolframシステムはあらゆる深さおよび次元のリスト,行列,配列を効率的に操作する関数を多数提供している.その中には,総和,総積,内積,外積,転置等を行う関数がある.Wolframシステムはこれらの配列を表す式の代数的組合せを操作するパワフルなアルゴリズムも備えている.これらの式は記号配列あるいは記号テンソルと呼ばれる.これらの記号配列に関する特性(主に階数,次元,対称性)に関する指定された特性を考えることにより,これらの特性に従って,配列の大きな領域の任意メンバに有効な結果を構築し証明することができる.
行列は階数2の配列であり,対称,反対称,あるいは対称性が全くない場合がある.高階のテンソルは,完全に対称か完全に反対称という場合があるが,レベルやスロットの転置により多数の他のタイプの対称性を示すこともある.物理学や数学に関係するテンソルは通常対称である.対称の慣性テンソル,反対称の電磁場,弾性における階数4の剛性テンソル,多様体に対する階数4のリーマン曲率テンソル,完全に反対称の積形式等がそうである.ベクトルのように対称性のない初等オブジェクトを扱う場合でも,それを繰返し使うことで対称性が現れる.Wolframシステムは通常の配列でも記号配列でも,任意の深さや次元の配列の転置対称性を記述する汎用言語を導入している.対称性の言語の説明については,「テンソルの対称性」をご覧いただきたい.
記号配列の領域
与えられた記号式 expr は形式Element[expr,adom]adom はその領域のすべての配列が共有する特性を指定する)の仮定を使って,指定された配列の領域 adom に属することができるようにすることができる.
Arrays[{d1,,dr},dom,sym]
与えられた次元,要素型,対称性の配列
Matrices[{d1,d2},dom,sym]
与えられた次元,要素型,対称性の行列
Vectors[d1,dom]
与えられた次元,要素型のベクトル
記号配列の領域
実対称行列の特性を抽出する:
テンソル積等のテンソルの組合せの特性を計算することもできる:
対称性は配列の次元と互換でなければならない:
一般的な記号テンソル式は,テンソル積,転置,縮約の3つの基本操作を使って記号テンソルを組み合せることにより形成された項の線形結合として理解することができる.他の基本的代数操作はこれに関して分解することができる.
TensorProduct[t1,t2,]
テンソル ti のテンソル積
TensorTranspose[t,perm]
置換 perm によるテンソル t の転置
TensorContract[t,pairs]
テンソル t のスロット対の縮約
基本的なテンソル操作.
新しい記号テンソルオブジェクトを宣言する:
次は配列 b の転置である:
次と比較する:
次は配列 a のレベル1と3の縮約である:
縮約は次元が矛盾していてはならない:
総和の中の項はすべて同じ階数と次元でなければならないが,対称性は同じである必要はない:
テンソルの標準化
計算機代数では普通であるが,最も大切な計算ステップの一つは,可能な限り一般式を標準形に変換するというものである.転置対称だけが関与している場合は,特化された群論アルゴリズムを使って,記号テンソル多項式をそのような標準形に変換することが常に可能である.しかし高階数等が絡む複雑な場合は,時間もかかり必要なメモリも大きくなる.
TensorExpand[texpr]
テンソルの総和と総積を展開する
TensorReduce[texpr]
項を対称性について標準化する
テンソルの標準化
さまざまな実テンソルの特性を宣言する:
次のような記号テンソル式がある:
TensorExpandは総和や総積を展開し,基本恒等式を適用する:
TensorReduceは同じ操作を適用し,テンソルを辞書順に並べ替え,対称性情報を使う.縮約項には対称テンソルと反対称テンソルの縮約がかかわっているため,次の例では縮約項がなくなる:
TensorReduceは常にTensorContractあるいはTensorTransposeの内部でTensorProductを動かす:
TensorReduceは常にTensorTranspose内部でTensorContractを動かす:
スカラー因数(Pの縮約の場合)は,可能な場合分離される:
次の例題では,反対称行列のベキ乗のトレースを調べる.任意次元の行列Aでは,Tr[MatrixPower[A,n]]は奇数の n では消滅するが,偶数の n では消滅しない.これはTensorProductおよびTensorContractでベキ乗とトレースを構築し,TensorReduceを使ってその式を正規化することで例示される.
Aが任意次元の反対称行列であることを宣言する:
TensorContractTensorProductを使って表現を構築する:
n の小さい値に対する結果である:
より複雑な例題は,リーマンテンソルのスカラー多項式の標準化によって与えられる.ここでは,リーマンの回転対称性ではなく転置対称性(置換対称性とも言われる)だけが使われる.
次はリーマン転置対称性の指定である:
24種類の転置が可能である:
この中で3つだけが標準形である:
n のリーマンテンソルのテンソル積における m 対のスロットのランダムな縮約を与える:
2つのリーマンテンソルでは3つの縮約がある:
25のテンソル(100個のスロット)と40の縮約のペアを含む大きい場合は次のようになる: