Efficiently and easily integrating differential equations with JiTCODE, JiTCDDE, and JiTCSDE. (English) Zbl 1390.34005

Summary: We present a family of Python modules for the numerical integration of ordinary, delay, or stochastic differential equations. The key features are that the user enters the derivative symbolically and it is just-in-time-compiled, allowing the user to efficiently integrate differential equations from a higher-level interpreted language. The presented modules are particularly suited for large systems of differential equations such as those used to describe dynamics on complex networks. Through the selected method of input, the presented modules also allow almost complete automatization of the process of estimating regular as well as transversal Lyapunov exponents for ordinary and delay differential equations. We conceptually discuss the modules’ design, analyze their performance, and demonstrate their capabilities by application to timely problems.{
©2018 American Institute of Physics}


34-04 Software, source code, etc. for problems pertaining to ordinary differential equations
Full Text: DOI arXiv


[1] Strogatz, S. H., Nonlinear Dynamics and Chaos: With Applications to Physics, Biology, Chemistry, and Engineering, (1994), Addison-Wesley: Addison-Wesley, Reading
[2] Alligood, K. T.; Sauer, T. D.; Yorke, J. A., Chaos: An Introduction to Dynamical Systems, 105-147, (1996), Springer: Springer, New York
[3] Hairer, E.; Nørsett, S.; Wanner, G., Solving Ordinary Differential Equations I, (1993), Springer: Springer, Berlin/Heidelberg · Zbl 0789.65048
[4] Deuflhard, P.; Bornemann, F., Scientific Computing with Ordinary Differential Equations, (2002), Springer: Springer, New York · Zbl 1001.65071
[5] Shampine, L.; Thompson, S., Solving DDEs in MATLAB, Appl. Numer. Math., 37, 441-458, (2001) · Zbl 0983.65079
[6] Bellen, A.; Zennaro, M., Numerical Methods for Delay Differential Equations, (2003), Oxford University Press: Oxford University Press, Oxford · Zbl 0749.65042
[7] Kloeden, P. E.; Platen, E., Numerical Solution of Stochastic Differential Equations, (1999), Springer: Springer, Berlin/Heidelberg · Zbl 0701.60054
[8] Rößler, A., Runge-Kutta methods for the strong approximation of solutions of stochastic differential equations, SIAM J. Numer. Anal., 48, 922-952, (2010) · Zbl 1231.65015
[9] Clewley, R. H.; Sherwood, W. E.; LaMar, M. D.; Guckenheimer, J. M.
[10] Boccaletti, S.; Latora, V.; Moreno, Y.; Chavez, M.; Hwang, D.-U., Complex networks: Structure and dynamics, Phys. Rep., 424, 175-308, (2006) · Zbl 1371.82002
[11] Arenas, A.; Díaz-Guilera, A.; Kurths, J.; Moreno, Y.; Zhou, C., Synchronization in complex networks, Phys. Rep., 469, 93-153, (2008)
[12] Rothkegel, A.; Lehnertz, K., Conedy: A scientific tool to investigate complex network dynamics, Chaos, 22, 013125, (2012) · Zbl 1331.37004
[13] Oliphant, T. E., Python for scientific computing, Comput. Sci. Eng., 9, 10-20, (2007)
[14] Meurer, A.; Smith, C. P.; Paprocki, M.; Čertík, O.; Kirpichev, S. B.; Rocklin, M.; Kumar, A.; Ivanov, S.; Moore, J. K.; Singh, S.; Rathnayake, T.; Vig, S.; Granger, B. E.; Muller, R. P.; Bonazzi, F.; Gupta, H.; Vats, S.; Johansson, F.; Pedregosa, F.; Curry, M. J.; Terrel, A. R.; Roučka, Š.; Saboo, A.; Fernando, I.; Kulal, S.; Cimrman, R.; Scopatz, A., SymPy: Symbolic computing in Python, PeerJ Comput. Sci., 3, e103, (2017)
[15] Jones, E.; Oliphant, T.; Peterson, P., SciPy: Open Source Scientific Tools for Python, (20012017)
[16] Dormand, J. R.; Prince, P. J., A family of embedded Runge-Kutta formulae, J. Comput. Appl. Math., 6, 19-26, (1980) · Zbl 0448.65045
[17] Bogacki, P.; Shampine, L., A 3(2) pair of Runge-Kutta formulas, Appl. Math. Lett., 2, 321-325, (1989) · Zbl 0705.65055
[18] Brown, P. N.; Byrne, G. D.; Hindmarsh, A. C., VODE: A variable-coefficient ODE solver, SIAM J. Sci. Stat. Comput., 10, 1038-1051, (1989) · Zbl 0677.65075
[19] Hindmarsh, A. C.; Stepleman, R.; Carver, S. M.; Peskin, R.; Ames, W.; Vichnevetsky, R., ODEPACK, a systematized collection of ODE solvers, Scientific Computing, 1, 55-64, (1983), North-Holland: North-Holland, Amsterdam/New York/Oxford
[20] Hairer, E.; Wanner, G., Solving Ordinary Differential Equations I, (1996), Springer: Springer, Berlin/Heidelberg
[21] Shampine, L. F.; Reichelt, M. W., The MATLAB ODE suite, SIAM J. Sci. Comput., 18, 1-22, (1997) · Zbl 0868.65040
[22] Rössler, O. E., An equation for continuous chaos, Phys. Lett. A, 57, 397-398, (1976) · Zbl 1371.37062
[23] Somolinos, A. S., Periodic solutions of the sunflower equation: \(\ddot{x} +(a / r) x +(b / r) \sin x(t - r) = 0\), Q. Appl. Math., 35, 465-478, (1978) · Zbl 0385.34017
[24] Rackauckas, C.; Nie, Q., Adaptive methods for stochastic differential equations via natural embeddings and rejection sampling with memory, Discrete Contin. Dyn. B, 22, 2731-2761, (2017) · Zbl 1366.65005
[25] Cyganowski, S.; Grüne, L.; Kloeden, P. E.; Blowey, J. F.; Coleman, J. P.; Craig, A. W., Maple for stochastic differential equations, Theory and Numerics of Differential Equations, 127-177, (2001), Springer: Springer, Berlin/Heidelberg · Zbl 0991.65006
[26] Merton, R. C., Option pricing when underlying stock returns are discontinuous, J. Financ. Econ., 3, 125-144, (1976) · Zbl 1131.91344
[27] Platen, E.; Bruti-Liberati, N., Numerical Solution of Stochastic Differential Equations with Jumps in Finance, (2010), Springer: Springer, Berlin/Heidelberg · Zbl 1225.60004
[28] Kuramoto, Y.; Araki, H., Self-entrainment of a population of coupled non-linear oscillators, International Symposium on Mathematical Problems in Theoretical Physics, 39, 420-422, (1975), Springer: Springer, Berlin/Heidelberg
[29] Csárdi, G. and Nepusz, T., “ The igraph software package for complex network research,” InterJournal Complex Syst.1695 (2006).
[30] Hagberg, A. A.; Schult, D. A.; Swart, P. J.; Varoquaux, G.; Vaught, T.; Millman, J., Exploring network structure, dynamics, and function using NetworkX, 11-15, (2008), Pasadena
[31] Benettin, G.; Galgani, L.; Giorgilli, A.; Strelcyn, J.-M., Lyapunov characteristic exponents for smooth dynamical systems and for Hamiltonian systems; a method for computing all of them, Meccanica, 15, 9-30, (1980) · Zbl 0488.70015
[32] Farmer, J. D., Chaotic attractors of an infinite-dimensional dynamical system, Physica D, 4, 366-393, (1982) · Zbl 1194.37052
[33] Heagy, J. F.; Caroll, T. L.; Pecora, L. M., Synchronous chaos in coupled oscillator systems, Phys. Rev. E, 50, 1874, (1994)
[34] Saha, A.; Feudel, U., Extreme events in FitzHugh-Nagumo oscillators coupled with two time delays, Phys. Rev. E, 95, 062219, (2017)
[35] Dagum, L.; Menon, R., OpenMP: An industry standard API for shared-memory programming, IEEE Comput. Sci. Eng., 5, 46-55, (1998)
[36] Um, J.; Minnhagen, P.; Kim, B. J., Synchronization in interdependent networks, Chaos, 21, 025106, (2011) · Zbl 1317.34068
[37] D’Agostino, G.; Scala, A., Networks of Networks: The Last Frontier of Complexity, (2014), Springer: Springer, Cham
[38] Kenett, D. Y.; Perc, M.; Boccaletti, S., Networks of networks—An introduction, Chaos, Solitons Fractals, 80, 1-6, (2015) · Zbl 1354.00076
[39] Sonnenschein, B.; Peron, T. K. D.; Rodrigues, F. A.; Kurths, J.; Schimansky-Geier, L., Collective dynamics in two populations of noisy oscillators with asymmetric interactions, Phys. Rev. E, 91, 062910, (2015)
[40] Ansmann, G.; Lehnertz, K.; Feudel, U., Self-induced switchings between multiple space-time patterns on complex networks of excitable units, Phys. Rev. X, 6, 011030, (2016)
[41] Beazley, D., Automated scientific software scripting with SWIG, Future Gener. Comput. Syst., 19, 599-609, (2003)
[42] McGeoch, C. C., A Guide to Experimental Algorithmics, (2012), Cambridge University Press: Cambridge University Press, Cambridge
[43] Krauskopf, B.; Osinga, H. M.; Galán-Vioque, J., Numerical Continuation Methods for Dynamical Systems, (2007), Springer: Springer, Dordrecht
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.