Need the backward trajectories of ode plot
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (1)
Jan
am 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 Kommentare
Jan
am 16 Jul. 2013
Bearbeitet: Jan
am 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
Siehe auch
Kategorien
Mehr zu Waveform Design and Signal Synthesis finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!