Explicit Euler integration. Plot x(t) and y(t)

2 次查看(过去 30 天)
I have this exercise:
dx/dt = −x(1 − y), t0 = 0, x(t0) = 0.5,
dy/dt = y(1 − x), t0 = 0, y(t0) = 2
These equations are also known as Lotka-Volterra or predator-prey equations modeling evolution of species as a function of time t. In the equations above variable x stands for the number of predators, and y is the number of prey.
Let [0, 40] be the interval of integration.
Please implement explicit Euler integration scheme with ∆ = 0.001, ∆ = 0.002, and
∆ = 0.005 . Plot the values of x(t), y(t) for t ∈ [0, 40]
I have written this but i am getting an error. (I have divided dy/dt with dx/dt to find dy/dx)
Could someone help me ?
t0=0; %this is the left boundary of the integration interval [0,40]
t1=40 %this is the right boundary of the integration interval [0,40]
y(t0)=2; %this is the initial value of y at t0
x(t0)=0.5; %this is the initial value of x at t0
Delta=0.001; %definition of Delta
x=x0:Delta:x1; %setting up a grid of points in [0,2]
y=y0*ones(1,length(x)); %creating an array for y
if (length(x)>1)
for i=1:length(x)-1
y(i+1)=(y(i)+Delta*(y(i)*(1-x)/((-x)*(1-y(i)))));
end;
plot(x,y); % Finished! Let’s plot the estimates y_k of the solution y(x_k) now
else
disp('Please change the value of Delta');
end;
  4 个评论
Anastasia Kyriakou
Anastasia Kyriakou 2020-2-21
Error in Untitled (line 3)
y(t0)=2; %this is the initial value of y at t0
Giuseppe Inghilterra
Hi, t0 is equal to 0, thus you are trying to evaluate y(0) that returns an error in Matlab. Matlab is one-based indexing, this means that 0 is not a correct index, the minimum one that you can use is 1. y(1) = 2.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by