NAME
ode - numerical solution of ordinary differential equations
SYNOPSIS
ode [ options ] [ file ]
DESCRIPTION
ode is a tool that solves, by numerical integration, the
initial value problem for a specified system of first-order
ordinary differential equations. Three distinct numerical
integration schemes are available: Runge-Kutta-Fehlberg
(the default), Adams-Moulton, and Euler. The Adams-Moulton
and Runge-Kutta schemes are available with adaptive step
size.
The operation of ode is specified by a program, written in
its input language. The program is simply a list of expres-
sions for the derivatives of the variables to be integrated,
together with some control statements. Some examples are
given in the EXAMPLES section.
ode reads the program from the specified file, or from stan-
dard input if no file name is given. If reading from stan-
dard input, ode will stop reading and exit when it sees a
single period on a line by itself.
At each time step, the values of variables specified in the
program are written to standard output. So a table of
values will be produced, with each column showing the evolu-
tion of a variable. If there are only two columns, the out-
put can be piped to graph(1) or a similar plotting program.
OPTIONS
Input Options
-f file
--input-file file
Read input from file before reading from standard
input. This option makes it possible to work interac-
tively, after reading a program fragment that defines
the system of differential equations.
Output Options
-p prec
--precision prec
When printing numerical results, use prec significant
digits (the default is 6). If this option is given,
the print format will be scientific notation.
-t
--title
Print a title line at the head of the output, naming
the variables in each column. If this option is given,
the print format will be scientific notation.
Integration Scheme Options
The following options specify the numerical integration
scheme. Only one of the three basic options -R, -A, -E may
be specified. The default is -R (Runge-Kutta-Fehlberg).
-R [stepsize]
--runge-kutta [stepsize]
Use a fifth-order Runge-Kutta-Fehlberg algorithm, with
an adaptive stepsize unless a constant stepsize is
specified. When a constant stepsize is specified and
no error analysis is requested, then a classical
fourth-order Runge-Kutta scheme is used.
-A [stepsize]
--adams-moulton [stepsize]
Use a fourth-order Adams-Moulton predictor-corrector
scheme, with an adaptive stepsize unless a constant
stepsize, stepsize, is specified. The
Runge-Kutta-Fehlberg algorithm is used to get past
`bad' points (if any).
-E [stepsize]
--euler [stepsize]
Use a `quick and dirty' Euler scheme, with a constant
stepsize. The default value of stepsize is 0.1. Not
recommended for serious applications.
The error bound options -r and -e (see below) may not
be used if -E is specified.
-h hmin [hmax]
--step-size-bound hmin [hmax]
Use a lower bound hmin on the stepsize. The numerical
scheme will not let the stepsize go below hmin. The
default is to allow the stepsize to shrink to the
machine limit, i.e., the minimum nonzero double-
precision floating point number.
The optional argument hmax, if included, specifies a
maximum value for the stepsize. It is useful in
preventing the numerical routine from skipping quickly
over an interesting region.
Error Bound Options
-r rmax [rmin]
--relative-error-bound rmax [rmin]
The -r option sets an upper bound on the relative
single-step error. If the -r option is used, the rela-
tive single-step error in any dependent variable will
never exceed rmax (the default for which is 10^-9). If
this should occur, the solution will be abandoned and
an error message will be printed. If the stepsize is
not constant, the stepsize will be decreased `adap-
tively', so that the upper bound on the single-step
error is not violated. Thus, choosing a smaller upper
bound on the single-step error will cause smaller step-
sizes to be chosen. A lower bound rmin may optionally
be specified, to suggest when the stepsize should be
increased (the default for rmin is rmax/1000).
-e emax [emin]
--absolute-error-bound emax [emin]
Similar to -r, but bounds the absolute rather than the
relative single-step error.
-s
--suppress-error-bound
Suppress the ceiling on single-step error, allowing ode
to continue even if this ceiling is exceeded. This may
result in large numerical errors.
Informational Options
--help
Print a list of command-line options, and exit.
--version
Print the version number of ode and the plotting utili-
ties package, and exit.
DIAGNOSTICS
Mostly self-explanatory. The biggest exception is `syntax
error', meaning there is a grammatical error. Language
error messages are of the form
ode: nnn: message...
where `nnn' is the number of the input line containing the
error. If the -f option is used, the phrase "(file)" fol-
lows the `nnn' for errors encountered inside the file. Sub-
sequently, when ode begins reading the standard input, line
numbers start over from 1.
No effort is made to recover successfully from syntactic
errors in the input. However, there is a meager effort to
resynchronize so more than one error can be found in one
scan.
Run-time errors elicit a message describing the problem, and
the solution is abandoned.
EXAMPLES
The program
y' = y
y = 1
print t, y
step 0, 1
solves an initial value problem whose solution is y=e^t.
When ode runs this program, it will write two columns of
numbers to standard output. Each line will show the value
of the independent variable t, and the variable y, as t is
stepped from 0 to 1.
A more sophisticated example would be
sine' = cosine
cosine' = -sine
sine = 0
cosine = 1
print t, sine
step 0, 2*PI
This program solves an initial value problem for a system of
two differential equations. The initial value problem turns
out to define the sine and cosine functions. The program
steps the system over a full period.
AUTHORS
ode was written by Nicholas B. Tufillaro (nbt@reed.edu), and
slightly enhanced by Robert S. Maier (rsm@math.arizona.edu)
to merge it into the GNU plotting utilities.
SEE ALSO
"The GNU Plotting Utilities Manual".
BUGS
Email bug reports to bug-gnu-utils@gnu.org.
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |