BITED数学建模七日谈之二:怎样阅读数学模型教材
今天进入我们数学建模七日谈的第二天:怎样阅读数学建模教材?
大家再学习数学建模这门课程或准备比赛的时候,往往都是从教材开始的,教材的系统性让我们能够很快,很深入地了解前人在数学模型方面已有的研究成果,并最快地吸收他们为自己所用,但是常常有很多同学抱怨说书太厚,介绍太过于简略而无法看懂,操作性不强等等,也不知道读哪本书更好,把每个模型应该掌握到哪个地步而没有方向,更害怕浪费了宝贵的时间。在此,笔者向大家隆重推荐建模教程学习的基本要领:三步阅读法。
对于任何一本教材,一份资料里介绍的一种数学模型的建立,或者一种算法,你都要问自己三个问题:
- 这个模型叫什么名字?
- 这个模型属于什么类型,能够解决具有哪类特征的问题?
- 这个模型的具体操作步骤怎么实现?
当你能够学完教材上的这个模型,并能够查找相关资料,实例加以巩固,自己能够非常清晰地回答以上三个问题,那么,这个模型就完全印在你的脑子里而融会贯通了。
第一个问题是这个模型叫什么,就像我们C++里面学的对象名一样,或者是matlab里说的句柄,也是我们通过论文形式与评委进行沟通的重要手段,要知道这个模型的名字,它的相关产生背景,和它类似的模型,有什么区别等等,这种文字性的东西的记忆最终会体现在论文的字里行间,积累越多,论文就会写得越流畅。
第二个问题就不像第一个问题那样浮于模型表面了,而是在深入了解模型的建立思想、阅读了一定的例子之后,自己在脑海里可以形成一个印象,这个方法可以解决什么类型的问题?问题的特征是什么?有什么样的背景可以联想到这个方法?这样,等出现类似的问题时,你会更加容易地搜索到对应的方法。
第三个问题,也就是操作层面上的,这个模型可以用什么软件实现?参数怎么调?有没有现成的代码供参考?每一步的操作涵义是否清楚?当你明白了一个模型或者是算法的思想之后,软件操作和程序代码应该是像文思泉涌般跃然纸上才对,而且这个过程里会遇到很多意想不到的,纸上谈兵时看不到的困难,因为具体的操作要受你的系统环境、软件版本、时间限制等各种方面的现实考验,没有什么捷径,只有平时多练,多做,自然在临场你能最快地找到解决的办法。
用一个例子说明一下:
姜启源老师主编的《数学模型》一书第三章优化模型,读完7个小节,也就是7个例子之后,你对优化模型应该有如下的认识:
- 模型名字:优化模型,也叫数学规划,包括线性规划、目标规划、整数规划、非线性规划、动态规划等等各自能够解决决策变量为整数或实数,目标函数为线性或者非线性的问题,是最常见的数模问题。
- 这是优化类模型,能解决问题的特征是问题要求某些量达到最大或最小,比如销售量最大化,森林火灾造成的损失最小等等,而且我们可以人为地控制某些变量,比如员工的上班时间,原材料的投入量,消防队员救援的策略等等。只要是存在可控制的量和要达到最优的目标,这就是一个优化问题。
- 比较标准的优化问题,就像教材上对它的分类一样,可以直接用lingo软件解决,而复杂的非标准而有很多细节的优化问题则需要手动操作和很多其他灵活的处理,或者还需要用动态规划的方法弄清楚问题发展过程后加以解决,总的来说,优化问题的建模分为这么几个步骤:
- 找到可以控制的决策变量;找到待优化的优化目标;
- 寻找决策变量对优化目标的影响,写出目标函数;
- 对目标函数用求导等数学工具求出最值和对应的决策变量的取值;
- 回到原问题予以解答。
对于更加细化的问题,比如整数规划模型,模拟退火算法等等,我们也可以更加详细地顺着这样的思路去想问题,以此为思路,为深度要求来学习书本上的知识。
话说回来,学数学模型,其实看哪本书都可以,一本书只是一个线索,要学懂它,只要按照以上的标准,能回答这三个问题,就可以结束了。其实很多时候一本书上的内容真的不够,往往需要读者能以此为引导去查找相关资料才能真正学懂一个模型,一种算法,所以,学数模最关键的是要用心去做,用心去想,多多利用数学中国这样的平台去积累相关的知识,最终达到融会贯通地地步。
希望读者能沉下心来,用心思考,慢慢积累,进而掌握数学模型这门技术,更好地服务于大家的比赛和深造,谢谢大家阅读本文!