符号张量

Wolfram 系统提供了大量函数,以有效处理任意深度和维度的列表、矩阵和数组. 其中,有些函数可以执行代数操作,例如求和、乘积、内积或者外积、转置等. Wolfram 系统也有强大的算法,可以操作表示这些数组的表达式的代数组合. 这些表达式被称为符号数组 或者符号张量. 但是假定关于这些符号数组的给定的属性(主要是阶数、维度和对称性),您可以构建并且证明对遵循这些属性的数组的较大的域的任意成员都是有效的结果.
矩阵是阶数为 2 的数组,可以是对称的、反对称的或者一点都没有对称性. 高阶张量可以是完全对称或者完全反对称的,但是它们也可以在对层或槽换位时有许多其他对称类型. 在物理和数学中的相关张量通常有对称性:对称惯性张量、反对称电磁场、阶数为4的弹性张量、阶数为4的黎曼流形曲率张量、完全反对称的立体形式等. 即使当您作用于没有对称性的基本对象,例如向量时,重复使用它们都将出现对称性. 对普通数组和符号数组, Wolfram 系统都引入了一种通用的语言来描述任意深度和维度的数组的任意转置对称性. 参见 "张量对称性" 以获取对称性语言描述.
符号数组的域
使用形如 Element[expr,adom] 的假定,给定的符号表达式 expr 属于给定的数组的域 adom,其中 adom 指定由该域的所有数组共享的属性.
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 中位置对的缩并
基本张量操作.
声明新符号张量对象:
这是数组 b 的转置:
与下面比较:
这是数组 a 的第一层和第三层的缩并:
缩并必须在维度上保存一致:
和式中的所有项必须具有相同的阶数和维度,但不一定是相同的对称性:
张量正则化
在计算代数中,一个最重要的计算步骤是把通用表达式转化为正则形式,如果可能. 当只设计转置对称性时,总是可能把符号张量多项式转化为这样的正则形式,使用特定的群论算法. 但是,对于涉及较高阶数的情况,它会消耗大量时间和内存.
TensorExpand[texpr]
展开张量和式和乘积
TensorReduce[texpr]
将关于对称性的项目进行正则化处理
张量正则化.
声明各种实张量的属性:
目前,您可以有如下的符号张量表达式:
TensorExpand 在乘积中展开和式,并且应用基本恒等操作:
TensorReduce 应用相同操作,按字母顺序对张量排序,并且使用对称性信息. 在这个例子中,缩并项目消失了,因为它涉及对称和反对称张量的缩并:
TensorReduce 总是将 TensorProductTensorContract 或者 TensorTranspose 中移动:
TensorReduce 总是将 TensorContractTensorTranspose 中移动:
如果可能,标量因子(在这种情况下,P 的缩并)被分隔:
下一个例子研究反对称居住证的幂的迹. 对于任意维度中的这样的矩阵 ATr[MatrixPower[A,n]] 对奇数 n 化为零,但是对于偶数 n 并非如此. 这通过构建关于 TensorProductTensorContract 的幂和迹,并且将使用 TensorReduce 的表达式正则化显示出来.
声明 A 是一个任意维度空间中的反对称矩阵:
构建使用 TensorContractTensorProduct 的表示法:
这些是较低的 n 值的结果:
更复杂的例子由黎曼张量中标量多项式的规范化给出. 这里,只使用转置对称性(也称为置换对称性或者 monoterm 对称性),并且没有黎曼循环对称性.
这是黎曼转置对称性的指定:
这里有 24 个可能的转置:
但是,只有三个(至多是符号)是规范的:
这里给出 n 个黎曼张量的张量乘积中 m 个位置对的随机缩并:
这是具有两个黎曼张量的三个缩并:
更大的情况,涉及 25个张量(100位置)和40个缩并对: