ode solver , restart from where the simulation ended

1 view (last 30 days)
Hi,
I am using ode solver to simulate a system of differential equations.
tspan = 0:0.0001:1
[t s] = ode15s(@(t,s) fun(t,s), tspan , s0 ,options);
I ran for the tspan that is defined and obtained the results (0 to 1 second). I want to restart the simulation from where it ended and run for 2 seconds instead of rerunning the whole simulation again.
Any suggestions?
Thanks

Accepted Answer

Bjorn Gustavsson
Bjorn Gustavsson on 28 Feb 2020
Just extract the solution at 1 s from s (i.e. the last row in s). Then simly run the integration from there:
t2 = linspace(1,3,2001); % or what resoution you need
s0_2 = s(end,:); %
[t1to3 s1to3] = ode15s(@(t,s) fun(t,s), t2 , s0_2 ,options);
That should be enough.
HTH

More Answers (0)

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!