MyPhysicsLab – 2-Dimensional Spring

Instructions: drag square or circle with your mouse

vertical axis:    horizontal axis:    graph type:

Does the motion look random to you? Watch the graph for a while and you'll see its actually an intricate pattern.

Physics of the 2-Dimensional Spring

An immoveable (but draggable) anchor point has a spring and bob hanging below and swinging in two dimensions. We regard the bob as a point mass. We define the following variables:


and some constants:

Note that for this simulation the vertical dimension increases downwards.

We'll need the standard unit vectors, i,j. We use bold and overline to indicate a vector.


There are three vector forces acting on the bob:

Fg = m g j = gravity acting straight down
Fs = -k S (sin θ i + cos θ j) = the spring pulling (or pushing) along the line from bob to anchor point.
Fb = -b (vxi + vyj) = damping (friction) acting opposite to the direction of motion of the bob, ie. opposite to its velocity vector.

Summing these forces and using Newton's second law we get:

m a = Fg + Fs + Fb
m (axi + ayj) = m g j - k S (sin θ i + cos θ j) -b (vxi + vyj)

We can write the vector components of the above equation as separate equations. This gives us two simultaneous equations. We also divide each side by m.

ax = -(k/m) S sin θ - (b/m) vx    (eqn 1)
ay = g - (k/m) S cos θ - (b/m) vy

These are essentially the equations of motion. It only remains to show how S sin θ and S cos θ are functions of the position of the bob. The displacement of the spring S is the current length of the spring minus the rest length.

S = L - R

The length is easily derived using the pythagorean theorem from the position of the bob, u, and the position of the anchor point, T.

L = √((ux - Tx)2 + (uy - Ty)2)

The sine and cosine of the angle are given by the following:

sin θ = (ux - Tx)/L
cos θ = (uy - Ty)/L

Numerical Solution of the 2-Dimensional Spring

To solve the equations of motion numerically, so that we can drive the simulation, we use the Runge-Kutta method for solving sets of ordinary differential equations. We only need to convert the two second order equations (1) to four first order equations.

ux' = vx
uy' = vy
vx' = -(k/m) S sin θ - (b/m) vx
vy' = g - (k/m) S cos θ - (b/m) vy

We also keep in mind that S sin θ and S cos θ are functions of the position of the bob, ux, uy, as given above.