Need the backward trajectories of ode plot
2 views (last 30 days)
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])
0 Comments
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
Jan
on 16 Jul 2013
Edited: Jan
on 16 Jul 2013
"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
See Also
Categories
Find more on Waveform Design and Signal Synthesis 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!