该数学建模的第一问和第二问主要是用Matlab求解微分方程组,直接编程即可。
Step1改写
Step2得y的导数
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数量');
改变初值就行啦,直接进入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数量');
首先列公式,给了u和v的定义,咱就对它求导,然后把它代入捕食者方程,再把r和f用u和v替换,根据题目所说忽略二阶项uv,这样可以算得
Step1改写
Step2得y的导数
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');