第1章:数学建模概述
近半个多世纪以来,数学已经走进了各大领域,而与其他学科相结合形成交叉学科,首要的关键一步就是建立研究对象的数学模型,并加以计算求解,数学建模和计算机技术在知识经济时代的作用可谓是如虎添翼。
1.1 初入门径——认识数学模型与数学建模
数学建模就是用数学语言描述实际现象的过程,这里的实际现象包含具体的自然现象,也包含抽象的比如顾客对某种商品所取的价值倾向。这里的描述不但包括外在形态,内在机制的描述,也包括预测,试验和解释评价实际现象等内容。
数学模型一般是实际事物的一种数学简化,它常常是以某种意义上接近实际事务的抽象形式存在的,但它和真实地事物有着本质的区别。使用数学语言描述的事物就称为数学模型,
重点:数学建模问题与其他数学问题不同,数学建模问题的结果本身没有对错之分,但有优劣之分。建立模型解决问题也许不难,但是需要所建立的模型能够有效地指导实际工作就比较困难了,这才是数学建模的难点(我理解为假设的合理性)。
1.2 建模实际举例:
1.2.1 测量山高
一般我们用H = 1/2gt^2,来计算山高,但实际中,却没有人敢用这个值当做真正的山高来处理。
此时我们研究的不再是一个抽象的理论问题,而是一个具体的实际问题,所建立的数学模型应该能够对实际的工作有较强的指导意义,应该尽力使求得的答案贴近事实。
改善:
(1)考虑人的反应时间:查找资料获取人的反应时间大约在0.1s左右;
(2)考虑空气阻力:查阅资料发现石头所受空气阻力和速度成正比,建立微分方程,积分获取答案。
(3)声音传播时间:实际中,声音传播也是一个不可忽略的因素,在模型中引入回音传播时间,对模型进行进一步修改。
1.2.2 教室光照问题
假设:
(1)光源对目标点的光照强度与该光源到目标点距离的平方成反比;
(2)各个光源的光照强度符合独立作用与叠加原理;
(3)在光源点的光照强度为‘1’;
(4)在整个空间中,反射情况忽略不计。
结论:
得距离地面1米地方,的光照强度公式:
在matlab中计算都是对离散点进行的,因此将距离地面高1m处的12m*15m的平面离散成为网格,每隔0.25m取一个点,而点与点之间采用插值算法,可以得到这个平面的光照强度。
改善:
考虑一次反射:假设墙面反射满足镜面反射原理,重新计算;等
1.2.3 污染预测问题(重在原始数据的获取,可能题目中会给你)
这种题目,一般是在给你原始数据的基础上,进行函数拟合(最小二乘法确定系数),预测未来的一些趋势,当然,需要做检测。
假设:
先做前10年的散点图,观察假定数据以二次函数的形式增长,通过最小二乘拟合确定二次函数的系数,并预测后10年的数据。
1.3 建模的要求
从上面例子中,我们可以看出,数学建模往往考虑一下两方面的权衡:
(1)数学建模是用以解决实际问题的,所建立的模型不能太理想、太简单,过于理想化的建模往往脱离实际情况,这就违背了建模的目的。
(2)数学建模必须是以能够求解为前提的,建立的模型一定要能够求出解,所建立的模型不能过于实际,过于实际的模型往往难以求解,因此作适当的简化假设是十分有必要的。
通过以上的讲解,希望大家初步能够明白什么是数学模型,对数学建模的过程有一个大致的了解,下面将比较系统地介绍数学建模的一般步骤,明白如何建立一个数学模型。
1.4 数学建模的分类以及建立模型的一般步骤
1.4.1 数学模型的分类
按照不同的方式有不同的分类:
(1) 按照应用领域:经济模型、医学模型、地质模型、社会模型等等;
(2) 按照建立方法:几何模型、微分方程模型、图论模型等等;
1.4.2 数学建模的方法
一般有:机理分析、数据分析和类比仿真法等。
机理分析:根据对现实对象特征的认识,分析其因果关系,找出反映内部机理的规律等,用这种方法建立的模型,通常有明确的物理或现实意义。
数据分析:运用统计分析的方法,拟合模型;
类比仿真:在两类不同的事物之间进行对比,找出若干相同或相似之处,推测在其他方面也可能存在相同或相似之处的一种思想,这类一般是借用一些现有的模型,推测现实问题应该或可能的模型结构。
1.5 建模步骤:
(1)形成问题:需要有明确的问题背景,对象特征,掌握有关的数据,了解建模目的。
(2)假设和简化:根据对象特征和建模目的,对问题进行必要的、合理的简化和假设(难在需要紧抓本质的因素,忽略的是次要的因素)。
(3)模型构建:根据所做的假设,分析对象的因果关系,用适当的数学语言刻画对象的内在规律,构建现实问题中各个变量之间的数学结构,得到相应的数学模型;(注意尽量采用简单的数学工具。)
(4)检验和评价:数学模型能否反映原来的现实问题,必须经受多种途径的检验;主要指:合理性与适用性。
(5)模型的改进:模型在不断的检验过程中进行修正,逐步趋向完善;
(6)模型的气节:经过检验,获取能比较好地反映现实问题的数学模型,最后通过求解得到数学上的结果,通过“翻译”回到现实,得到相应的结论。
1.6 建模组队:
一个数学功底深厚、理论扎实:掌握几类基本的数学模型;
一个擅长算法实践:熟练掌握Matlab、Lingo、SPSS等软件的使用。
另一个是写作:有基本的写作技巧。
第2章:初等数学建模方法示例
对于数学建模问题,如果能用不同的方法建模,显然最简单的方法是我们的首选,这就是所谓的工程师原则。并不一定非要在比赛中采用一些启发式算法建立模型,如:遗传算法、模拟退火算法等。
2.1 公平席位分配方案
(1)分析问题:发现我要要解决的问题是,对于某校有m个系,第i系的学生有ni个,校会共设N个席位,怎样分配才能尽可能公平?
(2)假设:ai越大损失越大,因此要保证各系ai尽量相等;
(3)建模:基于不同的假设,提出不同的“公平性”标准,进行建模处理。
(4)到最后发现,这时一个整数规划模型。
(5)不同的建模之后,还有讨论哪种模型更加公平,给出最终结论才可(这一点书中也没有提到)。
2.2 商人安全渡河问题
(1)给出解题思路;
(2)但重要的是,当初始条件不同时,如何进行处理?(此题不需要假设)
2.3 货物存储模型:
(1)找准问题矛盾,明确目标,列出模型。
(2)软件求解
2.4 制动器试验台的控制方法分析
(1)问题描述:为了检测制动器的综合性能,做了一些列的假设,在实际中需要进行模拟实践,其中为了补偿由于机械惯量不足而缺少的能量,需要使用驱动电流,而问题就是:在给定的条件下,计算驱动电流应该为多大。
(2)解题思路:猛一看真的是一点思路都没有,光一个什么惯量、电流就够晕了,总之就是列各种式子,求解各种值(要求对于方程的微分与积分需要十分了解,需要熟悉matlab的软件使用)。
第3章:预测类数学模型
主要是根据某组试验观测数据找到变量与变量之间相对准确的函数关系。
3.1 数据拟合与插值
(1)插值:通过每个测试数据点,得到测试函数(要求拟合函数通过全部点,可能是几个分片的光滑的连续曲面来穿过所有点)。
(2)拟合:以残差平方和最小为原则,得到测试函数不一定经过所有测试点。
3.2 多项式数据拟合:(多项式系数可以用最小二乘法进行计算)
例:中国人口预测问题
(1) 首先,使用matlab软件画出历史数据的散点图;
(2) 观察散点图,确定做几次方的拟合;
(3) 将得到的拟合曲线与实际数据相比较。
3.2.1 matlab中进行多项式拟合
主要有两种形式:
(1) 采用Ployfit、Ployval等命令,编写程序完成拟合工作:
例如:世界人口预测问题
Code:
Year = [1625,1830,1930,1960,1974,1987,1999]; Population = [5,10,20,30,40,50,60]; Year1 = 1625:2000; Year2 = 2000:2020; [P2,S2] = polyfit(Year,Population,3) Population1 = polyval(P2,Year1); Population2 = polyval(P2,Year2); plot(Year,Population,'*',Year2,Population2,'X',Year1,Population1); legend('fact','think') xlabel('year');ylabel('populations') |
上述命令首先输入历史数据,然后调用Polyfit命令,第一个参数表示待拟合的数据的自变量,第二个参数表示待拟合数据的因变量,最后一个数据表示拟合的次数。命令返回的第一个参数P2表示拟合多项式的系数,第二个参数S2表示拟合多项式所产生的误差。
2次拟合与其类似。
(2) 在M-file中输入拟合数据,画点图,采用Basic-fitting工具箱进行多项式拟合。(第二种先不考虑,主要练习第一种编程。)
3.2.2 非多项式数据拟合:
有时需要对非多项式的数据进行拟合,Malthus、Logistic拟合是两种最典型的拟合。
(1) Malthus拟合
需要年增长率r保持稳定;仍然使用最小二乘估计,但是注意需要将指数运算转化为线性运算。
例:人口估计
代码:
Y = 1900:10:2000; PP = [76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4 281.4]; y = log(PP); x = y-1900; P = polyfit(x,y,1); r = exp(P(1)) - 1 x0 = exp(P(2)) plot(x,y) |
运行程序后得到的r便是增长率,x0便是从1900年的人口数量估计值。
(注意当预测值对于近年数据有较大误差时,不能采用!)
·这里预测值的变量p需要重新写为求出参数的原函数。
(2) Logistic拟合
在群体可能达到生存极限的情况下使用;开始群体的自然增长率为r,随着群体的增长,增长率下降,一旦群体总数达到K,群体停止增长,即增长率为0。
3.3 除此之外,还有很多种其它非多项式的拟合
例如:
经由上述程序,可得拟合函数如下。(37页)
3.4 还有区分不同阶段的拟合:(40页)
Leslie矩阵模型
3.5 灰色预测模型:(48页)
当只有少量数据时,针对小数据进行预测的方法。
第4章:评价类数学模型
要求参赛者分析已有体系的特点,确定评价指标,形成评价体系,以便指导以后的工作。
另一种简易的说法就是对需要进行评价的各个方案或者各个体系打一个总分,并依据此总分对方案或者体系进行评价。本章主要介绍几种不同的评价方法:层次分析法、灰色体系评价法等。
4.1 层次分析法(57页)
较合理地解决了定性问题定量化的处理过程,主要特点是通过建立递阶层次结构,把人们的判断转化到若干因素两两之间重要度的比较上,从而把难以量化的定性判断转化为可操作的重要度比较上面。
4.1.1 步骤:
(1)分析系统中各因素之间的关系,建立系统的递阶层次结构;
(2)对于同一层次的各元素关于上一层次中某一准则的重要性进行两两比较,构造两两比较矩阵;
(3)由判断矩阵计算被比较元素对于该准则的相对权重,并进行一致性检验;
(4)计算各层元素对系统目标的合成权重,并进行排序。
4.2 灰色关联分析体系
第5章:优化类数学模型(运筹学知识)
本章依次介绍:线性规划模型、非线性规划模型、整数规划模型、目标规划模型、动态规划模型以及利用数学软件实现它们的方式。
Matlab可以进行求解,但是Lingo是用来准们解决各种优化问题的。
·笔者有运筹学知识基础,而且队员会用Lingo软件,由于准备时间按有限,这部分先省略。
第6章:概率类数学模型
建模比赛中或多或少会遇到一些随机性问题,此时需要利用概率统计知识去建立模型。
本章主要介绍了几种不同的处理随机问题的方法:随即问题转化为确定性问题、可靠性分析法、时间序列法等。
第7章:多元统计分析模型
使用SPSS软件:聚类分析、主因素分析、相关分析等。
第8章:方程类数学模型
在数学建模竞赛中,机理型问题大都是通过建立微分方程数学模型加以解决的。其中典型的微分方程模型有人口问题中的Malthus模型与Logistic模型,医疗问题中的简单传染病模型与一般传染病模型,种群问题中的种群竞争模型与战斗模型。
第9章:图与网络模型
例如:最短路径模型、网络流模型。
但在建模的过程中,涉及的方面多很多:时间、费用、路线长度、是否涉及换乘等。
第10章:如何准备全国大学生数学建模竞赛
时间安排。