The examples and solutions from this book have been coded in
F and are available at:

ftp.tees.ac.uk/pub/j.r.dormand/F-files



NUMERICAL METHODS FOR DIFFERENTIAL EQUATIONS
       A computational approach

by John R.Dormand, School of Computing & Mathematics,
                   University of Teesside,
                   Middlesbrough, U.K.

CRC Press Inc. (1996) 384pp, (1) 3.5" diskette for PC compatible
                      ISBN:0-8493-9433-3
                      U.S. $64.95

The book presents numerical methods for solving differential
equations. The treatment is modern and not too rigorous in 
order to be accessible to a wide audience. This will include
senior undergraduates or graduates of mathematics or some other
numerate discipline as well as engineers and scientists who
need powerful and efficient methods in the solution of practical
problems. Most of the development is related to ordinary 
differential systems but there is some coverage of partial
differential equations. 

All the techniques are accompanied by Fortran 90 programs
for which the source code is on a disk included with the
book. This powerful new revision of Fortran, with its
array structures and procedures, is ideal for scientific
programming and permits high-level coding which greatly
simplifies the handling of multi-dimensional systems.

A unique feature contained in the book is the powerful
global error code which delivers reliable and inexpensive
estimates of the global error in the numerical solution
of any system of equations.

The provision of about 150 exercise problems makes the
book extremely useful for senior students of numerical
analysis. It serves also as a good source of software for
the many people who seek computer solutions to differential
equations.

CONTENTS 
Differential equations  {1}
     {1.1}Introduction {1}
     {1.2}Classification of differential equations {2}
     {1.3}Linear equations {4}
     {1.4}Non-linear equations {7}
     {1.5}Existence and uniqueness of solutions {9}
     {1.6}Numerical methods {10}
     {1.7}Computer programming {11}
     {1.8}Problems {13}

First ideas and single--step methods  {15}
     {2.1}Introduction {15}
     {2.2}Analytical and numerical solutions {15}
     {2.3}A first example  {16}
     {2.4}The Taylor series method  {20}
     {2.5}Runge--Kutta methods  {23}
     {2.6}Second and higher order equations {26}
     {2.7}Problems {29}

Error considerations  {31}
     {3.1}Introduction {31}
     {3.2}Definitions {32}
     {3.3}Local truncation error for the Taylor series method {33}
     {3.4}Local truncation error for the Runge--Kutta method {34}
     {3.5}Local truncation and global errors  {40}
     {3.6}Local error and LTE {42}
     {3.7}Problems {44}

Runge-Kutta methods  {47}
     {4.1}Introduction {47}
     {4.2}Error criteria {48}
     {4.3}A third order formula {50}
     {4.4}Fourth order formulae {53}
     {4.5}Fifth and higher order formulae {58}
     {4.6}Rationale for high order formulae {59}
     {4.7}Computational examples {60}
     {4.8}Problems  {68}

Step-size control  {71}
     {5.1}Introduction {71}
     {5.2}Steplength prediction {72}
     {5.3}Error estimation {73}
     {5.4}Local extrapolation {75}
     {5.5}Error estimation with RK methods {79}
     {5.6}More Runge--Kutta pairs {81}
     {5.7}Application of RK embedding {84}
     {5.8}Problems {91}

Dense output  {97}
     {6.1}Introduction {97}
     {6.2}Construction of continuous extensions {98}
     {6.3}Choice of free parameters {102}
     {6.4}Higher--order formulae {106}
     {6.5}Computational aspects of dense output {110}
     {6.6}Inverse interpolation {111}
     {6.7}Problems {113}

Stability and stiffness  {117}
     {7.1}Introduction {117}
     {7.2}Absolute stability {119}
     {7.3}Non-linear stability {123}
     {7.4}Stiffness {124}
     {7.5}Improving stability of RK methods {128}
     {7.6}Problems  {133}

Multistep methods  {135}
     {8.1}Introduction {135}
     {8.2}The linear multistep process {135}
     {8.3}Selection of parameters {137}
     {8.4}A third order implicit formula {138}
     {8.5}A third order explicit formula {140}
     {8.6}Predictor--Corrector schemes {141}
     {8.7}Error estimation {142}
     {8.8}A Predictor--Corrector program {145}
     {8.9}Problems {146}

Multistep formulae from quadrature {149}
     {9.1}Introduction {149}
     {9.2}Quadrature applied to differential equations {150}
     {9.3}The Adams--Bashforth formulae {151}
     {9.4}The Adams--Moulton formulae {154}
     {9.5}Other multistep formulae {156}
     {9.6}Varying the step--size  {157}
     {9.7}Numerical results {160}
     {9.8}Problems {162}

Stability of multistep methods  {167}
     {10.1}Introduction {167}
     {10.2}Some numerical experiments {168}
     {10.3}Zero-stability {170}
     {10.4}Weak stability theory {173}
     {10.5}Stability properties of some formulae {175}
     {10.6}Stability of Predictor--Corrector pairs {179}
     {10.7}Problems {185}

Methods for Stiff systems {189}
     {11.1}Introduction {189}
     {11.2}Differentiation formulae {190}
     {11.3}Implementation of BDF schemes {193}
     {11.4}A BDF program {197}
     {11.5}Implicit Runge-Kutta methods {199}
     {11.6}A semi-implicit RK program {203}
     {11.7}Problems {207}

Variable coefficient multistep methods {211}
     {12.1}Introduction {211}
     {12.2}Variable coefficient integrators {212}
     {12.3}Practical implementation {214}
     {12.4}Step-size estimation {216}
     {12.5}A modified approach {218}
     {12.6}An application of STEP90 {224}
     {12.7}Problems {227}

Global error estimation  {231}
     {13.1}Introduction {231}
     {13.2}Classical extrapolation {232}
     {13.3}Solving for the correction {233}
     {13.4}An example of classical extrapolation} {239}
     {13.5}The correction technique {240}
     {13.6}Global embedding {242}
     {13.7}A global embedding program {245}
     {13.8}Problems {249}

Second order equations {253}
     {14.1}Introduction {253}
     {14.2}Transformation of the RK process {254}
     {14.3}A direct approach to RKNG processes {256}
     {14.4}The special second order problem {260}
     {14.5}Dense output for RKN methods {264}
     {14.6}Multistep methods {266}
     {14.7}Problems  {269}

Partial differential equations  {273}
     {15.1}Introduction {273}
     {15.2}Finite differences {274}
     {15.3}Semi-discretisation of the heat equation {276}
     {15.4}Highly stable explicit schemes {278}
     {15.5}Equations with two space dimensions {279}
     {15.6}Non-linear equations {280}
     {15.7}Hyperbolic equations {283}
     {15.8}Problems {287}

APPENDICES
Programs for single step methods  {291}
     {A.1}A variable step Taylor method {291}
     {A.2}An embedded Runge-Kutta program {292}
     {A.3}A sample RK data file {296}
     {A.4}An alternative Runge--Kutta scheme {297}
     {A.5}Runge--Kutta with dense output {301}
     {A.6}A sample continuous RK data file {304}

Multistep programs  {305}
     {B.1}A constant steplength program  {305}
     {B.2}A variable step Adams PC scheme {309}
     {B.3}A variable coefficient multistep package {314}


Programs for Stiff systems  {327}
     {C.1}A BDF program {327}
     {C.2}A diagonally implicit RK program {333}

Global embedding programs  {339}
     {D.1}The  ptt Gem} global embedding code {339}
     {D.2}The GEM90 package with global embedding {342}
     {D.3}A driver program for GEM90} {351}

A Runge-Kutta Nystrom program  {355}

Bibliography {361}

Index {365}
