Posted in: 生活

什么是张量 (tensor)?

头图

张量就是物理量,与张量相关的数学是对高维 (维数 ≥ 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, 也是一种能力。

  • 微信或QQ扫一扫
Back to Top