第 1 章 建立数学模型
本章作为全书的导言和数学模型的概述,主要讨论建立数学模型的意义、方法和步骤,给读者以建立数学模型的全面的、初步的了解.
1.1 从现实对象到数学模型
原型和模型
- 原型(Prototype)和模型(Model)是一对对偶体.
- 原型指人们在现实世界里关心、研究或者从事生产、管理的实际对象.
- 本书所述的现实对象、研究对象、实际问题等均指原型.
- 模型则指为了某个特定目的将原型的某一部分信息简缩、提炼而构造的原型替代物.
- 构造模型具有强目的性
- 模型具有多种类别
- 形象模型
- 直观模型
- 物理模型
- 抽象模型
- 思维模型
- 符号模型
- 数学模型
- 形象模型
数学模型
一般地说,数学模型可以描述为,对于现实世界的一个特定对象,为了一个特定目的,根据特有的内在规律,做出一些必要的简化假设,运用适当的数学工具,得到的一个数学结构.
- 建立数学模型的基本步骤
- 根据建立数学模型的目的和问题的背景作出必要的简化假设
- 用字母表示待求的未知量
- 利用相应的物理或其它规律,列出数学式子
- 求出数学上的解答
- 用这个答案解释原问题
- 最后还要用实际现象来验证上述结果
1.2 数学建模的重要意义
1.6 数学建模的基本方法和步骤
下面所谓基本方法不是针对具体问题,而是从方法论的意义上讲的!
建模的基本方法
- 机理分析
- 已掌握一定的内部机理
- 模型要求反映内在特征的物理意义
- 测试分析
- 内部规律基本不清楚
- 模型也不要求反应内部特性
- 如对输出作预报
- 二者结合
- 使用机理分析建模,使用测试分析确定参数
数学建模的一般步骤
-
模型准备
- 形成一个比较清晰的问题
- 了解实际背景
- 明确建模目的
- 搜集必要的信息,如现象、数据等
- 初步确定模型类型
- 要点
- 深入调查研究
- 实事求是,向实际工作者请教
- 形成一个比较清晰的问题
-
模型假设
- 抓住问题本质,忽略次要因素
- 对问题内在规律的认识
- 对现象、数据的分析
- 抓住问题本质,忽略次要因素
-
模型构成
- 建立包含常量、变量等的数学模型
- 使用类比法,借用已有的模型
- 需要广泛的应用数学知识
- 尽量使用简单的模型
- 建立包含常量、变量等的数学模型
-
模型求解
- 优先使用数学软件和计算机技术
-
模型分析
- 误差分析、统计分析、模型对数据的灵敏性分析、对假设的健壮性分析
-
模型检验
- 将结果翻译回实际问题,与实际现象、数据进行比较,检验模型的合理性和适用性
- 若不符,则应该修改、补充假设
-
模型应用
数学建模的全过程
1.7 数学模型的特点和分类
数学模型的特点
- 模型的逼真性和可行性
- 建模时往往需要在模型的逼真性与可行性,“费用”与“效益”之间作出折衷和抉择!
- 模型的渐进性
- 稍微复杂一点的实际问题通常都不可能一次性成功,要经过建模过程的反复迭代
- 由简到繁
- 删繁就简
- 稍微复杂一点的实际问题通常都不可能一次性成功,要经过建模过程的反复迭代
- 模型的强健性
- 一个好的模型应该具有下述意义的强健性
- 当模型假设改变时,可以导出模型结构的相应变化
- 当观测数据有微小改变时,模型参数也只有相应的微小变化
- 原因:模型的结构和参数常常是由模型假设及对象的信息如观测数据确定的,而假设不可能太准确,观测数据也是允许有误差的
- 一个好的模型应该具有下述意义的强健性
- 模型的可转移性
- 模型是现实对象抽象化、理想化的产物,它不为对象的所属领域所独有
- 模型的非预制性
- 建模本身常常是事先没有答案的问题(open-end problem)
- 模型的条理性
- 从建模的角度考虑问题可以促使人们对现实对象的分析更全面、更深入、更具条理性
- 模型的技艺性
- 经验、想像力、洞察力、判断力以及直觉、灵感等在建模过程中起的作用往往比一些具体的数学知识更大!
- 模型的局限性
- 模型通常对现实问题做了简化,是相对理想化的
- 人类认识能力和科学技术的限制
- 某些问题还未发展到用建模方法寻求数量规律的阶段
数学模型的分类
- 按照模型的应用领域
- 按照建立模型的数学方法
- 按照模型的表现特性
- 确定型模型和随机性模型
- 静态模型和动态模型
- 线性模型和非线性模型
- 离散模型和连续模型
- 按照建模目的分
- 按照对模型结构的了解程度
- 白箱模型
- 灰箱模型
- 黑箱模型
1.8 数学建模能力的培养
类比方法和理想化方法是建模中常用的方法,它们的运用与想像力、洞察力有密切关系.
想像力指人们在原有知识的基础上,将新感知的形象与记忆中的形象相互比较、重新组合、加工处理,创造出新的形象,是一种形象思维活动.洞察力指人们在充分占有资料的基础上,经过初步分析能迅速抓住主要矛盾,舍弃次要因素,简化问题的层次,对可以用哪些方法解决面临的问题,以及不同方法的优劣作出判断.
培养方法
- 学习、分析、评价、改造别人作过的模型
- 亲自动手,踏实地做几个题目
习题
为了培养想像力、洞察力和判断力,考察对象时除了从正面分析外,还常常需要从侧面或反面思考.试尽可能迅速地回答下面的问题:
(1) 某甲早8:00从山下旅店出发,沿一条路径上山,下午5:00 到达山顶并留宿.次日早8:00沿同一路径下山,下午5:00回到旅店.某乙说,甲必在两天中的同一时刻经过路径中的同一地点.为什么.
- 想象两个体能完全相同的人在同一天各自从山顶与山脚同时出发。无论上山和下山速度如何不同,二人必在途中相遇。而相遇的时间地点就是题目中的“同一时刻”时的“同一地点”。
(2) 37 支球队进行冠军争夺赛,每轮比赛中出场的每两支球队中的胜者及轮空者进入下一轮,直至比赛结束.问共需进行多少场比赛,共需进行多少轮比赛.如果是n支球队比赛呢.
- 36
- n-1
- 每场比赛产生一个被淘汰的队伍。当进行了(n-1)次比赛后,(n-1)个队伍被淘汰,唯一的冠军产生,冠军争夺赛结束。
(3)甲乙两站之间有电车相通,每隔 10 分钟甲乙两站相互发一趟车,但发车时刻不一定相同.甲乙之间有一中间站丙,某人每天在随机的时刻到达丙站,并搭乘最先经过丙站的那趟车,结果发现 100 天中约有 90 天到达甲站,约有 10 天到达乙站. 问开往甲乙两站的电车经过丙站的时刻表是如何安排的.
-
可以想象一条时间轴,轴上每隔 10 min 有一辆开往甲站的电车,每隔 10 min 也有一辆开往乙站的电车。从轴上任意一个点向右走,首先碰到的电车决定乘客最终达到哪个站。
-
可以得到结论:两趟电车经过丙站的时间总是相隔 1 min ,且开往甲站的电车先到
-
假设 10 : 00 开往甲站的电车经过丙站,则未来一个小时内的时刻表如下
开往甲站 开往乙站 10 : 00 10 : 01 10 : 10 10 : 11 10 : 20 10 : 21 10 : 30 10 : 31 10 : 40 10 : 41 10 : 50 10 : 51
(4) 某人家住T市在他乡工作,每天下班后乘火车于 6 : 00 抵达T市车站,他的妻子驾车准时到车站接他回家.一日他提前下班搭早一班火车于 5 : 30 抵T市车站,随即步行回家,他的妻子像往常一样驾车前来,在半路上遇到他,即接他回家,此时发现比往常提前了10分钟.问他步行了多长时间.
在这里,提前10分钟有两种理解,对应两个不同的答案:
- 比往常提前了10 min 接他上车,则他步行了 20 min
- 比往常提前了 10 min 回到家,则无法得出答案,因为步行和开车的相对速度未知
(5) 一男孩和一女孩分别在离家 2 km和 1 km 且方向相反的两所学校上学,每天同时放学后分别以4 km/h 和2 km/h 的速度步行回家.一小狗以6 km/h 的速度由男孩处奔向女孩,又从女孩处奔向男孩,如此往返直至回到家中.问小狗奔波了多少路程.
如果男孩和女孩上学时小狗也往返奔波在他们之间,问当他们到达学校时小狗在何处.
-
小狗以均匀的速率一直奔跑着,而奔跑的时间与男孩(或女孩)从学校回到家的时间相同,所以
\[路程 = 6 \times \frac{2}{4} = 3 \ km \] -
在学校。小狗总是处在男孩和女孩之间,随着二人不断走向学校,小狗的活动范围不断缩小。当二人同时到达学校时,此范围缩至最小值,即学校这一个点。所以,小狗此时也必处于学校这个位置。
第 2 章 初等模型
如果研究对象的机理比较简单,一般用静态、线性、确定性模型描述就能达到建模目的时,我们基本上可以用初等数学的方法来构造和求解模型.
需要强调的是,衡量一个模型的优劣全在于它的应用效果,而不是采用了多么高深的数学方法!
2.1 公平的席位分配
- 数学模型与现实模型交叉分析,互相推进
- 通过现实模型来建立原始的数学式子,进而演算得到进一步的规律
- 通过数学模型来抽象现实模型
- 建立起基本的数学规律后,暂时抛开现实模型,进行数学演算
- 回到现实模型
2.2 滑艇比赛的成绩
- 围绕建模目的来简化假设
- 利用正相关、负相关的表达形式来避免过多的系数
2.3 实物交换
- 无差别曲线
- 下凸——物以稀为贵
- 无差别曲线族相交的点形成交换路径
- 等价交换原则
2.4 汽车刹车距离与道路通行距离模型
汽车刹车距离模型
- 刹车距离由反应距离和制动距离两部分组成
- 反应距离由反应时间和车辆速度决定
- 制动时,汽车作匀减速运动,并满足能量守恒
- 针对汽车这个物体考虑,不需要考虑摩擦生热等问题!
2.5 估计出租车的总数
- 样本估计总体
- 平均值模型
- 中位数模型
- 两端间隔模型
- 平均间隔模型
- 无偏
- 误差和方差小
- 区间均分模型
- 数值模拟
- 使用MATLAB
2.6 评选举重冠军
- 取对数后,线性关系有所改进
- 使用幂函数(幂次小于 1)来表示举重成绩和体重的关系
- 构造数学模型的两种基本路线
- 直观观察
- 机理分析
- 在逐步地分析中,尽量构造正比例关系,如此一来,多个比例系数可以被合并。进而减小参数拟合的工作复杂度
2.7 解读 CPI
- 环比增长率、同比增长率、累计增长率
2.8 核军备竞赛
- 图的模型 ➡️ 精细的分析
- 这种由粗及细,从定性到定量的建模方法是值得借鉴的
2.9 扬帆远航
- 侧重物理受力分析与三角函数运算
- 在运算上可以借助 Maple
trig identity
expand
factor
simplify
plot
+explore
- 适合难以直接求解的表达式
implicit plot
- 数学上 \(U(x,y)=u\) 是 \(y = y(x)\) 的隐函数,及有 \(U(x,y(x)) = u\).
第 3 章 简单的优化模型
- 实际应用:建模+经验
- 如果在建模的基础上再辅之以适当的经验和试验,就可以期望得到实际问题的一个比较圆满的回答
- 本章介绍较简单的优化模型,归结为微积分中的函数极值问题,可以直接用微分法求解
- 优化问题的基本解决步骤
- 确定优化目标、决策内容以及限制条件
- 使用数学工具来表达第 1 步中的信息。在过程中要进行必要的简化
- 用微分法求解
- 对最终结果进行一些定性、定量的分析和必要的检验
3.2 森林救火
- 对火势蔓延速度的假设做到了合理与简化
- 实际应用这个模型时,\(c_1\),\(c_2\),\(c_3\)是已知常数,\(\beta\),\(\lambda\) 由森林类型、消防队员素质等因素决定,可以预先制成表格以备查用. 由失火到救火的时间 \(t_1\) 则要根据现场情况估计.
3.6 血管分支
-
当模型较为复杂时,避免多项式的产生。关于实现这一点,教材中作了一个很好的示范,将一个二次多项式化成了一个幂次介于 \([1,2]\) 的单项式
-
根据教材中的推导,可以得到
\[E_2 = k_1lr^2+k_2 l r \]为了简化模型的后续计算,这一式子被简化成了
\[E_2 = b r^\alpha l \] -
下面通过数值方法来检验一下这种简化方法的可行性
进一步简化两个式子为
\[E_2 = k_1r^2+k_2 r \]\[E_2 = b r^\alpha \]MATLAB代码
k1 = 5; k2 = 3; r = 0.1:0.2:20; E = k1*r.^2 + k2*r; createFit(r,E) function [fitresult, gof] = createFit(r, E) %CREATEFIT(R,E) % Create a fit. % % Data for \'fit\' fit: % X Input : r % Y Output: E % Output: % fitresult : a fit object representing the fit. % gof : structure with goodness-of fit info. % % 另请参阅 FIT, CFIT, SFIT. % 由 MATLAB 于 30-Jul-2020 14:34:35 自动生成 %% Fit: \'fit\'. [xData, yData] = prepareCurveData( r, E ); % Set up fittype and options. ft = fittype( \'power1\' ); opts = fitoptions( \'Method\', \'NonlinearLeastSquares\' ); opts.Display = \'Off\'; opts.StartPoint = [14.1712927096613 1.56089142274664]; % Fit model to data. [fitresult, gof] = fit( xData, yData, ft, opts ); % Plot fit with data. figure( \'Name\', \'fit\' ); h = plot( fitresult, xData, yData ); h(1).Marker = \'o\'; h(2).LineWidth = 3; legend( h, \'E vs. r\', \'fit\', \'Location\', \'NorthEast\', \'Interpreter\', \'none\' ); % Label axes xlabel( \'r\', \'Interpreter\', \'none\' ); ylabel( \'E\', \'Interpreter\', \'none\' ); grid on end
-
运行结果
-
拟合结果良好,可以预期在 \(k_1\)、\(k_2\) 取不同值的时候也可以得到类似的效果。
-
3.7 冰山运输
- 当难以进行详细的机理分析时,只能凭借经验来给出关系式,然后利用已知的数据来确定参数。
3.9 易拉罐形状和尺寸的最优设计
-
圆柱模型 -> 圆台模型 -> 圆球模型
-
拉格朗日乘子法解决有约束的最优化问题
-
解析求解
- Maple -> Method of Lagrange Multipliers
- 第一栏:目标函数
- 第二栏:约束条件表达式
- 所有条件式默认为等于 \(0\)。多个条件式需要组成列表,即使用
[]
- 所有条件式默认为等于 \(0\)。多个条件式需要组成列表,即使用
- 第三栏:独立变量
- 注意点
- 尽量将每个式子化简后再输入,不然可能无法求解
- Maple -> Method of Lagrange Multipliers
-
数值求解
-
过于复杂的式子可能会提示—— unable to find a solution
-
MATLAB -> Optimization Tool -> Solve a Constrained Nonlinear Problem, Problem-Based
-
代码
% set parameters b = 0.103; k = 0.300/b; k1 = 0.306/b; V0 = 364.8 * 1000; % Create variables r = optimvar(\'r\',1,2,"LowerBound",[0,20]); %set the LowerBound, or the solution cannot be found h = optimvar(\'h\',1,2,"LowerBound",0); % Create the objective function SV2 = @(r,h) 2*pi*r(1)*h(1)*b + pi*r(1)^2*k*b + pi*r(2)^2*k1*b + ... pi*sqrt((r(1)-r(2))^2 + h(2)^2) * (r(1)+r(2))*b; % convert the function(including sqrt) into optimization expression obj = fcn2optimexpr(SV2, r, h); % Create an optimization problem named prob having obj as the objective function. prob = optimproblem(\'Objective\',obj); % Create the nonlinear constraint as a polynomial in the optimization variable. nlcons = pi*r(1)^2*h(1) + pi*h(2)*(r(1)^2+r(2)^2+r(1)*r(2))/3 == V0; % Include the nonlinear constraint in the problem. prob.Constraints.VolumnCons = nlcons; % Review the problem. show(prob) %solve the problem with initialization x0.r = [0 20]; x0.h = [0 0]; % increase the limit of evaluation times. options = optimoptions(\'fmincon\',"MaxFunctionEvaluations",4000); [sol,fval,exitflag,output] = solve(prob,x0,\'Options\',options)
-
-