视频
拓展学习
1.Lotka-Volterra模型
第①问:
rabbitFox=@(t,x) [x(1)*(2-0.01*x(2));x(2)*(-1+0.01*x(1))];
[t,x]=ode45(rabbitFox,[0,30],[300,150])
subplot(1,2,1);plot(t,x(:,1),'-',t,x(:,2),'-*');
legend('x1(t)','x2(t)');
xlabel('时间');ylabel('物种数量');
grid on
subplot(1,2,2);plot(x(:,1),x(:,2))
grid on
第④问:
取λ=0.01, 所以稳定平衡点(1/λ,2/λ)即是(100,200),以此点作为初值时,画出其图像。
rabbitFox=@(t,x) [x(1)*(2-0.01*x(2));...
x(2)*(-1+0.01*x(1))];
[t,x]=ode45(rabbitFox,[0,30],[100,200]);
plot(t,x(:,1),'-o',t,x(:,2),'-*');
legend('x1(t)-兔子','x2(t)-狐狸');
xlabel('时间');
ylabel('物种数量');
当将初始值变为(98,195)时,即向下十分接近平衡点,画出其图像。
rabbitFox=@(t,x) [x(1)*(2-0.01*x(2));...
x(2)*(-1+0.01*x(1))];
[t,x]=ode45(rabbitFox,[0,30],[98,195]);
plot(t,x(:,1),'-o',t,x(:,2),'-*');
legend('x1(t)-兔子','x2(t)-狐狸');
xlabel('时间');
ylabel('物种数量');
当将初始值变为(70,150)时(向下偏离平衡点比较远时),画出其图像。
rabbitFox=@(t,x) [x(1)*(2-0.01*x(2));...
x(2)*(-1+0.01*x(1))];
[t,x]=ode45(rabbitFox,[0,30],[70,150]);
plot(t,x(:,1),'-o',t,x(:,2),'-*');
legend('x1(t)-兔子','x2(t)-狐狸');
xlabel('时间');
ylabel('物种数量');
当将初始值变为(900,1600)时(向上偏离平衡点十分远时),画出其图像。
rabbitFox=@(t,x) [x(1)*(2-0.01*x(2));...
x(2)*(-1+0.01*x(1))];
[t,x]=ode45(rabbitFox,[0,500],[900,1600]);
plot(t,x(:,1),t,x(:,2));
legend('x1(t)-兔子','x2(t)-狐狸');
xlabel('时间');
ylabel('物种数量');
2. Lotka-Volterra改进模型
第①问:在原模型下,绘制狐狸和兔子数量的时间函数曲线。
rabbitFox=@(t,x) [x(1)*(2-0.01*x(2));...
x(2)*(-1+0.01*x(1))];
plot(t,x(:,1),t,x(:,2));
legend('x1(t)-兔子','x2(t)-狐狸');
xlabel('时间');
ylabel('物种数量');
title('原模型下,狐狸和兔子数量的函数曲线');
第②问:在改进模型下,狐狸和兔子数量的时间函数曲线。
rabbitFox=@(t,x) [2*x(1)*(1-x(1)/400-0.005*x(2));...
x(2)*(-1+0.01*x(1))];
[t,x]=ode45(rabbitFox,[0,50],[300,150]);
plot(t,x(:,1),t,x(:,2));
legend('x1(t)-兔子','x2(t)-狐狸');
xlabel('时间');
ylabel('物种数量');
title('改进模型下,狐狸和兔子数量的函数曲线');
第③问:在原模型下,绘制狐狸数量相对于兔子数量的关系曲线。
rabbitFox=@(t,x) [x(1)*(2-0.01*x(2));...
x(2)*(-1+0.01*x(1))];
[t,x]=ode45(rabbitFox,[0,50],[300,150]);
plot(x(:,1),x(:,2));
xlabel('兔子数量');
ylabel('狐狸数量');
title('原模型下,狐狸数量相对于兔子数量的关系曲线');
第④问:在改进模型下,狐狸数量相对于兔子数量的关系曲线。
rabbitFox=@(t,x) [2*x(1)*(1-x(1)/400-0.005*x(2));...
x(2)*(-1+0.01*x(1))];
[t,x]=ode45(rabbitFox,[0,50],[300,150]);
plot(x(:,1),x(:,2));
xlabel('兔子数量');
ylabel('狐狸数量');
title('改进模型下,狐狸数量相对于兔子数量的关系曲线');

