Software for Boundary Value Problems
The codes available on this page are for solving boundary value problems
for ordinary differential equations. All of the codes are included under
the ode directory of netlib and are written in FORTRAN 77
and
use double precision arithmetic. All compressed files are created by using
the command "gzip" (simply "gunzip" them at your end).
Introduction
The netlib codes COLNEW , by Ascher and Bader, and
TWPBVP,
by Cash and M. H. Wright, utilise
global methods for solving boundary value problems. Specifically, COLNEW
is based on a high-order collocation method, while TWPBVP
is based on mono-implicit Runge-Kutta formulae together with deferred
corrections. These codes can be downloaded by clicking below.
A description of how to use COLNEW is included at
the top of the code. A user's manual, written in latex, accompanies TWPBVP
and
is available by clicking here. Both codes have
proved to be successful in solving a large class of problems. However,
very stiff boundary value problems often present a formidable challenge
to existing numerical methods and this is discussed below.
Singular Perturbation Problems
Singularly perturbed boundary value problems are characterised by the presence
of a small, positive parameter which multiplies the highest derivative
term in the (system of) differential equations. The essential difficulties
with such problems arise because their solutions exhibit narrow regions
of very fast variation (so-called boundary layers) as the problem parameter
becomes progressively small. For numerical methods, this means that it
is often very difficult to determine both a mesh that will yield a sufficiently
accurate numerical solution, and an initial guess to the solution which
will lead to the convergence of Newton's method. One way of overcoming
these problems is to use continuation. In this approach, a sequence of
progressively more difficult problems is solved by using information from
one problem to solve for the next. The codes COLMOD and
ACDC,
developed by Cash and
R.
W. Wright, are designed to solve singularly perturbed boundary value
problems by using an automatic continuation strategy. These codes are extensions
of COLNEW
and TWPBVP respectively,
and allow stiff boundary value problems to be solved in an efficient way.
The codes can be downloaded by clicking below.
As previously, a description of how to use COLMOD is
included within the code. A user's manual, written in latex, accompanies
ACDC
and is available by clicking here. Other
than the addition of a continuation strategy, the code COLMOD
differs
from COLNEW in the method of mesh selection. For the
code ACDC, Lobatto Runge-Kutta formulae have been
introduced to replace the mono-implicit formulae of the original code,
since these offer better stability properties. References concerning these
modifications are included within the user's manuals for each code. We
also have a mono-implicit code with an interpolation capability. The code
which allows this is called interp.f and can be downloaded by clicking
here.
A postscript file which describes the code can be downloaded by clicking
here.
Test Problems and Numerical Results
The four codes discussed on this page have been tested on a set of thirty-two
test problems. Details of the test problems and solution plots can be seen
by clicking on the postscript file below.
The results produced by running the four codes on the test problems, for
four different error tolerances, can be downloaded by clicking on the files
below. The files are in ascii format. The driver programs used to run COLMOD
and ACDC for the thirty-two test problems are also
available.
All results were produced on a Pentium with 100MHz clock speed, under Linux,
with binary IEEE arithmetic. Any questions or comments will gladly be received
by the authors whose e-mail addresses are provided below.
Lobatto Codes with Interpolants for the paper:
A Highly Stable Deferred Correction Scheme
with Interpolant for
systems of Non-Linear Two-Point Boundary
Value problems
Cash, Moore, Sumarti & Van Daele
bitb4.f (runs MIRK)
save4.f (runs Lobatto with Richardson Extrapolation)
demo.f (runs Lobatto with embedding)
The code demo.f is heavily commented so that it explains not only
how to run the problems but also how to get the interpolants and
how to check the errors in these interpolants.
Back to the Numerical
Analysis home page.
Last updated July 9, 2002.
Ross Wright (r.wright@ma.ic.ac.uk)
and Jeff Cash (j.cash@ma.ic.ac.uk)
people
have visited this page since April 2002.