搞懂张量(Tensor)—— 从矩阵到高阶抽象

搞懂张量(Tensor)—— 从矩阵到高阶抽象

搞懂张量(Tensor)—— 从矩阵到高阶抽象

小可(推了推眼镜):张量究竟是什么?为什么它经常被画得像矩阵?今天我们和博博一起来彻底搞清楚!

博博(摇着尾巴):让我来告诉你!张量比矩阵更一般、更抽象。今天我们会从最基础的概念出发,一步步揭开张量的神秘面纱。


Scene 1:什么是张量

小可(好奇地歪着头):张量(tensor)究竟是什么?为什么它经常被画得像矩阵?

博博(微笑着翻开书本):让我来告诉你!张量比矩阵更一般、更抽象,今天我们来彻底搞懂它。

如果你学习过工程学或物理学,或者看过关于张量的系列视频,那么你很可能已经接触过张量(tensor)。但是,tensor 究竟是什么

为什么 tensors 经常会被画得像矩阵(matrices)?当然,matrix 和 tensor 其实并不是同一种东西。要彻底清晰地理解 tensor 的本质,我们需要从两个层面来说明:首先说明为什么 tensor 不只是 matrix,而是一类比 matrix 更一般(more general)、更抽象(more abstract)的数学对象;然后通过一个具体例子来加深理解。

简单来说,我们可以把 tensor 看作是标量(scalar)、向量(vector)和矩阵(matrix)这些概念的推广。


Scene 2:张量 ≠ 矩阵

小可(惊讶地瞪大眼睛):矩阵和张量不是同一种东西?它们到底有什么区别?

博博(认真地指着黑板):首先 matrix 永远只有两个 indices,而 tensor 可以有任意多个。

这是 matrix 和 tensor 之间的第一个区别

  • Matrix(矩阵):永远只有 2 个 indices,行索引 i 和列索引 j,表示为 M[i,j],是固定二维结构。
  • Tensor(张量):可以拥有任意多个indices,T[i,j,k,…],可以是任意阶数。

但这只是第一个区别,更重要的区别在于:tensor 不仅仅是高阶矩阵(higher order matrices)。它还有更深层的抽象性质——独立于坐标系,表示的是几何对象本身而非一组数字。


Scene 3:标量 = 零阶张量

小可(若有所思):所以标量也是一种张量?零阶是什么意思?

博博(点头):对!标量就是一个数字,没有任何 index,我们叫它零阶张量。

零阶张量(Rank-0 Tensor)就是最基础的标量(scalar):

  • 没有任何 index
  • 就是单个数值,例如 42
  • 不依赖坐标系
  • 例如:温度 25°C,质量 5kg

这是推广的起点:零阶 → 一阶 → 二阶 → 三阶 → …,对应scalar → vector → matrix → 更高阶


Scene 4:向量 = 一阶张量

小可(掰着手指头数):那向量呢?它有好多个数字,算几阶?

博博(画出向量箭头):向量是一阶张量,有一个 index,是由多个数字组成的列数组。

一阶张量(Rank-1 Tensor)就是向量(vector):

  • 1 个 index:vᵢ
  • i 可以取 1, 2(二维例子)
  • 表示一个有方向和大小的量
  • 例如:速度、力、位移

在二维空间中,向量可以用一个箭头来表示,有明确的方向和长度。


Scene 5:矩阵 = 二阶张量

小可(恍然大悟):矩阵就是二阶张量了吧?有行和列两个 index?

博博(满意地笑):没错,矩阵是二阶张量,有两个 indices,是由行和列组成的数字数组。

二阶张量(Rank-2 Tensor)就是矩阵(matrix):

  • 2 个 indices:Fᵢⱼ
  • i, j 都可以取 1, 2(二维例子)
  • 表示线性变换
  • 例如:应力张量、惯性张量

⚠ 但要注意:并非所有二阶张量在物理上都等价于一个固定的 matrix。matrix 只是 tensor 在特定坐标系下的一种表示形式。


Scene 6:三阶及更高阶张量

小可(眼睛放光):在矩阵基础上再加一层,就是三阶张量?

博博(画出立方体示意):对!再加一层数字就得到三阶,随着层数增加越来越难可视化。

张量的阶数与元素数量的关系(以二维为例):

阶数名称元素数量表示
0阶标量(scalar)1个a
1阶向量(vector)2个vᵢ
2阶矩阵(matrix)4个Fᵢⱼ
3阶三阶张量8个Tᵢⱼₖ
n阶n阶张量2ⁿ个Tᵢ₁ᵢ₂…ᵢₙ

随着阶数增加,这种结构已越来越难直观地进行可视化。因此,人们通常采用**指标记号(index notation)**来解决这个问题。


Scene 7:指标记号

小可(认真记笔记):阶数越来越高,该怎么简洁地表示它们呢?

博博(指着公式):用指标记号 index notation!vᵢ、Fᵢⱼ、Tᵢⱼₖ,一目了然。

指标记号(Index Notation)用下标 index 来简洁地表示各阶张量:

阶数记号说明
零阶a标量,无 index
一阶vᵢ向量,i=1,2
二阶Fᵢⱼ矩阵,i=1,2; j=1,2
三阶Tᵢⱼₖ三阶,i,j,k 各取 1 或 2
n阶Tᵢ₁ᵢ₂…ᵢₙn 个 index

指标记号的优点

  • 使得我们在推导和处理数学公式时更加方便
  • 还能让我们一眼就看出一个 tensor 的阶数(order)
  • Index 的数量 = tensor 的阶数!

Scene 8:矩阵的局限性

小可(总结道):所以第一个区别是 matrix 永远只有两个 indices?

博博(竖起大拇指):完全正确!而 tensor 可以拥有任意多个 indices,这是一般化的推广。

Matrix ⊂ Tensor(矩阵是张量的子集)。

但 Tensor 不仅仅是高阶矩阵!第二个更深刻的区别在于:tensor 不仅仅是数字的集合,它是一个独立于坐标系的抽象对象。同一 tensor 在不同坐标系下有不同的 matrix 表示——这些 matrix 不同,但描述的 tensor 是同一个!


Scene 9:向量的坐标表示

小可(追问):那第二个区别是什么?tensor 不仅仅是高阶矩阵?

博博(画出两个坐标系):对,最好通过例子解释。看这个 vector,它的 components 依赖坐标系。

向量是一个一阶张量(first-order tensor)。它的各个 components 告诉我们,在某一个具体的笛卡尔坐标系(Cartesian coordinate system)下,这个 vector 是什么样子的。

但是这里有一个关键点:如果我们改变坐标系,vector 本身并不会发生变化。真正发生变化的是用来描述 vector 的那些数字——也就是它在新坐标系中的各个 components。

左边这一组数字只是在某一个特定坐标系下对这个 vector 的一种表示方式。如果只知道这个 vector 的 components,而不知道它对应的是哪个坐标系,那么我们就不可能知道 vector 真正长什么样。


Scene 10:改变坐标系

小可(若有所思):如果改变坐标系,vector 本身不会变化?

博博(肯定地):没错!vector 本身不变,真正变化的是用来描述它的那组数字。

Tensors are mathematical objects that are independent of the coordinate system.

右边所表示的 first-order tensor 在改变 coordinate system 之后并不会发生变化。发生变化的仅仅是描述这个 first-order tensor 的那些数字。


Scene 11:张量与坐标无关

小可(恍然大悟):所以这组数字并不是 tensor 本身?

博博(指着抽象对象):对!左边数字只是特定坐标系下的表示,右边的抽象对象才是真正的 tensor。

因此可以这样理解:

  • 左边这一组数字并不是 tensor 本身
  • 右边这个抽象对象(abstract object)才是真正的 tensor
  • 而左边的数字只是它在某一个特定坐标系中的一种表示方式

推广到二阶张量也是一样的道理。


Scene 12:二阶张量可视化

小可(好奇):那 matrix 很难直接可视化,怎么看它的变形效果?

博博(画出圆和椭圆):把 matrix 乘以一组 vector,在所有箭头末端画圆,观察圆如何被拉伸。

Matrix 本身很难直接进行可视化,但是我们可以可视化它的效果

  1. 把这个 matrix 乘以一组 vectors
  2. 在所有箭头的末端画出一个圆
  3. 当 matrix 作用于这些 vector 之后,这个圆也会随着这些 vector 一起发生拉伸变形

你可以把这个被拉伸后的圆理解为二阶张量的几何表示。


Scene 13:矩阵如何拉伸圆

小可(兴奋):matrix 作用于向量,圆就被拉伸变形了?

博博(解释):对!这个被拉伸的椭圆描述了 matrix 的变换特性,deform 就是拉伸。

Deform = 拉伸/变形(deformation)。

那么,如果我们改变 coordinate system 会发生什么呢?圆的拉伸形状并不会发生变化,这说明我们的 second-order tensor 没有发生变化。但是用来描述这种变形的那一组数字会随着 coordinate system 的变化而发生变化。

这正是为什么我们说:Matrix 和 Tensor 并不完全相同。


Scene 14:矩阵只是表示

小可(总结):改变坐标系后椭圆形状不变,但描述的数字变了?

博博(满意):没错!能描述这种拉伸的 matrix 有无穷多个,对应不同坐标系。

张量描述的是这个圆如何发生拉伸,而这种描述并不依赖于坐标系。而能够描述这种拉伸变形的 matrix 有无穷多个,它们分别对应不同的 coordinate system。

下次当你看到一个 tensor 用 matrix 表示时,不要把那个 matrix 当成 tensor itself!而应该记住,这个 matrix 只是 tensor 在某一个特定坐标系中的一种表示形式。


Scene 15:变形例子引入

小可(期待):用一个具体例子来说明?比如固体的形变?

博博(画出变形前后的物体):对,物体可以是固体或液体,tensor 非常适合描述这类 deformation。

Deformation(形变)—— 这个物体可以是一块固体材料,也可以是一滴像图中这样的液体。Tensor 非常适合描述这类 deformation。

我们先来看二维情况下,一种描述 deformation 的方法是在物体上画出一组点,并随着时间跟踪这些点的位置变化。


Scene 16:位移向量的局限

小可(疑惑):跟踪每个点的位移向量不行吗?为什么不够?

博博(指着没动的点):有些点根本没移动,但整个物体在变形!displacement 无法提供 local 信息。

所谓的**位移向量(displacement vector)**表示的是物体上每一个点从原位置移动了多少。但是,仅仅依靠 displacement vector 并不能真正告诉我们物体上的每一点如何发生局部形变(local deformation)。

来看这个形变例子,其中有一些点根本没有发生移动。在这些点上 displacement 等于 0。然而我们却可以清楚地看到,整个物体实际上正在发生 Deformation!

这说明 displacement 并不能提供关于 deformation 的完整信息。


Scene 17:小圆变形法

小可(眼睛一亮):所以在物体内部画很多小圆来观察变形?

博博(点头):对!即使某些点没动,小圆的变形仍然能揭示 local deformation。

因此我们可以采用另一种方法:我们在物体内部画出许多很小的圆,然后观察这些小圆随时间如何发生变形。这样一来,即使某些点本身没有移动,我们依然能够看到物体正在发生变形。

你可能已经注意到,这些小圆发生变形的方式与我们刚才可视化二阶张量时看到的变形非常相似。

事实上,在每一个位置,这些小圆的形变都可以用一个second-order tensor来描述。


Scene 18:形变与坐标系无关

小可(恍然大悟):这些小圆的形变也可以用二阶张量来描述?

博博(肯定):没错!而且改变坐标系,形变本身不变,变的是描述它的 matrix。

而且非常重要的一点是:即使我们改变坐标系,这些小圆的形变依然不会发生变化。也就是说,物体的形变以及描述这种形变的 second-order tensor 都独立于坐标系而存在。

真正发生变化的仅仅是那些用来表示这个 tensor 的 matrix。


Scene 19:工程中的简化

小可(放松下来):所以在固定坐标系下,matrix 和 tensor 的区别不太重要?

博博(微笑):对,大多数工程应用中用固定坐标系,只有一个 matrix 表示,不需要太担心。

当然,在许多工程应用中,我们通常都使用一个固定的 Cartesian coordinate system。在这种情况下,只会有唯一一个 matrix 来表示这个 tensor。

因此大多数时候我们其实不需要太过分担心 matrix 和 tensor 之间的区别。

理解 matrix vs tensor 的区别,能帮助你

  • 真正理解 tensor 的本质,而非把它当成一个数字表格
  • 在处理坐标变换时不会混淆 tensor 本身和它的表示

Scene 20:张量科普总结

小可(兴奋地总结):让我总结一下!张量是推广的、坐标无关的抽象对象!

博博(竖起大拇指):完美!下次看到 matrix 时,记住它背后可能是一个更抽象的 tensor!

📋 张量五大要点总结

  1. 张量是标量、向量、矩阵的推广—— 0阶 → 1阶 → 2阶 → n阶
  2. Matrix 永远只有 2 个 indices—— Tensor 可以有任意多个 indices
  3. Tensor 独立于坐标系—— 改变坐标系,tensor 不变,components 变
  4. Matrix 只是 Tensor 的一种表示—— 同一 tensor 在不同坐标系下有不同 matrix
  5. Tensor 描述的是变形本身—— 而非某一组数字,应用广泛

记住:当你看到一个 matrix 时,它背后可能是一个更抽象的 tensor!Tensor 描述了与坐标系无关的几何/物理本质。


小可(开心地摇尾巴):今天学到了很多!原来张量不是那么可怕的东西嘛!

博博(合上书本):数学就是这样,一旦理解了本质,就会发现它其实很简单。下次有什么不懂的,随时来问我哦!


希望这个漫画科普能帮你彻底理解张量的本质!*