## 《首要怀疑》2：湍流和蝴蝶

上一讲我们借助洛伦兹吸引子讲了混沌的概念。混沌的关键特点是系统的初始值稍微变化一点点，后面的演化结果就会非常不同——这意味着最初的误差会被迅速放大，这样的系统将是难以预测和把握的。

这是一种什么局面呢？英文中有一段谚语，正好说明了误差被放大的过程——

由于缺少一颗钉子，马蹄铁就丢了。

由于没有马蹄铁，这匹马就没了。

由于缺乏马匹，骑手不能上阵。

由于缺少一个骑手，情报没有传到。

由于没有情报，战斗失败了。

由于战斗失败，王国陷落了。

所有这些都是因为少了一个马蹄铁钉。

![图片](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022114/1800623067353940508/022114.png)

这是典型的多米诺骨牌效应：最初小小的一件事出了错，导致最后巨大的灾难；而如果当初没有那个小错，可能一切都会不同。这就叫「演化结果对初始值有非常敏感的依赖」。

这样的过程可能发生在任何领域中，真是让人感到如履薄冰啊。这就是混沌系统的可怕之处。

但是，且慢！你肯定会想到，可是世间大多数王国并没有因为少了一颗钉子而陷落啊：事实上有些国家腐败不堪、千疮百孔都能继续存在很多很多年，这种情况又怎么算呢？

没错，即便是一个混沌系统，也不是哪里都充满戏剧性的。我们专栏以前专门讲过，大多数复杂系统是非常安全的 [1]。

帕尔默的《首要怀疑》这本书并不是专门拿一些小概率事件吓唬我们，它的一个重要主题，就是如何区分安全系统和不安全系统。你首先要知道，即便是洛伦兹吸引子之中，也有很多地方是非常安全的。

✵

其实洛伦兹最高级的发现还不是混沌现象，而是开启了被帕尔默称为「混沌几何学」的一种新数学，那个咱们后面再讲。现在先回到洛伦兹吸引子。

我们看下面这三张图，它们描写的都是从洛伦兹吸引子的一个区域中选择一个小圆环，圆环内部的点代表一些互相临近的初始值，我们想看看这些点随着时间的演化是怎样的。你可以想象最初圆环中的点代表一个小学班级的所有同学，他们的家庭条件、智力水平、生活环境都很接近，最初都聚集在一起。

那他们以后的命运也会是相似的吗？

![图片](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022114/1800623157548230224/022114.png)

对于第一张图中左上角的那个圆环来说，这些点此后一直都在一起。这可能是封闭落后时期的某个乡村小学，孩子们此生的命运都差不多。对应到混沌系统，这就是说初始值在这个位置的系统是高度可预测的，因为有点误差没关系，开始差不多的情况结果也会差不多。对应到王国，那就是一个非常稳定的国家，比较抗折腾，不会因为丢失马蹄铁之类的事情陷落。

第二张图中圆环的起始位置比较靠近吸引子的一个中心，这个局面就有点微妙了。最初几年，孩子们的命运仍然很相似，可能上的都是差不多的高中。可是一段时间之后，那些点的分布就散开了，虽然说彼此之间还有一定的联系，但是最终大家的命运有比较大的区别。这可能是一个城市里的小学，有人考上大学，有人没考上。对应到王国，这大概是个有点风雨飘摇的国家。

第三张图中圆环在吸引子的底部开始，短短几年之后，孩子们就分散到了世界各地，干啥的都有，命运大不相同。这是一所临时成立的国际小学吗？是赶上了战乱吗？对应到王国，那就是乱纪元，谁也不知道未来会发生什么。

这个洞见是混沌系统未来会发生什么，跟初始值的选取范围非常有关系。很多局面是非常安全的，我们的预测难点是那些不安全的局面。

✵

你可能会说，难以预测也是可以预测的啊。现在计算机算力这么强，对于不安全的局面，如果把初始值的精确度再调高一点，让误差再减小一点，预测的时间范围不就更长了吗？

对洛伦兹吸引子来说，的确如此。但是对于更复杂的系统，洛伦兹说，你精度再高也没用。

比如说天气系统。

天气预报的原理非常简单，你只要解一个关于地球大气的流体力学问题。方程是现成的而且是无比精确的，叫「纳维尔-斯托克斯方程（Navier-Stokes equations）」。它基于牛顿力学，没有多余的假设，可以精准描写空气和水的运动。你要做的就是把大气中每一个位置的压强、密度、温度和速度输入到方程中，用计算机求解，就可以知道天气接下来会如何演化。

当然这里面有个计算精度问题。你不可能照顾到每一个空气分子，你总需要搞一个模型。通常做法是把大气打上方形的三维格子，通过观测给每个格子赋予各种物理量的初始值，然后对这些格子做计算。

![图片](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022115/1800625775330795028/022115.png)

气象学家用了几十年的天气预报模型是设定格子的边长是100公里，这个精度不算太高。所有模型都默认每个小格子内部的大气都是均匀的，也就是说，我们假定100公里以内发生的事情都可以忽略不计。

我们假定比格子尺度小的物理学对全局没什么大影响。这其实是一个不得已的假定，毕竟你的计算分辨率总是有限的。

而这个假定，是错的。

✵

流体力学中恰恰有这么一种现象，就是小尺度范围内发生的事儿可以剧烈地影响到大尺度的事儿。这就是「湍流（turbulence）」。

你可能听说过湍流，我举个简单例子。打开家里的自来水龙头，当你把流速控制到比较慢、又不是特别慢的时候，你会发现刚出来的水柱可以又光滑又稳定，就好像是静止似的。这种流体叫「层流」，意思是每个水分子走的路径都跟它前面那个水分子是一致的，就好像排队一样，横向临近水分子的路径是平行的，一层一层的非常规则。

但如果你把水龙头开大，你会发现水流刚离开水管就开始四处飞溅，非常乱，这就是湍流。湍流中的水分子不再是排着队直接往前走了，它们会有很多*横向*的运动，甚至有时候还会往回走，等于是水一边往下流一边在空中形成各种小漩涡。

![图片](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022115/1800625822575460892/022115.png)

![图片](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022115/1800625884852463184/022115.png)

![图片](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022115/1800625931023359508/022115.png)

你可能没想到，物理学家至今都没有彻底想明白湍流到底是怎么回事。纳维尔-斯托克斯方程在这种复杂局面下的求解非常困难。我们只知道湍流有几个特点：不规则、会到处走、会扩散、会受到流速和粘滞度的影响等等。

最重要的是，湍流是流体中的各种「漩涡」导致的。大漩涡里套着小漩涡，小漩涡里又有更小的结构。

![图片](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022115/1800625969678090780/022115.png)

这也就是说，是小尺度上发生的一些事情，导致了大尺度的湍流。要想用计算机模拟湍流，你的模型就必须精确到小尺度才行。

✵

你知道为什么高尔夫球的表面要带有很多凹坑吗？为了造成湍流。球表面附近的湍流旋涡能减少空气对球的阻力，让球飞得更远。

![图片](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022115/1800626002964063824/022115.png)

湍流现象无处不在。轮船会造成水的湍流，高速公路上的汽车会造成空气的湍流。你坐飞机，有时候飞行员会提醒你系好安全带，说飞机“遭遇了气流”，那也是湍流。其实整个地球大气层就是一个超大尺度的湍流系统，有几个环绕地球一周的超大漩涡，称为「喷流（jet stream）」——

![图片](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022115/1800626034102574612/022115.png)

这种喷流在空中就好像河流一样，蜿蜒范围可以达到1万公里。国际航班如果是从西往东飞，可以借助喷流飞得更快更省力；如果是从东往西飞，就得尽量避开喷流。

所以湍流真是贯穿了小尺度和大尺度……对天气预报模型来说，麻烦就在于小尺度的湍流。

✵

湍流现象说明小尺度流体力学是不可忽略的。你的模型把100公里以内的湍流都给取消了，那如果这种小尺度湍流原本会导致更大的漩涡，再导致更大的风暴，你这个模型不就没考虑在内吗？

还是洛伦兹，在1969年的一篇论文中首先讲了这个问题。他在1971年的一次会议上提出：「巴西的蝴蝶扇动翅膀，会不会给德克萨斯州带来一起龙卷风？」说的就是湍流，这就是后来「蝴蝶效应」这个典故的出处。

请注意，严格说来，洛伦兹说的这个蝴蝶效应，是比我们前面说的洛伦兹吸引子更不好对付的混沌系统。

洛伦兹吸引子的某些区域的确会剧烈地放大误差——但是如果你最初的测量足够精确，你的计算精度足够高，你原则上还是可以尽量延长能准确预测的时间。但是天气预报里的这个蝴蝶效应，却是不管你怎么提高精度，你能预测的时间长度也有一个上限。

这个原理是这样的。比如一般气象模型的格子尺度是100公里，这种情况下你能预测未来一周的天气变化。你对此很不满意，你说我们现在有更强的计算机和更好的观测设备了，我们完全可以把格子精度提高一倍，达到50公里！那么，我们可预测的时间是否也会提高一倍呢？

洛伦兹说，不会的。这里面有个难以细说的数学理论，简单说就是「误差在小尺度上增长得更快」。把模型精度增加一倍，你可以预测的时间并不会从7天增加到14天——而是只能增加一半，也就是多预测3.5天。现在你可以做10.5天的天气预报。

那你说我要把精度再增加一倍呢？那么你可以预测的时间会再延长一半的一半，也就是1/4个7天。

以此类推，如果你把模型精度无限提高，你最多能预测的天数就是

7(1 + ½ + ¼ + ⅛ + 1⁄16...)天

任何一个学过高等数学的人都知道，括号里无穷级数的和等于2。这也就是说，哪怕你的观测和计算精度是无限的，你的初始误差为0，你最多也只能提前预测14天的天气。

这个可预测天数的上限，叫做「奇异极限（singular limit）」[2]。

因为奇异极限的存在，天气系统是比洛伦兹吸引子更可怕的系统。这是因为洛伦兹吸引子只有一个点的x,y,z三个变量，而天气系统中有很多很多个变量。我们把洛伦兹吸引子称为「低阶混沌（low-order chaos）」，把天气这样的系统称为「高阶混沌（high-order chaos）」。

所以这就给预测复杂现象提出了一个根本性的限制，特别复杂的现象本质上来说不可能做长期预测。

考虑到真实世界里的各种系统都更像天气一样复杂、而不是更像洛伦兹吸引子一样简单，我们不得不得出一个无比悲观的结论：

世间的事情，本质上是你不可能提前很多天预测到的。

不管科技再怎么发达，我们也永远都不会知道14天之后的天气。

✵

天要下雨，娘要嫁人，国家要开战，股市要崩盘，蝴蝶翅膀的湍流要驱动飓风，恒纪元要变成乱纪元……此事古难全。

这两讲的数学带给我们两个洞见，它们同等重要——

第一，世界本质上是非周期性和不可预测的，你能耐再高也没用。

第二，但是，世界大多数地方在大多数情况下并不是混乱的。就连洛伦兹吸引子上都有相对比较友好的区域，地球轨道几乎就是周期性的，地球上并不是处处天天刮飓风，昨天的经验常常约等于明天的预测。

我们接下来要做的事情，就是明确哪里是恒纪元，并且评估乱纪元发生的可能性。

![图片](https://piccdn2.umiwi.com/uploader/image/ddarticle/2023022115/1800626080273498652/022115.jpeg)

注释

[1] 精英日课第三季，蝴蝶无效应，安全有小事

[2] 洛伦兹的这番计算过程只能算是估算，按照数学家的标准还差一个严格证明，还是一个著名的悬而未决的问题——所以我们不能肯定蝴蝶效应是否真的存在。但是学界普遍认为洛伦兹的估算是对的。

### 💡 精华要点
- 数学带给我们两个洞见，它们同等重要：
- 第一，世界本质上是非周期性和不可预测的，你能耐再高也没用。
- 第二，但是，世界大多数地方在大多数情况下并不是混乱的。
