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

发布时间:2026/7/22 5:42:22
搞懂张量(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张量可以拥有任意多个indicesT[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 个 indexvᵢi 可以取 1, 2二维例子表示一个有方向和大小的量例如速度、力、位移在二维空间中向量可以用一个箭头来表示有明确的方向和长度。Scene 5矩阵 二阶张量小可恍然大悟矩阵就是二阶张量了吧有行和列两个 index博博满意地笑没错矩阵是二阶张量有两个 indices是由行和列组成的数字数组。二阶张量Rank-2 Tensor就是矩阵(matrix)有2 个 indicesFᵢⱼi, j 都可以取 1, 2二维例子表示线性变换例如应力张量、惯性张量⚠ 但要注意并非所有二阶张量在物理上都等价于一个固定的 matrix。matrix 只是 tensor 在特定坐标系下的一种表示形式。Scene 6三阶及更高阶张量小可眼睛放光在矩阵基础上再加一层就是三阶张量博博画出立方体示意对再加一层数字就得到三阶随着层数增加越来越难可视化。张量的阶数与元素数量的关系以二维为例阶数名称元素数量表示0阶标量(scalar)1个a1阶向量(vector)2个vᵢ2阶矩阵(matrix)4个Fᵢⱼ3阶三阶张量8个Tᵢⱼₖn阶n阶张量2ⁿ个Tᵢ₁ᵢ₂…ᵢₙ随着阶数增加这种结构已越来越难直观地进行可视化。因此人们通常采用**指标记号(index notation)**来解决这个问题。Scene 7指标记号小可认真记笔记阶数越来越高该怎么简洁地表示它们呢博博指着公式用指标记号 index notationvᵢ、Fᵢⱼ、Tᵢⱼₖ一目了然。指标记号(Index Notation)用下标 index 来简洁地表示各阶张量阶数记号说明零阶a标量无 index一阶vᵢ向量i1,2二阶Fᵢⱼ矩阵i1,2; j1,2三阶Tᵢⱼₖ三阶i,j,k 各取 1 或 2n阶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 本身很难直接进行可视化但是我们可以可视化它的效果把这个 matrix 乘以一组 vectors在所有箭头的末端画出一个圆当 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 张量五大要点总结张量是标量、向量、矩阵的推广—— 0阶 → 1阶 → 2阶 → n阶Matrix 永远只有 2 个 indices—— Tensor 可以有任意多个 indicesTensor 独立于坐标系—— 改变坐标系tensor 不变components 变Matrix 只是 Tensor 的一种表示—— 同一 tensor 在不同坐标系下有不同 matrixTensor 描述的是变形本身—— 而非某一组数字应用广泛记住当你看到一个 matrix 时它背后可能是一个更抽象的 tensorTensor 描述了与坐标系无关的几何/物理本质。小可开心地摇尾巴今天学到了很多原来张量不是那么可怕的东西嘛博博合上书本数学就是这样一旦理解了本质就会发现它其实很简单。下次有什么不懂的随时来问我哦希望这个漫画科普能帮你彻底理解张量的本质*