一个漆黑的暴风雨之夜。天上笼罩着雷雨云,暴雨夹杂着狂风。大雨倾盆而下,地面积水成河。随着黎明来临,新的一天的第一缕微弱阳光照耀在冰冷的空气上,渗入地下的水变成蒸汽从土壤中蒸发出去。
爱德华·洛伦兹的气象学计算机模型是一个非常有意义的事物。自从1960年模型建立后,洛伦兹在麻省理工学院的实验室里度过了许多不眠之夜,研究人工天气模型。洛伦兹的模型虽然详细,但其原理却很简单:将天气实测图像作为输入值,计算下一步的天气变化。这一步的计算结果又作为下一步的初始条件,如此循环迭代。
计算机的连续计算可以模拟24小时内每分钟的变化。计算完成后,展现在洛伦兹计算机屏幕前的是未来天气变化的情况:高压区与低压区相互交错,和风吹拂之后飓风横扫,懒散的夏日之后紧跟着漆黑的暴风雨之夜。
洛伦兹的模型不仅仅令人兴奋,它还寄托了人们巨大的希望,或许有一天可以利用它来预测未来几个月的天气变化。
但是,1961年的一个冬日,洛伦兹发现一个非同寻常的、很奇怪的现象。他决定再重算一遍,这次序列更长一些。他没有从头开始,而是走捷径。他利用以前的中间过程打印结果作为初始输入值,然后启动机器开始计算,自己则下楼喝杯咖啡小憩一会儿。他一点儿也不知道此时计算机的模拟正在发生奇怪的变化。
蝴蝶效应
当洛伦兹返回时,他觉得非常奇怪。计算结果应该跟以前的序列完全相同,但实际却一点儿也不像。尤其是到后面,越差越多,两个月后的计算结果与第一次没有任何相似之处。
起初洛伦兹把这种情况归咎于计算机的错误,但是很快他想到了真正的原因。在连续计算中,他由键盘输入的初始值是三位小数,而计算机的运算器处理的是六位小数,这点细小差别被证明是至关重要的。他的直觉认为,输入初值时完全可以忽略最后的三位小数,因为这些微小的量属于气象仪器所能感受到的外围边缘:1‰度或更小的量有多重要?但是,对于洛伦兹的气象计算模型,这些小数被证明起着至关重要的作用。