This open access volume explains the foundations of modern solvers for ordinary differential equations (ODEs). Formulating and solving ODEs is an essential part of mathematical modeling and computational science, and numerous solvers are available in commercial and open source software. However, no single ODE solver is the best choice for every single problem, and choosing the right solver requires fundamental insight into how the solvers work. This book will provide exactly that insight, to enable students and researchers to select the right solver for any ODE problem of interest, or implement their own solvers if needed. The presentation is compact and accessible, and focuses on the large and widely used class of solvers known as Runge-Kutta methods. Explicit and implicit methods are motivated and explained, as well as methods for error control and automatic time step selection, and all the solvers are implemented as a class hierarchy in Python.
Preface.- Programming a Simple ODE Solver.- Improving the Accuracy.- Stable Solvers for Stiff ODE Systems.- Adaptive Time Step Methods.- Modeling Infectious Diseases.- Programming of Difference Equations.- References.- Index.
Joakim Sundnes is Chief Research Scientist at Simula Research Laboratory and teaches undergraduate programming at the University of Oslo. His research interests are scientific computing and computational science, particularly related to biomechanics and computational physiology. Mathematical models in these fields are typically formulated as differential equations, and he has spent more than two decades developing and implementing solvers for these models. He is also responsible for the main introductory programming class for natural science students at the University of Oslo, which includes a thorough introduction to ordinary differential equations.