欢迎使用CSDN-markdown编辑器

来源:互联网 发布:为什么dota2知乎 编辑:程序博客网 时间:2024/05/18 03:00

数学模型和决策

一、 前言

数学离我们并不遥远, 数学要解决的就是我们生活中会碰到的各种问题, 我们可以用数学 去描述实际碰到的问题, 然后从计算中厘清一些事物间的关系, 并做出预测, 虽然模型并不能完 全代表真实的情况, 但是只要这个模型包含了那些最具影响力的主导向, 我们就可以从计算中 去预测和掌握趋势, 填补了用感觉和经验来做预测的一些缺点和不足, 至少有数学当基础的决 策会让人增添许多信心, 最近常常听到警察和抗议民众发生冲突, 让人开始对两个族群战争的 数学模型感到兴趣, 在此尝试了一些计算来描述和解释。

二、 内容

dxdt = x(a - by)
dydt = -y(c - dx)

这类型的方程, 最早由美国统计学家 Alfred James Lotka 和意大利数学家 Vito Volterra 独立发表, 用来描述掠食者与猎物之间数量随时间变化的关系, 而本文则是用来描述两个族群生 长和战争的模型, 所讨论的对象有不同的角色关系。
考虑两个族群, 假设其族群内的个体数不增加, 而且两个族群发生战争, 造成双方个体的 数量下降, 我们将使用以下的模型来进行仿真。

dAdt = -k1AB
dBdt = -k2AB

其中 A, B 代表两个种族个别的个体数量

A(0) = A0>0,B(0)=B0>0,k1,k2> 0

为什么这个方程式要这么列呢 ? 先想想看譬如有 10 个种族 A 的个体和 10 个种族 B 的个体, 一单位时间内平均相遇 3 次, 只要种族 A 和种族 B 的单一个体相遇, 就算一次, 那么如 果种族 A 的个体数变成 30 个, 种族 B 的个体数维持不变, 是不是一单位时间内平均相遇次 数就会变成 9 次, 此时如果种族 B 的个体数变成 20 个, 那么一单位时间内平均相遇次数就会 变成 18 次, 也就是说, 一单位时间内平均相遇次数正比于族群 A 和族群 B 的个体数, 我们不 仿假定一单位时间内平均相遇次数为 kAB, 又假设在一次相遇中族群 A 的个体死亡的机率为 PA, 族群 B 的个体死亡的机率为 PB , 那么 PAkAB 和 PBkAB 就可以分别代表族群 A 和 族群 B 一单位时间内平均死亡的个体数, 我们令 PAk = k1, PBk = k2, 就可以列出如下的方程序

dAdt = -k1AB
dBdt = -k2AB

接下来我们把 A 和 B 解出来:

dAdB=k1k2k2dA=k1dBk2A+C1=k1B

将 (2) 式带回 (1) 式中, 得:

dAdt=A(k1A+C1)dAA(k2A+C1)=1dt

(k2k2Ak2k2A+C1)dAC1=t+C2

Ln(k2A)Ln(k2A+C1)=C1t+C1C2

1+C1k2A=eC1tC1C2

A=C1k2(eC1tC1C21)将 A 代回 (2) 式中可得

B(t)=C1eC1tC1C2k1(eC1tC1C21)

由初始条件可得
C1=k1B0k2A0.C2=Ln(k2A0k1B0)k1B0k2A0

其中这个 C1 在这个战争中具有特别的意义,

C1>0,t,A(t)0,B(t)B0k2k1A0

C1>0,t,A(t)A0k1k2B0,B(t)0

C1>0BA,

C1>0AB,

C1AB,

C1=k1B0k2A0,

A0B0AB,

k1=PAk,k2=PBk,

PAA,BPBB,A

k1=PAk,k2=PBk,

k1,k2BA,k1B0k2A0BA,C1=k1B0k2A0BA,C1AB

如果考虑个体数会增生, 把原本的数学模型修改一下。 考虑两个族群, 假设其族群内的个体数会增加, 而且两个族群发生战争, 造成双方个体的数量下降, 我们将使用以下的模型来进行模拟。

dAdt=mAk1AB
dBdt=mBk2AB

A,B,A(0)=A0>0,B(0)=B0>0,k1,k2,m>0,,mAmB,mAmBm1Am2B,m1m2,,

解:

k2dAdtk1dBdt=m(k1Ak2B)d(k2Ak1B)dt=m(k2Ak2B)

(k2Ak1B)=C1emt

dAdtdBdt=dAdB=A(mk1B)B(mk2A)mk2AAdA=mk1BBdB

mlnAk2A=mLnBk1B+C2

mLn(AB)=k2Ak1B+C2=C1emt+C2

A=BeC1emt+C2m,(3)

A=C1emt+C1emt+C2mk2eC1emt+C2mk1,B=(C1emtk2eC1emt+C2mk1

代入初始值可得C1=k2A0k1B0,C2=mln(A0B0)k2A0+k1B0

C1,

C1>0,t

A=C1emt+C1emt+C2mk2eC1emt+C2mk1=C1emt(eC1emt+C2mk2eC1emt+C2mk1)=(A0k1k2B0)emt

B0

C1<0,t

A0

B=C1emtk2eC1emt+C2mk1C1k1emt=(B0k2k1A0)emt

解释:
C1=k2A0k1B0>0,AB,,AA0B0,,B,C1<0,BA,,BB0k2K1A0,,A

结语

数学常常给人一种不食人间烟火的感觉, 其实我们生活中会碰到许多的困难和问题要去解 决或是做决策, 譬如对奕、 经济、 军事、 医学、 民生, 这些都可以从建构数学模型或是进行统计 来帮我们做预测, 弥补经验和感觉的不足, 譬如说我们都知道消息传递快速, 一传十, 十传百, 但是实际上到底有多快? 如果我们没有建立起一个模型进行计算, 我们很难掌握某种我们关心 的量随时间推移其大小的变化, 而这个量的大或小可能就会决定一个策略的成败, 就如同前面 提到的群体 A 和群体 B 的战争模型一样, 打赢的大量增生, 打输的几乎被消灭, 这是天差地远 的结果, 一个决策的好坏影响真的很大。

0 0