天气预报怎么概括?
昨天看到新闻,说美国一个气象学家制作了一个只有 30 个方程的模型来计算大气中的水蒸气,并成功预测了 2019 年太平洋风暴季的所有台风和飓风。他的这个「极简版」数学模型在可靠性上比商业预报系统更加准确,而且需要的计算资源要少得多——只用了一块普通显卡和一个开源编程语言的开源框架来模拟云、雨和大气中其他成分的运动。 下面简单介绍一下这个「极简版」大气科学模型。它主要假设空气分子是各向同性的(也就是不管从哪个方向看,空气分子的排列方式都一样)且都是电中性的。由于空气分子之间的作用力非常弱,它们可以看成是无摩擦的粒子,这样就可以把整个大气系统简化成一个由所有分子做无摩擦热运动的庞大系统。然后,只要给定初始条件(比如某地某一时刻的空气组成),就可以用拉普拉斯方程来追踪任意一个分子在未来任何时刻的位置。
因为温度越高,空气的扩散性就越好,所以越往高温处,空气分子的运动就越随机(当然,高温区也是能量最高的区域,因此最容易形成暴雨等强降水)。如果能跟踪这些空气分子随时间的运动轨迹,就能估算出任意一点未来任意一段时间以后的空气组成。 而这个「极简版」大气科学的计算核心其实就是一个动态模拟程序,其输入是地球表面某个地点的初始空气组成,输出是这个地点未来任意时间后的空气组成。 最后把这无数可能的未来空气组成全部列出来,就相当于给出了未来任一时刻的气象预测数据。 这个计算核心看起来很简单,但是实现起来有很多细节需要考虑。为了估计更复杂的大气情况下的空气运动,这些细节都需要加以满足。比如在模拟云的时候,要考虑到云是由大量水滴和冰晶组成的复杂结构,每一个水滴和冰晶又都可以看作是一个宏观上的「分子」,从而需要用微扰的方法逐滴地构建云的结构;在模拟雨水和水蒸气凝结成液体水滴的过程中,需要考虑雨滴大小分布的非周期性振荡。
虽然作者宣称自己建立的模型只需要 30 个方程,但是这些都是细节。 当把所有细节都补齐之后,这个模型实际上已经是一个包含大气化学、云和气溶胶物理、降水物理等多个学科领域的庞然大物了。 不过我感兴趣的是,为什么建立这样复杂的模型,而不是更简单一些呢?毕竟我们的世界本身就很复杂,我们人类对它的理解也非常有限,有时候需要把复杂的问题简单化(例如物理学中的「普适理论」),有时候又需要把简单的问题复杂化(例如物理学中的「全息原理」)。不知道这个模型是属于前者还是后者。