TEST_ODE
Test Problems for
Initial Value Solvers


TEST_ODE, a MATLAB library which defines test initial value problems for ordinary differential equations.

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 GNU LGPL license.

Languages:

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

Related Data and Programs:

FLAME_ODE, a MATLAB library which considers an ordinary differential equation (ODE) which models the growth of a ball of flame in a combustion process.

RKF45, a MATLAB library which implements the Runge-Kutta-Fehlberg ODE solver.

test_ode_test

References:

The following references include some reliable, sturdy, comprehensive test sets. (Sometimes I'm just doing this for fun or for classroom exercises. These people, on the other hand, are serious.)

  1. David Arnold, John Polking,
    Ordinary Differential Equations using Matlab,
    Prentice Hall, 1999.
  2. Wayne Enright, John Pryce,
    Algorithm 648,
    NSDTST and STDTST,
    ACM Transactions on Mathematical Software,
    Volume 13, Number 1, 1987, pages 28-34.
  3. T Hull, Wayne Enright, B Fellen, A Sedgwick,
    Comparing numerical methods for ordinary differential equations,
    SIAM Journal on Numerical Analysis,
    Volume 9, 1972, pages 603-637.
  4. Cleve Moler,
    Cleve's Corner: Stiff Differential Equations,
    MATLAB News and Notes,
    May 2003, pages 12-13.

Source Code:


Last revised on 30 March 2019.