EJS ODE solvers
A solver is a computer algorithm that computes a numerical approximation to the solution of an ordinary differential equation (ODE) or, more precisely, of an initial value problem. That is, given the system of ODEs and the state of the system at a given time, the algorithm is able to approximate the solution of the ODE in a future time.
Solver algorithms in EJS are all one-step methods, mostly based on Runge-Kutta schemes, can be either explicit and implicit, fixed-step or adaptive, and all use interpolation to provide a dense output (that is, produce solution points at any instant of time). We explain what all this means, as well as explain the many parameters you can play with while fine-tuning your model in this small survey on ODE solvers.
Notice: This page and the survey refer to ODE solvers included in EJS version 4.2 and later. Solvers in previous versions of EJS did not use interpolation.
- Euler refers to the well know Euler method. It is a fixed step, first order algorithm or very little practical use. It is always used to teach how solvers work, but its precision is very poor unless
dt is prohibitively small. To interpolate data, Euler just takes a smaller step.
- Euler-Richardson, also known as the midpoint method, is a Runge-Kutta improvement of the Euler method. The ER method is a fixed step, second order method that works well for simple problems, such as harmonic oscillators, free fall, and things like these. Interpolate using the small algorithm in page 125 of the book by Bellen and Zenaro, which gives 2nd order interpolation.
- Runge-Kutta 4 refers to the classical Runge-Kutta method which started it all. It is a fixed step, 4th-order algorithm, that works well in most situations. (A not-very-precise rule of thumb states that RK4 works well for precisions - tolerances- of 10−5 or so. You should also be aware that using an adaptive solver can have a dramatic impact on performance and accuracy for problems with regions of different behavior - sometimes smooth, sometimes quickly changing.) Interpolates using one step of the bootstrapping algorithm applied to Hermite interpolation (this gives order 4 interpolation).
- ‘ ’Bogacki-Shampine 3(2) is an adaptive Runge-Kutta method of order 3. It is based on two embedded RK schemes of order 3 and 2. Interpolates using Hermite interpolation (this gives order 3 interpolation).
- Cash-Karp 5(4) is an adaptive 4th order method. It is based on two embedded RK schemes of order 5 and 4. Differently to the reference given, we use local extrapolation and accept the 5th order approximation as the solution. This is the default solver for a new page of ODEs because it provides excellent performance in most situations. Interpolates using two steps of the bootstrapping algorithm applied to Hermite interpolation (this gives order 5 interpolation).
- Fehlberg 8 is a fixed step 8th-order method with the coefficients of the higher order scheme included in the 8(7) Fehlberg RK method described below. Interpolates using two steps of the bootstrapping algorithm applied to Hermite interpolation (this gives order 5 interpolation).
- Felhberg 8(7) is the adaptive RK method described in Table 5.3 of the Solving Ordinary Differential Equations I.Nonstiff Problems book by Hairer, Nørsett, and Wanner. Interpolates using two steps of the bootstrapping algorithm applied to Hermite interpolation (this gives order 5 interpolation).
- Dormand-Prince 5(4) is a sophisticated adaptive 4th-order RK method with its own interpolation scheme.
- Dormand-Prince 8(53) is an 8th order adaptive method from the Dormand-Prince family. It is described in Section II.5, p. 181, of the Solving Ordinary Differential Equations I.Nonstiff Problems book by Hairer, Nørsett, and Wanner.It has its own interpolation scheme.
- Radau 5(4) is an implicit RK 4th order adaptive method described in the book Solving Ordinary Differential Equations II. Stiff and Differential-Algebraic Problems book by Hairer and Wanner. This method is recommended for stiff equations. It uses its own, 4th order interpolation scheme.
- QSS 3 is a different story… It is the single non-RK based method in EJS. This is a 3rd order, adaptive method based on the idea of quantized-state systems (QSS). This method is included for research pruposes and is not recommended for non-specialists. You can find information about QSS on the work by Ernesto Kofman.