是计算机出毛病了吗?
1961 年冬天,洛伦兹正在用自己所建立的微分方程在计算机上进行天气预报模拟计算。一天,为了考察一条更长的序列,洛伦兹走了一条捷径, 他没有令整个计算从头开始,而是从上次计算的结果开始,作为计算的初值,他直接输入上一次的输出结果,然后穿过大厅下楼,清静地去喝上一杯咖啡。一小时之后他回来时,看到了出乎意料的事,就是这么一件偶然的事件,却播下了一门新科学的种子。
那么,洛伦兹到底看到了什么惊人的事呢?按原先的预计,这一轮新的计算应当准确地重复原来的结果,因为他是把上次的中间结果输入计算机,而且程序也没作任何变动。然而当他看见新的输出结果时,他发现天气变化同上一次的模式迅速偏离,不到几个“月”的时间,相似性完全消失了。跳入洛伦兹脑袋中的第一个想法是:计算机又坏了一只真空管。
洛伦兹终究不同凡响,他忽然间明白,计算机并没有出毛病,问题出在他打进去的那些数字上。在计算机的存储中,每个数保证 8 位十进制值, 如 0.506127,输出时为了节省存储空间,打印时只输出三位,如 0.506。洛伦兹输入的就是经过 4 舍 5 入后的数据。
按理说对数据作这种处理,它的误差是 1/1000,对计算结果不会有太大的影响。例如 1910 年确定哈雷慧星位置时的小小误差,在预言 1986 年它回归时也只会产生一个小小误差,对于今后几百万年,这一误差也永远是很小的。然而洛伦兹的这种小误差却引起了灾难性的后果!
洛伦兹从数学直觉出发,认识到某种东西在哲学上出现了飞跃。也就是在这一天,他认定长期天气预报是不可能的,它注定要失败。他曾形象的说过:一只蝴蝶在巴西扇动翅膀会在得克萨斯引起一场龙卷风。后来人们就把这种对初值敏感依赖的现象称为蝴蝶效应。有一首很早的美国民谣对这种对初始值敏感地依赖的现象作了形象的描写:
钉子缺,蹄铁卸; 蹄铁卸,战马蹶; 战马蹶,骑士绝; 骑士绝,战事折; 战事折,国家灭。
虽然人们天天生活在复杂事物的周围,对这种敏感依赖于初值的现象有所领悟,但是却是到洛伦兹的计算机“出了毛病”之后,才真正上升到科学的高度。洛伦兹的发现导致了一门新科学——混沌的诞生,它给几百年以来那种机械确定论的观点以无情的打击。混沌现象不是个别力学体系的特殊行为,而是在绝大多数力学系统中都会出现的普遍现象。