张量就是物理量,与张量相关的数学是对高维 (维数 ≥ 2) 的物理量进行 “量纲分析” 的一种工具。同一个物理量可以由不同的向量/矩阵表示出来,这是由线性空间(通常是流形的切空间)的对称性决定的。
先发一个微信里看到的雷人数学题,这个其实对于理解张量分析很有帮助。
某同学为了证明钱缩水,做了一道题,把数学老师逼疯了!高级数学题:
求证:1元=1分
解:因为1元=100分
=10分×10分
=1角 ×1角
=0.1元×0.1元
=0.01元
=1分
证明完毕。
数学老师哭了!
因为,毫无破绽。
稀里糊涂地钱就没了… 正如现在的社会!
其实破绽很明显——100分并不是 10分*10分,100分是 10分*10,而 10分 * 10分是 100 分^2, 所以最后应该得到 0.01 元^2, 而 1元^2 = 10000分^2,所以 0.01 元^2 就是 100 分^2。(如果觉得元和分这些单位有点抽象的话,不妨把元和分换成米和厘米,用长度和面积来理解一下,我们显然不会说 1 米 = 100 厘米 = 100 平方厘米,前者是长度,后者是面积,根本不是一回事)
这里的核心问题是,100 分^2 和 100 分根本不是一个线性空间里的量,不能简单等同起来,要等同起来,必须选定一个同构。说具体点就是,如果是一分钱生成的自由-模,也就是说,是 “金额的实数轴”,这是一个上的一维线性空间。则100 分^2 所在的空间是,和都是一维线性空间,所以可以选取一个同构把1分映到1分^2. 但是这个映射并不把1元映到1元^2, 而是把1元映到0.01元^2, (1元 = 100 分 100 分^2 = 0.01 元^2) 所以反过来的时候,0.01元^2 自然对应回了1元…… 所以并没有矛盾。
现在来解释开头那句话(张量就是物理量,与张量相关的数学是对高维 (维数 ≥ 2) 的物理量进行 “量纲分析” 的一种工具)。
1. 什么是数? 什么是量?
这是两千五六百年前希腊先贤讨论的问题之一(好像是 Miletus 的泰勒斯,欢迎指正)。最笨的解答是:量是有单位的,数没有。这个解答其实很有道理。1, 2, 3, 3.14, π, 这样的叫 “数”,5米,五块钱,500厘米,这样的叫量。数字上 5 ≠ 500, 但是 5 米和 500 厘米对应的物理量是一样的,这个物理量,就是 “空间中的某一段距离”,这个距离,即使对完全不理解人类语言的生物,也是实实在在的。而无量纲的数字,通常是一个物理量的比值,比如五公里里面的 5,是五公里对应的长度和公里这个单位长度的比值。
2. 如何描述速度这个物理量?
说 “速度” 是一个物理量,应该没人会反对。两个小学生,没有卷尺和秒表,也可以通过赛跑来比较自己的速度。观看赛马比赛的时候,不同马匹在同一时刻有不同的速度,这很容易察觉。但是日常生活中,通常速度被用一个数字表示,比如 72 km/h, 或者 20m/s. 熟悉这两个单位的人应该能看出,72 km/h 和 20m/s 是同一个物理量,他也可以用 72000m/h, 或者 65.6168 ft/s (英尺/秒)。如何不依赖于上面这些单位的选取,来描述 “速度” 这个概念呢?
有人可能会说,这个简单,距离这个概念,是个物理量,时间这个概念,也是个物理量,要抛开单位谈速度(也就是给出速度的一个内蕴的定义),只需要把它定义成距离的变化量 Δs 和时间差 Δt 的比值,在 Δt → 0 的时候的极限。也就是说,如大家熟悉的,. 对这个公式,也许你会说,不就是求导么。新的问题来了,没有选取单位, 都不是一个 “函数”(换句话说,并不把数值映射到数值,只是把物理量映射到物理量),如何 “求导” 呢。只好用一个格调稍微高点的说法, 是时间轴到空间轴的一个映射,这里时间轴和空间轴都是两个一维流形,未选取任何坐标系。而 其实是的切空间到的切空间的一个线性变换。一维线性空间之间的线性变换,只要选定了 “单位”,就可以用一个数字来表示,所以大家一般不这么说。但是,明确了速度这个物理量,其实是一个一维空间之间的线性变换这一点,其实对理解它的数值表示,很有帮助。比如 72 km/h 这个量,他的数值表示是 72. 如果把时间的单位换成 s (秒) —— 在时间轴的切空间上换了个坐标系 —— 而新旧坐标系之间的关系是,1h = 3600s,则新的数值表示,变成了 72/3600 = 0.02. 新的数值 0.02 表示同一个物理量,只不过单位是 km/s 而已。类似地,空间轴如果换个坐标系,比如把千米变成米,也会得到一个新的数值来表示同一个物理量,数值是 20,实际上是 20 m/s.
上述内容在一维的情形怎么说都像是抽象的废话。但是核心在于不同的数值可以表示同一个物理量。高维的情形就没那么平凡了。但是说穿了也很简单,不同的向量可以表示同一个物理量。一维的情形,不同的数值之间只差一个倍数,所以很平凡。高维的情形,不同的向量之间差的就是(切空间上的)线性变换,所以没有那么平凡。[这里还想话痨几句,但是有点跑题,参见末尾的 P.S.]
回头来看看三维空间中的 “速度” 这个概念,有助于加深理解。三维空间中的速度,也是一个物理量,选定了坐标系和单位,也可以用三个数字来表示。但是日常生活中我们基本不会说,我的速度是 (3, 5, 7). 因为没有简单的选取坐标系的办法。同样地,在物理上,经常遇到需要变换坐标系的情形(因为任何坐标系的选取都是人为的,没有哪个坐标系更好)。
比如(三维)流形上的一个点,选定了局部坐标系,就对应于三个数,换个坐标系,就得到另外三个数,这之间只相差一个坐标变换。如果有映射, 对应于 “运动”,就可以讨论 “速度” 这个概念。处的速度是什么呢? 作为一个物理量,它当然不是三个数字,而是切空间的映射, 这里是有现成的坐标的(读者不妨想想是啥),所以就由切空间中的一个向量给出,到这里还是一个抽象的向量,只有选了坐标系,才变成三个数(坐标值),而这三个数,是依赖于坐标选取的。所以切空间里的一个向量(“速度”),要用三个数表示的话,其实包含了很多额外的 data: ,后面这个 就是坐标的选取。换一组坐标(也就是替代掉)的话,这三个数字也会跟着变,这就是最基本的张量分析了。
3. 更复杂的物理量怎么表示?
有些物理量,并不简单地生活在切空间中,而是切空间上的线性变换,或者二次型(比如转动惯量,比如动能),或者落在切空间的对偶空间中,这种时候就考验线性代数的水平了。不用坐标系理解一个概念的能力越强,越容易理解张量。
=================================
P.S. 上面说到不同的向量可以表示同一个物理量。更复杂的情形,就是高阶张量,比如切空间上的二次型,抽象地看是二次型,具体写出来是对称矩阵,变换起来用之类的操作。之所以用这些变换了操作,也是因为不同的对称矩阵可以表示同一个物理量。
个人感受:很多时候一些人之所以不能理解张量,就是因为脑子里默默地做了一些等同 (identification), 比如把线性变换和矩阵当做同一个东西,而没有理解抽象的线性变换的概念。实际上不在 source 和 target 中选取一组基的话,一个抽象的线性变换是没有矩阵的。同理很多人不能理解没有选取坐标的一维流形,一想象脑子里就是数轴或者单位圆。忘掉坐标,想象一个抽象的 underlying manifold, 也是一种能力。
现在已有的回答都好吓人...
对于大部分已经熟练的数学和物理工作者, 这实在是一个极为基础的问题. 但这个问题在我刚接触张量时也困扰了我很久. 张量的那么多定义, 究竟哪些是对的? (显然都是对的. ) 它们的关系是什么? 我尽可能简单地用我自己的话把我对它粗浅的理解讲得明白些.
张量的概念早在19世纪末就被数学家提出了, 但这个概念真正发扬光大, 还是在相对论出现以后. 原因是, 在相对论中, 在不同的参考系下看同一个物理系统, 它"看起来"是不一样的: 比如粒子的动量和能量在不同的参考系下根据 Lorentz 变换相联系.
这带来一个问题: 在 Bob 看来, 一个粒子的能动量是. 如果你问 Bob, 这个粒子的能动量是多少, 他会告诉你是. 但我 (Andrew) 听了以后, 必然是反对的: Bob 说的不对! 我看到的粒子的能动量明明是!
我们知道, Andrew 和 Bob 都没有说错. 和可以通过恰当的 Lorentz 变换相互转化. "你说的我都懂", 想必你已经看得不耐烦了, "可是这个粒子的能动量究竟是多少? " 由于参考系都是平权的, Andrew 和 Bob 的参考系并没有哪个更优越. 那我们干脆把它们都舍弃. 于是我们说, 这个粒子的能动量就由能动量张量来描述. 能动量张量是一个不随坐标而改变的, 物理系统内在的量. (如果你对左边这句话的确切含义感到疑惑, 请先往下看. ) 它在 Andrew 的坐标系里看是, 在 Bob 的坐标系里看是, 按照 Lorentz 变换变成.
你现在肯定找到了一点感觉. 什么是张量? 如 A.Zee 书中所说: A tensor is something that transforms like a tensor! 一个量, 在不同的参考系下按照某种特定的法则进行变换, 就是张量.
用张量有什么好处? 物理定律是不会随参考系的变化而变化的. 考虑下面一个物理过程: 两个粒子1和2经过散射变成了3和4. 在 Andrew 看来, 能动量守恒是. 但这样写, 并不能直接看出 Bob 也看到能动量守恒. 但如果用张量的语言直接写成: , 我们立刻就知道它在 Andrew 看来是, 在 Bob 看来是. 用张量语言描述的物理定律自动保证了不随参考系变化的这一性质. 而且从记号的角度看, 用张量也更加简洁. [*]
我们已经从物理上理解了什么是张量. 物理学家到此就很满意了. 但严谨的数学家们并不满意. "你刚刚说张量是一个不随坐标而改变的, 物理系统内在的量", 数学家质问道, "你说的我都懂, 可是张量究竟是什么?"
如果你对线性代数略知一二, 可能知道线性变换这个概念. 线性变换这个概念的精髓之处在于, 它不依赖于线性空间的基的选取. 在某一组基下, 它的矩阵表示是一个模样; 在另外一组基下, 它的矩阵表示是另一个模样, 其中是基变换矩阵. 有一种常见的说法: 矩阵的意义是线性变换, 相似矩阵是同一个线性变换在不同的基下的表示.
慢着! "同一个线性变换在不同的基下的表示", 这难道不就是和之前说的张量是一回事嘛! Lorentz 变换就是 Minkowski 空间中的基变换, 能动量张量实质上就是一个线性变换. Andrew 和 Bob 看到的能动量张量, 不就是这个线性变换在不同的基下的表示吗?
你现在肯定找到了一点感觉. 什么是张量? 在数学家眼中, 张量已经被抽象成了线性变换.
当然, 数学家们还可以再进一步抽象这个概念, 提取出更普遍的 universal property. 这时, 张量被定义为张量积空间中的一个元素. 具体的定义不在此赘述, 请参考相关专著. 但尽管已经抽象到那样的程度, 其背后的思想依然是不变的.
如果你通过上面的阅读理解了张量背后的思想, 再去看相关数学或物理专著上或繁杂或抽象的式子, 或许会开朗很多 :-)
最后引用陈维桓先生的《微分流形初步》一书中的一段话进行总结:
张量的概念是 G.Ricci 在19世纪末提出的. G.Ricci 研究张量的目的是为几何性质和物理规律的表达寻求一种在坐标变换下不变的形式. 他所考虑的张量是如同向量的分量那样的数组, 要求它们在坐标变换下服从某种线性变换的规律. 近代的理论已经把张量叙述成向量空间及其对偶空间上的多重线性函数, 但是用分量表示张量仍有它的重要性, 尤其是涉及张量的计算时更是如此.
[*] 如果还定义了内积/缩并等运算, 还可以由张量迅速得到一些不变量. 此时会涉及对偶空间(因为内积本质是个线性函数)等概念, 进而涉及张量的协变和逆变. 为了行文简洁, 我在正文中没有提及这些概念. 但它们本质上和正文所说没有区别.
首先要理解什么叫对偶空间。[1]
有了这些知识之后,就可以给出张量定义:
设 是域, 是 上的向量空间, 是 的对偶空间, 和 都是大于等于 的整数, 为 重空间 和 重空间 的笛卡尔积。所有的 重线性映射: 称作 上的 型, 价的张量。也说 是一个 次共变且 次反变的混合张量。当 时,就简单地说 是反变的,当 时,则说 是共变的。
看一些例子:
所以我们可以很清楚地看出:为什么诸如应变力张量、应变率张量都是矩阵,又叫做二阶张量;实际上它们是 型张量。
更多张量计算内容请参见柯斯特利金 《代数学引论》卷2:线性代数。里面介绍的非常详细、深入。