On Sun, Feb 22, 2009 at 17:56, John Travers <jtravs@gmail.com> wrote:
Hi All,
Attached is a patch which adds two new ODE solvers to the scipy.integrate.ode module. The solvers are dopri5 and dop853, which are explicit Runge-Kutta pairs originally developed by Dormand and Prince. The fortran code was downloaded from:
http://www.unige.ch/~hairer/software.html
The license is clearly BSD and SciPy compatible.
These are excellent solvers, described in detail in the authors book:
Solving Ordinary Differential Equations. Nonstiff Problems. 2nd edition. Springer Series in Comput. Math., vol. 8.
The dopri5 code is what Matlab's ode45 is based on.
I think they would be a good addition to SciPy and I have used them often (in Fortran). The attached patch tries to follow the (somewhat strange to me) coding practices of the current ode module. I have added them to the test suite, but note that there are not many tests! (I might add some if I get time). I have also tested them with my own code which uses the ode module.
If I get the go ahead from some regular SciPy contributers then I'll go ahead and commit this patch. I think I still have SVN access, but I wanted this pacth to be reviewed first as it has been a long time since I did anything with SciPy.
* Typo: "first 0rder" * You're missing dop.pyf * I don't like the conditional imports inside the classes. * Don't print things. Use warnings.warn() if you must. But otherwise, +1. -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco