数学模型的建立过程
数 学 模 型 方 法
函数关系可以说是一种变量相依关系的数学模型.数学模型方法是处理科学理论问题的一种经典方法,也是处理各类实际问题的一般方法.掌握数学模型方法是非常必要的.在此,对数学模型方法作一简述. 数学模型方法(Mathematical Modeling) 称为MM 方法.它是针对所考察的问题构造出相应的数学模型,通过对数学模型的研究,使问题得以解决的一种数学方法.
一、数学模型的含义
数学模型是针对于现实世界的某一特定对象,为了一个特定的目的,根据特有的内在规律,做出必要的简化和假设,运用适当的数学工具,采用形式化语言,概括或近似地表述出来的一种数学结构.它或者能解释特定对象的现实性态,或者能预测对象的未来状态,或者能提供处理对象的最优决策或控制.数学模型既源于现实又高于现实,不是实际原形,而是一种模拟,在数值上可以作为公式应用,可以推广到与原物相近的一类问题,可以作为某事物的数学语言,可译成算法语言,编写程序进入计算机.
二、数学模型的建立过程
建立一个实际问题的数学模型,需要一定的洞察力和想像力,筛选、抛弃次要因素,突出主要因素,做出适当的抽象和简化.全过程一般分为表述、求解、解释、验证几个阶段,并且通过这些阶段完成从现实对象到数学模型,再从数学模型到现实对象的循环.可用流程图表示如下:
表述 根据建立数学模型的目的和掌握的信息,将实际问题翻译成数学问题,用数学语言确切地表述出来.
这一个关键的过程,需要对实际问题进行分析,甚至要做调查研究,查找资料,对问题进行简化、假设、数学抽象,运用有关的数学概念、数学符号和数学表达式去表现客观对象及其关系.如果现有的数学工具不够用时,可根据实际情况,大胆创造新的数学概念和方法去表现模型.
求解 选择适当的方法,求得数学模型的解答.
解释 数学解答翻译回现实对象,给实际问题的解答.
验证 检验解答的正确性.
例如, 哥尼斯堡一条普雷格尔河,这条河有两个支流,在城中心汇合成大河,河中间有一小岛,河上有七座桥,如图1所示.18世纪哥尼斯堡的很多居民总想一次不重复地走过这七座桥,再回到出发点.可是试来试去总是办不到,于是有人写信给当时著名的数学家欧拉,欧拉于1736年,建立了一个数学模型解决了这个问题.他把A 、B 、C 、D 这四块陆地抽象为数学中的点,把七座桥抽象为七条线,如图2所示.
B
C
图1 图2
人们步行七桥问题,就相当于图2的一笔画问题,即能否将图2所示的图形不重复地一笔画出来,这样抽象并不改变问题的实质.
哥尼斯堡七桥问题是一个具体的实际问题,属于数学模型的现实原型.经过理想化抽象所得到的如图2所示的一笔画问题便是七桥问题的数学模型.在一笔画的模型里,只保留了桥与地点的连接方式,而其他一切属性则全部抛弃了.所以从总体上来说,数学模型只是近似地表现了现实原型中的某些属性,而就所要解决的实际问题而言,它是更深刻、更正确、更全面地反映了现实,也正由此,对一笔画问题经过一定的分析和逻辑推理,得到此问题无解的结论之后,可以返回到七桥问题,得出七桥问题的解答,不重复走过七座桥回到出发点是不可能的.
数学模型,从广义上讲,一切数学概念、数学理论体系、各种数学公式、各种方程式、各种函数关系,以及由公式系列构成的算法系统等等都可以叫做数学模型.从狭义上讲,只有那些反映特定问题或特定的具体事物系统的数学关系的结构,才叫做数学模型.在现代应用数学中, 数学模型都作狭义解释.而建立数学模型的目的,主要是为了解决具体的实际问题.
三、模型的建立
研究数学模型,建立数学模型,进而借鉴数学模型,对提高解决实际问题的能力,以及提高数学素养都是十分重要的.建立模型的步骤可分为:
(1) 分析问题中哪些是变量,哪些是常量,分别用字母表示;
(2) 根据所给条件,运用数学或物理知识,确定等量关系;
(3) 具体写出解析式y =f (x ) ,并指明定义域.
例 重力为P 的物体置于地平面上,设有一与水平方向成α角的拉力F ,使物体由静止
开始移动,求物体开始移动时拉力F 与角α之间的函数模型(图3).
解 由物理知,当水平拉力与摩擦力平衡时,物体开始移动,而摩擦力是与正压力P -F sin α成正比的(设摩擦系数为μ),
故有
F cos α=μ(P -F sin α) , 即 F =
建立函数模型是一个比较灵活的问题,
无定法可循,只有多做些练习才能逐步掌握. μP (0°
cos α+μsin α图3
四、数学建模方法
数学建模就是建立数学模型,建立数学模型的过程就是数学建模的过程(见数学建模过程流程图).数学建模是一种数学的思考方法,是运用数学的语言和方法,通过抽象、简化建立能近似刻画并解决实际问题的数学模型的一种强有力的数学手段.
常用的数学建模方法如下:
(一) 机理分析法 从基本理论以及系统的结构数据来推导出数学模型的方法
1. 比例分析法 —— 建立变量之间函数关系的最基本、最常用的方法.
2. 代数方法——求解离散问题(离散的数据、符号、图形)的主要方法.
3. 逻辑方法——是数学理论研究的重要方法,用以解决社会学和经济学等领域的实际问题,在决策论,对策论等学科中得到广泛应用.
4. 常微分方程——解决两个变量之间的变化规律,关键是建立“瞬时变化率”的表达式.
5. 偏微分方程——解决因变量与两个以上自变量之间的变化规律.
(二) 数据分析法 从大量的观测数据利用统计方法建立数学模型的方法
1. 回归分析法——用于对函数f (x ) 的一组观测值(x i , f (x i ))(i 1,2, n ) ,确定函数的表达式,由于处理的是静态的独立数据,故称为数理统计方法.
2. 时序分析法——处理的是动态的相关数据,又称为过程统计方法.
(三) 仿真和其他方法
1. 计算机仿真(模拟)——实质上是统计估计方法,等效于抽样试验.
① 离散系统仿真——有一组状态变量.
② 连续系统仿真——有解析表达式或系统结构图.
2. 因子试验法——在系统上作局部试验,再根据试验结果进行不断分析修改,求得所需的模型结构. 3. 人工现实法——基于对系统过去行为的了解和对未来希望达到的目标,并考虑到系统有关因素的可能变化,人为地组成一个系统.
五、几个数学模型
1. 如何预报人口的增长
人口的增长是当前世界上引起普遍关注的问题,我们经常在报刊上看见关于人口增长的预报,说到未来某个时期全世界(或某地区) 的人口将达到多少多少亿.你可能注意到不同报刊对同一时间人口的预报在数字上常有较大的差别,这显然是由于用了不同的人口模型计算的结果.
建立模型的目的: 在对出生和死亡的概率作出适当假设的基础上,寻求人口X (t ) 的变化规律,用它描述人口的发展状况.
先看一种最简单的计算方法.
要预报未来若干年的人口,最重要的影响因素自然是今年的人口和今后这些年的增长率(即人口出生率减去死亡率) ,根据这两个数据进行人口预报是十分容易的.
记今年人口为x 0,k 年后人口为x k ,年增长率为r ,则预报公式为
x k =x 0(1+r) k
显然,这个公式的基本前提是年增长率r 保持不变.这个条件在什么情况下才成立,如果不成立又该怎么办?
历史上,人口模型的发展过程回答了这个问题.
早在18世纪人们就开始进行人口预报工作了,一二百年来发展了许多模型,其中最简单的有两种.
2. 指数增长模型(马尔萨斯人口模型)
英国人口学家马尔萨斯(Malthus l766—1834) 根据百余年的人口统计资料,于1798年提出了著名的人口指数增长模型.
这个模型的基本假设是:人口的增长率是常数,或者说,单位时间内人口的增长量与当时的人口成正比. 记时刻t 的人口为x (t ) ,初始时刻(t =0) 的人口为x 0,人口增长率为r ,r 是单位时间内x x(t ) 的增量与x (t ) 的比例系数.根据r 是常数的基本假设,t 到t+Δt 时间内人口增量为
x (t+Δt ) -x (t ) = r x(t ) Δt
于是x (t ) 满足如下的微分方程
⎧dx ⎪dt =rx
⎪ ⎨⎪x (0) =x 0⎪⎩
由这个线性常系数微分方程容易解出
x (t ) =x 0e rt
表明人口将按指数规律无限增长(r >0) .
将t 以年为单位离散化,人口以e 为公比的等比数列增长.因为这时r 表示年增长率,通常r
x (t ) ≈x 0(1+r ) t
可见, 前面给出的预报公式不过是指数增长模型离散形式的近似表示.
由x (t ) =x 0e rt 给出的模型,与19世纪以前欧洲一些地区的人口统计数据可以很好地吻合.一些人口增长率长期稳定不变的国家和地区用这个模型进行预报,结果也令人满意.
但是当人们用19世纪以后许多国家的人口统计资料与指数增长模型比较时,却发现了相当大的差异.显然,用这个模型预报的结果远远超过了实际人口的增长.
引起误差的原因是10年增长率r 估计过高.
人们还发现,在地广人稀的加拿大领土上,法国移民后代的人口比较符合指数增长模型,而同一血统的法国本土居民人口的增长却远低于这个模型.
产生上述现象的主要原因是:
随着人口的增加,自然资源、环境条件等因素对人口继续增长的阻滞作用越来越显著.如果当人口较少时(相对于资源而言) 人口增长率还可以看作常数的话,那么当人口增加到一定数量后,增长率就会随着人口的继续增加而逐渐减少.许多国家人口增长的实际情况完全证实了这点.
看来为了使人口预报特别是长期预报更好地符合实际情况,必须修改指数增长模型关于人口增长率是常数这个基本假设了.
3. 阻滞增长模型(Logistic 模型)
将增长率r 表示为人口x (t ) 的函数r (t ) (即增长率相对于固定的人口数x 来说是常数) , 按照前面的分析r (x ) 应是x 的减函数.一个最简单的假定是设r (x ) 为x 的线性函数
r (x ) = r–sx , s >0,
这里r 相当于x=0时的增长率,称固有增长率. 它与指数模型中的增长率r 不同(虽然用了相同的符号) .显然对于任意的x >0,增长率r (x ) <r .
为了确定系数s ,引入自然资源和环境条件所能容纳的最大人口数量x m ,称最大人口容量.当x=xm 时增长率应为零,即r (x m ) =0,由此确定出s .
人口增长率函数r (x ) 可以表为
⎛x ⎫ r (x ) =r 1-⎪⎪⎝x m ⎭
其中r 、x m 是根据人口统计数据或经验确定的常数.因子 1-⎛
⎝x ⎫⎪体现了对人口增长的阻滞作用. ⎪x m ⎭
在此的假设下, 指数增长模型应修改为
⎧dx ⎛x ⎫ ⎪=r 1-x ⎪ ⎪dt ⎝x m ⎭⎪⎪ ⎨⎪x (0) =x 0⎪⎪⎩
称为阻滞增长模型.此非线性微分方程可用
分离变量法求解, 结果为
x (t ) =x m
⎛x ⎫1+ m -1⎪e -rt
⎝x ⎭
其阻滞增长模型x (t ) 的曲线如图
本世纪初人们曾用这个模型预报美国的人口.直到1930年计算结果都能与实际数据较好地吻合.后来的误差越来越大,一个明显的原因是到1960年美国的实际人口已经突破了用过去数据确定的最大人口容量x m .
由此看来,这个模型的缺点之一是x m 不易准确地得到.事实上,随着生产力的发展和人们认识能力的改变,x m 也是可以改变的.
4. 随机性人口模型
上面讨论的人口模型都是确定性的,已知初始人口并且给定了生育率、死亡率等数据后,可以确切地预测未来的人口.但是事实上,一个人的出生和死亡应该说是随机事件,无法准确预测.之所以能用确定性模
型描述人口的发展,是因为考察的是一个国家或地区的数量很大的人口,用对总数而言的平均生育率、死亡
率代替出生、死亡的概率,将人口作为连续变量处理.如果研究对象是一个自然村落或一个家族的人口,数量不大、需作为离散变量看待时,就要利用随机性人口模型来描述其变化过程了.
时刻t 的人口用随机变量X (t ) 表示,X (t ) 只取整数值.记P n (t ) 为X (t ) =n 的概率,n =0,1,2, „,下面要在对出生和死亡的概率作出适当假设的基础上,寻求P n (t ) 的变化规律,并由此得出人口X (t ) 的期望和方差,用它们在随机意义下描述人口的发展状况.
模型假设 若X (t ) =n ,对人口在t 到t +∆t 的出生和死亡作如下假设(∆t 很小) :
1.出生一人的概率与∆t 成正比,记作b n ∆t ;出生二人及二人以上的概率为o (∆t ) .
2.死亡一人的概率与∆t 成正比,记作d n ∆t ;死亡二人及二人以上的概率为o (∆t ) .
3.出生与死亡是相互独立的随机事件.
4.进一步设b n 和d n 均与n 成正比,记b n =λn ,d n =μn ,λ和μ分别是单位时间内n =1时一个人出生和死亡的概率.
建模与求解 为了得到P n (t ) 的方程,考察随机事件X (t +∆t ) =n .
根据假设1—3,与出生或死亡一人的概率相比、出生或死亡二人及二人以上的概率,出生一人且死亡一人的概率均可忽略.
这样,X (t +∆t ) =n 可以分解为仅仅三个互不相容的事件之和:
X (t ) =n -1 且∆t 内出生一人, 其概率为b n ∆t ;
X (t ) =n +1 且∆t 内死亡一人,其概率为d n ∆t ;
X (t ) =n 且∆t 内人口未变,其为
P {人口未变}=1-P{人口增加或减少1人}=1-b n ∆t -d n ∆t .
按照全概率公式有
P {时刻t +∆t 有n 个人}
=P {∆t 增加1人}P{时刻t 有n-1个人}
+P {∆t 减少1人}P{时刻t 有n+1个人}
+P {∆t 人口未变}P{时刻t 有n 个人}.
即
P n (t +∆t ) =P n -1(t ) b n -1∆t +P n +1(t ) d n ∆t +P n (t )(1-b n ∆t -d n ∆t ) (1)
即
P n (t +∆t ) -P n (t ) =P n -1(t ) b n -1+P n +1(t ) d n -(b n +d n ) P n (t ) ∆t
令∆t →0,可得关于P n (t ) 的微分方程:
dP n =b n -1P n -1(t ) +d n +1P n +1(t ) -(b n +d n ) P n (t ) (2) dt
特别地,在假设4(b n =λn ,d n =μn ) 下方程为
dP n =λ(n -1) P n -1(t ) +μ(n +1) P n +1(t ) -(λ+μ) nP n (t ) (3) dt
若初始时刻(t =0) 人口为确定数量n 0,则P n (t ) 的初始条件为
n =n 0 , ⎧1, (4) P n (0) =⎨0, n ≠n . 0⎩
(3)式对于不同的n 是一组递推方程,在条件(4)下的求解过程非常复杂,并且没有简单的结果.幸而,通常人们对(3)式的解P n (t ) 并不关心,感兴趣的只是X (t ) 的期望E {X (t )}.
以下简记
期望E (t ) =E {X (t )}, E (0) =n 0,
方差D (t ) =D {X (t )}. D (0) =0.
而它们可以由(3)、(4)直接得到,因为按照定义,
E (t ) =∑nP n (t ) (5)
n =1∞
对(5)求导并将(3)代人得
∞∞∞dE =λ∑n (n -1) P n -1(t ) +μ∑n (n +1) P n +1(t ) -(λ+μ) ∑n 2P n (t ) (6) dt n =1n =1n =1
注意到
∑n (n -1) P
n =1
∞
n =1∞n -1(t ) =∑k (k +1) P k (t ) =∑n (n +1) P n (t ) k =1∞n =1∞∞∞∑n (n +1) P
代入(6)式 n +1(t ) =∑k (k -1) P k (t ) =∑n (n -1) P n (t ) k =1n =1
∞∞∞∞dE 2=λ∑n (n +1) P n (t ) +μ∑n (n -1) P n (t ) -(λ+μ) ∑n P n (t ) =(λ-μ) ∑nP n (t ) dt n =1n =1n =1n =1
利用(5)式,则有
∞dE =(λ-μ) ∑nP n (t ) =(λ-μ) E (t ) (7) dt n =1
由于
E (0) =n 0 (8)
显然,方程(7)在(8)下的解为
E (t ) =n 0e (λ-μ) t =n 0e rt , r =λ-μ. (9)
这个结果与1.4节(3)式表示的指数模型
x (t ) =x 0e rt (10)
形式上完全一致.
从含义上看,随机性模型(9)中出生概率λ与死亡概率μ之差r 可称为净增长概率, 人口的期望值E (t ) 呈指数增长.
在人口数量很多的情况下如果将r 视为平均意义上的净增长率,那么E (t ) 就可以看成确定性模型(10)中的人口总数x (t ) 了。
对于方差D (t ) ,按照定义
D (t ) =∑n 2P n (t ) -E 2(t ) =G (t ) -E 2(t ) (11)
n =1∞
其中G (t ) =2n ∑P n (t ) ,显然G (0) =n 02. n =1∞
由于
有 dP n =λ(n -1) P n -1(t ) +μ(n +1) P n +1(t ) -(λ+μ) nP n (t ) , dt
∞∞∞dG 22=λ∑n (n -1) P n -1(t ) +μ∑n (n +1) P n +1(t ) -(λ+μ) ∑n 3P n (t ) dt n =1n =1n =1
注意到
∑n (n -1) P 2
n =1
∞2
n =1∞n -1(t ) =∑k (k +1) P k (t ) =∑n (n +1) 2P n (t ) 2k =1∞n =1∞2∞∞2n (n +1) P (t ) =k (k -1) P (t ) =n (n -1) P n (t ) ∑∑∑n +1k k =1n =1
从而
∞∞∞dG 22=λ∑n (n +1) P n (t ) +μ∑n (n -1) P n (t ) -(λ+μ) ∑n 3P n (t ) dt n =1n =1n =1
∞∞
=2(λ-μ) ∑n P n (t ) +(λ+μ) ∑nP n (t ) =2(λ-μ) G (t ) +(λ+μ) E (t ) 2
n =1n =1
那么
dG -2(λ-μ) G (t ) =(λ+μ) E (t ) . dt
解上方程
⎰[-2(λ-μ) ]dt =-2(λ-μ) t ,
=⎰(λ+μ) E (t ) e ⎰[-2(λ-μ)]dt =(λ+μ) n 0⎰e (λ-μ) t e -2(λ-μ) t dt
=n 0(λ+μ) ⎰e -(λ-μ) t dt =-n 0
方程的通解为 λ+μ-(λ-μ) t e λ-μ
-⎰[-2(λ-μ)]dt ⎛⎫2(λ-μ)]t ⎛⎫λ+μ-(λ-μ) t λ+μ-(λ-μ) t ⎪ ⎪G (t ) =e -n e +C =e -n e +C 0λ-μ⎪ 0λ-μ⎪ ⎝⎭⎝⎭
=-n 0
2λ+μ(λ-μ) t e +Ce 2(λ-μ)]t λ-μ由于G (0) =n 0,有 n 0=-n 0
从而 2λ+μλ+μ2+C => C =n 0+n 0 λ-μλ-μ
D (t ) =G (t ) -E 2(t ) =-n 0λ+μ-(λ-μ) t 22(λ-μ) t e +Ce 2(λ-μ) t -n 0e λ-μ
=-n 0
所以 λ+μ-(λ-μ) t λ+μ2(λ-μ) t e +n 0e λ-μλ-μ
λ+μ(λ-μ) t (λ-μ) t e [e -1] (12) λ-μD (t ) =n 0
D (t ) 的大小表示了人口X (t ) 在期望值E (t ) 附近的波动范围.(12)式说明这个范围不仅随着时间的延续和净增长概率r =λ-μ的增加而变大,而且即使当r 不变时,它也随着λ和μ的上升而增长.这就是说,当出生和死亡频繁出现时,人口波动范围变大。
5. 报童的诀窍
报童每天清晨从报社购进报纸零售,晚上将没有卖掉的报纸退回.报童每天如果购进的报纸太少,不够卖会少赚钱;如果购进太多,卖不完要赔钱.
建立模型的目的: 为报童筹划一下,他应如何确定每天购进报纸的数量,以获得最大的收入.
模型假设
1. 零售价为a ,购进价为b ,退回价为c ,a >b >c ;
即:售出一份报纸赚a-b ,退回一份赔b-c .
2. 每天报纸的需求量是随机变量,且R =r 的概率是
P {R =r }=f(r) (r=0,1,2,„„) .
将R 视为连续变量更便于分析和计算,这时
概率f(r)转化为概率密度函数p(r).
3. 报童每天购进n 份报纸时的收人为W ,
4. 报童每天购进n 份报纸时的平均收人为G(n),
建模与求解 根据假设条件知
⎧(a -b ) R -(b -c )(n -R ) , 0≤R
那么
G (n ) =EW =⎰[(a -b ) r -(b -c )(n -r )]p (r ) dr +⎰(a -b ) np (r ) dr (2) 0n n +∞
=⎰[(a -b ) r +(b -c ) r ]p (r ) dr -n ⎰(b -c ) p (r ) dr +n ⎰(a -b ) p (r ) dr 00n n n +∞
问题归结为:求n 使G(n)最大.
计算
n +∞dG =(a -c ) np (n ) -⎰(b -c ) p (r ) dr -(b -c ) np (r ) -(a -b ) np (n ) +⎰(a -b ) p (r ) dr 0n dn
=-(b -c ) ⎰p (r ) dr +(a -b ) ⎰0n +∞n p (r ) dr 令dG =0, 得到 dn
⎰
⎰n n 0+∞p (r ) dr p (r ) dr =a -b (3) b -c
因为⎰n
0p (r ) dr +⎰+∞n
n p (r ) dr =⎰+∞0p (r ) dr =1,所以(3)式又可化表为 n
0(b -c ) ⎰p (r ) dr =(a -b )[1-⎰p (r ) dr ] 0
(b -c ) ⎰p (r ) dr +(a -b ) ⎰p (r ) dr =a -b 00n n
得
⎰n
0p (r ) dr =a -b (4) a -c
使报童日平均收入达到最大的购进量n 应满足(4)式.
根据需求量的概率密度p(r)的图形很容易从(3)式确定购进量n 。
在下图中用p 1、p 2分别表示曲线p(r)下的两块面积,
则(3)式可记作
P a -b 1 (5) =P 2b -c
因为当购进n 份报纸时,
n P 1=⎰p (r ) dr 是需求量r 不超过n 的概率,即卖不完的概率; 0
P 2=⎰
所以(3)式 +∞n p (r ) dr 是需求量r 超过n 的概率,即卖完的概率.
⎰
⎰n n 0+∞p (r ) dr p (r ) dr =a -b b -c
表明: 购进的份数n 应该使卖不完与卖完的概率之比,恰好等于卖出一份赚的钱a-b 与退回一份赔的钱b-c 之比.
显然,当报童与报社签订的合同使报童每份赚钱与赔钱之比越大时,报童购进的份数就应该越多.
例 零售价为0.50,购进价为0.30,退回价为0.10.
那么
a -b 0. 50-0. 30==0. 5 a -c 0. 50-0. 10
若R 服从参数300的泊松分布,即R ~P (300) ,
报童每天购进n 份报纸,有
n n n a -b 300k
-3000. 5==p (r ) dr =∑p k =∑e , a -c ⎰0k ! k =0k =0
计算后知, 每天购进n=300份, 获得的收入最大. n:=200;
sum('300**k*exp(-300)/k!','k'=0..n);
evalf(");