Matlab ODE solvers: inconsistent time vector output

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 3K views
Messages
4,430
Reaction score
327
If I produce two different sets of data with ode113, that are based on the exact same inputs, but one is longer than the other (i.e. tf is larger for one set, we'll call it A. Both A and B have the same ti).

If I compare the two plots with imagesc(A) (so that the vertical axis represents the indices themselves, which are the time steps of integration) everything is fine.

If I try to append the time vector with:

imagesc(xvalues,[0 (max(TA))]m A]

for both A and B (and TA and TB respectively), I suddenly have a mismatch on the axes. This indicates to me, that the time vectors are inconsistent, but why? What's the point of them then?

For a nonstiff solution (which ode113 is designed for) the difference is small (the same event is at TAe = 2220 and TBe = 2255

but in a different parameter point, where the solution terminates to stability rather quickly (stiff) the difference between TAe and TBe are on the order of thousands.
 
Physics news on Phys.org
Solved it (or at least mended...)

Matlab gives the option of inputing your time vector as [ti tf] OR as [ti:dt:tf]. Supposedly, if you don't specify dt, it just reports it's 'infinitesimal' time steps to the gnitty gritty detail. But that shouldn't lead to errors, should it? Well it does.

Apparently, ti:dt:tf is the way to do it for consistent T vector out. Not sure why they allow the erroneous option.