《2021年数值实验—捕食模型求解微分方程组》由会员分享,可在线阅读,更多相关《2021年数值实验—捕食模型求解微分方程组(4页珍藏版)》请在金锄头文库上搜索。
1、学习资料欢迎下载一、问题表达:捕食模型求解微分方程组电子科技高校机械电子工程学院 下面的模型被称为捕食竞争模型:在此模型中, t 可以看成是时间,可以认为是兔子的数量,可认为是狐狸的数量, 狐狸仅以兔子为食,兔子的食物足够多;1. 说明 a0 的意义及 b, c,的含义 .2. 取b=1,c=0.5. 选 a=0.1, 分别用 0de23 和 ode45 解此方程组,并对结果进行比较;二、问题求解1. a:捕食才能; a0 存在捕食才能; b: 兔子的自然增长率; c:狐狸的死亡率 ;2. 代入值,原微分方程组变为:2.1 数值求解求微分方程组的初值问题, 在 Matlab中用于求解非线性微分
2、方程的常用函数有ode23和 ode45, 依据微分方程求解出的结果, 可以得出系统的时间变化曲线和相轨迹图;时间变化曲线图中 , 实线表示被捕食者兔子, 虚线表示捕食者狐狸 , 以下均同;2.1.1 用 Matlab 中的 ode45 解微分方程组图 1两物种的时间变化曲线表 1Y 表示兔子的最小值、最大值、均值表 2Y 表示狐狸的最小值、最大值、均值图 2相图2.1.2 用 Matlab 中的 ode23 解微分方程组图 3两物种的时间变化曲线表 3Y 表示兔子的最小值、最大值、均值表 4Y 表示狐狸的最小值、最大值、均值三试验程序1. 建立M文件functiondx= odet,x;%定
3、义输入,输出变量与函数文件名dx = zeros2,1;%明确 dx的维数,用微分方程组时不行缺省dx1 = x1 *1-0.1*x2;%dx( m)表示 x的m阶导数; xn 表示 X的第 n列dx2 = -x2 *0.5- x1*0.02;%与方程组的第 2个微分方程对应2. 在Matlab 的命令窗口输入 t,x=ode45ode,0 15,50 5;%用 ode45 解微分方程组plott,x:,1,-,t,x:,2,*%作出二维 t-x 图plotx:,1,x:,2%作出相图四试验结果分析1. 系统分析从上面图形的时间变化曲线和相图中很直观的得到, 在此模型中 , 捕食者和被捕食者处
4、于动态平稳之中 , 哪一种也不至于灭亡, 各自数量随时间而做周期性变化, 此消彼长 , 周而复始 ;2. ode45 与 ode23 的数值解比较最小值最大值均值兔子( ode45)5.7666.9528.85兔子( ode23)5.79966.9929.39兔子( ode45-ode23) -0.039-0.04-0.54狐狸( ode45)3.805207512.05狐狸( ode23)3.80820.7712.34狐狸( ode45-ode23) -0.003-0.02-0.29五试验总结在 Matlab 中用于求解非线性微分方程的常用函数有 ode23 和 ode45, 两者均采纳龙格库塔法进行求解 , 但由于 ode45 采纳四阶五级龙格库塔法求解 , 精度高于 ode23,此试验未运算出精确解,但可以通过人工解微分方程组运算,再与二者做了比较,故能得出以上结果;