def sis(x, t, u):
    return [x[1], u(t)]
t = linspace(0, 10, 1000.0)
t_interp = linspace(0, 20, 2000.0)
acel = lambda t: 3 * (t < 2) - 3 * (t > 8)
acel_interp = interp1d(t_interp, acel(t_interp))
x_1 = odeint(sis, [0, 0], t, args=(acel,))
x_2 = odeint(sis, [0, 0], t, args=(acel_interp,))
A possible bug in odeint <-> interp1d interplay?