1707611952
1707611953
从19世纪末到20世纪中叶,经过庞加莱、利雅普诺夫(Aleksandr Lyapunov)、弗兰克林(Philip Franklin)、马科夫(Andrei Andreevich Markov)、伯克霍夫(George David Birkhoff)等人的一系列研究,人们对这个困难得多的问题终于有了一定的认识。人们发现,对于满足一定条件的物理体系来说,只有周期性或近周期性(near periodic)的运动才不会因为初始条件的细微改变而产生剧烈变动。依照这个结果,如果运动是非周期性的,那么初始条件的细微改变就会对体系的演化造成巨大影响。因此,这个结果不仅确立了蝴蝶效应的存在,而且还对它的产生条件给出了一定的描述。但是,那时候人们最感兴趣的只是周期运动,因此有关非周期运动的结果虽可作为推论得到,在当时的学术文献中却极少提及。正因为如此,十几年后当美国科学家洛伦兹(Edward Norton Lorenz)在数值计算中再次遭遇蝴蝶效应的时候,依然感到了极大的惊讶。也正因为如此,发现蝴蝶效应的荣誉在很大程度上被后人归到了洛伦兹的头上。
1707611954
1707611955
1707611956
1707611957
1707611959
因为星星在那里:科学殿堂的砖与瓦 三、模拟天气
1707611960
1707611961
洛伦兹是一位资深的气象学家,早在“二战”时期就在美国军方机构从事气象预测研究。战争结束后,洛伦兹来到了麻省理工学院(MIT),继续从事研究工作。从理论上预测气象变化——尤其是给出长期预测——是气象学家们梦寐以求的目标。但这一目标的实现却始终困难重重。这种困难是不难理解的,因为地球的大气层是一个巨大的流体系统,所有流体力学所具有的复杂性,包括那个连上帝也未必知道起源的湍流问题,都会出现在大气层中。更何况,大气层的行为与海洋、地表、日照等各种复杂的外部条件都有着密切关系;而且大气层的组成相当复杂,其中有些组成部分——如水汽——的形态还常常会在气态、液态及固态之间变化。所有这一切,都使得气象预测成为了一个极其困难的课题。
1707611962
1707611963
在洛伦兹从事气象研究的时候,从理论上预测气象变化主要有两类方法。一类被称为动力气象学(dynamic meteorology),这类方法主要是把大气层看作一个流体系统,然后选取一些重要的物理量——如温度、风速等——进行研究。由于问题的高度复杂,人们还把大气层像切蛋糕一样分割成许多区域,每个区域都用一个点来代表。显然,这是极其粗糙的近似,但即便如此,整个大气层的状态往往还是需要几百万甚至更大数目的变量来描述[6]。换句话说,即便是求解一个非常粗糙的气候模型,往往也需要处理带有几百万个未知数的方程组。这无疑是极其困难的(但不是完全没有希望的)。除了动力气象学外,还有一类方法被称为天气学(synoptic meteorology),这类方法的特点是把对气候影响最大的一些大气结构,比如各种气旋,直接作为研究对象。天气学所使用的规律,有许多是描述那些大气结构的经验规律,而不是像流体力学那样系统性的物理理论。从这个意义上讲,天气学不如动力气象学那样基本。但天气学的优点,是把从动力气象学角度看非常复杂的某些大气结构作为了基本单元,从而有着独特的简化性。
1707611964
1707611965
洛伦兹所采用的主要是天气学方法。经过大量的简化后,洛伦兹得到了一个含有14个变量,且其中有一到两个变量的影响可以忽略的模型。但即使那样的模型用手工计算也是非常困难的,于是洛伦兹决定借助计算机的帮助。当时是1959年,距离个人计算机的问世还有二十几年。洛伦兹所使用的机器用今天的标准来衡量是极为简陋的:体积庞大,噪声惊人,内存却只有今天普通个人计算机内存的百万分之一。经过几个月的努力(主要是编程),洛伦兹终于在那台机器上运行起了他的模拟天气。
1707611966
1707611967
1707611968
1707611969
1707611971
因为星星在那里:科学殿堂的砖与瓦 四、奇怪的结果
1707611972
1707611973
日子平静地流逝着,洛伦兹与同事们间或地就模拟天气的演变打上一些小赌,聊以消遣。终于有一天,洛伦兹决定对某一部分计算进行更为仔细的分析。于是他从原先输出的计算结果中选出了一行数据——相当于某一天的天气状况——作为初始条件输入了程序。机器从那一天的数据开始了运行,洛伦兹则离开了办公室,去喝一杯悠闲的咖啡。中国的神话故事中有所谓“洞中方一日,世上已千年”的传说,洛伦兹的那杯咖啡就喝出了那样的境界。一个小时后,当他回到实验室时,他的模拟世界已经运行了两个月。洛伦兹一看结果,不禁吃了一惊!因为新的计算结果与原先的大相径庭。
1707611974
1707611975
这一结果为什么令人吃惊呢?因为这次计算所用的初始条件乃是从旧数据中选出来的。既然初始条件是旧的,所得的结果——在与旧数据可以比较的范围内——理应也跟旧数据相同,却怎么会大相径庭呢?洛伦兹的第一个反应是机器坏了——这在当时是经常发生的事情。但是,当他对结果做了更仔细的检验后,很快排除了那种可能性。因为他发现,新旧计算的结果虽然最终大相径庭,但在一开始却很相似,两者的偏差是在经过了一段指数增长过程之后才彻底破坏相似性的。如果机器坏了,是没有理由出现这种“有规律”的偏差的。
1707611976
1707611977
既然机器没有问题,那么究竟是什么原因造成了新旧计算之间的巨大偏差呢?洛伦兹很快找到了答案。原来,洛伦兹的程序在运行时保留了十几位有效数字,但在输出时为了让所有变量的数值能打印在同一行里,他对每个变量都只保留了小数点后3位有效数字。因此,当洛伦兹把以前输出的数据——即所谓旧数据——作为初始条件输入新一轮计算时,它与原先计算中保留了十几位有效数字的数据相比,已经有了微小的偏差。洛伦兹的计算表明,在他的模拟系统中,这些微小的偏差每隔4天就会翻一番,直至新旧数据间的相似性完全丧失为止。
1707611978
1707611979
这正是蝴蝶效应!
1707611980
1707611981
由于蝴蝶效应的存在,洛伦兹意识到长期天气预报是注定不可能有高精度的。因为我们永远不可能得到绝对精确的初始条件,而且由于任何计算设备的内存都是有限的,我们在计算过程中也永远不可能保留无限的精度,所有这些误差都会因蝴蝶效应的存在而迅速(指数性地)扩大,从而不仅使一切高精度的长期气象预测成为泡影,而且葬送了建立在决定论思想之上的对物理现象进行精确预言的梦想[7]。
1707611982
1707611983
蝴蝶效应的发现还让洛伦兹回忆起一件他念本科时发生的事情。那是在20世纪30年代,当时他所在的镇上有许多学生迷上了弹球游戏(pinball game),那是一种让小球在一张插有许多小针的倾斜桌子上经过多次碰撞后进入特定小孔的游戏。当地政府曾想以禁止赌博为由禁止这种游戏,但游戏的支持者们争辩说这不是赌博,而是一种有关击球准确度的技巧比赛。他们的理由一度说服了政府官员,因为当时大家并不知道弹球游戏其实包含了蝴蝶效应,从而无论多高明的技巧都是无济于事的。
1707611984
1707611985
1707611986
1707611987
1707611989
因为星星在那里:科学殿堂的砖与瓦 五、从蝴蝶到飓风
1707611990
1707611991
发现蝴蝶效应后的第二年,即1960年,洛伦兹在一次学术会议上粗略地提及了自己的发现,但没有发表详细结果。会议之后,洛伦兹感到自己的模型仍然太复杂,他决定寻找更简单的模型。1961年,他从同事索兹曼(Barry Saltzman)那里得到了一个只含7个变量(即比他自己的模型少了一半的变量)的流体力学模型[8]。经过研究,洛伦兹很快发现,在索兹曼的模型中,有4个变量的数值很快就会变得可以忽略。因此,这一模型的真正行为可以用一个只含3个变量的方程组来描述,这个只含3个变量的方程组后来被冠上了洛伦兹的大名,称为洛伦兹方程组(Lorenz equations)。利用这一方程组,洛伦兹再次确认了蝴蝶效应的存在[9],并于1963年在《大气科学杂志》(Journal of the Atmospheric Sciences)上发表了题为《确定性非周期流》(Deterministic Nonperiodic Flow)的论文,正式公布了自己的结果。
1707611992
1707611993
不过,无论是洛伦兹的原始论文,还是此后若干年内的其他有关著作,都没有直接使用“蝴蝶效应”这一名称。洛伦兹本人有时用海鸥造成的大气扰动来比喻初始条件的细微改变。“蝴蝶”这一“术语”的使用是在9年后的1972年。那一年洛伦兹要在华盛顿的一个学术会议上做报告,却没有及时提供报告的标题。于是会议组织者梅里利斯(Philip Merilees)“擅作主张”地替洛伦兹拟了一个题目:《巴西的蝴蝶拍动翅膀会引发德克萨斯的飓风吗?》(Does the flap of a butterfly’s wings in Brazil set off a tornado in Texas?)。就这样,美丽的蝴蝶随着梅里利斯的想象飞进了科学术语之中[10]。
1707611994
1707611995
1707611996
1707611997
1707611998
1707611999
1707612000
图1 洛伦兹奇怪吸引子
1707612001
[
上一页 ]
[ :1.707611952e+09 ]
[
下一页 ]