关于蝴蝶效应,你还只知道那场被扇动的龙卷风吗?
导语
“人们经常都会看到,纯粹理论研究的一点点成果,也许在很长时间之后,会导致连做该纯理论研究的科学家都始料不及的实际应用。”——爱德华·诺顿·洛伦茨。他不是文学家,却在不经意间留下了一个脍炙人口的新成语:蝴蝶效应。他是麻省理工学院(MIT)气象系已故教授爱德华·诺顿·洛伦茨(Edward Norton Lorenz,1917年5月23日-2008年4月16日)。
洛伦茨是一位气象学家,研究大气物理,曾孜孜不倦地去探索多年来被学术界认为“算不上是科学”的“长期天气预报”。气象学家甚至普通人都知道,长期天气预报是不精确的:谁知道明年的今天这个地区的天气会怎么样呢?洛伦茨的伟大贡献之一,是以一个简单具体的物理学模型及其数学原理向世人示明:精确的长期天气预报的确是不可能的。
洛伦茨很早就注意到,虽然一年有四季,但准确地说气候和天气都没有严格的周期规律。
在1950年代,他尝试建立一个数学模型来描述大气层上下温差引起气流变化的动力学过程。在作了许多简化之后,他构建了一个12个变量的非常复杂的微分方程组。可是,在当年没有高速计算机辅助的条件下,谁都没有办法对之进行分析和计算。洛伦茨试图进一步简化这个数学模型,但直觉上认为需要保留偶数个方程才能准确地描述气流动态,多次尝试之后以失败而告终。
1961年的一天,他和同在“MIT一般环流研究项目”工作而后来成为“现代气候理论之父”的巴里·萨尔茨曼(Barry Saltzman)教授一起探讨了他的模型简化问题。那时萨尔茨曼正在研究非线性Benard对流,通过谱展开得到了7个变量的降阶非线性方程组。萨尔茨曼告诉洛伦茨,说他得到了些周期解,但也有不稳定的解。
洛伦茨仔细观察了那些结果,发现7个变量中的4个周期解很快衰减从而变得不重要了,而其他3个则会保持长时间的非周期性变化。洛伦茨非常感激萨尔茨曼的实验结果给他提供的启示,感觉到类似这样的3个变量方程组应该足以用来描述他所期望的气流运动的非周期性。果然,他将自己的模型作了相应的简化后,仅保留了3个变量,发现能够观察到非周期性动力学现象。
当年洛伦茨求解这3个变量的方程组用的是一台Royal McBee LGP-30计算机,放置在MIT第24号楼第五层。这台机器比书桌还大,重约260公斤,可是速度极其缓慢,连今天的笔记本电脑都比它快上百万倍。当年,计算机程序是由两位年轻女助手艾伦·费特(Ellen Fetter)和玛格丽特·哈密顿(Margaret Hamilton)负责编写的。
艾伦和玛格丽特分别从Mount Holyoke College和Earlham College数学专业本科毕业,两人来到洛伦茨实验室工作后才开始学习编写计算机程序。不过她俩都很称职。特别值得一提的是那位哈密顿女士,聪明的她很快就成为一位编程能手。
她离开MIT比较早,后来加盟国家宇航局(NASA),先后为登月飞船编写控制程序和为空中实验室(Skylab)编写操作软件,2003年获NASA授予航天杰出贡献奖(Exceptional Space Act Award),2016年荣膺美国总统自由勋章(Presidential Medal of Freedom),2017年还被乐高(LEGO)游戏产品选定为成功女性偶像人物。
现在回来继续说洛伦茨的故事。故事发生的这一天是周五,洛伦茨如常来到了办公室,继续用他推导出来的简化数学方程组做天气预报仿真。他计划把昨天的仿真重复一遍,以保证计算结果准确无误。他知道那台蜗牛机器运算极慢,需要一个多小时才能完成计算,便踱进了学院旁边的小咖啡馆。
喝完咖啡回到办公室后,他一看仿真结果大吃一惊,发现新画出来的曲线与昨天的记录大相径庭:两条曲线从相同的初始点出发,在起初几周时间点上的预报相互吻合得很好,但随后两者迅速分离,大约两个月后便变得毫不相关了。他反复检查了公式,两位女士也反复检查了程序,都没有发现任何错误。这让他百思莫解。
经过反复核查,在排除了计算机故障的可能性之后,他注意到了两次仿真试验过程之间的一个微小差异。
当时的计算机运算精确度是保留小数点后6位数字的,因此他在第一次计算中输入了初始值0.506127。但在第二次计算中,他图省事输入了0.506,觉得这不到千分之一的“四舍五入”不会带来什么影响。现在他发现自己错了,这影响其实大得很。历史上许多重大机遇都出现在这种毫不显眼的事情和毫不惊人的时刻:0.506不够精确么?改为0.506127再算一遍就好了嘛,还来得及去多喝杯咖啡呢。
然而,出色的科学家和普通的实验员之间的差别可能就在这个地方:洛伦茨觉得这不到千分之一的误差所带来的巨大影响从常理来说不可思议,此事必须有个数学解释。随后的几天里,他和两位程序员一起再次重复了两种不同初值的仿真,证实了他悟出的道理:由于该数学模型对初始条件具有高度敏感性,一个微小的初始误差随着反复迭代计算最终酿成巨大的结果差异,导致了模型未来行为的“不可预测性”!
洛伦茨把他的发现写成了论文“确定性的非周期流”,于1963年发表在《大气科学》杂志(“Deterministic nonperiodic flow”,Journal of the Atmospheric Sciences, 20: 130-141, 1963)。洛伦茨当时觉得他发现的可能只是流体力学中湍流的一个新特征,投稿时把论文标题拟定为“确定性的湍流”。但杂志编辑对此颇有怀疑。
于是他把“湍流”改成了“非周期流”。洛伦茨在论文中指出:“两个状态之间不被察觉的微小差别可能最后演化为巨大的不同……因此,如果在观察当前状态时不管有什么样的误差——在任何真实系统中这些误差是不可避免的——那么对于一个不太久远的未来瞬间状态做出任何可接受的预测都将是不可能的……非常长期的准确天气预报看来并不存在。”当年洛伦茨估算,准确的天气预报最多在两周时间之内可以做到。
事实上,今天在高速计算机和大数据支持下,这个时间段也达不到三周。
在论文末尾,洛伦茨诚挚地感谢了巴里·萨尔茨曼和艾伦·费特。接下来,他在另一篇论文中也同样地致谢了玛格丽特·哈密顿。
在1963年这篇里程碑式的论文中,洛伦茨给出了刻画上述3个主要变量的非线性方程组,即今天著名的洛伦茨系统或洛伦茨方程:当参数a = 10,b = 8/3,c = 28时,洛伦茨方程的解在三维空间中的轨道呈现一个漂亮的双涡卷形状的“吸引子”(attractor)。洛伦茨吸引子这个后来被称为“洛伦茨吸引子”的几何对象是空间中一些带稳定性的点的集合,具有某种动力学的吸引性,故称为吸引子。
但这个点集并不直观可见。计算机画出来的可视图只是绕着吸引子运动的方程的解轨道,它处于一种不寻常的永不发散、永不休止,并且是非严格周期的“混沌”(chaos)运动状态。其中,混沌轨道的不发散特征是由它的全局有界性决定的,而无休止的运动行为则把它区别于通常的马尔可夫效应。
此外,解轨道的非严格周期性展现出它密集的近似周期性运动,但又不会严格地重复过去(用洛伦茨的原话来说,就是“solutions which never repeat their past history exactly”)。此外,这个微分方程组的解由初始条件唯一决定,它是完全确定性的。从方程式可以看出,它没有诸如噪声或外来干扰的随机因素。
但系统对初始状态值具有极高的敏感性,让它的解轨道在长时间之后的状态变得不可预测。人们把这种特性称为“确定性的随机”或“确定性的混沌”。由于混沌系统的解是确定性的,它可以用完全相同的初始条件来重演,但它又具有与不可复制的白噪声相同的各种随机特性,因此在工程应用中能派上些特别用场。
对非专业人士来说,大抵上可以这样直观地去理解混沌系统及其混沌特性。这里回顾一下历史是蛮有趣的。
洛伦茨的上述论文并没有使用chaos一词。在科学文献中,chaos一词最早由MIT的数学家诺伯特·维纳(Norbert Weiner)1938年题为“The homogeneous chaos”的论文中开始使用,但那是完全不一样的数学概念。
第一次正式用chaos来描述系统对初始条件极端敏感特性的,是已故数学家李天岩(1945-2020)和他的导师詹姆斯·约克(James A. Yorke,1941-)在1975年发表的题为“Period three implies chaos”论文中的著名Li-Yorke定理。不过那是离散系统的混沌,是另一个论题了。
洛伦茨1963年这篇科学发现报告发表后,初时只有几个气象学家关注。美国科普畅销书作家詹姆斯·格雷克(James Gleick)1987出版的名著《混沌学传奇》(Chaos: Making a New Science)中说:“洛伦茨的这篇论文,在1960年代杂志上每年会被引用一次。可是二十年后,它每年被引用的次数超过一百。”今天,这篇文章已被引用两万六千多次。
顺便说说,洛伦茨系统属于所谓的耗散系统,其耗散量由流体粘度决定,缺失的能量则依靠热能补给。后来人们知道,许多别的耗散系统都可以产生混沌吸引子。此外,也有许多能量保守系统即哈密顿(Hamilton)系统也可以产生不同类型的混沌,但那又是另一个论题了。
开始时,洛伦茨把他的发现比喻为“海鸥飞翔引起了暴风雨”。后来,他接受了一位气象学家朋友Philip Merilees的建议,在1972年把他的一篇论文取题为:“在巴西的一只蝴蝶拍打一下翅膀会在得克萨斯州引发一场龙卷风吗?”于是,后来的科学文献、文学作品和人们日常生活里便有了一个新成语:“蝴蝶效应”(“butterfly effect”)。洛伦茨吸引子酷似一只蝴蝶。
洛伦茨在他1993年出版的科普著作《混沌的本质》中还有另一种比喻:“一个人在中国打个喷嚏也可能会让纽约的人们去铲雪。”显然,“混沌”的本质就是对初始条件的高度敏感性。可是,很多事物对初始条件具有高度敏感性的这种观察或认知,其实古来有之。远至孔子(前551-前479)的《礼记·经解》,其中《易》里就说过:“君子慎始,差若毫厘,缪以千里。
”古希腊哲学家亚里士多德(前384-前322)也说过:“对真实性极小的初始偏离,往后会被成千倍地放大。”近代物理学家詹姆斯·麦克斯韦(James Clerk Maxwell)在1873年亦说过:“系统初始状态的一个无穷小变化可能会引起该状态在有限时间内出现有限的偏差,这样的系统称为是不稳定的……并且会使得对将来事件的预测成为不可能。
”数学家雅克·阿达马(Jacques Hadamard)在1898年也提到:“初始条件中的误差或者不精确性可能会使系统长时间的动态行为变得不可预测。
”到二十世纪初,通才数学家亨利·庞加莱(Jules Henri Poincaré,1854-1912)在1908年他的书《科学与方法》中写道:“初始条件的微小误差在最后结果中产生极大差别的情况可能发生……于是预测变为不可能,从而我们就看到了许多偶然现象。”
但是,所有先贤们的思想、观念和知识都停留在或者说局限于哲学和数学的思辨上,没有展示一个具体的科学实例。洛伦茨的伟大贡献,是他为这种极端敏感性和后来的混沌理论提供了一个简单又精准的物理系统的数学模型。不过,严格的混沌数学理论并不归功于洛伦茨。
现代混沌数学理论的鼻祖,是刚才提到的那位通才数学家庞加莱。
1887年,瑞典国王奥斯卡二世(Oskar, II)悬赏,征求太阳系稳定性问题的解答,期望解决天体力学中的三体甚至N体问题。国王组织了三位当时最有权威的数学家担任评委:魏尔斯特拉斯(Karl Weierstrass)、米塔-列夫勒(Magnus Mittag-Leffler)和厄米特(Charles Hermite)。在那次高端科学论文竞赛中,庞加莱以他对三体问题的研究成果获得了大奖。
得奖论文按规定要在瑞典皇家科学院数学学报(Acta Mathematica)上发表。其时学报有一位负责论文校对的25岁年轻人Lars E. Phragmen,那时他是个数学爱好者,阅读庞加莱论文时发现有个地方绕不过去,于是便去询问作者。庞加莱在试图作出解释的过程中发现原文有错,连他自己也绕不过去。在这种时候,诚实的数学家可能会选择放弃,不诚实的数学家可能会含糊其辞敷衍了事。
而这位顶尖的数学家庞加莱呢,在重要错误面前,深思熟虑之后彻底地改变了原来沿用的传统定量分析方法,以全新的定性分析方法重新探讨了这个数学上极其艰深的问题。此举让庞加莱开启了二十世纪动力系统定性理论、特别是混沌数学理论的先河,尽管该得奖论文拖延到1890年才问世(13卷,1-270页)。
因为说到混沌的数学理论了,还得先把它说得更清楚一些,才能回去把洛伦茨的故事讲完。
庞加莱对三体问题动力学作了精辟的定性分析之后,时间一下子过了半个多世纪。
其间,除了大数学家乔治·伯克霍夫(George D. Birkhoff,1884-1944)和安德烈·柯尔莫哥洛夫(Andrey N. Kolmogorov,1903-1987)的贡献之外,还有非常重要但并不广为人知的玛丽·卡特赖特(D. Mary Cartwright,1900-1998)和约翰·李特尔伍德(John E. Littlewood,1885-1977),1945年间两人合作发展了无线电工程问题诱导出来的van der Pol振子的“奇异吸引子”(strange attractor)的数学理论。
十二年后,1957年斯蒂芬·斯梅尔(Stephen Smale,1930-)从密歇根大学数学博士毕业,在普林斯顿高等研究院(IAS)访问了一段时间之后,在国家自然科学基金资助下于1959年底来到了巴西里约热内卢著名的纯粹和应用数学研究院(IMPA)做博士后研究。这段时间他经常到沙滩去晒太阳,觉得沙滩的喧闹丝毫不会影响他深入思考各种数学问题。
年轻的斯梅尔在一篇自己感到自豪的文章中提及了他的一个“猜想”:“混沌不存在!”(