Matlab数学建模实战——(Lokta-Volterra掠食者-猎物方程)

1.题目

请添加图片描述

问题1

该数学建模的第一问和第二问主要是用Matlab求解微分方程组,直接编程即可。

求解

Step1改写

  • y(1)=r
  • y(2)=f

Step2得y的导数

  • y(1).=2y(1)-ay(1)*y(2)
  • y(2).=-y(2)+a*y(1)*y(2)

Step3编程

clear;
a=0.01;
F=@(t,y)[2*y(1)-a*y(1)*y(2);
    -y(2)+a*y(1)*y(2)];
[t,y]=ode45(F,[0,10],[300,150]);
subplot(121);
plot(t,y(:,1));
xlabel('时间');
ylabel('r数量');
subplot(122);
plot(y(:,1),y(:,2));
xlabel('r数量');
ylabel('y数量');

Step4结果

从图中可以看出对应的周期tp大概是5

问题2

改变初值就行啦,直接进入step3

求解

Step3编程

clear;
a=0.01;
F=@(t,y)[2*y(1)-a*y(1)*y(2);
    -y(2)+a*y(1)*y(2)];
[t,y]=ode45(F,[0,10],[15,22]);
subplot(121);
plot(t,y(:,1));
xlabel('时间');
ylabel('r数量');
subplot(122);
plot(y(:,1),y(:,2));
xlabel('r数量');
ylabel('y数量');

Step4结果

从图中可以看出对应的周期tp大概是8

问题3

分析

首先列公式,给了u和v的定义,咱就对它求导,然后把它代入捕食者方程,再把r和f用u和v替换,根据题目所说忽略二阶项uv,这样可以算得

求解

Step1改写

  • y(1)=u
  • y(2)=v

Step2得y的导数

  • y(1).=-y(2)
  • y(2).=2y(1)

Step3编程

clear;
a=0.01;
F=@(t,y)[-y(2);
    2*y(1)];
[t,y]=ode45(F,[0,10],[0.1,0.1]);
subplot(121);
plot(t,y(:,1));
xlabel('时间');
ylabel('u');
subplot(122);
plot(y(:,1),y(:,2));
xlabel('u');
ylabel('v');

Step4结果

从图中可以看出u对应的周期tp大概是5

版权声明:本文为博主作者:沿途有李原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/weixin_43475628/article/details/131620498

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2024年2月19日
下一篇 2024年2月19日

相关推荐