TOMS648_NSD
ODE Tests
Non-Stiff Double Precision
TOMS648_NSD
is a FORTRAN77 library which
defines a set of non-stiff 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:
-
Enright and Pryce #A1,
neqn = 1,
y' = -y;
-
Enright and Pryce #A2,
neqn = 1,
y' = -y^3/2;
-
Enright and Pryce #A3,
neqn = 1,
y' = cos(t)*y;
-
Enright and Pryce #A4,
neqn = 1,
y' = y*(20-y)/80;
-
Enright and Pryce #A5,
neqn = 1,
y' = (y-t)/(y+t);
-
Enright and Pryce #B1,
neqn = 2,
y1' = 2*y1*(1-y2)
y2' = - y2*(1-y1);
-
Enright and Pryce #B2,
neqn = 3,
y1' = -y1+y2
y2' = y1-2*y2+y3
y3' = y2-y3;
-
Enright and Pryce #B3,
neqn = 3,
y1' = -y1
y2' = y1-y2^2
y3' = y2^2;
-
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);
-
Enright and Pryce #B5,
neqn = 3,
y1' = y2*y3
y2' = -y1*y3
y3' = -0.51*y1*y2;
-
Enright and Pryce #C1,
neqn = 10;
-
Enright and Pryce #C2,
neqn = 10;
-
Enright and Pryce #C3,
neqn = 10;
-
Enright and Pryce #C4,
neqn = 51;
-
Enright and Pryce #C5,
neqn = 30;
-
Enright and Pryce #D1,
neqn = 4;
-
Enright and Pryce #D2,
neqn = 4;
-
Enright and Pryce #D3,
neqn = 4;
-
Enright and Pryce #D4,
neqn = 4;
-
Enright and Pryce #D5,
neqn = 4;
-
Enright and Pryce #E1,
neqn = 2;
-
Enright and Pryce #E2,
neqn = 2;
-
Enright and Pryce #E3,
neqn = 2;
-
Enright and Pryce #E4,
neqn = 2;
-
Enright and Pryce #E5,
neqn = 2;
-
Enright and Pryce #F1,
neqn = 2;
-
Enright and Pryce #F2,
neqn = 1;
-
Enright and Pryce #F3,
neqn = 2;
-
Enright and Pryce #F4,
neqn = 1;
-
Enright and Pryce #F5,
neqn = 1;
TOMS648_NSD is one part (the non-stiff double precision part)
of the set of routines released as ACM TOMS Algorithm 648.
Languages:
TOMS648_NSD is available in
a FORTRAN77 version.
Related Data and Programs:
NMS,
a FORTRAN90 library
which includes the DDRIV package of ODE solvers.
ODE,
a FORTRAN90 library which
contains the Shampine and Allen ODE solver.
RKF45,
a FORTRAN90 library which
implements a Runge-Kutta-Fehlberg ODE solver.
TEST_ODE,
a FORTRAN90 library which
defines a set of test functions
for ODE solvers.
References:
-
W Enright and J Pryce,
Algorithm 648,
NSDTST and STDTST,
ACM Transactions on Mathematical Software,
Volume 13, Number 1, 1987, pages 28-34.
-
T Hull, W Enright, B Fellen and A Sedgwick,
Comparing numerical methods for ordinary differential equations,
SIAM Journal on Numerical Analysis,
Volume 9, 1972, pages 603-637.
Source Code:
Examples and Tests:
List of Routines:
-
NSDTST is a test package for nonstiff differential equation solvers.
-
CLOCK is meant to return the elapsed CPU seconds.
-
CNTROL calls METHOD to get statistics for one problem and tolerance.
-
CONST returns machine dependent constants.
-
DIFNRM computes the norm of the difference of two vectors.
-
EFSTAT computes and printes normalized efficiency statistics.
-
EVALU provides "true" values of the ODE solution at the endpoint.
-
FCN evaluates the derivative F(X,Y) for the ODE test problem.
-
FCN2 transfers function values from FCN to TRUE.
-
IVALU provides initial values to the ODE test problem.
-
LSQFIT fits a linear model to data.
-
PARCHK checks the parameters.
-
PLOT plots local error information.
-
RATIO computes the ratio of two integers.
-
STATS instruments the ODE-solver being tested.
-
STR3 converts P to a 3 character integer percentage.
-
TRUE uses a Runge-Kutta scheme to estimate the true solution.
You can go up one level to
the FORTRAN77 source codes.
Last revised on 23 March 2006.