作者:知乎用户
链接:什么是张量(tensor)
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
对于大部分已经熟练的数学和物理工作者, 这实在是一个极为基础的问题. 但这个问题在我刚接触张量时也困扰了我很久. 张量的那么多定义, 究竟哪些是对的? (显然都是对的. ) 它们的关系是什么? 我尽可能简单地用我自己的话把我对它粗浅的理解讲得明白些.
A View from Physics
张量的概念早在19世纪末就被数学家提出了, 但这个概念真正发扬光大, 还是在相对论出现以后. 原因是, 在相对论中, 在不同的参考系下看同一个物理系统, 它"看起来"是不一样的: 比如粒子的动量和能量在不同的参考系下根据 Lorentz 变换相联系.
这带来一个问题: 在 Bob 看来, 一个粒子的能动量是
(Eb,pb). 如果你问 Bob, 这个粒子的能动量是多少, 他会告诉你是
(Eb,pb). 但我 (Andrew) 听了以后, 必然是反对的: Bob 说的不对! 我看到的粒子的能动量明明是
(Ea,pa)!
我们知道, Andrew 和 Bob 都没有说错.
(Eb,pb)和
(Ea,pa)可以通过恰当的 Lorentz 变换相互转化. “你说的我都懂”, 想必你已经看得不耐烦了, "可是这个粒子的能动量究竟是多少? " 由于参考系都是平权的, Andrew 和 Bob 的参考系并没有哪个更优越. 那我们干脆把它们都舍弃. 于是我们说, 这个粒子的能动量就由能动量张量
T来描述. 能动量张量是一个不随坐标而改变的, 物理系统内在的量. (如果你对左边这句话的确切含义感到疑惑, 请先往下看. ) 它在 Andrew 的坐标系里看是
(Ea,pa), 在 Bob 的坐标系里看是
(Eb,pb),
(Ea,pa)按照 Lorentz 变换变成
(Eb,pb).
你现在肯定找到了一点感觉. 什么是张量? 如 A.Zee 书中所说: A tensor is something that transforms like a tensor! 一个量, 在不同的参考系下按照某种特定的法则进行变换, 就是张量.
用张量有什么好处? 物理定律是不会随参考系的变化而变化的. 考虑下面一个物理过程: 两个粒子1和2经过散射变成了3和4. 在 Andrew 看来, 能动量守恒是
(Ea,1,pa,1)+(Ea,2,pa,2)=(Ea,3,pa,3)+(Ea,4,pa,4). 但这样写, 并不能直接看出 Bob 也看到能动量守恒. 但如果用张量的语言直接写成:
T1+T2=T3+T4 , 我们立刻就知道它在 Andrew 看来是
(Ea,1,pa,1)+(Ea,2,pa,2)=(Ea,3,pa,3)+(Ea,4,pa,4), 在 Bob 看来是
(Eb,1,pb,1)+(Eb,2,pb,2)=(Eb,3,pb,3)+(Eb,4,pb,4). 用张量语言描述的物理定律自动保证了不随参考系变化的这一性质. 而且从记号的角度看, 用张量也更加简洁.
Let us go deeper
我们已经从物理上理解了什么是张量. 物理学家到此就很满意了. 但严谨的数学家们并不满意. “你刚刚说张量是一个不随坐标而改变的, 物理系统内在的量”, 数学家质问道, “你说的我都懂, 可是张量究竟是什么?”
如果你对线性代数略知一二, 可能知道线性变换这个概念. 线性变换这个概念的精髓之处在于, 它不依赖于线性空间的基的选取. 在某一组基下, 它的矩阵表示
A是一个模样; 在另外一组基下, 它的矩阵表示
A′=TAT′是另一个模样, 其中
T是基变换矩阵. 有一种常见的说法: 矩阵的意义是线性变换, 相似矩阵是同一个线性变换在不同的基下的表示.
(线性变换有关内容参考)
慢着! “同一个线性变换在不同的基下的表示”, 这难道不就是和之前说的张量是一回事嘛! Lorentz 变换就是 Minkowski 空间中的基变换, 能动量张量实质上就是一个线性变换. Andrew 和 Bob 看到的能动量张量, 不就是这个线性变换在不同的基下的表示吗?
扫描二维码关注公众号,回复:
11526999 查看本文章
你现在肯定找到了一点感觉. 什么是张量? 在数学家眼中, 张量已经被抽象成了线性变换.
当然, 数学家们还可以再进一步抽象这个概念, 提取出更普遍的 universal property. 这时, 张量被定义为张量积空间中的一个元素. 具体的定义不在此赘述, 请参考相关专著. 但尽管已经抽象到那样的程度, 其背后的思想依然是不变的.
如果你通过上面的阅读理解了张量背后的思想, 再去看相关数学或物理专著上或繁杂或抽象的式子, 或许会开朗很多 ?
引用陈维桓先生的《微分流形初步》一书中的一段话进行总结:
张量的概念是 G.Ricci 在19世纪末提出的. G.Ricci 研究张量的目的是为几何性质和物理规律的表达寻求一种在坐标变换下不变的形式. 他所考虑的张量是如同向量的分量那样的数组, 要求它们在坐标变换下服从某种线性变换的规律. 近代的理论已经把张量叙述成向量空间及其对偶空间上的多重线性函数, 但是用分量表示张量仍有它的重要性, 尤其是涉及张量的计算时更是如此.
如果还定义了内积/缩并等运算, 还可以由张量迅速得到一些不变量. 此时会涉及对偶空间(因为内积本质是个线性函数)等概念, 进而涉及张量的协变和逆变. 为了行文简洁, 我在正文中没有提及这些概念. 但它们本质上和正文所说没有区别.
Further More
一方面,日常直觉和物理研究告诉人们,同一物理量的值,在不同坐标系下的坐标往往是不同的,物理学家希望自己研究的对象,如果去除坐标系变换的影响,应该是同一个量,于是就把这些符合某种坐标变换法则的物理量称为张量,想了解什么是张量,最好的方法是通过举例子来说明。我们从大家日常熟知的物理量入手进行介绍。
-
记号
我们用
x 来表示某个点在某个坐标系下的
n维坐标,用下标表示坐标分量:
x=[x1,...,xn]T
例如,三维欧式空间可以用直角坐标 x 来表示:
x1=x,x2=y,x3=z
也可以用球坐标
x′ 来表示:
x1′=r,x2′=ϕ,x3′=θ
其中
r是半径,
ϕ是
x与
z轴的夹角,
θ是
x在
XY平面上投影与
x轴的夹角。变换关系是:
x=rcosθsinϕ
y=rsinθsinϕ
z=rcosϕ
-
标量(0阶张量)
假设
f(x)是在(n维)欧式空间中一点
x处的某个物理量,经过坐标变换,点
x变成了
x′,
x′处的同一物理量的值为
f′(x′)。因为
x和
x′代表的是空间中同一点,只是因为坐标系不同导致坐标值不同,又因为
f和
f′测量的是同一物理量,所以一定有
f(x)=f′(x′)。
f(x)就称为_0阶张量_,其变换法则就是
f(x)=f′(x′)
-
微分、速度(1阶张量)
考虑某质点在很短时间内发生了位移,在两个坐标系中,这一位移分别描述为:
dx=[dx1,...,dxn]T
dx′=[dx1′,...,dxn′]T
如果把
x 看作是
x′的函数,那么根据微分/导数的链式法则,我们知道:
dxi=∑j=1n∂xj′∂xidxj′ (1)
写成矩阵的形式就是:
dx=Sdx′ (2)
其中
dx和
dx′都是
n维列向量,
S是个
n维方阵,它第
i行第
j列上的数是
Sji=∂xj′∂xi,也就是函数
x(x′)的雅各比矩阵。对于球面坐标转换,有:
S=⎣⎡cosθsinϕsinθsinϕcosϕrcosθcosϕrsinθcosϕ−rsinϕ−rsinθsinϕrcosθsinϕ0⎦⎤
所以可以看到,虽然
x和
x′之间的变换关系可能是非线性的,但是
dx和
dx′之间的变换关系是线性的。这种具有线性变换关系的物理量
dx就是一阶张量。我们可以给式子两边同时除个
dx,就得到:
dtdx=Sdtdx′
也具有完全类似的形式。也就是说,(在非相对论环境中)速度矢量是一阶张量。这符合我们对速度的直觉:它是物理量,只是在不同的坐标系下坐标不同罢了。在(1)式中,如果我们把
∂xj′∂xi简写成
Sji,并且默认这样的运算规定:如果一堆记号中某个字母同时出现在上标和下标,就省略掉求和号,但不忘记要对它们求和,(1)式就写成了:
dxi=Sjidx (3)
这种去掉求和号的分量形式的变换法则很常见,习惯后也很方便用于计算,称为爱因斯坦求和约定。
-
梯度(1阶张量)
下面来观察标量的梯度如何变化。咱们定义梯度算子是:
∇f=[∂x1∂f,…,∂xn∂f]T
经过坐标变换的梯度算子是:
∇f=[∂x1∂,…,∂xn∂f]T
因为咱们已经知道
f=f′,由导数的链式法则可以得到:
∂xj′∂f′=∂xj′∂f=∑i=1n∂xj′∂xi∂xi∂f
写成矩阵的形式就是:
∇f=ST∇f
既然标量 f 保持不变,我们可以把它省略,规定:
∇=[∂1,…,∂n]T∇=[∂1,…,∂n]T
是作用在标量上的算子,其中我们用
∂i来代表
∂xi∂。那么梯度算则的变换法则就是
∇=ST∇,或者写成分量形式
∂j=Sji∂i(4)
从而
∇或者说
∂j的变换也是线性的,是一阶张量。
如果我们比较微分和梯度的变换法则(3)式和(4)式,也就是:
dxi=Sjidxj∂j=Sji∂i
就会发现第一行撇在右边,第二行撇在左边,所以虽然它们都是线性变换,但是 S 的位置相反,或者说这两种张量的变换规则是相反的。为了区分,它们分别叫做covariant(协变)和contravariant(逆变)的,我曾经听若干著名物理学家说过他们从来分不清谁是谁。大家都见过这种差别,在线性代数中,坐标的变换法则和坐标系的变换法则相反,因为一个是协变的,另一个是逆变的。
从
∂j′=Sji∂i出发,咱们首先把带撇和不带撇的部分交换一下,注意
S要变成
S−1,然后交换一下
i,j和左右两边,就变成了
(S−1)ij∂j′=∂i,比较改变前后我们就发现,把矩阵从右边移到左边,只需要把
Sji变成(S−1)ij,是不是很方便?类似地,由
dxi=Sjidxj′可以立即得到:
(S−1)ijdxi=dxj′ (5)
-
(物理学家的)张量
推广一下,一个东西
T=Tp...qi...k是张量,就是说它满足变换法则:
如果
dx=Sdx′,
那么
Tp...qi...k=(S−1)pm…(S−1)qnTm...n′u...vSui…Svk
前面我们看到一阶张量的变换可以用线性变换来刻画,二阶张量可以用矩阵合同变换来刻画,但是高阶张量矩阵就不够用了,用爱因斯坦求和约定刻画最方便。
-
(数学家的)张量
数学家的张量就定义为n维流形切空间上的多重线性映射。详细推导
比较一下我们就发现:
T(∂u,∂v,∂w)=(S−1)ui(S−1)vj(S−1)Tk(∂i,∂j,∂k)
这就是第五小节中物理学家眼中张量的定义!也就是张量在不同坐标系下分量式的变换公式。
这是同时有协变和逆变的张量的变换公式:
T(∂u…∂v,dxi…dxj)=(S−1)up(S−1)vqSmiSnjT(∂p…∂q,d;xm…dxn)
最后,我们来看看前面举的几个例子是如何带入到这个定义中去的:
- 1 ) 对于
0阶张量,也即任意实函数
T=f∈D(M),自变量里有
0个
χ(M)或者
χ(M)∗元素,所以
T′=T在任意坐标系中都不变。
- 2)切向量
∂j′=Sji∂i,T(∂i)=∂if,∀f∈D(M)
- 3)微分
dxi=Sjidxj′,T(dxi)=dxi(v),∀v∈χ(M)