如今,每当我看着我爱了7个月大的宝宝后脑勺上那团小小的旋儿时,我就会想起数学中一个名字极其荒谬的事实:毛球定理。我保证这确实是严肃的数学内容,其非正式表述是:如果你有一个长满毛球的球体,并试图将其梳理平整,那么无论如何你都无法做到完全不留下至少一个毛发竖立的点。

例如,假设你试图让所有头发围绕某个轴逆时针梳理。那么在顶部和底部,你会形成这种小漩涡,而漩涡中心最内侧点的头发将无处可去。它被迫竖立起来。在脑海中玩味这一点其实非常有趣,无论你怎么尝试将头发压平,数学上都保证你会至少留下像这样的一撮竖毛。

事实上,即使只将其减少到一个问题点而不是两个,也是一项挑战。这是可能的,如果你喜欢谜题,我鼓励你尝试思考这该如何实现。在本视频稍后部分,我将展示至少一种你可以这样想的思路。不过此刻,我想有一个更迫切的问题:你可能会好奇,为什么数学家会在意梳理毛茸茸的球体。

当然,答案是他们并不在意。这个名字和非正式表述带有一点戏谑意味。我自然会分享更正式的陈述,事实上,我做这个视频的真正原因是为了分享一种证明它的不寻常的优雅方法。[音乐] 我认为这会让任何数学爱好者感到欣喜。但在这一切之前,让我们用一个例子来激发兴趣,展示这种毛茸茸的球体如何在实践中自然出现。

好的,想象一下你是一名游戏开发者,正在编程一款拥有飞机3D模型的游戏。你想要能够处理该飞机沿任意轨迹飞行的情况,这很可能是用户定义的。你的工作是编写一个函数,使飞机在沿该轨迹移动时保持正确的朝向。例如,假设你位于给定轨迹上的某一点。

显然,你想将模型的中心移动到该点,但在3D空间中如何旋转它仍存在歧义。这里明显的约束是你必须知道飞机的机头应沿路径的切线向量指向,但这仍留下一些歧义。飞机如何绕着机头到尾部的轴旋转?你可以这样思考来定义最后一个自由度:通过左翼方向的垂直向量指向哪里。

作为这个游戏视频程序的程序员,你的任务是确定在给定轨迹的每一个点上该垂直翼方向应该是什么。现在有一种正确的方法可以做到这一点,涉及计算轨迹的二阶导数,并计算出如何使其与机翼产生的升力和重力相匹配。但这现在可能看起来有点复杂。

作为足智多谋又懒惰的程序员,你可能会想:“嘿,有没有什么合理的方法可以选择一个垂直于给定速度向量(即飞机航向)的翼方向?”你可以这样思考其中一种方式。这架飞机在空间中所有可能的指向,即我标红的各种航向方向,构成了单位球面上的点。

你想要编写一个函数,该函数接收球面上给定的向量并返回一些垂直于它的选择(我标为粉色的那些)。唯一的真正约束是你希望这种关联是连续的。否则,这意味着飞机的朝向可能会发生剧烈跳跃[音乐],这将是游戏中非常明显的故障。

如果你一无所知,这感觉应该是一项可能的任务。毕竟,对于给定的航向方向,你并不缺乏选择。你有无穷多个翼方向可供选择,整整一圈的选项。那么,为球面上的每一点做出随连续变化的合理选择有多难呢?你可能已经知道我要说什么了。

像这样选择一个垂直方向等价于为该球面上的点选择一个单位切向量。因此,如果你为飞机可能指向的每个方向分配一个特定的垂直方向,这基本上与在球面上的每一点定义切向量相同。现在这看起来有点像毛茸茸的球了。

事实上,现在是退一步更正式地描述毛球定理实际内容的最佳时机。如果你有一个球体并选择该球面上的某一点以及在该点与球面相切的平面,那么你在该平面内选择的任何以该点为起点的向量都称为球面的切向量。

如果你将球面上每一点分配一个切向量(每个可能的切平面对应一个),我们称之为球面上的向量场。在绘制此类向量场时,通常的标准是将向量缩小以避免杂乱。还要记住的是,尽管像这样的插图必然只显示有限数量的向量(位于球面上有限数量的点处),当然一个向量场由无穷多个向量组成,连续曲面上的每一点都有一个。

因此,定理——我们今天的主角指出:如果你的向量场是连续的(意味着其方向没有突然跳跃),那么它必须至少有一个零向量的点,即长度为零的向量。例如,回顾我们的3D模型案例。我在许多动画中使用的函数本质上试图保持飞机顶部尽可能向上指。

当你将该函数表示为向量场时(再次,机鼻的每个可能方向被视为球面上的一个点,而相应的翼方向被视为该点球面的切向量),结果发现我使用的函数给出了围绕垂直轴旋转的向量场。这在大多数情况下确实提供了足够合理的动画,但问题是

它在极点处存在不连续性。因此,如果我使用这个函数让飞机指向正上方或正下方,当它经过该方向时,就会出现这种故障行为。现在,如果你只是一个摆弄这个的程序员,你可能会认为你可以调整事物来避免这样的故障,但实际上,毛球定理保证,无论你多么聪明……

你都注定会有某个方向产生这种故障。因此,对于稳健的动画,你不能仅仅使用飞机鼻子的方向来确定其完整的朝向。你别无选择,只能退一步,从轨迹中纳入比速度矢量本身更多的信息。作为另一个例子,想想地球上每一点的……

风速,比如说在某个恒定高度。一个相当合理的假设是风速连续变化,因此毛球定理应该适用。我在这里动画的风模式从气象角度来看是完全不现实的,但关键是无论你想出什么样的风模式,现实与否……

毛球定理都会保证在给定高度的地球总有一个地方的风速恰好为零。现在,如果我们吹毛求疵的话……[音乐] 你可以说大气层是三维的,所以更准确的说法是平行于地面的风速分量为零。你知道,它可能垂直向上或向下……

但即便如此,这也有点违反直觉。一个稍微更务实的例子是,如果你想要一个在3D空间所有方向上完全相同的无线电信号……

也就是说,距离源一定距离的每个人在任何时间点都接收到相同相位和振幅的无线电波。这似乎是一个合理的目标,但如果你对电磁波有一点了解……

你就会知道它们是两种不同的矢量场中的振荡,具体来说是电场和磁场。重要的是,这些场中每一个的振荡方向总是垂直于传播方向……

至少在远离源的地方是这样。所以,想想这意味着什么。在距离源一定远的地方,这些场中的任何一个看起来都像球面上的切向量场。而毛球定理……

指出该矢量场的至少一个点必须为零。因此,要在3D空间的所有方向上拥有完全相同的信号……

唯一的办法是信号本身为零,这显然违背了初衷。我举这些例子只是为了说这个看似关于毛茸茸球体的有趣事实确实会出现在意想不到的地方。但是,我真正想通过这个视频做的……

我想要享受的乐趣是让你以一种纯粹数学家可能会的方式探索这个想法。首先,我在开头提到的那个谜题实际上提供了一个很好的方式来锻炼你的思维……

看看那些感觉显而易见的事情并不总是正确的。然后在那之后,我想分享一个完全美妙的证明来解释为什么这个定理是真的。所以,回到谜题上。我不知道……

你怎么样,但当我第一次在我的脑海中摆弄这个想法来建立一些直觉时……

这真的一点也不明显,即减少到一个零点是可能的。对于我能想到的大多数矢量场……

你至少会得到一个向某个方向旋转的漩涡和另一个向相反方向旋转的漩涡。或者也许在一个点有一个源,在另一点有一个汇。这使得……

建议存在某种关于需要至少两个具有相反性质的不同零点的普遍定律,这些性质必须相互抵消。就像磁铁的南北极一样。尽管这很诱人……

但通过一点巧妙的方法,是可以只得到一个零点的。定义这一点的一个好方法是使用所谓的球极投影……

其中除了北极之外的球面上的每一点都被映射到XY平面上的一个唯一点。这种方式非常漂亮。你想象一束光从那个北极射出……

穿过球面上某点的光线也会击中XY平面上的一个且仅一个点。而且反过来也一样。XY平面的每一点都对应于……

球面上的唯一点,这意味着平面可以映射到球面上的每个点……除了北极。这是数学家们最喜欢的映射之一,而我们在这里可以使用它的方式是想象在XY平面上有一些矢量场……[音乐] ……

那永远不为零。定义起来很简单。你可以只取一个恒定矢量场,始终指向右侧一单位。如果你将……

那个矢量场投影回球面上,这会给你一些除了北极之外处处非零的东西。诚然……

我现在展示的方式使得很难解析在北极周围到底发生了什么。基本原因是如果你取平面上均匀采样的点……[音乐] ……

在这个投影下,它们在北极周围变得无限密集。所以让我展示第二种我可以说明事物的方法……

顺便说一句,这也更适合于对我将矢量场投影到球面上这样的含义进行更严格的定义。想象一种在平面上流动的流体……

以每秒一单位的均匀速度向右流动。然后考虑该流体的每个粒子在运动期间投影到……

球面上会是什么样子。如果你取那些投影到球面上的粒子的速度矢量,那就定义了我所说的……

矢量场。以这种方式说明,你可以非常清楚地看到流线如何在球面上形成完美的圆……

所有这些都与该北极处的零速度相切。这真是一个美妙的投影。关键是,即使初始的心理游戏和直觉可能表明……

球面上的矢量场必须至少有两个零点,一点创造力就可以给你一个只有一个零点的场。那么……

你怎么知道它到此为止?你如何严格证明,无论你多么聪明和富有创意……

定义一个没有强制至少有一个点具有零矢量的连续矢量场 simply 是不可能的?这才是真正的巧妙之处所在。我们……

采取这种方法的方式是通过反证法,这意味着你将假设球面上这样的非零矢量场是可能的……

然后推导出一些不可能的事情必须随之而来。就像我说的,我想展示的论证真的很美……

我认为如果……

你会觉得这似乎是你自己就能发现的结论。所以,一如既往,当你觉得自己看到了关键思想时,请随时暂停并深思熟虑。这个论证并非出自我手,它是通过数学家桑娅·谢德瓦瑟(Sanja Schedvasser)传给我的,她还非常慷慨地制作了以下动画来阐释核心思想。基本思路是:如果这样一个非零连续向量场真的存在,你就可以利用它来创建一个球体的连续形变,将球体翻转到内部。接着,我们将证明为什么实际上不可能将球体内翻——至少在某种特定的意义上如此。此时,经典数学类 YouTube 频道的观众可能会对着屏幕大喊大叫,但请耐心听我解释。我保证我会讲到那一点。

这段连续形变的定义有些奇怪,但运作方式如下:想象你的球体以三维空间中某个坐标系的原点为中心。对于该球面上的给定点,考虑附着在该点的向量——即来自我们向量场的那个向量。如果你用一个平面切割球体,该平面由该向量和指向原点的径向线定义,那么该平面与球体的交集是一个特定的大圆——即以原点为中心的一个圆。你要做的是让那个点沿着这个圆弧,按照初始向量的方向移动,直到它正好绕到一半。

为了澄清起见,我并不是说它是沿着球体的一般向量场流动。它的运动完全由它起始的那个向量决定。需要强调的两个重要事实是:最终它会到达起点相反的位置;此外,因为它的运动完全由它起始的向量定义,并且我们假设整个向量场是连续的,附近的点将拥有相近的运动轨迹。目前我只是向你展示一个点沿着其规定的半圆路径移动,但我们同样可以突出显示球面上的其他几个点。

每个点都有与之关联的向量,每个点都定义了一个要行走的大圆路径,你可以观察所有这些点沿着分配的路径漫游。现在记住,我们假设向量场在每处都不为零。我们希望反驳这一点,但这是前提假设。这意味着无限连续球面上的每一个点都有一个同样定义良好的轨迹。因此,自然你会想看整个球体经历这种运动时是什么样子的。

但就在这时,由于证明矛盾法在阐释上存在某种内在的悖论性,动画变得有些棘手。想想看:我们要展示这种由某个假设处处非零的向量场定义的运动是什么样子的。但当然,重点在于这样的向量场并不存在。作为次优选择,我们将使用我们刚刚定义的那个特殊的、仅在北极有一个零点的向量场。这样,如果我们切掉北极,至少可以看到这种运动会对球体的大部分产生什么样的影响——尽管将其应用于整个球体在某种程度是不可能的。

我将继续移除向量本身以避免杂乱,这就是表面上每一点都经历那种奇怪的特殊定义运动的样子。每个点都沿着由它起始的向量定义的各自半圆路径行进。实际上,这有点难以追踪。所以让我把时间倒回一点,在那里你可以看到整个球体最终别扭地穿过自身。为了澄清情况,我们可以通过让点在运动过程中半径变化来稍微扰动运动。

如果我们将顶部的孔洞扩大,事情也会变得更清晰。这使得追踪变得容易得多。至少对于这个球体子集而言,你可以清楚地看到运动的两个重要特征:第一,球体内翻了;第二,在任何时刻都没有任何部分的球体穿过原点。这应该是有道理的:每个点只是沿着以原点为中心的半圆移动,所以当然它永远不会穿过原点。这是两个关键要素。

对于我们的证明,我们要说的是这两个事实以某种方式是不兼容的。不过在此之前,我们需要在这个第一点上停留一下:为什么这种运动确切地说是将球体内翻?实际上,“内翻”这个词到底是什么意思呢?事实上,让我从一个更基本的问题开始:如果你站在球面上的某一点,你怎么知道哪边是外面,哪边是里面?

我意识到这听起来可能是一个非常愚蠢的问题。你可能会说:“只看指向远离原点方向的那一边就行了,你怎么了?”然而这里真正的难题在于我们打算让表面扭曲、变形并以某种疯狂的方式被操纵。因此,真正需要的是一个清晰的概念来界定我们所说的“内部”和“外部”,即使在你以梦想中的任何方式操纵、揉捏和扭曲整个表面之后,这个概念依然清晰。

我认为最简单的方法是任何图形程序员都熟悉的东西:首先给球体分配一个坐标系,类似于我们通常的纬度和经度的概念。你脑海中应该有这样的图像:球面上的每个点都附有一个小标签,上面有一对数字。重要的是,这些标签可以在你对球体施加的任何运动或操纵过程中跟随移动。

围绕给定点,考虑经度增加而纬度恒定的方向,并沿该方向画一个切向量。然后画出经度恒定、纬度增加的线,并在该方向上画一个切向量。从这里开始,我们使用所谓的右手定则来定义取向:你可以将食指指向第一个向量的方向,中指指向第二个向量的方向,然后伸出拇指时,它将垂直于两者。

注意,使用我们的右手,拇指指向外部。事实上,这正是我们将用来定义“外部”含义的方法——至少相对于给定的坐标系而言。在每一点这样做,你得到的是业内称为单位法向量的东西。作为参考,这些在计算机图形学中非常重要——例如,它们让你……

计算光线应如何从给定表面反射。对于我们的故事,我们关心的是:无论你怎么操作或扭曲这个曲面,因为你赋予它的坐标系可以随之移动,你总是可以进行这样一个游戏:伸出食指指向第一个坐标增加的方向,中指指向第二个坐标增加的方向,然后竖起大拇指。然而,以自然跟随任何函数的定义方式来确定内部和外部究竟是什么意思,这其实出奇地棘手。那么,我们为什么要做这个?现在想想由向量场在球体上诱导的那种奇怪变形。我们要如何毫无疑问地得出结论,说这必然会将球体内翻?

回想一下每个从 P 点开始的个体最终如何到达负 P 点。字面上更直接的方法是通过原点进行反射,就像这样。考虑我们刚才拥有的一个示例点以及穿过它的有向经纬线图像。注意如果让该图中的每个点移动到其负值位置,它看起来会是什么样子。你可能想象表面的所有坐标标签都随之移动。所以当你玩同样的游戏,伸出食指指向第一个坐标增加的方向,中指指向第二个坐标坐标增加的方向时,现在在一切都被取反后注意你的大拇指是指向原点而不是远离。

这一切旨在说明,将球体的每个点 P 映射到其负值的函数必然以我们刚刚定义的方式反转方向,从而将球体内翻。特别是,我们用假设的向量场描述的那种非常奇怪的变形必须反转方向,因为它将每个点 P 映射到负 P。你也可以用一种更简单的运动看到这个效果,这种运动让我们到达相同的最终位置。想象绕 Z 轴旋转球体 180°,然后通过 XY 平面进行反射。这导致每个点 P 落在其负值上,并注意所有原本指向外部的单位法向量最终 [音乐] 指向内部。

由于这里用蓝色外部和棕色内部渲染,这两种颜色最终被交换了。此时,经典数学视频的所有观众可能都会想起明尼苏达大学几何中心在 1994 年制作的一部绝对精彩的视频。这确实是所有数学阐述中的真正经典之作。它通过某种连续变形展示了将球体内翻的这种令人震惊的方法。我之所以为任何看过该视频的人提起这一点,是为了说那里的背景略有不同。他们试图避免的现象是在过程中在球体上产生尖点和褶皱。

但在这里,为了我们的目的,我们并不真正关心那个问题。然而,由这种奇怪向量场诱导的变形中有一个特征确实是不可可能的:球体的任何点都不会穿过原点。有一种非常美妙的方式可以看出为什么在不穿过原头的情况下将球体内翻根本不可能发生。说明这一点最有趣的方法可能是使用物理模型。想象一个在原点喷水并向所有方向均匀喷射水的喷泉,例如每秒 1 升的速度。

我在这里的动画是用许多飞溅的水滴来表现的,但在原则上,我希望你将这想象为不可压缩流体的连续流动,在所有方向上均匀分布。随着这种不可压缩性,我们想象空间中所有地方的水密度保持恒定。这很重要。如果你有一个有向表面,比如带有单位法向量球体,你可以测量每单位时间有多少水流过该表面。物理学家对此有一个特殊的名称,称之为通量。

在给定面积块上,通量测量每秒有多少水穿过它。当水流从内部流向外部并与表面的单位法向量对齐时,我们将其计为正通量。相反,如果水流方向相反,逆着那些法向量流动,则通量为负值。当你在整个表面上将所有这些加起来时,这就给出了总通量。关键观察是,这个总通量必须与表面内部产生的水量相匹配,即每秒 1 升。

令人惊叹的是,即使你稍微扭曲或变形球体,这也将保持真实。即使在过程中特定面积块上的通量发生变化,总通量仍保持在每秒 1 升。基本原因是我们将水视为不可压缩流体,其在空间中的密度恒定且均匀。因此,在原点产生的每一滴水都必须由离开表面的水滴抵消。重要的是,为了我刚才所说的话成立,我们必须对通量进行符号计数。

例如,假设你扭曲球体使其像这样折叠自身。然后你会注意到沿着某条线,水流出表面然后又流回内部再流出外部。因此,当水流从内向外时你要将其计为正通量,但当它从外向内时要计为负通量,以免重复计算那些粒子三次。从这里你可能可以看到我指向矛盾的关键点:改变这种表面净通量的唯一方法是表面的部分穿过原点。

例如,如果你将其拉到侧面使其完全不包含源点,净通量将为零。流入的水分子数量与流出的水分子数量相等。因此,考虑到这一点,想想我们一直在谈论的一切。如果你能在球体上定义这样一个非零向量场,让你创造出这种将球体内翻的奇怪变形,通量会发生什么?我们要说的将球体内翻是指所有单位法向量最终指向内部而不是外部。

因此,对于任何特定的面积块,在某一点其通量从正值过渡到负值。总体而言,结束时总通量必须达到 -1 升/秒。但是,同时如果它从未穿过原点,净通量永远不能改变。它以 +1 开始,所以必须以 +1 结束。

这就是矛盾所在。不存在同时具备这两种性质的变形,因此你看到了:球面上不可能存在非零连续向量场。你真的无法梳理毛球的毛发。我不知道你作何感想,但我觉得这非常美妙。拓扑学往往是一场游戏,看似直观的事实却有着令人惊讶却又有些沮丧的反例。但真正的洞察力和创造力往往来自硬币的另一面,即你从看似直观的事物出发,找到那些能真正证明其根本正确的构造。

关于刚才展示的论证如何变得完全严谨,以及这一整体概念在多大程度上能推广到其他维度,还有更多话要说。但在深入探讨之前,如果允许我在此稍作停顿、转换话题一分钟,我想向大家介绍一项今年启动的实验性新项目。我将其视为一种虚拟招聘会。如果你访问 3b1b.co/talent,你会发现一组公司有着两个共同点:首先,按定义来说,它们对从这一受众群体中招聘人才感兴趣。

它们看重那种在像你这样为了娱乐而观看此类视频的人身上清晰可见的数学和技术好奇心。如果你去探索该页面,看到每个公司精心挑选[音乐]与你分享的谜题、挑战和技术工作,你会很快感受到这里共享的价值观。它们拥有的第二个共同点是:在那里工作的人真的热爱他们的工作。这一点对我来说很重要,我在搭建整个平台时对此非常谨慎,因为如果这对受众没有实际价值,这一切就毫无意义。

为此我花时间和每个团队的技术人员进行了交谈,只有当他们确实喜欢自己的工作时,这种加入才有意义。普遍而言,人们享受工作的一个核心原因是对所有队友怀有非常真诚的尊重。为了让你——无论你是谁——觉得相关, across 不同行业提供了各种类型的工作机会,包括高级职位、新职业转型、实习,甚至是兼职辅导工作。

为了提供更广泛的背景信息,如果你好奇的话,我在第二个频道录制了一整期视频来解释我为什么启动这个项目以及具体情况。其中提到的一点是,我自己也在寻找招聘机会。每当这种情况发生时,我都会将我的个人页面加入这个虚拟招聘会中,你可以去那里查看我对招聘的要求描述以及申请方式。整个页面会随着时间的推移不断更新,所以即使你现在不找工作,但未来有可能需要时,请务必查看。

好了,回到毛球定理。最后的论证基于“通量”这一整体概念,诚然,如果没有更多细节,这显得有点粗略。因此,我会将一组练习题留在屏幕上,概述了一种如果你具备多元微积分和散度定理背景,可以使这一论证更加严谨的方法。还有另一种更深层的方法来通过称为“同调群”的东西触及同样的基本思想,但这肯定超出了今天的讨论范围。

我想留给你思考的最后一个点是其他维度的性质。很容易看出,你可以梳理蓬松圆环上的毛发,尽管你无法对球体这样做。一般来说,规则是:所有偶数维度的球面都可以被梳理平整,而奇数维度的则不能。我喜欢我们刚才讨论的整个视频中的论证之处在于:它提供了一个相当直接的线索,解释了为什么这是规则(至少如果你熟悉“定向”的概念)。

在所有偶数维度中,将点映射为其相反数的函数是保持定向的;而在所有奇数维度中,这是一个反转定向的函数。你可能喜欢花一点时间暂停并思考为什么这意味着我们刚才概述的证明适用于所有奇数维度。尽管它没有明确告诉你偶数维度的情况下没有任何方法可行,但作为一个有趣的谜题,你可以尝试构造一个在所有这些偶数维度中非零向量场的显式例子。例如,你如何梳理四维超球体上的毛发?