How can I plot ode 45 for different values of a constant after specific time?

1 visualizzazione (ultimi 30 giorni)
I want to change the value of del after given time interval.
T = 1:1:3500;
del = 0; % For T=1:1:3100
del = 1; % For T=3100:1:3500
[t,y] = ode45(@f_1,T,C);
This is the only line of the function which contains del.
dy(4,1)=(y(1)*k(1))/V(4) - (y(4)*(k(1) + k(2) + k(3) + del*k_clear))/V(4) + (y(2)*k(2))/V(4) + (y(3)*k(3))/V(4);
I want to plot this graph
But was able to construct this.
  1 Commento
madhan ravi
madhan ravi il 4 Feb 2019
Modificato: madhan ravi il 4 Feb 2019
Share your ode function.Why not?
function dydt = myod(t,y)
.....
if t <= 3100
del = 0;
else
del = 1;
end
.... rest of the code
end

Accedi per commentare.

Risposta accettata

Torsten
Torsten il 4 Feb 2019
Modificato: Torsten il 4 Feb 2019
function main
T = 1:1:3100;
del = 0.0;
[t1,y1] = ode45(@(t,y)f_1(t,y,del),T,C);
T = 3100:1:3500;
del = 1.0;
C = y1(end,:);
[t2,y2] = ode45(@(t,y)f_1(t,y,del),T,C);
t = [t1;t2];
y = [y1;y2];
plot(t,y)
end
function dy = f_1(t,y,del)
...
end

Più risposte (0)

Categorie

Scopri di più su Mathematics in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by