Why might the time taken to compute the solution of an ODE system over some interval increase non-linearly with increasing size of interval?

Currently, my problem requires me to solve a system a large system of non-linear ODEs (up to ~5000). So far, I have been using scipy.integrate.odeint as my workhorse.

A simpler subset of my problem only involves ~50 non-linear ODEs. Solving the system over an interval $[0, 10]$ takes about 3 times longer than solving the system over $[0, 1]$. Not bad!

However, solving the system over $[0, 1000]$ takes about 1500 times longer than solving over $[0, 1]$. Not so nice!

An obvious reason why this might be the case is because at some points between $[0, 1000]$, the solution takes far longer to converge than usual -- so, the average time taken to solve the system at each time step is greater over $[0, 1000]$ then over $[0, 1]$. Is my intuition correct over here?

What other things might be issues?

• I'm assuming this is an initial value problem rather than a boundary value problem? There are different reasons this would happen in either case. – Doug Lipinski Oct 7 '14 at 13:21
• @DougLipinski That's right -- it's an IVP. – user89 Oct 7 '14 at 13:46