D201: First-order Differential Equations (Gragg-Bulirsch-Stoer)

Author(s): K.S. Kölbig Library: MATHLIB
Submitter: Submitted: 15.02.1989
Language: Fortran Revised: 01.12.1994

Subroutine subprograms RDEQBS and DDEQBS advance the solution of the system of tex2html_wrap_inline107 simultaneous first-order differential equations

displaymath109

from a specified value tex2html_wrap_inline111 to a specified value tex2html_wrap_inline113 of the independent variable x.

On computers other than CDC and Cray, only the double-precision version DDEQBS is available. On CDC and Cray computers, only the single-precision version RDEQBS is available.

Structure:

SUBROUTINE subprograms
User Entry Names : RDEQBS, DDEQBS
Obsolete User Entry Names: DEQBS tex2html_wrap_inline117 RDEQBS
Files Referenced : Unit 6
External References: MTLMTR, ABEND, user-supplied SUBROUTINE subprogram

Usage:

For tex2html_wrap_inline119 (type REAL), tex2html_wrap_inline121 (type DOUBLE PRECISION),

    CALL tDEQBS(N,X1,X2,Y,H0,EPS,SUB,W)
N
(INTEGER) Number n of equations.
X1
(type according to t) Initial value tex2html_wrap_inline125 of the independent variable x.
X2
(type according to t) Final value tex2html_wrap_inline129 of the independent variable x.
Y
(type according to t) One-dimensional array of length tex2html_wrap_inline133 N. On entry, tex2html_wrap_inline135 , must contain tex2html_wrap_inline137 . On exit, tex2html_wrap_inline139 , contains approximate values tex2html_wrap_inline141 .
H0
(type according to t) On entry, H0 must contain the proposed initial step-length tex2html_wrap_inline143 . On exit, H0 contains the last computed step-length (See also Method and Notes).
EPS
(type according to t) The requested absolute accuracy tex2html_wrap_inline145 . (EPS should not be smaller than approximately tex2html_wrap_inline147 times the machine precision).
SUB
Name of a user-supplied SUBROUTINE subprogram, declared EXTERNAL in the calling program.
W
(type according to t) Array containing at least 36*N elements required as working-space.
The user-supplied subroutine SUB should be of the form
    SUBROUTINE SUB(X,Y,F)
where the variable X and the one-dimensional arrays Y(*) and F(*) are of type t. This subroutine must set

displaymath149

Method:

For the first integration step, starting at tex2html_wrap_inline151 , the step-length h is chosen to be the smallest of the numbers tex2html_wrap_inline155 for which not more than 9 stages of internal extrapolation yield an estimated error less than tex2html_wrap_inline157 . This procedure is repeated until tex2html_wrap_inline159 is reached. (For details, see Ref. 1).

Error handling:

Error D201.1: If the requestec accuracy cannot obtained, a message is written on Unit 6, unless subroutine MTLSET (N002) has been called.
For tex2html_wrap_inline161 , or tex2html_wrap_inline163 or tex2html_wrap_inline165 , control is returned to the calling program without any change in Y.

Notes:

For well-conditioned systems of equations any reasonable value of the initial step length tex2html_wrap_inline167 may be chosen. For ill-conditioned systems, the initial value of tex2html_wrap_inline169 may be important, and tests with different values are advised. An inappropriate choice may lead to wrong results in such cases.

This subroutines is based on an Algol60 procedure given in Ref. 1. The adaption for integration over a given interval (not only over one step) is due to G. Janin.

References:

  1. R. Bulirsch and J. Stoer, Numerical treatment of ordinary differential equations by extrapolation methods, Numer. Math. 8 (1966) 1-13.
tex2html_wrap_inline171

Michel Goossens Wed Jun 5 00:13:02 METDST 1996