Malthus 模型
1789 年,英国神父 Malthus 在分析了一百多年人口统计资料之后,提出了 Malthus 模型。
模型假设
(i)设 x(t) 表示t时刻的人口数,且 x(t) 连续可微。
(ii)人口的增长率r 是常数(增长率=出生率—死亡率)。
(iii)人口数量的变化是封闭的,即人口数量的增加与减少只取决于人口中个体的 生育和死亡,且每一个体都具有同样的生育能力与死亡率。
微分方程求解
数值解(numerical solution)是采用某种计算方法,在特定的条件下得到的一个近似数值结果,如有限元法,数值逼近法,插值法等等得到的解。别人只能利用数值计算的结果,而不能随意给出自变量并求出计算值。
解析解(analytical solution)是严格按照公式逻辑推导得到的,具有基本的函数形式。给出任意的自变量就可以求出其因变量,也就是问题的解,他人可以利用这些公式计算各自的问题,具有广泛适用性;
必备知识
dsolve函数(3条消息) matlab求解常微分方程(组)---dsolve、ode系列函数详解(含例程)
1)函数格式
Y = dsolve(‘eq1,eq2,…’ , ’cond1,cond2,…’ , ’Name’)
其中,‘eq1,eq2,…’:表示微分方程或微分方程组;
’cond1,cond2,…’:表示初始条件或边界条件;
‘Name’:表示变量。没有指定变量时,matlab默认的变量为t;
————————————————
版权声明:本文为CSDN博主「lynn&&」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
例题:1)matlab 在命令行窗口敲
dsolve('Dy=3*x^2','x')
通解
2)初值条件 特解
dsolve('Dy=3*x^2','y(0)=2','x')
3)微分方程组
ode函数
ode是Matlab专门用于解微分方程的功能函数。在已知点中步长迭代,两代之间的跨度,该求解器有变步长(variable-step)和定步长(fixed-step)两种类型。不同类型有着不同的求解器
1)函数格式
[T,Y] = ode45(‘odefun’,tspan,y0)
[T,Y] = ode45(‘odefun’,tspan,y0,options)
[T,Y,TE,YE,IE] = ode45(‘odefun’,tspan,y0,options)
sol = ode45(‘odefun’,[t0 tf],y0...)
其中: odefun是函数句柄,可以是函数文件名,匿名函数句柄或内联函数名;
tspan 是求解区间 [t0 tf],或者一系列散点[t0,t1,...,tf];
y0 是初始值向量
T 返回列向量的时间点
Y 返回对应T的求解列向量
options 是求解参数设置,可以用odeset在计算前设定误差,输出参数,事件等
TE 事件发生时间
YE 事件发生时之答案
IE 事件函数消失时之指针i
2)微分方程标准化
利用ode45求解高阶微分方程时,需要做变量替换。下面说明替换的基本思路。
微分方程为
初始条件
首先做变量替换
原微分方程可以转换为下面的微分方程组的格式:
————————————————
版权声明:本文为CSDN博主「lynn&&」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
例 编写odefun函数
function dx=odefun(t,x)
dx=zeros(2,1);
dx(1)=x(2);
dx(2)=-t*y+exp(t)*x(2)+3*sin(2*t);
end
matlab模型实操
命令行窗口
desolve(‘Dx=rx(t)’,'x(0)=x0')
求两系数
polyfit(X,Y,N)
%Y为函数y X为自变量 N为自变量的最高次幂
人口增长模型与实际结果的比较
补充知识
1)round函数
是输出接近数的函数
A=[1.2 2.4 -1.1 -1.5]
round(A)
输出结果[1 2 1 -2](其中Z+0.5 默认其绝对值较大的数)
2)format函数
format输出显示格式
3) 矩阵的相关表示
linspace(X1,X2,N)
X1为初始值 X2为终值 N为间隔点(无N时默认生成100个点)
生成N个元素的单行向量
实际与拟合图像输出
plot(x,y,'r+')%'颜色+线条组成’例如这为红色的+号所组成的线条
xlabel('')
ylabel('')%x轴y轴的命名注意这没有‘;’
title('')%图像的总名称 位置为图像的正上方
legend(‘线条名称’)
hold on;%保持第一个图形后面叠加
增长率的验证
数值微分三点公式
Logistic模型(阻滞增长模型)
绘制dx/dt~x曲线