第1章 数学建模概述
1.1 什么是数学建模
数学建模,简单来说就是用计算机和数学知识来解决实际问题。大学期间我们往往是跟着课本学习了若干专业知识,也会涉及一些例题。但这些离实际问题还很远,结果就是感觉学了很多知识,但是不知道这些知识有什么用?怎么用?而数学建模恰好是这样一种很好的实践锻炼活动,不但需要调动所学的各种知识,还要锻炼迅速查阅文献、数据,快速学习并应用它们的能力。
平时,教师引导学生解一道数学题时,教学生怎么从定义出发,加上逻辑推理,完成最终结论。数学建模大体上也是一样的,只是由数学题变成更复杂的实际问题,首先需要读懂并明确它,然后分解成小问题,表达成数学问题,再用数学方法和计算机编程来解决问题,得到的结果还需要验证其合理性、稳定性、有效性、可推广性等。
数学建模这个过程对能力的锻炼是受益无穷的,可谓“一次参赛,终身受益”。
数学模型——为了定量地解决一个实际问题,从中抽象、归结出来的数学结构。具体可以描述为:对于现实世界的一个研究对象,为了一个特定目的,根据对象的内在规律做出必要的简化假设,运用适当的数学工具得到的一个数学结构。
数学建模——指的是建立数学模型、解决实际问题的全过程,包括模型的建立、求解、分析和检验。
数学建模没有最好,只有更好。模型评判不在于方法“高大上”“包医百病”,而在于思想精髓、对症下药[1]。
1.用数学帮助解决实际问题,离不开数学建模
数学是和数学建模一直是相伴而发展起来的。数学建模就是把要研究或要解决的问题用数学语言表达出来,主要是选择变量及确定变量间的关系。数学建模是在实际问题和数学之间架设一座桥梁,使得可以用数学分析、计算的各种方法、手段工具以及计算机编程来解决实际问题。掌握数学建模需要学好数学,学好数学并不在于修了多少门课,以及考试成绩如何。重要的是是否掌握了数学语言和数学思维。
2.数学课程与数学建模的异同[2]
数学基础课主要是为传授知识打基础,数学建模则是培养运用数学的能力。
相同:两者都需要概念定义、条件结论、分析计算和逻辑推理,也都需要理出思路、找到正确的路线。
不同:数学课后的题目大多直接用数学语言叙述,条件、结论给得很明确,答案通常是唯一的,方法也大同小异(有“套路”),做对做错很容易评判,目的是帮助理解和掌握这一部分知识内容;而数学建模面对的实际问题一般是用自然语言描述的,条件和结论并不明确、具体,甚至是相当开放的,讨论或解决的路线、方法及用到的知识内容可能是多种多样的、综合的,更重要的是得到的结果要经过实际检验。
对数学建模,更要先做定性思考/讨论,不要急于去找方法、想答案。面对一个问题,先要想一想:这是个什么问题(怎么理解),从何而来(怎么想出来的),要回答什么、弄清楚什么,怎样才算是“回答了”、是否需要检验及怎样检验,必要条件是什么、充分条件是什么,可以合理地分解成哪几步,可能的困难在哪里,与已有的问题/知识有何关联,有没有熟悉的类似问题,等等。这些准备和思考做得好就容易走下去,容易找到一条正确的路线而不至于盲目“搬”方法、套公式。这一步很重要但仅靠数学知识是不够的,需要学习相关知识或找人合作。
接下来是选择变量和建立变量之间的关系,即建立数学模型。这一步需要明确假设:没有假设是无法建立模型的,假设不合理会偏离问题的本源,而模型太复杂又会超越现有的能力。有了模型,就可以通过数学分析和编程计算来回答原始的问题,这基本上依靠的是对数学知识的运用和计算机编程的能力。最后,还必须检验所得的结果是否正确或合适。
3.相对于数学基础课,数学建模需要强化几方面意识和能力
问题意识:数学建模面对的是实际问题而不是数学问题,要先问用什么模型,再问用什么方法。倘若现有的方法和问题之间都已经可以建立一一对应,那世界上就不会有困难的事情了,也不需要创新发展,更轮不到人们施展才华。合适的模型需要合理的假设,合理的假设需要把实际问题搞清楚。问题比答案重要,实践比理论优先。
分解问题的意识和能力:一步到位、一揽子解决、毕其功于一役的想法和心态难以面对富有挑战性的问题。有些困难的问题我们虽然做不了但却能读懂别人的工作,这是因为别人把问题巧妙地分解成一系列有办法处理的子问题。合理分解的标准是:子问题的难度大大降低了;子问题解决的结果拼起来就能回答原问题。
检验意识:数学问题的解答正确与否可以靠逻辑和证明来判定,但逻辑与证明不能作为实际问题是否得到了正确解决的唯一准则,而必须一开始就考虑检验的标准和途径。做数学建模除了必要的数学基础外,更需要充满好奇、敏锐捕捉、虚心学习、合理假设、恰当分解、规范研究、科学检验。
4.重视编程语言学习
编程即让计算机代为解决问题。从信息时代到大数据、机器学习时代,计算机编程能力已经是一种必备的基本能力了。
编程语言是人与计算机沟通的一种形式语言,根据设计好的编程元素和语法规则,来严格规范地表达我们想要做的事情的每一步(程序代码),使得计算机能够明白并正确执行,从而得到期望的结果。