数学建模社区-数学中国
标题:
数学建模(一)对变化进行建模及其解
[打印本页]
作者:
杨利霞
时间:
2021-7-9 17:04
标题:
数学建模(一)对变化进行建模及其解
& `( i" M3 p( r, ? t, Q
数学建模(一)对变化进行建模及其解
7 ^9 d, [! W$ q; E
1.1用差分方程对变化进行建模
9 D, ^0 p3 M! [0 ]# J# X
人们常常用数学(使用函数或方程)来描述世界中的某种现象:数学模型,就是对现实世界现象的理想化,但从不是完全精确的表示,任何数学模型都有其局限性,模型没有最好只有最适合,适合的模型可以提供有价值的结论和结果,本次学习内容将主要为:对变化进行建模。
. J b- [! W# r5 Z( E% Z
数学模型:人们在对对象进行建模时,常常是为了预测未来某个时刻变量的值,例如模型的对象可能是人口、房价、传染病人数等,数学模型常常能帮助人们更好地了解对象地变化趋势以及内在属性,对于未来地分析与应对具有更好地辅助性。
1 Q# b, p8 @- V* l$ K; Q
6 k( C, D$ m: w3 k- U9 d; ~0 H* B( M
4 t2 J" E' f9 U; p9 o+ _% B! [0 c
对变化进行建模:
) i0 s9 Y; i' t6 n
未来值=现在值+变化;
' u1 w* u: \3 f# T$ W& A$ n+ m2 N v
变化=未来值-变化;
3 v2 s3 Q- s1 s% S l; a
因此我们想要预测未来值就需要先研究变化。通过一段时间中实际问题所产生的数据,将该数据画成图形,通过对图形的研究,我们常常可以识别出能够抓住这种变化趋势的模式。如果这中行为是在离散时间段上发生的,那么就主要采用差分方程的方法进行建模;若该行为是在连续时间上发生的,就可以采用微分方程进行建模。
1 k9 ?% Y9 g3 _$ F% ~
9 D8 Z' N& t3 Q
' e) z0 }5 r7 H1 k0 p1 g
1.1用差分方程对变化进行建模
! V# C6 U/ f, e, y
在本节中主要通过差分方程方法以了解变化发生的原因和形式,分析不同的条件对行为的影响并且去预测未来值。
" G* s0 J+ A4 Q% o! |! V+ w
定义:
; x* g% H0 t3 }1 [1 m
^+ n) B; j/ Y; _* ]
s9 A# S4 R+ S- |
例1:储蓄存款类问题
' q1 c" L. t+ R+ d& w3 ?# ^! E" \
假设本金为1000元的储蓄存单在月利率1%的条件下进行增值,下面的数值表示在该利率下每月的价值:
+ j- U& j j" p. c" ] r) X
A={1000,1010,1020.10,1030.30,}其一阶差分为:
" N: Y0 ^, }2 T
+ L" p0 ^2 B& e' |
/ ~* f: p% u9 R% c0 }
注:一阶差分表示在一个时间周期里数列的变化,在该例子中表示的就是所得利息。在对发生在离散时间段上的变化的建模是有很大帮助的,在此例子中,从本月到下一个月变化的仅仅是所得的利息,如果n是月数而an是n个月后存储的总价值,那么每个月价值的变化由第n个分差:
. z1 o1 P( m8 \( v* |
q, M/ D4 u3 E, k& r7 m" R* q
# {4 g+ V6 f# o
这其中an是n个月后利息累计总值,上述方程可以表示为无穷个代数方程,称为动力系统*,动力系统可以描述从一个周期到下一个周期的变化,如果已知该序列中的某一项,就可以通过差分方程算出下一项。
3 M6 y9 O1 V) V+ m2 b
如果再对该例子进行变化,在上述例子中,如果每月从账户中提取50元,那么一个周期里的变化就应该是该周期里利息减去存款:
+ b9 P$ c, M8 |% y( r
6 n( R# W% W; I5 y! ?9 Z9 H& J
5 M5 ]3 I+ s# Z
在大多数例子中,用这种数学方式描述变化不会像这种例子一样准确,常常需要画出变化,观察模式,然后用数学术语来描述变化:变化=Δan=某个函数f;或者是变化=Δan=an+1-an=f;用这种方式进行变化建模,就需要决定或者近似决定表示该变化的函数f。
# j7 k- [+ l5 p- s2 f
举例:抵押贷款
5 {' p$ |" @0 C
小明贷款80000以月利率1%,每月还款880.87元共还20年的方式买了一套房,已经还了72个月,问还欠多少贷款?
0 T) Z; c3 q) r! S# ~
解:分析欠款随着利息而增加而又随着每月还款而减少,所以可以给出下列动力系统模型:
) e W J6 D) z2 G
设b(n)为n个月后的欠款总额。则有;
2 x0 L \/ D+ ~! ?! _3 w
b(n+1)=b(n)+0.01b(n)-880.87,b(0)=80000;
6 X2 V# e( q; y2 V! l
所以b(1)=80000+0.0180000-880.87=79919.13;
( C" G- S n/ A% L* t
所以b(2)=79919.13+0.0179919.13-880.87=79837.45;
* P6 { `7 D0 b U# M8 l, n
从而得到b(72)=71523.11元,所以还了72个月之后还需要还款71523.11元。
) {* h/ y4 y# A: t( J& g) V
总结:
8 w; i8 o' E2 m% o2 |
序列:定义域为全体非负整数集合上的一个函数,其值域为实数的一个子集;
6 t$ f& M! B' p/ x
动力系统:序列各项之间的一种关系;
. S. H3 k8 d# V9 Y+ z
数值解:满足该动力系统的一张数值表。
7 v2 U: Q5 O+ z$ k5 `
7 v* u- j9 q6 M
* U. Z/ v8 @* b4 h
1.2用差分方程近似描述变化
; N; h+ ?& O% g. F2 i% D. J
在我们构建变化模型时,需要区别出这些变化是在离散时间(例如存款利息)上发生的还是在连续时间(物品温度变化)上发生的。
, V) D# s% s; W! g: T
差分方程:表示在离散时间区间的变化,下面将考察自离散时间区间上的数据近似描述连续变化。
1 L M% k) Q$ i0 v9 s
例题1:酵母菌培养物的增长,下图的数据表示的是在一个受限制的区域内,随时间增长而发生的酵母菌培养的数量变化:
2 Z# Z) ?; B" I0 g L" a
- C' A: s3 F" c4 S/ B5 t \
. B- s6 r$ @5 J
从图中可以发现起初酵母菌的增长方式很快,但到达该容器的极限时,就增长很慢了,所以可以假设该容器内的容量为665,该值并不是一个准确值只是在该值附近,变化几乎不变了。通过分析我们可以用以下数学模型:
- |# H+ m& t/ I r
△P(n)=P(n+1)-P(n)=k(665-P(n))*P(n):
! ^2 N5 o( |7 O, g3 I- b
因此我们可以以P(n+1)-P(n)为因变量,以(665-P(n))*P(n)为自变量构成一个线性函数:
. `' P% H- T+ H) w0 L' Y
2 x M, f/ H' @6 i" o2 `! E
8 Y) w6 l; Z6 B8 t; r- m
可以求出k=0.00082,所以可以得到动力系统方程:P(n+1)-P(n)=0.00082(665-P(n))*P(n),这是二次非线性的模型。
: R' H8 g1 {# l1 \5 f- W* k
0 ] Y0 H# j' }5 R& U3 ~
" J4 p' ?% g+ d
1.3动力系统的解法
$ Z: P; P6 L7 H4 I; Y
建立某些动力系统解法,从一个初值开始,并对后面的值迭代充分多次,以确定相关模式,动力系统预测的行为是由该系统的数学结构表征的,有时行为极大的变化只是由于动力系统很小的初值引起的,同时还要考虑很小的比例常数变化会造成极大的预测值的变动。
2 w3 F. J$ @( n- ]) r
方法:猜测法:
1 N. K" V7 g8 p7 h' `
步骤:
3 x# z ?4 A6 \0 q
1.观察模式:
2 A3 @) f. R" k( R1 o# |) @
2.猜测动力系统解的形式:
/ C' H" u& e' s6 F* j7 z" C
3.用代入法测试该猜测:
. j8 q C! X: I5 h
4.接收或者拒绝该猜测取决于在代入和代数运算后结果是否满足该动力系统。
: ~6 q( n3 K P9 o; I+ z( u
例如1: 有一款存单,开始存有1000元,然后按每月利率1%给利息,不再存取钱:
( ?/ c: {3 i4 i6 t: |4 W
解;可以给出如下动力方程:b(n+1)=b(n)+0.01b(n),也就是b(n+1)=1.01b(n),从而b(n)=1.01(k)1000;
" o; O' c7 ~/ T8 `
例如2: 污水处理中,每小时去除掉剩余污水的12%的污水,问多长时间可以把污水量减少一半?
" p; f, I! V+ c: k: O
解:可以给出如下动力方城:b(n+1)=b(n)-0.12b(n)=0.88b(n),所以b(n)=0.88(k)b(0),所以0.5b(0)=0.88(k)b(0);
; d- `- y) Q: _& w
所以0.88(k)=0.5,所以用k=ln(0.5)/ln(0.88),所以k=5.42;
0 O5 R; k* Y- @' } N0 ?9 W
总结:
& S! d1 j! P" O% D! Y _0 H
以上两种例题都是可以写成:**b(n+1)=rb(n)**的形式,对于不同的r将会有不同的变化趋势:
' p% X2 F4 T# t% v4 |& r8 ^
同时还有另一种形式:**b(n+1)=rb(n)+b**,其中r和b为常数;
1 X q% W2 c4 j* m, ^- `
定义:对于b(0)=d,任意k=a,a+1,有b(k)=c,则称c为在初始情景b(0)=d下的平衡点。
9 D z" Y4 e5 I1 I( p M" S* h
**例如3:**当初始存入多少金额时,按照每月1%的利率同时每月取1000元可以使得初始金额不减少。
# U+ K4 `& y" n, o
**解:**可以列出如下差分方程:b(n+1)=1.01b(n)-1000;可以算出当b(0)=100000时,金额不会减少。
3 b' \% O4 L `3 c# c: n; s( A
求平衡点并对其进行分类:
$ Y( f2 r4 s# m& R" G( q5 o
对于b(n+1)=rb(n)+b,当其存在平衡点时,会存在如下关系:b(n)=rb(n)+b,则有:b(n)=b/(1-r),(r不为1和0,r和b为常数);
: P! I4 k$ Q/ ^6 \& {8 n# [* s
定义:对于动力方程:b(n)=r*b(n)+b,其平衡点为:b(n)=b/(1-r),如果r=1而b=0,则每个点都是平衡点,若r=1,b不为0则不存在平衡点。当|r|<1,时有稳定的平衡点,当|r|>1时有不稳定平衡点,当r=1时,没有平衡点,是一条直线。
9 z9 D' Z" N8 r6 C6 C
同时对于上述解我们可以发现结果为:b(n)=r(k)*c+b/(1-r),其中c为初始值,b/(1-r)为平衡值。
+ H8 C; F3 K; P
**例如4:**对于例3问题中,问初始存多少钱,可以在20年后刚好用完?
' d2 b- y0 }4 k: s7 ?
解:b(240)=1.01(240)c+100000=0,可以得到c=90819.42.所以如果初始存90819.42,那么在20年后能刚好取完。
$ F7 _ @1 R6 V) R2 p" L7 `% @" K$ ~
1.4差分方程组
- t/ e8 J& C- z( p7 ]$ T
上面一节中,平衡点时因变量的一种取值,一旦达到了平衡点,系统就不会再发生变化,而本节则是先求出平衡点,然后对平衡点附近的起始值进行探究,从一个靠近平衡点的初始值开始,变化并观察其:
: i$ W8 m2 _6 \7 d
1.系统是否仍然靠近该平衡点;
C& ~: O$ o/ a% z
2.趋近该平衡点;
% U" a( d4 H+ C" ?7 u9 C" v4 A
3.不再靠近平衡点;
( ^( T* W/ L7 V; [- M4 M
从而探究其是否有周期性的行为或者振荡行为;或者动力系统对于初始条件或者比例常数的微小变化敏感吗?
' z. G' {7 M+ y4 b$ A) i
例如5:一家汽车租赁公司在A与B设立了两个公司,都可以租还车,从A地开车可以到B地还,也可以从B地开车在A地还,公司需要知道应该在两地各投放多少辆车,可以很好的满足使用。已知每天在A地租的车有60%还到A地,有40%还到B地,而在B地租的车有70%还到了B地,30%还到了A地。
" i) V4 K- B1 F% z; V- \
- X' q- @- U/ u; J; w' l3 Y
2 ~4 I& `* |9 W
若初始投入车辆不是3000和4000,但是总数仍然是7000,则有:
+ S% C$ Z) Y/ K$ F) {! K8 X
3 i/ u8 E6 M1 _2 r0 a: g! l/ \
. y8 Q3 U& h" `* ^4 B8 v
可以发现一周内都是会区域平衡点,说明平衡点时稳定的而且对初始值是不敏感的,所以我们可以较为确定的倾向于总数3/7的车放在A地,总数4/7的车放在B地。
+ |1 k8 g q# P5 e. N* d U. `
例如6:
# L5 K) T% X+ M3 u/ g
竞争猎兽模型: 斑点猫头鹰和隼,这两个种群在没有其他种群存在时,每个都可以单独的无限增长,但是如果将二者放在一个区间内,则二者将会存在竞争关系,其增长率会发生变化,假设这种增长率的减少和两个种群之间的相互之间的关系成正比。
% S' v, r: k& V9 J) x, k4 F) h
$ s# P, K% A% J. s# E
# ]" z, \/ C7 x% Q
( Q5 P4 k7 F* p. ?) r4 q8 x8 @' }
* u. R$ S4 |1 x, B/ T4 N
对初始条件的敏感性和长期行为:可以发现当(150,200)时不改变,但是当在该平衡点附近时,都将会有一种将灭绝,也就是该模型对初始条件是及其敏感的。
# I4 i8 |+ N) A; v8 I
例如7:
6 N5 Y6 } A7 e0 H6 W" R$ B. U$ g0 n
离散流行病模型:
9 g. B q; g4 q% l
考虑一种流行病毒会在人群中传染,我们把人群分为三种:易感染者、已感染者、移除者,同时考虑一下前提条件:
8 t$ M* h H( T& {' A' x |
1.每个人都是易感染者S(都能感染这种流感),已感染者I(当前已经感染这种疾病、并且具有传播性),移除者R(得过这种病毒已经不会再感染的人)
8 z+ e) f/ p1 K- W0 C3 T; |. Y
2.一开始,每个人都是S或者I;
6 a4 h! s- S8 u6 R1 ^0 o
3.这种流感的持续时间为(1+2/3)周,在这期间是容易传染的;
c4 X/ W' x2 ^ A; D: |+ P
4.该模型按照时间周期周记;
& H1 B" ?2 q/ } y$ i/ U
# S- O( | y/ t( v" a/ N
1 n) `2 s' n: _. ]
. G. h: j+ A" }8 G0 ?
4 n! E! l! H9 V. v
————————————————
' H2 f Q' _" Z) @6 C4 L5 k
版权声明:本文为CSDN博主「两个鼻孔的猪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
# z8 p; ^2 v2 R# n# O3 n* o9 \
原文链接:https://blog.csdn.net/DOUBLE121PIG/article/details/93375834
2 \6 \" B( C5 h" F4 @
% E+ C7 w( J+ B8 \. C3 m
" B$ b( E: I6 C' c+ R
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5