什么是张量 (tensor)?

关注者
8,236
被浏览
2,758,707

189 个回答

现在已有的回答都好吓人...

对于大部分已经熟练的数学和物理工作者, 这实在是一个极为基础的问题. 但这个问题在我刚接触张量时也困扰了我很久. 张量的那么多定义, 究竟哪些是对的? (显然都是对的. ) 它们的关系是什么? 我尽可能简单地用我自己的话把我对它粗浅的理解讲得明白些.

  • A View from Physics

张量的概念早在19世纪末就被数学家提出了, 但这个概念真正发扬光大, 还是在相对论出现以后. 原因是, 在相对论中, 在不同的参考系下看同一个物理系统, 它"看起来"是不一样的: 比如粒子的动量和能量在不同的参考系下根据 Lorentz 变换相联系.

这带来一个问题: 在 Bob 看来, 一个粒子的能动量是(E_b,\bm{p}_b). 如果你问 Bob, 这个粒子的能动量是多少, 他会告诉你是(E_b,\bm{p}_b). 但我 (Andrew) 听了以后, 必然是反对的: Bob 说的不对! 我看到的粒子的能动量明明是(E_a,\bm{p}_a)!

我们知道, Andrew 和 Bob 都没有说错. (E_a,\bm{p}_a)(E_b,\bm{p}_b)可以通过恰当的 Lorentz 变换相互转化. "你说的我都懂", 想必你已经看得不耐烦了, "可是这个粒子的能动量究竟是多少? " 由于参考系都是平权的, Andrew 和 Bob 的参考系并没有哪个更优越. 那我们干脆把它们都舍弃. 于是我们说, 这个粒子的能动量就由能动量张量T来描述. 能动量张量是一个不随坐标而改变的, 物理系统内在的量. (如果你对左边这句话的确切含义感到疑惑, 请先往下看. ) 它在 Andrew 的坐标系里看是(E_a,\bm{p}_a), 在 Bob 的坐标系里看是(E_b,\bm{p}_b), (E_a,\bm{p}_a)按照 Lorentz 变换变成(E_b,\bm{p}_b).

你现在肯定找到了一点感觉. 什么是张量? 如 A.Zee 书中所说: A tensor is something that transforms like a tensor! 一个量, 在不同的参考系下按照某种特定的法则进行变换, 就是张量.

用张量有什么好处? 物理定律是不会随参考系的变化而变化的. 考虑下面一个物理过程: 两个粒子1和2经过散射变成了3和4. 在 Andrew 看来, 能动量守恒是(E_{a,1},\bm{p}_{a,1})+(E_{a,2},\bm{p}_{a,2})=(E_{a,3},\bm{p}_{a,3})+(E_{a,4},\bm{p}_{a,4}). 但这样写, 并不能直接看出 Bob 也看到能动量守恒. 但如果用张量的语言直接写成: T_1+T_2=T_3+T_4, 我们立刻就知道它在 Andrew 看来是(E_{a,1},\bm{p}_{a,1})+(E_{a,2},\bm{p}_{a,2})=(E_{a,3},\bm{p}_{a,3})+(E_{a,4},\bm{p}_{a,4}), 在 Bob 看来是(E_{b,1},\bm{p}_{b,1})+(E_{b,2},\bm{p}_{b,2})=(E_{b,3},\bm{p}_{b,3})+(E_{b,4},\bm{p}_{b,4}). 用张量语言描述的物理定律自动保证了不随参考系变化的这一性质. 而且从记号的角度看, 用张量也更加简洁. [*]

  • Let us go deeper

我们已经从物理上理解了什么是张量. 物理学家到此就很满意了. 但严谨的数学家们并不满意. "你刚刚说张量是一个不随坐标而改变的, 物理系统内在的量", 数学家质问道, "你说的我都懂, 可是张量究竟是什么?"

如果你对线性代数略知一二, 可能知道线性变换这个概念. 线性变换这个概念的精髓之处在于, 它不依赖于线性空间的基的选取. 在某一组基下, 它的矩阵表示A是一个模样; 在另外一组基下, 它的矩阵表示A'=TAT^{-1}是另一个模样, 其中T是基变换矩阵. 有一种常见的说法: 矩阵的意义是线性变换, 相似矩阵是同一个线性变换在不同的基下的表示.

慢着! "同一个线性变换在不同的基下的表示", 这难道不就是和之前说的张量是一回事嘛! Lorentz 变换就是 Minkowski 空间中的基变换, 能动量张量实质上就是一个线性变换. Andrew 和 Bob 看到的能动量张量, 不就是这个线性变换在不同的基下的表示吗?

你现在肯定找到了一点感觉. 什么是张量? 在数学家眼中, 张量已经被抽象成了线性变换.

当然, 数学家们还可以再进一步抽象这个概念, 提取出更普遍的 universal property. 这时, 张量被定义为张量积空间中的一个元素. 具体的定义不在此赘述, 请参考相关专著. 但尽管已经抽象到那样的程度, 其背后的思想依然是不变的.

如果你通过上面的阅读理解了张量背后的思想, 再去看相关数学或物理专著上或繁杂或抽象的式子, 或许会开朗很多 :-)


最后引用陈维桓先生的《微分流形初步》一书中的一段话进行总结:

张量的概念是 G.Ricci 在19世纪末提出的. G.Ricci 研究张量的目的是为几何性质和物理规律的表达寻求一种在坐标变换下不变的形式. 他所考虑的张量是如同向量的分量那样的数组, 要求它们在坐标变换下服从某种线性变换的规律. 近代的理论已经把张量叙述成向量空间及其对偶空间上的多重线性函数, 但是用分量表示张量仍有它的重要性, 尤其是涉及张量的计算时更是如此.

[*] 如果还定义了内积/缩并等运算, 还可以由张量迅速得到一些不变量. 此时会涉及对偶空间(因为内积本质是个线性函数)等概念, 进而涉及张量的协变和逆变. 为了行文简洁, 我在正文中没有提及这些概念. 但它们本质上和正文所说没有区别.

好老的问题了,来凑个热闹.......



1,矢量空间:

对于一个矢量空间 V ,即定义了其中元素加法和数乘的集合。其中的元素称为矢量。当然只要满足矢量空间的定义的集合都是矢量空间,其中的元素可以是:“箭头”(有向线段),一组数,函数,算子,之类乱七八糟的东西,只要满足矢量空间的定义就OK

2,对偶空间:

对于一个矢量空间 V ,我们可以很自然的定义它的对偶空间 V^* ,其中的元素是 VR 的线性映射, \omega:V\to R 。我们可以很自然的定义 \omega 之间的加法和数乘。所以 V^* 也是一个矢量空间,其中的元素 \omega 称为对偶矢量。

3,张量积空间:

我们刚才考虑了线性映射 \omega:V\to R (给一个矢量,出一个实数),发现所有这样线性映射的集合,可以很自然的定义加法和数乘,故全体线性映射的集合构成了一个矢量空间 V^* 。既然如此,我们不如搞个大新闻,我们考虑多重线性映射 T:V^*{\times}...{\times}V^*{\times}V{\times}....{\times}V \to R (给k个矢量;l个对偶矢量,出一个实数),我们发现这个映射之间也可以定义加法和数乘,于是乎,全体这样多重线性映射的集合也构成一个矢量空间,记做 V_{k}^l (我们称其为张量积空间),其中的元素是多重线性映射 T ,给k个对偶矢量;l个矢量,出一个实数。

于是,只要你给我一个矢量空间 V ,我就能很自然地构造出许多的矢量空间 V_{k}^l 来。容易发现我们刚刚所说的对偶空间 V^* 实际上就是 V_{0}^{1} ;而矢量空间 V 可以理解为 V_{1}^{0} (由于 VV^{**} 自然同构)。

例如,考虑二维矢量空间 V ,我们选定矢量 e_{1}^ae_{2}^a 作为基底(上标a是抽线指标,仅仅指明张量类型)。那么他俩的线性组合的全体就可以张成整个矢量空间 V 。我们现在由它来生成一个张量积空间试试。我们来生成 V_{2}^0 ,利用之前给定的 V上的基底,其基底为: e_1^a\otimes e_1^ae_1^a\otimes e_2^ae_2^a\otimes e_1^ae_2^a\otimes e_2^a 。我们用着四个基底就可以张成 V_2^0 。(我们这里省略了一些内容:多重线性映射的集合作为矢量空间,同构与相应的张量积空间。但这并不影响我们进一步的讨论。)

其实这里我们不仅仅可以考虑张量积空间,我们还可以“生成”V上的外r次矢量空间。全体外r次矢量空间 \sum \Lambda^r 在楔积 \wedge 下构成一个代数,称为外代数。

4,张量是什么?

现在来回答张量是什么:张量是张量积空间 V_{k}^l 中的一个元素,称为(k,l)型张量。啊咧,你也许会说,这和我通常见到的张量的概念咋不一样呢?别着急啊,你没有选定基底啊。

(1)对于 V_{1}^0 ,我们选定一组基底 e_{\mu}^{a} ( \mu=1,...,n ),我们可以把任意一个矢量表示为: v^a=v^{\mu}e_{\mu}^a 。注意这里,基底 e_{\mu}^a 是(1,0)型张量(矢量),而 v^{\mu} ( \mu=1,...,n )是 v^a 在每个基底下的分量,它是n个实数排列成的数组。

(2)更广泛的,对于(2,1)型张量,我们有 T^{ab}_c=T^{\mu\nu}_{\sigma}e_{\mu}^a\otimes e_{\nu}^b\otimes e^{\sigma}_{c} ,同样这里基底 e^{\mu}_a\otimes e_{\mu}^b\otimes e^{\sigma}_{c} 是(2,1)型张量,而 T^{\mu\nu}_{\sigma}T^{ab}_{c} 在每个基底下的分量。他可以看做是 n^3个实数排列成的三维数阵(就好像一个魔方一样)。

(3)由于基底的选择是很任意的,在不同基底下的分量也是不同的。当基底改变时,新老两组基底下的分量(一堆数)当然是有一定关系的。它们之间满足一定的变换规律。

例如: T^{\mu\nu}=\frac{\partial x^\mu}{\partial y^\alpha}\frac{\partial x^\nu}{\partial y^\beta}T^{\alpha\beta} ,于是乎,张量在给定基底下也可以被定义为:满足某种变换规律的一组数。这些数可以写成一竖行就是一阶张量;写成一个二维数阵就是二阶张量;写成三维立体数阵就是三阶张量......

5,哪来的矢量空间?

刚刚说了,你给我一个矢量空间,我就可以利用它定义一堆张量积空间。那么一开始的矢量空间谁给我呢?这个答案是不一定的,这取决于你应用的场合。不过在物理学中,有一种矢量空间是值得关注的。即,流形 M 上的切空间和余切空间。

给定一个流形,其上微分结构可以自然诱导出两个矢量空间:切空间,和它的对偶空间余切空间。切空间是流形上曲线的等价类(在该点关于曲线参数的导数相同)组成的集合,即商空间 T_xM=\Gamma/\sim ;余切空间 T_x^*M 是商空间 F_x/H_x ,其中 F_x 为流形x点的光滑函数芽的集合, H_p 为x点关于局部坐标一阶偏导数为零的光滑函数芽的集合。

简单的说流形 M 上每点都对应着两个矢量空间:切空间 T_xM (源于流形上的曲线);余切空间 T_x^*M (源于流形上的函数)。这样我们就可以把关于多重线性代数的东西全部“搬”过来了。我们可以自然的生成流形每点对应的张量积空间。

6,张量丛和张量场:

流形 M 上每点都对应着由切空间和余切空间“生成”的张量积空间,我们可以由此定义(k,l)型张量丛的概念,即流形上所有点对应的张量积空间的并集 E=\bigcup T_k^l ,它可以被自然的定义成一个微分流形。丛流形 E 与底流形 M 之间存在着自然的投影映射 \pi:E\to M ,它把丛流形 E 中一点(一个张量)投影成对应流形上的一点,三元组 [E,\pi,B] 构成一个纤维丛。类似地,我们也可以通过在余切空间上做外代数,得到r次外形式丛。

局域截面 \sigma:U\to EU\subseteq M ),即为流形上的张量场。通俗的说,就是流形上每点“钦定”一个(k,l)型张量,就可以构成一个(k,l)型张量场了。给定流形 M 上的局部坐标系 \psi:U\to V ,我们可以利用它给出该区域中切空间和余切空间的坐标基底,于是张量便可以用“一堆数”来描述了。同样我们也可以给定另一个坐标系,那么张量在两组坐标基底下的分量就可以按照相应的变换规律去变换了。

7,张量与不变量:

张量在物理中很重要的作用就是刻画不变量。

物理学要求物理学规律不会随着观测者的变化而变化,我们可以把某些物理学定律写成一个张量等式,例如: \nabla^{a}F_{ab}=-4\pi J_b 。尽管观察者测量出的数值(分量)可能不同,但物理学的规律是相同的(张量等式成立,只是选了不同的基底展开而已)。



简单的说啊,这都是由一个矢量空间引发的血案啊。