第一章 课程概述
§1.1 数学模型与数学建模
一.基本概念
数学是研究现实世界中数量关系和空间形式的科学。其产生以及许多重大发
展都是和现实世界的生产活动和其他相应学科的需要密切相关的;同时,作为认
识和改造世界的强有力的工具,又促进了科学技术和生产建设的发展。特别在当
今时代,由于计算机软硬件的迅速发展和普及,数学方法被广泛应用于生产实践、
社会管理的各个领域和层面。对具体的应用问题或问题类进行合理的简化假设以
及适当的抽象并最终表述为某种数学结构,即我们在这里讨论的数学模型,是现
代生产实践与社会生活实现优化决策和科学管理的必要环节。而数学建模则是指
根据实际需要或最终管理目标,对现实问题构建数学模型,对模型进行分析求解,
并最终将模型解翻译为决策方案应用于实际的一个由诸多环节组成的一个完整
过程。
为理解现实对象与数学模型的关系,以下给出数学建模的一个流程图:
二.(引例 1)椅子的平稳放置问题
将(四脚)椅子置于不平的地面,通常只有三只脚着地,放不稳;然而只需
稍挪动几次,就可以使四只脚同时着地,放稳了——这是我们在日常生活中遇到
的一件很普通的事实。这一现象是偶然的呢,还是有其必然性呢?
三.(引例 2)商人过河
设有三名商人,各带一个随从,欲乘一小船渡河,小船只能容纳两人,须由
他们自己划行。随从们密约,在河的任何一岸,一旦随从的人数比商人多,就杀
人越货。而如何乘船渡河的大权掌握在商人们的手中。商人们怎样才能安全渡河
呢?
§1.2 数学建模的基本方法步骤
尽管现实世界中的应用问题形形色色、丰富多彩,内在地决定了在对实际
问题的解决过程中要根据具体情况选择不同的方法以及相适应的表现方式,但我
们仍然就其一些基本方法步骤(可先参阅人口增长预测模型)归纳为如下框图:
模型准备:要了解问题的实际背景,明确建模的目的,搜集建模必需的各种
信息、数据等;
模型假设:根据实际问题的特点和建模的目的,对问题进行合理的简化假设,
是建模的关键一步,其基本内在的决定了后续工作的展开和整个建模过程之成败。
因为影响一个现实事件的因素通常是多方面的,我们只能选择其中主要影响因素
以及它们中的重要矛盾予以考虑,但这种简化一定要合理,过分的简化会导致模
型距离实际太远而变得失去建模意义;
模型构成:在前面工作的基础上,将问题涉及的各个量符号化,以及各变量
之间的内在联系形式化,利用适当的数学工具,将所关心的实际对象抽象为某个
数学结构。可以是一个方程组的求解问题,也可以是一个最优化问题,也可以是
其它。从简单的角度讲,这一环节要求用尽可能简洁清晰的符号、语言和结构将
经过简化的问题进行整理性的描述,只要作到准确和贴切即可。当然考虑数学和
应用数学学科的发展已有大量和丰富的概念与方法积淀,因此所建立模型在表述
上应尽可能符合一些已经成熟的规范,从而也为建模者提出更高的要求;
模型求解:根据所建模型的特点,采用适当的计算工具、计算方法,比方几
何作图、数值计算等,最终给出模型的解。考虑我们需要建模处理的通常解决的
是一大类型的问题,而数值计算通常是针对一个特定问题的具体结果,因此像解
析法、归纳与演绎等逻辑方法的恰当运用会得到更为一般和有意义的结果;
模型分析:对模型解答进行数学上的分析,比方要根据问题的性质分析变量
间的依赖关系,根据所得结果给出数学上的预报,在解的局部对模型中各参数和
变量的微小扰动进行灵敏度、稳定性分析,在数值计算时还应对可能出现的误差
进行分析等等。
模型检验:把数学分析的结果解释为实际问题的解或方案,并用实际的现象、
数据加以验证,检验模型的合理性和适用性。如果模型的结果距离实际太远,应
当从改进模型的假设入手,可能是因为将一些重要的因素被忽略了,也可能将某
些变量之间的关系作了过分简化的假设。如此,进入重新一轮的建模分析,直到
检验结果获得某重程度的满意,并最终将结果付诸实践,即模型的应用。
§1.3 认识 Mathematica
高性能计算机与优良数学软件的研发普及,使得数学学科地位的重要性地位
得到不断地加强和巩固。它使得数学方法能被广泛有效地应用于科学研究、工业
设计、社会管理等各个领域成为可能,甚至使得数学的学科面貌从学习的角度也
发生了非常巨大的变化,数学学习不再局限于一张纸一支笔的咫尺天地当中。特
别,像 Mathematica、Matlab、Sas、Lingo 系列(高版本)数学软件的推出,为
数学的学习以及尝试将数学方法应用于解决实际问题提供了捷径。
1. Mathematica(简记为 Math)是一种数学分析型的软件,功能丰富强大,
界面友好,其编程具有很好的“对话”式特点,易学易用,当你输入一
个有效的表达式或计算程序时,连击“Shift”与“Enter”键,Math 将
完成计算;
建议初学者首先以基本的算术表达式或简单的函数值计算作为练习来初步
了解 Math 软件,循序渐近,逐步深入。
循序渐近
2. Math3.0 以上的版本,在其主菜单“File”子菜单中的“Palettes”选项,
学习者可以从中选择其中适当的子选项,软件将弹出相应的“按纽”平
板(输入平台),上面有许多特殊的字符或符号、数学表达式模板、常用
的内部函数等,只需用鼠标点击相应的“按纽”,在输入窗口中即产生您
所要的数学字符或表达式格式。在输入格式的空位中填入正确的数据或
符号,即可直观的完成一个复杂数学表达式的输入。这样,使得 Math 程
序的编写和我们平时完成数学作业报告时所采用的形式达到最大限度的
一致——这也是 Math 软件的又一个优点。
PALETTES(?调色板, 颜料),内中有许多按钮使得程序的编写更接近书写习惯
看,你可以很直观地输入一个矩阵,其它也一样
3. 充分的利用 Math 的“Help”菜单,将最大限度地排除您在学习该软件时
可能遇到的障碍,检索一个函数(命令)是便捷的,文件中附带的相关
例子,使您能够很容易地读懂它们的用法。
充分利用“HELP”
4. Math 可以作符号计算,用户可以借助 Math 得到许多问题的解析(符号)
解;且只要用户愿意,Math 可以得到任意精度的数值解。
5. “表”是 Math 软件处理的最基本的数据对象。
6. Math 语句的语法单一,取消了函数、命令等概念的差别——这同样是
Math 的一个优点;Math 中定义了大量的内部函数或命令,这样使得 Math
进行科学计算的编程效率极具优势。
7. 您还可以自己定义函数。
8. Math(简单)编程。
9. Math 函数作图可能会吸引您。
10. 特别提示:
1) “Shift”+“Enter”;
2) Math 中区分字母的大小写,软件内部定义的函数命令,其首字母均大写;
3) 几对括号的用法:“()”、“[]”、“[[]]”、“{}”;
4) 几个等号:“=”、“:=”、“==”;
5) “,”与“;”;
6) 几个常数:
7) 取近似函数 N[Pi]、N[Pi,100];
8) 数据引用:%、%%、%%%、%10、Out[10]、Out[-10];给变量(参数)、
表达式的数据命名是一个好的编程习惯。
9) 对方程(组)解的引用:
10) 随机函数 Random[]、Random[Real,xm]、Random[Real,{xm,xM}]、
Random[Integer,iM];
下面的例子可以作为学习用 Math 语言定义一般(复杂)函数的例子,学生
在练习过程中除了学习 Math 编程外,还可以对近似计算的概念和特点形成初步
认识:
例、设某函数为一分段常值函数,试根据其特点,构造适当的算法,在指定精度
要求下,搜索其间断点。不妨取
(
xf
)
1
0
1
2
3
0
1
.1
0001
002
.1
x
0
1
x
0001
.1
x
002
.1
x
x
精度要求分别取 0.1、0.01、0.001、0.0001、0.00000001,在区间
4,1
内
搜索函数
(xf 的间断点。
)
第二章 初等数学方法建模
数学建模的核心是力求对实际应用问题的解决,而不在于所采用方法的深奥
程度。事实上,在对一个问题能够做到完好解决的前提下,朴素性简洁性恰好是
构成一个完美的数学模型或数学建模过程的一个重要侧面。本章介绍的几个例子
即能够用相对初等的方法得以很好地解决,这里强调选用怎样的工具通常是由问
题本身内在决定的,切忌为了炫耀方法而使问题的解决变的烦琐——这正如在良
医的眼里,各种药材的价值在其用并在行医中总能做到对症,而不在其名贵程度。
§2.1 公平的席位分配
问题:首先看一个小例子,讨论一个学校中学生代表席位在不同院系之间的公平
分配问题。问题产生的原因在于人数是一个整型量,因此在通常情况下不能严格
保证各个院系(团体)最终分得的代表席位数与其人数取相同的比例。也即说对
一个席位分配方案不能要求其在任何情况下均能作到绝对公平,但却可要求其分
配结果的整体不公平程度尽可能降低。
在下表中反映的是当总席位数分别为 20 、 21 时,参照惯例在人数分别为
34,63,103
的三个不同系的分配结果。“惯例”在这里是指首先计算各系按照比
例所应该分得的席位,然后取其整数部分作为各系第一阶段分到的席位,而在
第二阶段将剩余的席位按照各系比例分配数的小数部分的大小取较大的几个系,
在已分得席位的基础上各增加 1 席。
系
别
21 个席位的分配
20 个席位的分配
学生
人数
所占
比例
比例分配
参照惯例
比例分配
参照惯例
甲 103
乙 63
丙 34
200
总
和
51.5
31.5
17.0
100
的席位
10.3
6.3
3.4
20.0
的结果
10
6
4
20
的席位
10.815
6.615
3.57
21.000
的结果
11
7
3
21
从上表中发现,在总席位数为 20 席时丙系可分到 4 席,而当总席位增加之
后,丙系分到的席位数反降为 3 席。这一“矛盾性结果”同样不符合我们对一个
好的席位分配算法的预期:假定各系人数已确定,考虑总席位数增加时,一个席
位分配算法的结果至少须保证对每一系所最终分得的席位数不减。要解决这个
问题必须舍弃所谓惯例,找到衡量公平分配席位的指标,并由此建立新的分配方
法。
一、A、B 两方席位的公平分配:
1, PP ,占有席位记为
2
1,nn ,分别代表的人数应为
2
双方人数分别记为
,
P
2
P
1
n
1
n
。
2
P
1
P
2
n
2
n
1
,则公平。
若
通常,人数、席位都为整数,若
P
1
n
1
P
2
n
2
,则不公平。
P
1
P
2
,
n
1
n
2
数值
较大的一方吃亏。
1.建立数量指标:
标准 I·绝对不公平指标:不妨假设
P
1
P
2
n
1
n
2
P
1
n
1
P
2
n
2
,
(1)
(
PP
1
)
,
2
)100,120(
(
,
nn
1
)
,
2
)10,10(
,则
,
(
PP
1
)10,10(
(2)
常识:(2)的公平程度比(1)大为改善了。
1020
,
)
1000
(
nn
1
,
)
)
(
,
2
2
,则
标准 II·相对标准:
P
1
P
2
n
1
P
1
n
1
n
P
2
12
10
2
2
;
102
100
2
n
2
。