Suppose you have a mathematical model and you want to understand its behavior. That is, you want to find a solution to the set of equations. The best is when you can use calculus, trigonometry, and other math techniques to write down the solution. Now you know absolutely how the model will behave under any circumstances. This is called the *analytic* solution, because you used analysis to figure it out. It is also referred to as a *closed form* solution.

But this tends to work only for simple models. For more complex models, the math becomes much too complicated. Then you turn to *numerical methods* of solving the equations, such as the Runge-Kutta method. For a differential equation that describes behavior over time, the numerical method starts with the initial values of the variables, and then uses the equations to figure out the changes in these variables over a very brief time period. Its only an approximation, but it can be a very good approximation under certain circumstances.

A computer must be used to perform the thousands of repetitive calculations involved. The result is a long list of numbers, not an equation. This long list of numbers can be used to drive an animated simulation, as we do with the models presented here.

There is also a middle ground between these two methods. There are many important *non-linear* equations for which it is not possible to find an analytic solution. However, there are techniques where you can find approximate analytic solutions that are close to the true solution, at least within a certain range. One such method is called the *perturbation method*. The advantage over a numerical solution is that you wind up with an equation (instead of just a long list of numbers) which you can gain some insight from.
This web page was first published June 2001.