研究和教学中的数学建模

提出问题,把问题转化成一个数学问题是科学研究中非常非常重要的两步。当然,解决问题和检验,也是重要的,不过,我认为比不上前者。把一个问题用合适的数学结构来表达,需要考虑这个问题内在的结构——也就是这个问题里面有哪些关键因素,这些关键因素之间有什么关系,这个系统的状态如何描述,如果有变化呢,则还关心如何变化、什么导致的变化。而这一步,传统上,叫做数学建模。

采用什么样的数学结构来描述所面对的系统的状态,这是数学建模要解决的第一个问题。理想情况,我们希望这个表示是忠实的:任何这个系统的状态都可以用这个数学结构来描述,任何这个数学结构的状态都在所面对的系统上找得到对应的状态;任何一个对这个状态的操作,正好对应这个数学结构上的一种映射;任何一个这个数学结构上的映射,正好对应着对这个实际系统的一个操作。当然,这样的理想情况一般是做不到的,这个时候,我们只要在我们关心的范围内满足上面的忠实性就可以,甚至只要近似地满足忠实性就可以。

于是,这个时候,我们自然要通过了解系统的状态,以及可能的对这些状态的操作,来寻找合适的数学结构。另一方面,我们也必须考虑,某一个在这个数学结构上能够做的计算,对应着什么样的实际系统的性质或者操作。

实际上,我认为,大多数时候,理论科学家,尤其是理论物理学家、系统科学研究者,都在做这样的数学建模的事情。因此,我也打算什么时候来建设一门数学建模的课程。实际上,这个帖子就是供我自己慢慢整理,形成一个这样的课程用的。当然,也非常欢迎有人给我提供线索。

比如说,量子系统的数学模型——以Hilbert空间矢量为基础的量子力学,就是这样的数学模型的极好的例子。当然,经典力学的质点——刚体——弹性体——流体也是,甚至背后的确定性方程——随机性方程也是。不过,有一些可能需要比较多的数学和物理的基础,不一定适合当做数学建模的例子。

网络科学的例子应该有很多,例如网络上的传染病模型,以及我们自己的汉字学习和检测的工作,广义投入产出分析的工作等。另外,昨天偶然得到一个很好的小例子:一个学生在计算地铁网络在攻击下的抗毁能力,主要通过攻击之后剩下的最大连通集团的大小来当指标;这个时候,一个自然的问题就是,为什么选择这个指标是有实际意义的,在实际问题中意味着什么,如果要让这个指标有实际意义我们需要做什么假设,这个假设是否具有合理性。在实际问题中,这样的思考往往就能够创新性的来源,并且这也是任何数学模型必须解决的问题——为了这个表示具有合理的“忠实性”,我们的假设是什么,数学结构和实际对象之间的联系是什么。

有了这个大原则——数学建模就是找到能够忠实或者近似忠实地表示实际系统的数学结构,我们还有一些更小的典型思维方式。比如说,数学建模更多的是艺术,而不是技术,尽管我们会非常努力地技术化一般化。因此,在教和学数学建模的过程中,就必须采用欣赏、临摹、创作的方式,而不是做大量的习题求解的方式。再比如说,数学建模不应该按照模型解法来分类教学,而是按照建模的思想,建模所需要的思维方式来做教学。更多的其他思维方式以后再整理,或者等遇到合适的例子再总结在这里。

基于这个数学建模的典型思维方式的重要性,在系统科学和物理学导论里面,都应该增加一小节关于数学模型的介绍、讨论和欣赏,除了专门开设数学建模课程之外。其实,这个小节比较简单,只需要用之前讲过的例子,但是从数学模型的角度来再一次欣赏和讨论一下就可以,而且可以放在数学和科学的关系那个大标题下面。

顺便,数学模型应该由科学家来教,而不是数学家。当然,非常厉害的数学家是能够看到数学和实际问题之间的联系的,也是受实际问题启发的。这方面可以看看Gowers的《Mathematics, a very short introduction》,或者丘成桐、陶哲轩对这个问题的讨论。不过大多数数学家就会进入某一个已经数学化形式化的问题里面去做。这也是由数学的特性决定的——严密的逻辑演绎在数学里面的特殊重要性:不想科学还可以实践检验,数学就只能检验内在自洽性,于是自然也就更强调严密。因此,这个不是数学家或者数学的缺陷,而是自然使然。那么,谁来教数学建模?科学家,有具体领域背景的科学家和没有具体领域背景的计算机科学家,一起来完成。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注