# SPRING_ODE Line Printer Graphics to Display Spring ODE Solution

SPRING_ODE is a C++ program which shows how line printer graphics can be used to make a crude illustration of a solution of the ordinary differential equation (ODE) that describes the motion of a weight attached to a spring.

This is a simple example of how to plot when you don't have a plotter. This is a particular kind of "ASCII graphics", or "typewriter graphics" or "lineprinter graphics", and shows you how valuable an illustration can be, even when it's as crude as this example.

Hooke's law for a spring observes that the restoring force is proportional to the displacement:

```        F = - k x
```
and Newton's law relates the force to acceleration:
```        F = m a
```

Putting these equations together, we have:

```        m * d^2 x/dt^2 = - k * x
```

We can add a damping force with coefficient c:

```        m * d^2 x/dt^2 = - k * x - c * dx/dt
```
If we write this as a pair of first order equations for (x,v), we have
```            dx/dt = v
m * dv/dt = - k * x - c * v
```
and now we can approximate these values for small time steps.

Note that the plotting assumes that the value of X will always be between -1 and +1. If the initial condition uses V = 0, and X starts between -1 and +1, then this will be OK.

### Languages:

SPRING_ODE is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version.

### Related Data and Programs:

ASCII_ART_GRAYSCALE, a data directory which contains examples of grayscale ASCII Art files, in which images are created using printable characters.

MANDELBROT_ASCII, a C program which generates an ASCII TEXT image of the Mandelbrot fractal set using just two lines of (very obscure) C.

SPRING_ODE2, a C++ program which shows how gnuplot graphics can be used to illustrate a solution of the ordinary differential equation (ODE) that describes the motion of a weight attached to a spring.

### List of Routines:

• MAIN is the main program for SPRING_ODE.
• TIMESTAMP prints the current YMDHMS date as a time stamp.

You can go up one level to the C++ source codes.

Last revised on 15 May 2012.