If you've ever played with an oscilloscope you've probably seen curves like these. They are called Lissajous curves and occur because the behavior is generated by simple sine and cosine functions.

The two springs act independently, so it is easy to figure out what are the forces acting on the two blocks. Label the springs and blocks as follows:

wall-spring_{1}-block_{1}-spring_{2}-block_{2}

We'll assume the origin is at the connection of the spring to the wall. Define the following variables:

- x
_{1},x_{2}= position (left edge) of blocks - v
_{1},v_{2}= velocity of blocks - F
_{1},F_{2}= force experienced by blocks - L
_{1},L_{2}= how much spring is stretched

And define the following constants:

- m
_{1},m_{2}= mass of blocks - w
_{1},w_{2}= width of blocks - k
_{1},k_{2}= spring constants - R
_{1},R_{2}= rest length of springs

The springs exert force based on their amount of stretch according to

F = -k*stretch

The forces on the blocks are therefore

F_{1} = -k_{1}L_{1}+k_{2}L_{2}

F_{2} = -k_{2}L_{2}

The stretch of the spring is calculated based on the position of the blocks.

L_{1} = x_{1}-R_{1}

L_{2} = x_{2}-x_{1}-w_{1}-R_{2}

Now using Newton's law F = m a and the definition of acceleration as a = x'' we can write two second order differential equations.

m_{1}x_{1}'' = -k_{1}(x_{1}-R_{1})+k_{2}(x_{2}-x_{1}-w_{1}-R_{2})

m_{2}x_{2}'' = -k_{2}(x_{2}-x_{1}-w_{1}-R_{2})

It's easy to convert the above second order equations to a set of first order equations, by using the definition of velocity as v = x'. Then we have

x_{1}' = v_{1}

x_{2}' = v_{2}

v_{1}' = -(k_{1}/m_{1})(x_{1}-R_{1})+(k_{2}/m_{1})(x_{2}-x_{1}-w_{1}-R_{2})

v_{2}' = -(k_{2}/m_{2})(x_{2}-x_{1}-w_{1}-R_{2})

This is the form that we need in order to use the Runge-Kutta method for numerically solving the differential equation.