Go to previous page Go up  

B The Numerical Integration of Ordinary Differential Equations

The time-integration problem65 for ordinary differential equations (ODEs) is traditionally written as follows: We are given an integer n > 0 (the number of ODEs to integrate), a “right-hand-side” function n n f : ℜ × ℜ → ℜ, and the value y(0) of a function y : ℜ → ℜn satisfying the ODEs

dy --- = f(y,t) (42 ) dt
We wish to know (or approximate) y(t) for some finite interval t ∈ [0,tmax].

This is a well-studied problem in numerical analysis. See, for example, Forsythe, Malcolm, and Moler [71Jump To The Next Citation Point, Chapter 6] or Kahaner, Moler, and Nash [92, Chapter 8] for a general overview of ODE integration algorithms and codes, or Shampine and Gordon [140Jump To The Next Citation Point], Hindmarsh [84Jump To The Next Citation Point], or Brankin, Gladwell, and Shampine [38Jump To The Next Citation Point] for detailed technical accounts.

For our purposes, it suffices to note that highly accurate, efficient, and robust ODE-integration codes are widely available. In fact, there is a strong tradition in numerical analysis of free availability of such codes. Notably, Table 3 lists several freely-available ODE codes. As well as being of excellent numerical quality, these codes are also very easy to use, employing sophisticated adaptive algorithms to automatically adjust the step size and/or the precise integration scheme used66. These codes can generally be relied upon to produce accurate results both more efficiently and more easily than a hand-crafted integrator. I have used the LSODE solver in several research projects with excellent results.

Program Reference(s)
Web page

RKF45 [71, Chapter 6] External Linkhttp://www.netlib.org/ode/rkf45.f
ODE (DE/STEP) [140] External Linkhttp://www.netlib.org/ode/ode.f
ODEPACK (LSODE/LSODA etc.) [84] External Linkhttp://www.netlib.org/odepack/
RKSUITE [38] External Linkhttp://www.netlib.org/ode/rksuite/

Table 3: This table lists some general-purpose ODE codes which are freely available.

  Go to previous page Go up