Strange ode.DifferentialEquation behavior concerning the 't' time parameter provided to the ODE

Hi Jona,

So the reason why you see different time values printed than what the elements of your time vector are, is that the ODE solvers (scipy.integrate.odeint in this case) have a variable stepsize. They adapt dynamically to how the state variable in your ODE system change and take smaller steps if there’s a lot of curvature, or larger steps when things are boring. In the end you get an interpolation back.

The TensorVariable is because we’re passing a symbolic t to get analytical gradients from your ODE function: pymc/utils.py at 906fcdc7a944972c5df1021a705503f7bf42b036 · pymc-devs/pymc · GitHub

With time-varying external input, do you mean a parameter (elements of theta) that changes its value over time? How hard that’s going to be depends on the nature of this change: Is it a step function, or smooth? Does it depend on the state variables or just the time?