テンソルの対称性
二階以上のテンソルは通常スロットの交換の下で対称性を持つ.例えば,慣性テンソル,エネルギー・運動量テンソル,リッチ曲率テンソルは二階完全対称テンソル,電磁テンソルは二階歪対称テンソル,リーマン曲率テンソルと剛性テンソルは非自明な対称性を持つ四階テンソルである.Wolframシステムはあらゆるテンソルのスロットの置換による任意の対称性を記述する汎用言語を備えている.また,記号テンソル計算において不可欠なステップとして,このような対称性の下でテンソルに一意の標準形式を与える効率的なアルゴリズムを実装している.
{permutation,phase} | 対称性生成子の一般形 |
TensorTranspose[tensor,gen] | テンソルに対する対称性生成子の動作 |
生成子を連続して使うことは,生成子の積に等しい.ここで段階と置換は別々に乗算される.実際,2段階の置換の下でテンソルが不変であれば,その積の下でも不変である.このように,施されてもテンソルが不変である段階的置換の集合は,テンソルのスロット対称群という群を作成する.
関数TensorSymmetryはテンソルの転置対称の完全な記述を返す.これは名前付きの対称性として与えることもできれば,置換積およびベキ乗によって残りを構築するもととなっているいくつかの対称生成子のリストとして与えることもできる.
TensorSymmetry[tensor] | tensor の転置対称を見付ける |
Symmetric[{s1,…,sn}] | 任意の2スロット si を交換してもテンソルの符号は変わらない |
Antisymmetric[{s1,…,sn}] | 任意の2スロット si を交換するとテンソルの符号が変わる |
ZeroSymmetric[{s1,…,sn}] | 任意の零テンソルの対称性 |
{symgen1,…,symgenm} | テンソルの対称性生成子のリスト |
{sym1,…,symk} | 対称性指定の直接の積 |
一般的に,TensorSymmetryはテンソルの対称性を,生成子のリストとして返す.置換は巡回形式で与えられる:
関数Symmetrizeを使って配列を対称化することで,配列の対称性を向上させることができる.結果はSymmetrizedArray型の構造化配列として与えられる.この構造型の詳細は「対称化された配列」を参照されたい.
Symmetrize[tensor,sym] | tensor を対称性 sym まで対称化する |
SymmetrizedArray[rules,dims,sym] | 独立要素を与える,対称性のある配列を構築する |
SymmetrizedArray[StructuredData[dims,{rules,sym}]] | 対称性のある配列の構造配列表現 |
その歪対称部に投影すると,結果は独立成分だけを保存するSymmetrizedArrayオブジェクトとして与えられる:
独立成分と従属成分
SymmetrizedIndependentComponents[dims,sym] | 指定された次元と対称性を持つ配列の独立成分 |
SymmetrizedDependentComponents[comp,sym] | 対称性のもとで与えられた成分に関連付けられた従属成分 |
関数SymmetrizedIndependentComponentsを使って,対称性指定の例をもう少し挙げる.
単位根が ϕ の段階的置換{perm,ϕ}の場合,一般に ϕn1(n はPermutationOrder[perm]により与えられる perm の置換の位数)でなければならない.そうでないと,生成子はゼロテンソルの対称にしかなれない.この場合,生成子は矛盾している,あるいは自己矛盾と言われる.テンソルの対称性は,たとえ自己矛盾のない生成子で表現されていてもゼロテンソルだけに対応する.つまり,自己矛盾のない生成子の組合せで,自己矛盾のある生成子ができることがあるのである.