闲谈“蝴蝶效应”

推广一个深奥难懂的理论或观点的最好办法就是创造一个有趣且令人印象深刻的类比 , 蝴蝶效应 , 显然可以进入TOP10 , 虽然一百个谈论蝴蝶效应的人中 , 也许一个真正理解它的人都没有 , 包括笔者在内 , 但丝毫不妨碍这个词的流行程度 。 甚至好莱坞已经用这个词 , 拍摄了三部电影 , 当然毫无疑问的是 , 电影中的主旋律是让人绝望的爱情 。
蝴蝶效应这个词 , 来源于1979年的一次演讲的标题——《可预言性:一只蝴蝶在巴西扇动翅膀会在德克萨斯引起龙卷风吗?》 , 演讲者是美国气象学家爱德华·诺顿·洛伦茨 。 中心思想是 , 论证长期天气预报的不可能性 , 无论用什么样的精度获得初始数据 , 无论编写多么复杂的运算方程 , 最终实际的天气变化会和计算机中的预测偏差越来越大 。 在洛伦茨那个时代 , 超过一周的天气预报 , 基本上毫无价值 , 不知道 , 今天的一周天气预报靠谱程度如何 。
洛伦茨洞察到这个奥秘的起因 , 很符合科学史中通常让人津津乐道的偶然 。 那时候洛伦茨作为气象学家 , 在橡树岭研究天气预报问题 , 编写了13个动力学方程 , 输入初始参数值后 , 让超级计算机不断的预测未来的天气情况 , 当然由于方程组很少 , 参数也不多 , 这个模拟是非常粗糙的 , 不过他的目的并不是真的要预测实际的天气情况 , 只是试图通过模拟获得对天气变化的某种领悟 。
能在计算机上运行的方程 , 当然是决定性系统 , 完全一样的初始值 , 只可能给出完全一样的结果 。 所以当有一天 , 洛伦茨发现 , 最新的一次模拟 , 在刚开始的时候似乎和从前的模拟一样 , 但慢慢的天气发生了变化的时候 , 他第一反应就是程序出了问题(bug)或者电脑硬件故障(bug) 。 在绝望的debug后一无所获的洛伦茨 , 突然醒悟到一件事 , 每一轮计算完毕 , 不断变化的参数在计算机中运行时保留的小数位数 , 比参数输出时的位数要多一些 。 他只不过想偷一下懒 , 不愿从头再来 , 因为超级计算机的使用时间是有限额的 , 因此直接使用了计算机中途输出的参数值 , 但他万万没有想到的是 , 这点微不足道的偏差 , 居然会让两次模拟结果 , 从刚开始的极其相似 , 一步一步的走到彻底不同 。

闲谈“蝴蝶效应”

文章插图

按洛伦茨自己说法的是 , 他终于慢慢明白过来 , 他迎头撞上了一头隐藏在他亲手编写的极其简单的动力学方程中的怪兽时 , 真是大彻大悟 。 突然发现 , 怪兽比比皆是 , 从香烟烟头上上升的烟雾形状变换中 , 到一杯正在冷却的咖啡 , “混沌”是大自然动力学系统的本质 。 这让拉普拉斯的决定论彻底破产 , 因为这次遇到的是数学 。 即便宇宙真的是决定性的 , 也同样可以是不可预测的 , 因为观察精度永远是有限的 , 人类想彻底洞察宇宙的长远命运是不可能的 , 我们最多看N步(N取决于参数精度和靠谱的方程) , 但更远的未来 , 始终在一片迷雾中 , 一劳永逸是不可能的 。 这是洛伦茨的重大贡献 。
自洛伦茨提出混沌理论后 , 多个本研究领域都发现了隐藏的混沌现象 。 以牛顿迭代法求解为例 , 比如 X^5-1=0,有五个解 , 选择一个初始值不断的迭代下去 , 最终你会得到一个数值解 。 这个初始值越靠近某个解 , 则最终多半会得到该解 , 但如果初始值位于五个解的边缘地带上时 , 奇异的混沌现象就会发生 , 如果某个初始值最终迭代出解A,那么与它紧邻的初始值 , 会最终得到哪个解是混沌的 , 你除了老老实实的迭代下去 , 无法预测什么 。 这个对初始值极其敏感的地带 , 就是混沌这个怪兽的领地 , 这个领地 , 居然和很多年前一个数学家的游戏有关系(分形) 。 现在 , 让我们欣赏一下这张精妙的图片 。

推荐阅读