Overview: Differential Equations

This section introduces some of the mathematical concepts used with IDL Advanced Math and Stats.

Ordinary Differential Equations

An ordinary differential equation is an equation involving one or more dependent variables called yi, one independent variable, t, and derivatives of the yi with respect to t.

In the initial value problem (IVP), the initial or starting values of the dependent variables yi at a known value t = t0 are given. Values of yi(t) for t > t0 or t < t0 are required.

The IMSL_ODE function solves the IVP for ODEs of the form:

Overview_Differential_Equations-08.jpg Overview_Differential_Equations-09.jpg

with yi(t = t0) specified. Here, fi is a user-supplied function that must be evaluated at any set of values (t, y0, ..., yN – 1), i = 0, ..., N – 1.

The previous problem statement is abbreviated by writing it as a system of first-order ODEs, y(t) = [y0(t), ..., yN – 1(t) ]T , f(t, y) = [f0(t, y), ..., fN – 1(t, y)]T, so that the problem becomes y' = f(t, y) with initial values y(t0).

The system:

Overview_Differential_Equations-10.jpg

is said to be stiff if some of the eigenvalues of the Jacobian matrix:

Overview_Differential_Equations-11.jpg

are large and negative. This is frequently the case for differential equations modeling the behavior of physical systems such as chemical reactions proceeding to equilibrium where subspecies effectively complete their reactions in different epochs. An alternate model concerns discharging capacitors such that different parts of the system have widely varying decay rates (or time constants).

Users typically identify stiff systems by the fact that certain numerical differential equation solvers, such as the Runge-Kutta-Verner fifth-order and sixth-order method, are inefficient or they fail completely. Special methods are often required. The most common inefficiency is that a large number of evaluations of f(t, y) and, hence, an excessive amount of computer time are required to satisfy the accuracy and stability requirements of the software. In such cases, the keyword R_K_V should not be specified when using the IMSL_ODE function. For more about stiff systems, see Gear (1971, Chapter 11) or Shampine and Gear (1979).

Partial Differential Equations

The routine IMSL_PDE_MOL solves the IVP problem for systems of the form:

Overview_Differential_Equations-12.jpg

subject to the boundary conditions:

Overview_Differential_Equations-13.jpg

and subject to the initial conditions:

ui(x, t = t0) = gi(x)

for i = 1, , N. Here, fi, gi,:

Overview_Differential_Equations-14.jpg

are user-supplied, j = 1, 2.

The routine IMSL_POISSON2D solves Laplace's, Poisson's, or Helmholtz's equation in two dimensions. This routine uses a fast Poisson method to solve a PDE of the form:

Overview_Differential_Equations-15.jpg

over a rectangle, subject to boundary conditions on each of the four sides. The scalar constant c and the function f are user specified.