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:
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:
is said to be stiff if some of the eigenvalues of the Jacobian matrix:
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:

subject to the boundary conditions:

and subject to the initial conditions:
ui(x, t = t0) = gi(x)
for i = 1, …, N. Here, fi, gi,:

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:

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