读书笔记——姜启源《数学模型》

时间:2024-02-20 21:35:26

第 1 章 建立数学模型

本章作为全书的导言和数学模型的概述,主要讨论建立数学模型的意义、方法和步骤,给读者以建立数学模型的全面的、初步的了解.

1.1 从现实对象到数学模型

原型和模型

  • 原型(Prototype)和模型(Model)是一对对偶体.
  • 原型指人们在现实世界里关心、研究或者从事生产、管理的实际对象.
    • 本书所述的现实对象、研究对象、实际问题等均指原型.
  • 模型则指为了某个特定目的将原型的某一部分信息简缩、提炼而构造的原型替代物.
    • 构造模型具有强目的性
  • 模型具有多种类别
    • 形象模型
      • 直观模型
      • 物理模型
    • 抽象模型
      • 思维模型
      • 符号模型
        • 数学模型

数学模型

一般地说,数学模型可以描述为,对于现实世界的一个特定对象,为了一个特定目的,根据特有的内在规律,做出一些必要的简化假设,运用适当的数学工具,得到的一个数学结构.

  • 建立数学模型的基本步骤
    • 根据建立数学模型的目的和问题的背景作出必要的简化假设
    • 用字母表示待求的未知量
    • 利用相应的物理或其它规律,列出数学式子
    • 求出数学上的解答
    • 用这个答案解释原问题
    • 最后还要用实际现象来验证上述结果

1.2 数学建模的重要意义

1.6 数学建模的基本方法和步骤

下面所谓基本方法不是针对具体问题,而是从方法论的意义上讲的!

建模的基本方法

  • 机理分析
    • 已掌握一定的内部机理
    • 模型要求反映内在特征的物理意义
  • 测试分析
    • 内部规律基本不清楚
    • 模型也不要求反应内部特性
      • 如对输出作预报
  • 二者结合
    • 使用机理分析建模,使用测试分析确定参数

数学建模的一般步骤

image-20200720145418516

  • 模型准备

    • 形成一个比较清晰的问题
      • 了解实际背景
      • 明确建模目的
      • 搜集必要的信息,如现象、数据等
    • 初步确定模型类型
    • 要点
      • 深入调查研究
      • 实事求是,向实际工作者请教
  • 模型假设

    • 抓住问题本质,忽略次要因素
      • 对问题内在规律的认识
      • 对现象、数据的分析
  • 模型构成

    • 建立包含常量、变量等的数学模型
      • 使用类比法,借用已有的模型
      • 需要广泛的应用数学知识
    • 尽量使用简单的模型
  • 模型求解

    • 优先使用数学软件和计算机技术
  • 模型分析

    • 误差分析、统计分析、模型对数据的灵敏性分析、对假设的健壮性分析
  • 模型检验

    • 将结果翻译回实际问题,与实际现象、数据进行比较,检验模型的合理性和适用性
    • 若不符,则应该修改、补充假设
  • 模型应用

数学建模的全过程

image-20200720151500008

1.7 数学模型的特点和分类

数学模型的特点

  • 模型的逼真性和可行性
    • 建模时往往需要在模型的逼真性与可行性,“费用”与“效益”之间作出折衷和抉择!
  • 模型的渐进性
    • 稍微复杂一点的实际问题通常都不可能一次性成功,要经过建模过程的反复迭代
      • 由简到繁
      • 删繁就简
  • 模型的强健性
    • 一个好的模型应该具有下述意义的强健性
      1. 当模型假设改变时,可以导出模型结构的相应变化
      2. 当观测数据有微小改变时,模型参数也只有相应的微小变化
    • 原因:模型的结构和参数常常是由模型假设对象的信息如观测数据确定的,而假设不可能太准确,观测数据也是允许有误差的
  • 模型的可转移性
    • 模型是现实对象抽象化、理想化的产物,它不为对象的所属领域所独有
  • 模型的非预制性
    • 建模本身常常是事先没有答案的问题(open-end problem)
  • 模型的条理性
    • 从建模的角度考虑问题可以促使人们对现实对象的分析更全面、更深入、更具条理性
  • 模型的技艺性
    • 经验、想像力、洞察力、判断力以及直觉、灵感等在建模过程中起的作用往往比一些具体的数学知识更大!
  • 模型的局限性
    1. 模型通常对现实问题做了简化,是相对理想化的
    2. 人类认识能力和科学技术的限制
    3. 某些问题还未发展到用建模方法寻求数量规律的阶段

数学模型的分类

  • 按照模型的应用领域
  • 按照建立模型的数学方法
  • 按照模型的表现特性
    • 确定型模型和随机性模型
    • 静态模型和动态模型
    • 线性模型和非线性模型
    • 离散模型和连续模型
  • 按照建模目的分
  • 按照对模型结构的了解程度
    • 白箱模型
    • 灰箱模型
    • 黑箱模型

1.8 数学建模能力的培养

类比方法和理想化方法是建模中常用的方法,它们的运用与想像力、洞察力有密切关系.

想像力指人们在原有知识的基础上,将新感知的形象与记忆中的形象相互比较、重新组合、加工处理,创造出新的形象,是一种形象思维活动.洞察力指人们在充分占有资料的基础上,经过初步分析能迅速抓住主要矛盾,舍弃次要因素,简化问题的层次,对可以用哪些方法解决面临的问题,以及不同方法的优劣作出判断.

培养方法

  1. 学习、分析、评价、改造别人作过的模型
  2. 亲自动手,踏实地做几个题目

习题

为了培养想像力、洞察力和判断力,考察对象时除了从正面分析外,还常常需要从侧面或反面思考.试尽可能迅速地回答下面的问题:


(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 也有一辆开往乙站的电车。从轴上任意一个点向右走,首先碰到的电车决定乘客最终达到哪个站。

    image-20200720164501590

  • 可以得到结论:两趟电车经过丙站的时间总是相隔 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分钟有两种理解,对应两个不同的答案:

  1. 比往常提前了10 min 接他上车,则他步行了 20 min
  2. 比往常提前了 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 公平的席位分配

  • 数学模型与现实模型交叉分析,互相推进
    • 通过现实模型来建立原始的数学式子,进而演算得到进一步的规律
    • 通过数学模型来抽象现实模型
  • 建立起基本的数学规律后,暂时抛开现实模型,进行数学演算
  • 回到现实模型

\[x+y=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. 确定优化目标、决策内容以及限制条件
    2. 使用数学工具来表达第 1 步中的信息。在过程中要进行必要的简化
    3. 用微分法求解
    4. 对最终结果进行一些定性、定量的分析和必要的检验

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
      
      
    • 运行结果

      image-20200730144808224

    • 拟合结果良好,可以预期在 \(k_1\)\(k_2\) 取不同值的时候也可以得到类似的效果。

3.7 冰山运输

  • 当难以进行详细的机理分析时,只能凭借经验来给出关系式,然后利用已知的数据来确定参数。

3.9 易拉罐形状和尺寸的最优设计

  • 圆柱模型 -> 圆台模型 -> 圆球模型

  • 拉格朗日乘子法解决有约束的最优化问题

    • 解析求解

      • Maple -> Method of Lagrange Multipliers
        • 第一栏:目标函数
        • 第二栏:约束条件表达式
          • 所有条件式默认为等于 \(0\)。多个条件式需要组成列表,即使用 []
        • 第三栏:独立变量
      • 注意点
        • 尽量将每个式子化简后再输入,不然可能无法求解
    • 数值求解

      • 过于复杂的式子可能会提示—— 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)