Explicit Euler integration. Plot x(t) and y(t)
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Giuseppe Inghilterra
le 21 Fév 2020
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.
Réponses (0)
Voir également
Catégories
En savoir plus sur Performance and Memory dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!