蝴蝶轻微的振翅如何造成飓风
从巴西的蝴蝶到德克萨斯的飓风
本文系应《科幻世界》杂志的约稿而写, 但内容略多于提交给《科幻世界》的版本 (即 发表稿), 并且包含了后者因篇幅所限而略去的注释。 本文在行文结构上与 发表稿 也有一定差异。
一. 决定论
在 “时间旅行: 科学还是幻想?” 一文的 第四节 中, 我们曾经提到了混沌理论中的一个概念: 蝴蝶效应。 这个效应也被称为对初始条件的敏感依赖性, 它指的是某些 (通常是非线性的) 物理体系中, 初始条件的细微改变有可能对体系的未来演化产生巨大的影响。 它的一种很富诗意的形容, 是说巴西的一只蝴蝶拍动翅膀产生的空气扰动, 有可能演变成美国德克萨斯州的一场飓风。 这也是蝴蝶效应这一名称的主要由来。 本文将对这一概念及其历史做一个简单介绍。
我们知道, 人类描述自然的努力, 很大程度上体现在对自然现象的时间演化进行描述上。 这种描述在许多方面都取得了很大的成功。 早在三百多年前, 牛顿 (I. Newton) 就建立了我们称为牛顿力学的理论体系, 对小至钟摆、 陀螺, 大至行星运动的各种自然现象的时间演化做出了极为精确的描述。 一八四六年, 天文学家们在牛顿力学所预言的位置上发现了几十亿公里之外的太阳系第八大行星 - 海王星, 成为牛顿力学最辉煌的成就之一[注一]。
牛顿力学的成功, 除了体现在对某些自然现象的精密描述外, 还留下了一个非常重要的遗产, 那就是决定论的思想。 按照这一思想, 从一个物理体系在某一时刻的状态, 可以推算出它在任何其它时刻的状态。 牛顿力学本身只适用于描述一定范围内的力学现象, 但这种决定论的思想却适用于几乎所有已知的物理定律, 甚至在一定程度上包括了被公认为是非决定论性的量子力学[注二]。
那么, 决定论思想所具有的如此广泛的适用性, 是否意味着我们在原则上可以对物理现象作出精确预言呢? 在很长一段时间里, 人们认为答案是肯定的。 但是, 与这种被认为原则上可以做到的精确预言形成对比的, 是实际上能够精确求解的物理问题的稀少。 以天体的运动为例, 人们能够精确求解的只有二体问题。 一旦把太阳、 地球和月球这三个最熟悉的天体同时考虑进去, 就没法精确求解了[注三]。 又比如流体运动, 能够精确求解的只有一些非常理想的情形, 一旦把象粘滞性那样最常见的性质考虑进去, 也就没法精确求解了。 物理学家们能够精确求解的问题, 大都附加了各种简化条件。 而真正的自然现象从来都不满足那些条件, 从而没有一个是能够精确求解的。
幸运的是, 在那些无法精确求解的问题中, 有一部分非常接近于某些能够精确求解的问题。 比如地球绕太阳的运转, 所有其它天体的影响都相当微小, 因此这一问题非常接近于能够精确求解的二体问题。 而且这两者的差异还可以通过各种手段加以弥补。 正是由于这些近似手段 (包括数值近似) 的存在, 使得物理学家们虽然很少能够精确求解问题, 却依然能够对很多自然现象的演化做出非常成功的描述。
二. 早期研究
但是, 任何近似手段都必然有误差, 因此近似手段的有效性有赖于对误差的控制。 随着研究的深入, 物理学家们开始遇到了一些无法用近似手段来有效处理的问题。 这些问题中有许多都具有蝴蝶效应, 它使误差变得不可控制。 十九世纪末, 法国科学家庞加莱 (H. Poincaré) 在对三体问题的研究中发现了一些这样的问题。 他在《科学与方法》一书中写道: “初始条件的微小差异有可能在最终的现象中导致巨大的差异”, “预言变得不可能”。 这或许是对蝴蝶效应最早的明确描述[注四]。 除了三体问题外, 流体力学中的湍流问题也是一种无法用近似手段来有效解决的问题。 据说德国物理学家海森伯 (W. Heisenberg) 曾经表示, 有机会向上帝提问的话, 他想问上帝为什么会有相对论? 以及为什么会有湍流? 他并且补充说: “我确信上帝知道第一个问题的答案” - 言下之意是上帝也未必知道为什么会有湍流。
当科学家们接触到包含蝴蝶效应的现象时, 科幻小说家们也在用自己独特的方式描述着类似的现象。 比如一九五五年, 美国科幻小说家阿西莫夫写了一部小说, 叫做《永恒的终结》(The End of Eternity)。 在这部小说中, 阿西莫夫描述了一群生活在物理时间之外的人, 他们可以对人类的历史进行修正, 使其更加完美。 但他们企图为人类创造一个完美历史的努力, 在无形中扼杀了人类的创造与探索能力, 致使人类在与外星生命的竞争中一败涂地。 幸运的是, 人类后来发现了这一点, 并最终通过时间旅行的手段设法挽回了一切。 在这部小说中阿西莫夫提到: 对历史的每一次微小改变, 都有可能以一种无法精确预言的方式改变数百万人的人生轨迹, 这与蝴蝶效应的表述显然有着极大的相似性。 这种出现在科幻小说中的近乎先知先觉的描述, 初看起来很令人吃惊, 其实并不奇怪。 因为现实世界本身就是一种最复杂的自然现象, 象蝴蝶效应那样的东西, 远在它成为科学研究的对象前, 就早已出现在了人们的日常经验中。 人们常说的 “差之毫厘, 谬之千里”、 “牵一发动全身” 等, 都在一定程度上体现了这种效应。 但从那些日常体验上升为明确的理论表述, 则是一个困难得多的问题。
从十九世纪末到二十世纪中叶, 经过庞加莱、 利雅普诺夫 (A. Lyapunov)、 弗兰克林 (P. Franklin)、 马科夫 (A. Markov)、 伯克霍夫 (G. Birkhoff) 等人的一系列研究, 人们对这个困难得多的问题终于有了一定的认识。 人们发现, 对于满足一定条件的物理体系来说, 只有周期性或近周期性 (near periodic) 的运动才不会因为初始条件的细微改变而产生剧烈变动。 依照这个结果, 如果运动是非周期性的, 那么初始条件的细微改变就会对体系的演化造成巨大影响。 因此, 这个结果不仅确立了蝴蝶效应的存在, 而且还对它的产生条件给出了一定的描述。 但是, 那时侯人们最感兴趣的只是周期运动, 因此有关非周期运动结果虽然可以作为推论得到, 在当时的学术文献中却极少提及。 正因为如此, 十几年后当洛伦兹 (E. N. Lorenz) 在数值计算中再次遭遇蝴蝶效应的时侯, 依然感到了极大的惊讶。 也正因为如此, 发现蝴蝶效应的荣誉在很大程度上被后人归结到了洛伦兹的头上。
三. 模拟天气
洛伦兹是一位资深的气象学家, 早在二战时期就在美国的军方机构从事气象预测研究。 战争结束后, 洛伦兹来到了麻省理工学院 (MIT), 继续从事自己的研究。 从理论上预测气象变化 - 尤其是给出长期预测 - 是气象学家们梦寐以求的目标, 但这一目标的实现却始终困难重重。 这种困难是不难理解的, 因为地球的大气层是一个巨大的流体系统, 所有流体力学系统所具有的复杂性, 包括那个连上帝也未必知道起源的湍流问题, 都会出现在大气层中。 更何况, 大气层的行为与海洋、 地表、 日照等各种复杂的外部条件都有密切的关系; 而且大气层的组成相当复杂, 其中有些组成部分 - 如水汽 - 的形态还常在气态、 液态、 与固态之间变化。 所有这一切, 都使得气象预测成为一个极其困难的课题。
在洛伦兹从事气象研究的时侯, 从理论上预测气象的方法主要有两类。 一类被称为动力气象学 (dynamic meteorology), 这类方法主要是把大气层看作一个流体系统, 然后选取一些重要的物理量, 如温度、 风速等, 进行研究。 由于问题的复杂, 人们还把大气层象切蛋糕一样分割成许多区域, 每个区域都用一个点来代表。 显然, 这是极其粗糙的近似, 但即便如此, 整个大气层的状态往往还是需要几百万甚至更大数目的变量来描述[注五]。 换句话说, 即便是求解一个非常粗糙的气候模型, 往往也需要处理带有几百万个未知数的方程组。 这无疑是极其困难的 (但不是完全没有希望的)。 除了动力气象学外, 还有一类方法被称为天气学 (synoptic meteorology), 这类方法的特点是把对气候影响最大的一些大气结构, 比如各种气旋, 直接作为研究对象。 天气学所使用的规律, 有许多是描述那些大气结构的经验规律, 而不是象流体力学那样系统的物理理论。 从这个意义上讲, 天气学不如动力气象学那样基本。 但天气学的优点, 是把从动力气象学角度看非常复杂的某些大气结构作为了基本单元, 从而有着独特的简化性。
洛伦兹所采用的主要是天气学的方法。 经过大量的简化, 洛伦兹得到了一个含有十四个变量, 并且其中一到两个变量的影响可以忽略的模型。 即使那样的模型用手工计算也是非常困难的, 洛伦兹决定借助计算机的帮助。 当时是一九五九年, 距离个人电脑的出现还有二十几年。 洛伦兹使用的机器用今天的标准衡量是极为简陋的: 体积庞大, 噪音惊人, 内存却只有今天普通个人电脑内存的几万分之一。 经过几个月的努力 (主要是编程), 洛伦兹终于在那台机器上运行起了他的模拟天气。
四. 奇怪的结果
日子平静地流逝着, 洛伦兹与同事们间或地就模拟天气的演变打上一些小赌, 聊以消遣。 终于有一天, 洛伦兹决定对某一部分计算进行更为仔细的分析。 于是他从原先输出的计算结果中选出了一行数据 - 相当于某一天的天气状况 - 作为初始条件输入了程序。 机器从那一天的数据开始了运行, 洛伦兹则离开了办公室, 去喝一杯悠闲的咖啡。 中国的神话故事中有所谓 “洞中方一日, 世上已千年” 的传说, 洛伦兹的那杯咖啡就喝出了那样的境界。 一个小时后, 当他回到实验室时, 他的模拟世界已经运行了两个月。 洛伦兹一看结果, 不禁吃了一惊! 因为新的计算结果与原先的大相径庭。 这为什么令人吃惊呢? 因为这次计算采用的初始条件乃是旧的数据, 既然初始条件是旧的, 得到的结果怎么会大相径庭呢? 洛伦兹的第一个反应是机器坏了, 这在当时是经常发生的事情。 但是, 当他对结果做更仔细的检验后, 很快排除了那种可能性。 因为他发现, 新旧计算的结果虽然最终大相径庭, 但在一开始却很相似, 两者的偏差是在经过了一段指数增长过程后才彻底破坏相似性的。 如果机器坏了, 是没有理由出现这种 “有规律” 的过程的。
既然机器没有问题, 那么究竟是什么造成了如此巨大的偏差呢? 洛伦兹很快找到了答案。 原来, 洛伦兹的程序在运行时保留了十几位有效数字, 但在输出时为了让所有变量的数值能够打印在同一行里, 他对每个变量都只保留了小数点后三位有效数字。 因此, 当洛伦兹把以前输出的数据作为初始条件输入时, 它与原先计算中保留了十几位有效数字的数据相比, 已经有了微小的偏差。 洛伦兹的计算表明, 在他的模拟系统中, 这些微小的偏差每隔四天就会翻一番, 直至新旧数据之间的相似性完全丧失为止。 这正是蝴蝶效应。 由于这种效应的存在, 洛伦兹意识到长期天气预报是注定不可能具有高精度的。 因为我们永远不可能得到绝对精确的初始条件, 而且由于任何计算设备的内存都是有限的, 我们在计算过程中也永远不可能保留无限的精度, 所有这些误差都会因为蝴蝶效应的存在而迅速扩大, 从而不仅使一切高精度的长期气象预测成为泡影, 而且也葬送了建立在决定论思想上的对物理现象进行精确预言的梦想[注六]。 蝴蝶效应的发现还让洛伦兹回忆起一件他念本科时发生的事情。 那是在二十世纪三十年代, 当时他所在的镇上有许多学生迷上了弹球游戏 (pinball game), 那是一种让小球在一张插有许多小针的倾斜桌子上经过多次碰撞后进入特定小孔的游戏。 当地政府曾想以禁止赌博为由禁止这种游戏, 但游戏的支持者们争辩说这不是赌博, 而是一种有关击球准确度的技巧比赛。 他们的理由一度说服了政府官员, 因为当时大家并不知道弹球游戏其实包含了蝴蝶效应, 无论多么高明的技巧都将无济于事。
洛仑兹奇怪吸引子
五. 从蝴蝶到飓风
发现蝴蝶效应后的第二年 - 即一九六零年, 洛伦兹在一次学术会议上粗略地提及了自己的发现, 但没有发表详细结果。 会议之后, 洛伦兹感到自己的模型仍然太复杂, 他决定寻找更简单的模型。 一九六一年, 他从同事索兹曼 (B. Saltzman) 那里得到了一个只含七个变量 (即比他自己的模型少了一半的变量) 的流体力学模型[注七]。 洛伦兹很快发现, 在索兹曼的模型中, 有四个变量的数值很快就会变得可以忽略。 因此, 这一模型的真正行为可以用一个只含三个变量的方程组来描述, 这组只含三个变量的方程后来被冠上了洛伦兹的名字, 称为洛伦兹方程组。 利用这一方程组, 洛伦兹再次确认了蝴蝶效应的存在[注八]。 一九六三年, 他在《大气科学杂志》上发表了题为 “确定性非周期流” (Deterministic Nonperiodic Flow) 的论文, 正式公布了自己的结果。
不过, 无论是洛伦兹的原始论文, 还是此后若干年内的其它有关著作, 都没有直接使用 “蝴蝶效应” 这一名称。 洛伦兹本人有时用海鸥造成的大气扰动来比喻初始条件的细微改变。 “蝴蝶” 这一名称的使用是在九年后的一九七二年。 那一年洛伦兹要在华盛顿的一个学术会议上做报告, 却没有及时提供报告的标题。 于是会议组织者梅里利斯 (P. Merilees) 替洛伦兹拟了一个题目: “巴西的蝴蝶拍动翅膀会引发德克萨斯的飓风吗?” (Does the flap of a butterfly's wings in Brazil set off a tornado in Texas?)。 就这样, 美丽的蝴蝶随着梅里利斯的想象飞进了科学术语之中[注九]。 除此之外, “蝴蝶效应” 的得名还有另外一个原因, 那就是洛伦兹模型中有一个所谓的奇怪吸引子, 它的形状从一定的角度看很象一只展翅的蝴蝶 (见附图)。 不过 “蝴蝶效应” 这一名称的最终风行, 在很大程度上要归因于美国科普作家格雷克 (J. Gleick) 的科普作品《混沌:开创新科学》(Chaos: Making a New Science)。 这部作品被译成了多国文字, 对混沌理论 (蝴蝶效应是混沌理论的一部分) 在世界范围内的热播起了极大的促进作用。 这部作品第一章的标题就是 “蝴蝶效应”。 二零零四年, 蝴蝶效应甚至被搬上了银幕, 成为一部科幻影片 - 虽然是不太成功的影片 - 的片名。
蝴蝶效应及混沌理论在世界范围内的风行, 一度使许多人产生一种错觉, 以为物理学的又一次革命到来了。 在这种 “激情” 的鼓舞下, 这一领域涌现出了大量的文章, 其中包括不少低水平及浮夸的工作。 从物理学的角度讲, 蝴蝶效应及混沌理论并不包含新的原理性的东西, 它们对物理学的最大启示是: 形式上简单的物理学定律有可能包含巨大的复杂性, 从而有可能解释比我们曾经以为的更为广阔的自然现象。 这一点早在洛伦兹的论文发表之前, 就已经被一些物理学家注意到了。 二十世纪六十年代初, 美国物理学家费曼 (R. Feynman) 在给本科生讲课时, 就非常清晰地阐述了这一点 (那些课程的内容汇集成了著名的《费曼物理学讲义》)。 费曼曾经希望人类的下一次智力启蒙会带给我们理解物理定律中的复杂内涵的方法。 混沌理论的发展部分地体现了费曼的希望, 但今天我们对这一领域的了解, 在很大程度上依赖于计算技术的发展, 与真正的智力启蒙还有一定的距离。 真正的智力启蒙究竟会在何时? 就象洛伦兹的天气一样, 谁也无法准确预测, 但我们会拭目以待。