数学建模之微分方程学习笔记

一、初步介绍

微分方程建模是数学建模的重要方法,因为许多实际问题的数学描述将导致求解微分方程的定解问题。

把形形色色的实际问题化成微分方程的定解问题,大体上可以按以下几步:

1. 根据实际要求确定要研究的量(自变量、未知函数、必要的参数等)并确定坐标系。

2. 找出这些量所满足的基本规律(物理的、几何的、化学的或生物学的等等)。

3. 运用这些规律列出方程和定解条件。

列方程常见的方法有:

(i)按规律直接列方程         在数学、力学、物理、化学等学科中许多自然现象所满足的规律已为人们所熟悉, 并直接由微分方程所描述。如牛顿第二定律、放射性物质的放射性规律等。我们常利用 这些规律对某些实际问题列出微分方程。

(ii)微元分析法与任意区域上取积分的方法         自然界中也有许多现象所满足的规律是通过变量的微元之间的关系式来表达的。对 于这类问题,我们不能直接列出自变量和未知函数及其变化率之间的关系式,而是通过微元分析法,利用已知的规律建立一些变量(自变量与未知函数)的微元之间的关系式, 然后再通过取极限的方法得到微分方程,或等价地通过任意区域上取积分的方法来建立 微分方程。

(iii)模拟近似法         在生物、经济等学科中,许多现象所满足的规律并不很清楚而且相当复杂,因而需要根据实际资料或大量的实验数据,提出各种假设。在一定的假设下,给出实际现象所 满足的规律,然后利用适当的数学方法列出微分方程。

用matlab求解析解:

注意:只能求解简单的微分方程。diff表示导数。

syms y(x) %定义符号变量,告诉MATLABy(x)是关于x的函数

eq = y - diff(y,x) == 2*x; %diff(y,x)表示dy/dx,即y’,%表示y对x的一阶导数

dsolve(eq) %求通解

dsolve(eq, y(0) == 3) %求特解

用matlab求数值解:

常微分方程数值解法的思想是对求解区间进行剖分,然后把微分方程离散成在节点上的近似公式或近似方程,最后结合定解条件求出近似解。

在求解过程中,主要运用到龙格-库塔算法,该方法解析可参考Runge-Kutta(龙格-库塔)方法 | 基本思想 + 二阶格式 + 四阶格式-CSDN博客

例:求解

因为matlab只能求解一阶微分方程,所以先变量替换,进行降阶。

function dydt = df2(t,y)
dydt = zeros(2,1); 
dydt(1) = y(2);

dydt(2) = -2*y(2)-5*y(1)+sin(t);

end

[t,y] = ode45('df3',[-2,2],[1 1]);

可参考数学建模:17 微分方程_求 的数值解,并画出图形。-CSDN博客

二、经典模型

1.人口增长

1.1 Malthus模型(指数模型)

模型假设

(i)设 x(t) 表示t 时刻的人口数,且 x(t) 连续可微。

(ii)人口的增长率 r 是常数(增长率=出生率—死亡率)。

(iii)人口数量的变化是封闭的,即人口数量的增加与减少只取决于人口中个体的 生育和死亡,且每一个体都具有同样的生育能力与死亡率。

模型求解

1.2 Malthus模型的推广(未完善)

Malthus模型进行预测的结果远高于实际人口增长,误差的原因是对增长率 r 的估计过高。因此,我们增加一个竞争项 -bx^2 ,它的作用是使纯增长率 r 减少。如果一个国家工业化程度较高,食品供应 较充足,能够提供更多的人生存,此时b较小;反之b 较大.

则有:

(存在的疑问:a、b分别是什么参数?)

a、b可用matlab直接求解:参数a 和b 可以通过已知数据利用 Matlab 中的非线性回归命令 nlinfit 求得。

1.3 logistic生长曲线

(还是以人口增长为例)视 r 为一个随着人口的增加而减小的量,即将增长 率 r 表示为人口 x(t) 的函数 r(x) ,且 r(x) 为 x 的减函数。

模型假设

(i)设 r(x) 为 x 的线性函数,r(x)=r-sx。(工程师原则,首先用线性

(ii)自然资源与环境条件所能容纳的最大人口数为 x_{m} ,即当 x_{m} = x 时,增长率 r(x_{m}) = 0 。

模型求解

2.战争模型

影响战争胜负的因素有很多,兵力的多少和战斗力的强弱是两个主要的因素。士兵 的数量会随着战争的进行而减少,这种减少可能是因为阵亡、负伤与被俘,也可能是因为疾病与开小差。分别称之为战斗减员与非战斗减员。士兵的数量也可随着增援部队的到来而增加。从某种意义上来说,当战争结束时,如果一方的士兵人数为零,那么另一 方就取得了胜利。

2.1正规战模型(正规vs正规)

模型假设

模型求解

最终,兵力随时间变化表达式:

2.2游击战模型(游击vs游击)

模型假设

模型求解

2.3混合战模型(游击vs正规)

模型假设

假设x方是游击队, y 方为正规部队。均无支援及非战斗减员。

模型求解

3.种群模型

3.1捕食关系(Volterra食饵-捕食者模型 )

模型假设

该方程不存在符号解,需用matlab求出数值解

模型求解

周期平均值:

赋予一定参数后,求解的结果应如下图:

3.2种群竞争/依存/寄生(即对3.1的推广)

本质:

在上述模型中,给双方按照实际情况增加一个logistic项,从而表现其特性。

模型求解

例:竞争模型:

得到结果:灭亡or共存

4.传染病模型

参考拓展:

数学建模之微分方程模型详解-CSDN博客

数学建模:17 微分方程-CSDN博客

 

4.1 SI模型(易感染&患者)

模型假设

模型求解

得出结果:

4.1.2 SI模型推广(考虑出生率、死亡率)

原理是增加出生率参数、死亡率参数,如图,解出微分方程组即可。

4.2 SIS模型

模型假设

模型求解

得到结果

4.3 SIR模型

模型假设

模型求解

解得结果:

4.3.2 SIR模型推广(SIRS待完善)
4.4 SEIR模型(待完善)
  • 33
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值