Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Matlab ODE solvers: inconsistent time vector output

  1. Sep 25, 2010 #1


    User Avatar
    Gold Member

    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.
  2. jcsd
  3. Sep 25, 2010 #2


    User Avatar
    Gold Member

    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.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook