[SciPy-User] SciPy ODE integrator

David Pine djpine at gmail.com
Thu Jul 29 06:44:19 EDT 2010


Anne,

Thanks.  Actually I finally figured this (the VODE option) out but I agree that scipy's ODE solvers need a makeover.  The routines under the hood seem to be quite nice but the interface to Python is clumsy at best and the documentation on how to use it is pretty awful.  I'll take a look at pydstool.  Thanks.

David

On Jul 28, 2010, at 10:45 AM, Anne Archibald wrote:

> On 26 July 2010 12:46, David Pine <djpine at gmail.com> wrote:
>> Is there a SciPy ODE integrator that does adaptive stepsize integration AND produces output with the adaptive time steps intact?
> 
> It is not obvious, but the object-oriented integrator, based on VODE,
> can be run in this mode. You normally tell it how much to advance on
> each call and it does as many adaptive steps as it takes to get there,
> but there is an optional argument you can pass it that will make it
> take just one step of the underlying integrator. You can then write a
> python loop to produce the solution you want.
> 
> If this seems messy, I have to agree. scipy's ODE integrators are in
> desperate need of an API redesign (they've had one already, which is
> why there are two completely different interfaces, but they need
> another). You could try pydstool, which is designed for the study of
> dynamical systems and has many more tools for working with ODEs and
> their solutions.
> 
> Anne
> 
>> The standard SciPy ODE integrator seems to be scipy.integrate.odeint and its simpler cousin scipy.integrate.ode.  These work just fine but  both take a user-specified time series and returns the solution at those points only.  Often, I prefer to have a more classic adaptive stepsize integrator that returns the solution at time steps determined by the integrator (and the degree of desired precision input by the user).  This is often the most useful kind of solution because it tends to produce more points where the solution is varying rapidly and fewer where it is not varying much.  A classic Runge-Kugga adaptive stepsize ODE solver does this as to many others, but I can't find a nice implementation in SciPy or NumPy.  Please advise.  Thanks.
>> 
>> David
>> _______________________________________________
>> SciPy-User mailing list
>> SciPy-User at scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-user
>> 
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user




More information about the SciPy-User mailing list