符号张量
Wolfram 系统提供了大量函数,以有效处理任意深度和维度的列表、矩阵和数组. 其中,有些函数可以执行代数操作,例如求和、乘积、内积或者外积、转置等. Wolfram 系统也有强大的算法,可以操作表示这些数组的表达式的代数组合. 这些表达式被称为符号数组 或者符号张量. 但是假定关于这些符号数组的给定的属性(主要是阶数、维度和对称性),您可以构建并且证明对遵循这些属性的数组的较大的域的任意成员都是有效的结果.
矩阵是阶数为 2 的数组,可以是对称的、反对称的或者一点都没有对称性. 高阶张量可以是完全对称或者完全反对称的,但是它们也可以在对层或槽换位时有许多其他对称类型. 在物理和数学中的相关张量通常有对称性:对称惯性张量、反对称电磁场、阶数为4的弹性张量、阶数为4的黎曼流形曲率张量、完全反对称的立体形式等. 即使当您作用于没有对称性的基本对象,例如向量时,重复使用它们都将出现对称性. 对普通数组和符号数组, Wolfram 系统都引入了一种通用的语言来描述任意深度和维度的数组的任意转置对称性. 参见 "张量对称性" 以获取对称性语言描述.
Arrays[{d1,…,dr},dom,sym] | 具有给定维度、分量类型和对称性的数组 |
Matrices[{d1,d2},dom,sym] | 具有给定维度、分量类型和对称性的矩阵 |
Vectors[d1,dom] | 具有给定维度和分量类型的向量 |
TensorProduct[t1,t2,…] | 张量 ti 的张量乘积 |
TensorTranspose[t,perm] | 置换 perm 下张量 t 的缩并 |
TensorContract[t, pairs] | 张量 t 中位置对的缩并 |
在计算代数中,一个最重要的计算步骤是把通用表达式转化为正则形式,如果可能. 当只设计转置对称性时,总是可能把符号张量多项式转化为这样的正则形式,使用特定的群论算法. 但是,对于涉及较高阶数的情况,它会消耗大量时间和内存.
TensorExpand[texpr] | 展开张量和式和乘积 |
TensorReduce[texpr] | 将关于对称性的项目进行正则化处理 |
TensorExpand 在乘积中展开和式,并且应用基本恒等操作:
TensorReduce 应用相同操作,按字母顺序对张量排序,并且使用对称性信息. 在这个例子中,缩并项目消失了,因为它涉及对称和反对称张量的缩并:
下一个例子研究反对称居住证的幂的迹. 对于任意维度中的这样的矩阵 A,Tr[MatrixPower[A,n]] 对奇数 n 化为零,但是对于偶数 n 并非如此. 这通过构建关于 TensorProduct 和 TensorContract 的幂和迹,并且将使用 TensorReduce 的表达式正则化显示出来.