A differential equation is an equation that involves one or more derivatives of an unknown function. A solution of such a differential equation is a function that, when substituted for the unknown function, makes the equation true. For an ordinary differential equation (ODE), the unknown function is a function of one real variable, which can taken to be time, t. In its most general form, an ODE takes the form F(t,x,x',x'',...,x(n)) = 0, where x(t) is the unknown function; x', x'',..., x(n) are its derivatives up to order n; and F is some function. If n is the highest order derivative that appears in an ODE, then the ODE is said to be of order n.
In 3D-XplorMath-J, only ODEs of order 1 and 2 are considered. Furthermore, the ODEs all take the form
x' = G(t,x) (for first-order ODEs),
x'' = G(t,x,x') (for second-order ODEs),
Note that x(t) can be a single real number. However, x(t) can also be vector-valued; that is, it can take its values in two-, three-, or higher-dimensional space, as well as in one-dimensional space. In 3D-XplorMath-J every ODE is either one-, two-, or three-dimensional.
Putting this together, we see that 3D-XplorMath-J deals with six types of ODE: first-order ODEs in one dimension, second-order ODEs in one dimension, first-order ODEs in two dimensions, second-order ODEs in two dimensions, first-order ODEs in three dimension, and second-order ODEs in three dimensions. There is a separate sub-gallery of the ODE gallery for each of these six cases. Furthere there are two additional ODE galleries, "Central Force" and "Charged Particles." These galleries are special cases of second-order ODEs in, respectively, two and three dimensions, where the ODE describes the motion of a particle that is subject to a force of a certain type.
To add one more complication, ODEs can be classified as either autonomous or non-autonomous. In an autonomous equation, the function G(t,x) or G(t,x,x') does not actually depend on t, while in the non-autonomous case, there is an actual dependence on t. Thus, in the autonomous case, the ODE can be written
x' = G(x) (for first-order ODEs),
x'' = G(x,x') (for second-order ODEs),
In each of the six basic ODE sub-galleries, there are two User Exhibits, one for the autonomous case and one for the non-autonomous case.
An ODE exhibit in 3D-XplorMath-J is concerned with computing and displaying solutions of the ODE. There are in general many functions that solve an ODE. However, once an initial condition has been specified for the function there is in general only one solution that satisfies that initial condition. For a first-order equation, x' = G(t,x), an initial condition takes the form x(to) = xo, where to and xo are constants. The so-called Local Existence Theorem for First Order ODE tells us that provided the function G is differentiable, then in some sufficiently small interval around to, there will be a unique solution x(t) to the ODE with x(to) = xo.
There is a similar local existence theorem for second-order ODEs (which in fact is an easy consequence of the first order theorem). It says that given an initial time to, an initial position xo, and an initial velocity vo then, in some sufficiently small interval around to, there will be a unique solution x(t) of the ODE with x(to) = xo and x'(to) = vo.
It is usually difficult or impossible to find explicit formulas for the solutions of an ODE. Instead, numerical methods are used to find approximate solutions. A common numerical method that gives reasonably accurate results is the so-called Fourth Order Runge-Kutta Method. This is the method that is used by default in 3D-XplorMath-J. Another method, Euler's Method is easier to understand and implement, but it gives only a poor approximation to the true solution. For the sake of comparison, 3D-XplorMath-J can use Euler's Method as well as Runge-Kutta. (Approximate solutions computed using Runge-Kutta are shown in red; those computed using Euler's method are shown in green.)
To pick out a particular solution of an ODE, you need some way of specifying an initial condition. In an ODE exhibit, a "Control Panel" appears on the right edge of the window where the exhibit is displayed. This control panel has input boxes where the initial values can be entered and a button for displaying the solution (or "orbit") that satisfies that initial condition. The orbit is drawn for a certain interval of time, as specified in the input box labeled "TimeSpan." You can compute and display more than one orbit, using different initial values. It is also possible to input the initial condition for an orbit using the mouse; the details of how to do this differ for different sub-galleries -- look for instructions in the status line at the bottom of the window.
Both the Runge-Kutta method and Euler's method use a "StepSize" that can be input in the Control Panel. These numerical methods do not produce an exact (x(t)) but only a sequence of points x(to), x(to+Δt), x(to+2Δt), x(to+3Δt), and so on, where Δt is the step size. These points are approximations of points that lie on the true orbit. A smaller step size will give a better approximation, but will require more computation. An option in the "Control Panel" determines whether the points that are computed by the numerical method are drawn as separate dots or are connected together to form a curve.
Note, by the way, that the Control Panel can be hidden using a command in the "Action" menu and that all the functions of the Control Panel, with the exception of inputing the initial condition, are duplicated in the "Action" Menu.
The "Action" menu also contains an option named "Show Projected Orbits", which is off by default. If this option is turned on, then a graph of the most-recently drawn orbit is shown at the bottom of the window. For a one-dimensional ODE, this is just a graph of the solution function x(t) For a two-dimensional ODE, the solution curve can be written as a pair of functions (x(t),y(t)), and there are two graphs, one of x(t) and one of y(t). In three dimensions, the solution curve is a triple of functions (x(t),y(t),z(t)), and there are three graphs.