|
|||
|
NEWS: Version 0.2.2 released 07 December 2008. PyDDE is an open source numerical solver for systems of delay differential equations (DDEs), implemented as a Python package and written in both Python and C. PyDDE is built around the back-end of ddesolve, an R package with the same functionality, which in turn is built on the numerical routines of Simon Wood's Solv95, a C-based DDE solver for Microsoft Windows systems. There is now also a Mac port for Solv95, with Cocoa frontend by Ashley Buckner. If you use a different OS or prefer that your simulations are scriptable within a nice environment like Python, you might wish to read on!
ContactI welcome any questions or suggestions about PyDDE--particulary if you had problems with the package, and "especially particularly" if you also have the solution! Please contact me via e-mail. About PyDDEPyDDE can solve a wide range of ODE and DDE models with discontinuities that may have state-dependent effects but state-independent timings. Simulation is handled by an adaptively-stepping embedded RK2(3) scheme with cubic Hermite interpolation for calculation of delay terms. Some of the advantages of PyDDE are that it is fast, efficient and allows rapid prototyping of scriptable models in a free, platform-independent environment. Motivation. There is a lack of easily-obtainable numerical solvers of delay differential equations for interpretted languages. Most solvers require either some knowledge of programming in either C or FORTRAN, or run only under proprietary environments such as MATLAB TM. Differences between ddesolve and PyDDE. PyDDE started life in late 2005 as a port of Solv95. It was a pretty faithful port, and it worked, but was not very user-friendly. Just when I was looking into creating a new port of Solv95 for R, along came ddesolve, by Alex Couture-Beil, Jon Schnute and Rowan Haigh from Fisheries and Oceans Canada's Pacific Biological Station. In order to simplify maintenance of both ports (and I personally use both), I decided to move PyDDE to the same back-end used by ddesolve. There are a couple of minor simplifications, and a new function to simplify interfacing with the integration routines, but otherwise PyDDE is just as powerful and flexible as before. As a bonus, it is also easier to use! Apart from the usual issues likely to be encountered when translating between programming languages, it should be trivial to port models from ddesolve to PyDDE. Differences between Solv95 and PyDDE. PyDDE is built directly on the ddesolve back end, and ddesolve is built directly on the code used in Solv95, but there are a number of differences. The most important are related to speed: since PyDDE uses Python as another layer over the Solv95 algorithms, it is a bit slower than the original. (Note that PyDDE does not wrap the R interface from ddesolve; the interface to the back-end uses only Python and C libraries.) Much of the memory management has been rewritten, so 'mileage may vary' a little here also. However, in practical terms PyDDE should perform comparably in most situations. It also has better error-handling and makes available the power of Python to process solution data, so extra computation time should be more than made up for by much faster model development. Binary distributions. At present there are no binary distributions for PyDDE—sorry. Binary distributions for MS Windows may be forthcoming, but I typically use Python on a Mac OS X machine so this is a low priority. Note that there is a Windows binary for ddesolve on CRAN, and there's no reason one couldn't use ddesolve from within Python using the RPy (R from Python) package. Further development. PyDDE will, I hope, see some further development. The current version (0.2.2) is nominally in a 'beta' stage (promoted from 'alpha' due to the greater maturity of the ddesolve code). But there is still some tidying to do. |
![]() ![]() ![]() © 2005 B.J. Cairns. |
||
|
Cancer Epidemiology Unit, University of Oxford, Richard Doll Building, Roosevelt Drive, Oxford OX3 7LF, U.K. |
|||