Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ODE(1)			     GNU Plotting Utilities			  ODE(1)

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  equa-
     tions.    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  lan-
     guage.   The program is simply a list of expressions 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 standard input if no
     file  name is given.  If reading from standard 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 evolution of a variable.  If  there  are  only  two
     columns, the output 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 op-
	    tion makes it possible to work interactively, after reading  a  pro-
	    gram 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  speci-
	    fied.   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  ap-
	    plications.

	    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 relative single-step error in any de-
	    pendent 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 `adaptively', so that the upper bound on
	    the single-step error is not violated.  Thus, choosing a smaller up-
	    per bound on the single-step error will cause smaller  stepsizes  to
	    be	chosen.  A lower bound rmin may optionally be specified, to sug-
	    gest 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 sin-
	    gle-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  numeri-
	    cal errors.

   Informational Options
     --help
	    Print a list of command-line options, and exit.

     --version
	    Print  the version number of ode and the plotting utilities 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)" follows the `nnn' for errors encoun-
     tered inside the file.  Subsequently, 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 in-
     put.  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  vari-
     able 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 differen-
     tial 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  en-
     hanced  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.

FSF				    Dec 1998				  ODE(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ode&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help