test_ode


test_ode, a FORTRAN90 code which defines a set of test initial value problems for ordinary differential equations (ODE).

These problems have the common form:

determine (some values of) the function Y(T)
given
Y'(T) = F(T,Y)
with initial value
Y(T0) = Y0

A uniform interface makes it easy to solve all the problems automatically, or to concentrate on a single one.

The problems include:

  1. Enright and Pryce #A1,
    neqn = 1,
    y' = -y;
  2. Enright and Pryce #A2,
    neqn = 1,
    y' = -y^3/2;
  3. Enright and Pryce #A3,
    neqn = 1,
    y' = cos(t)*y;
  4. Enright and Pryce #A4,
    neqn = 1,
    y' = y*(20-y)/80;
  5. Enright and Pryce #A5,
    neqn = 1,
    y' = (y-t)/(y+t);
  6. Enright and Pryce #B1,
    neqn = 2,
    y1' = 2*y1*(1-y2)
    y2' = - y2*(1-y1);
  7. Enright and Pryce #B2,
    neqn = 3,
    y1' = -y1+y2
    y2' = y1-2*y2+y3
    y3' = y2-y3;
  8. Enright and Pryce #B3,
    neqn = 3,
    y1' = -y1
    y2' = y1-y2^2
    y3' = y2^2;
  9. Enright and Pryce #B4,
    neqn = 3,
    y1' = (-y2-y1*y3) / sqrt(y1^2+y2^2)
    y2' = (y1-y2*y3) / sqrt(y1^2+y2^2)
    y3' = y1 / sqrt(y1^2+y2^2);
  10. Enright and Pryce #B5,
    neqn = 3,
    y1' = y2*y3
    y2' = -y1*y3
    y3' = -0.51*y1*y2;
  11. Enright and Pryce #C1,
    neqn = 10;
  12. Enright and Pryce #C2,
    neqn = 10;
  13. Enright and Pryce #C3,
    neqn = 10;
  14. Enright and Pryce #C4,
    neqn = 51;
  15. Enright and Pryce #C5,
    neqn = 30;
  16. Enright and Pryce #D1,
    neqn = 4;
  17. Enright and Pryce #D2,
    neqn = 4;
  18. Enright and Pryce #D3,
    neqn = 4;
  19. Enright and Pryce #D4,
    neqn = 4;
  20. Enright and Pryce #D5,
    neqn = 4;
  21. Enright and Pryce #E1,
    neqn = 2;
  22. Enright and Pryce #E2,
    neqn = 2;
  23. Enright and Pryce #E3,
    neqn = 2;
  24. Enright and Pryce #E4,
    neqn = 2;
  25. Enright and Pryce #E5,
    neqn = 2;
  26. Enright and Pryce #F1,
    neqn = 2;
  27. Enright and Pryce #F2,
    neqn = 1;
  28. Enright and Pryce #F3,
    neqn = 2;
  29. Enright and Pryce #F4,
    neqn = 1;
  30. Enright and Pryce #F5,
    neqn = 1;
  31. Lotka-Volterra Predator-Prey Equations,
    neqn = 2;
  32. The Lorenz System,
    neqn = 3;
  33. The Van der Pol equation,
    neqn = 2;
  34. The Linearized Damped Pendulum,
    neqn = 2;
  35. The Nonlinear Damped Pendulum,
    neqn = 2;
  36. Duffing's Equation,
    neqn = 2,
  37. Duffing's Equation with Damping and Forcing,
    neqn = 2;
  38. Shampine's Ball of Flame,
    neqn = 1,
    y' = y^2-y^3;
  39. Polking's First Order System,
    neqn = 1,
    y' = y^2-a*t+b;
  40. the Knee problem,
    neqn = 1,
    y' = y*(y-t)/eps;

Licensing:

The computer code and data files described and made available on this web page are distributed under the MIT license

Languages:

test_ode is available in a FORTRAN90 version and a MATLAB version.

Related Data and Programs:

test_ode_test

lorenz_ode, a FORTRAN90 code which approximates solutions to the Lorenz system, creating output files that can be displayed by Gnuplot.

midpoint, a FORTRAN90 code which solves one or more ordinary differential equations (ODEs) using the midpoint method.

nms, a FORTRAN90 code which includes the ddriv() package of ODE solvers.

ODE, a FORTRAN90 code which implements the Shampine and Allen ODE solver.

predator_prey_ode, a FORTRAN90 code which solves a pair of predator prey ordinary differential equations (ODE's).

RKF45, a FORTRAN90 code which implements a Runge-Kutta-Fehlberg ODE solver.

spring, a FORTRAN90 code which shows how gnuplot graphics can be used to illustrate a solution of the ordinary differential equation (ODE) that describes the motion of a weight attached to a spring.

stiff_ode, a FORTRAN90 code which considers an ordinary differential equation (ODE) which is an example of a stiff ODE.

References:

  1. David Arnold, John Polking,
    Ordinary Differential Equations using Matlab,
    Second Edition,
    Prentice Hall, 1999,
    ISBN: 0130113816.
  2. Wayne Enright, John Pryce,
    Two FORTRAN packages for assessing initial value methods,
    ACM Transactions on Mathematical Software,
    Volume 13, Number 1, March 1987, pages 1-27.
  3. Wayne Enright, John Pryce,
    Algorithm 648: NSDTST and STDTST,
    ACM Transactions on Mathematical Software,
    Volume 13, Number 1, March 1987, pages 28-34.
  4. Thomas Hull, Wayne Enright, BM Fellen, Arthur Sedgwick,
    Comparing numerical methods for ordinary differential equations,
    SIAM Journal on Numerical Analysis,
    Volume 9, 1972, pages 603-637.
  5. Cleve Moler,
    Cleve's Corner: Stiff Differential Equations,
    MATLAB News and Notes,
    May 2003, pages 12-13.

  1. http://pitagora.dm.uniba.it/~testset/, Test Set for IVP Solvers.
  2. http://www.unige.ch/math/~hairer/testset/testset.html Stiff ODE test set of Hairer and Wanner.

Source Code:


Last revised on 02 October 2023.