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

8 ビュー (過去 30 日間)
Anastasia Kyriakou
Anastasia Kyriakou 2020 年 2 月 21 日
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
Giuseppe Inghilterra 2020 年 2 月 21 日
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 Center および File ExchangePerformance and Memory についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by