研究和教学中的数学建模

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

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

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

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

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

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

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

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

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

从红娘算法看什么是科学

在大多数人心里,科学(数学)和生活是分开的两个东西。在很多数学、科学老师心里,也是这样。文科老师那可能就比例更高了。我最近注意到,甚至在某些认为对数学或者科学很有认识的老师,或者科学家数学家心里,科学(数学)和生活也是分开的两个东西。

科学,就是把现实世界中的问题,可能来源于生活、实验、其他人的研究、自己的深入思考等等,转化成一个形式化的问题(例如数学的形式,这时候成为数学模型),进而解决它。有的时候,解决完了这个问题之后(或者在做形式化的时候),还会思考一下:这个问题是不是可以一般化,用于描述其他类似的问题;这个解决的方法是不是可以一般化,用于解决其他类似的问题;这个答案是不是可以一般化,用于解决其他类似的问题。后面的这一步叫做一般化,系统化,是形成理论的必要和有效步骤。

最近跟人讨论到用算法来促进男女朋友匹配的问题:茫茫人海中,完全靠偶遇来找到灵魂伴侣是很不容易的一件事情,如果能够有一个算法来从收集好的人员资料(资料的准确性是另一个问题,可以通过另一个算法或者人工来提高)中帮你找到潜在的对象,会大大提高社会福利(大家都更开心的意思,不是通常的那个发月饼的福利的意思)。有人就说了,那多么不浪漫啊,靠撞,撞啊撞,撞啊撞,撞到了双方喜欢的,多么浪漫啊,就好像歌唱的那样“只因为在人群中看了你一眼”(顺便,那仅仅是因为你看到的人比较好看,没准是翟欣欣那样的呢,看一眼你能够知道其品格,属于典型SB浪漫,而不是真浪漫);如果用算法,那就冷冰冰了,完全没有浪漫了。

这个问题背后的算法还真的是有的,叫做匹配理论(Matching Theory)。不仅仅可以用来当红娘,还可以用来帮助解决住院医生和医院相互选择的问题等等。而且,这个理论实际上已经得过两次Nobel经济学奖。先不管真的这个理论是怎么回事。在这里,我想说的事情是,从这个问题看,什么是科学,什么是数学。

任何一个问题,我们都可以并且应该想一想一般性的解决方式,而这个一般性,往往就会落到数学上面。这就是科学进入生活的思考方式,这就是科学。为什么这样会不浪漫呢?浪漫难道就来自于像无头苍蝇一样撞的过程,还是撞到之后交往的过程?如果是前者,请问,那个时候就你和你将来的灵活伴侣在分开撞啊,如何会浪漫呢?如果说,分开撞那个阶段最浪漫,那好,别找到另一半最好,可以不停地撞啊。算法的功能只不过就给这个无头的苍蝇装上了一个头,一副天线,如何就会不浪漫呢?

做任何事情,都要想想方法,有方法可以做的结果更好,效率更高。这个面对任何问题都想想方法,并且在可能的时候一般化(这时候往往要通过数学),就是科学的精神。

红娘的问题的讨论,实际上,起点是关于,语文是不是一压力依靠大量阅读的问题。经常,我们听到,语文需要依靠大量阅读,甚至有的老师会提出来,你的阅读量要到多少,要你作好并且上交阅读量的记录。甚至,我们还会听到,“什么什么问题,就是因为你的阅读量不够,回去多读点书”。问题是,你这个当老师的,有教学生怎么阅读吗?你自己有思考怎么阅读吗?有整理一下方法来帮助学生减少阅读量的心吗?是不是想都没想过这个方法的问题?

如果说语文可以这样,我数学能不能也这样:“什么什么问题,就是因为你做题量不够,回去多做点数学题”?我科学能不能这样:“什么什么问题,就是因为你做实验和观察的量不够,回去多做点实验和观察”。生活于是就成了这样:“你不会生活,就是因为你生活的时间不够长,回去多活着,就会生活了”。这样的老师,属于典型的没有寻找方法的心,或者有心但是没有找到方法的能力,或者有心有能力没有寻找方法的意愿。

我们提出来的“教的更少,学得更多”就是一定要帮助学生找到方法,做到能够学会学科大图景的前提下,学习的东西越少越好。方法很重要,当然,学会方法的过程中,可以采用摸索和指导结合的方式,但是,方法本身必须是明确的。例如WHWM分析阅读方法,例如制作概念地图来做缩写、总结、反思。这其实,不过就是科学用于解决语文阅读的方法这个问题。

我们不能:茫茫人海,爱情基本靠撞;茫茫文(题)海,阅读(数学)基本靠量,而是要摸索出来方法,给学生指明实现“学的更少,学得更多”的方向,做到:茫茫人海,爱情不靠撞,算法来帮忙;茫茫文(题)海,阅读(数学)不靠量,方法来帮忙。而这一切的思想上的根源都在于:用科学的角度来思考每一个问题!

经济学家和物理学家的不同思路之一

在随便翻翻Bender的《An introduction to mathematical modeling》(中译本《数学模型引论》,神书)的时候读到其中有一段讲懂得现实和模型的数学家(也就是物理学家)看待产量和利润之间的关系:产量,在其他外部条件不发生太大变化的条件下,影响了价格,于是影响了利润,不一定越大越好,需要求导数。非常简单。然后,讲到,经济学家怎么看呢?经济学家着眼于解释为什么厂家决定这样的产量,于是,利润成了自变量,产量成了最终模型或者分析输出的量,也就是因变量。

具体从利润决定产量的思路还是跟上面的一样,求导数。但是,自变量和因变量的地位换过来了。

不知道这个作者本来就这样认为呢(从后文看起来,不是),还是仅仅是说经济学家会这样看。不过,这里体现了物理学家和经济学家(一部分数学家)的思路上的不同。在物理学的角度看来,因果律是有前后的(前因后果),也就是说,函数和逆函数,是两件含义上完全不同的事情。通过对比不同的产量下的利润来决定最优产量这件事情,不会改变产量决定利润这个因果本身。

看到这里,忽然意识到,经济学家把很多因果关系颠来复去地用不同的角度来说,原因就在这里。仅当两个变量存在一一对应的关系的时候,才能把函数和逆函数完全认同。而且,就算这样,有可能这两个变量和外界的联系导致其中一个从更大的逻辑上更合适看作自变量。于是,自变量和因变量在实际问题中,不能纯粹地像在数学公式里面一样变换。

另外,本书,写得非常之好,非常值得一看,尤其是和《Mathematics: a very short introduction》合起来看看。

顺便,这是我本科组织“读书会”下面的一个科学小组的时候的选的第一本书,也是我和狄老师第一次结缘的书。还记得看到一个对数学模型有这么深刻认识,并且喜欢同一本书的人的时候的心情。

那时候一起玩这个的还有葛虎堂,蔡中华、贺建辉、曾定方。

数学模型绝对不是模型的收集,绝对不是告诉你这样这样的系统可以通过微分方程来建模,那样那样的系统可以通过随机过程来建模,而是告诉你,当数学用于描述和解释这个世界的时候,用于提高你对世界的理解的时候,大概可以怎么想,怎么做。从这个意义上,整个自然科学(一部分的社会科学也是),都是数学模型。