Need the backward trajectories of ode plot
Show older comments
I have a system of differential equations which I can solve by Euler's method. The following code gives a plot of a trajectory that starts from x(1)=0.7; y(1)=0.11; and depicts its evolution in forwarding time. But I need a trajectory that starts from x(1)=0.7; y(1)=0.11; and evolved in backward time. That mean what will be the plot if t tends to -infinity. Please correct my code so that I can get backword evolution of trajectories:
clear
alpha=.5;gamma=1; delta=0.3; L=.4; beta=1.778;
x(1)=0.7;
y(1)=0.11;
t(1)=0;
for i=1:50000
t(i+1)=t(i)+.01;
x(i+1)=x(i)+.01*[x(i)*((1-x(i))*(x(i)/L-1)-beta*y(i)/(x(i)+alpha))];
y(i+1)=y(i)+.01*[beta*x(i)*y(i)/(x(i)+alpha)-gamma*y(i)-delta*y(i)^2];
end
plot(x,y, 'b')
axis([.4 1 0 .22])
Answers (1)
Jan
on 14 Jul 2013
Do you ask for changing the line:
t(i+1) = t(i) + 0.01;
to
t(i+1) = t(i) - 0.01;
?
4 Comments
Atom
on 15 Jul 2013
Jan
on 15 Jul 2013
The formulas for x and y do not depend on t at all. So why do you assume, that there is any behaviour for t->anything?
I guess, that you want to solve the equations [x(i+1), y(i+1)] = f(x(i), y(i)) to [x(i), y(i)] = g(x(i+1), y(i+1)). This seems to be trivial in this case, but start with i=50000 and go back to 1 then.
"for i=50000:1" does not enter the loop at all. You need the stepsize of -1.
I cannot test it currently, but let me guess:
for i = 50000:-1:2
t(i-1) = t(i) - 0.01;
x(i-1) = x(i) + 0.01*[x(i)*((1-x(i))*(x(i)/L-1)-beta*y(i)/(x(i)+alp ha))];
y(i-1) = y(i) + 0.01*[beta*x(i)*y(i)/(x(i)+alpha)-gamma*y(i)-delta*y(i)^2];
end
Categories
Find more on Ordinary Differential Equations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!