# PhysLab.net – Single Spring

This simulation shows a single mass on a spring, which is connected to a wall. This is an example of a simple linear oscillator.

*You can change parameters in the simulation such as mass, spring stiffness, and friction (damping). You can drag the mass with your mouse to change the starting position. If you don't see the simulation try instructions for enabling Java. Scroll down to see the math!
*
## Puzzles

Try using the graph and changing parameters like mass or spring stiffness to answer these questions about the spring simulation:

- What is the relationship between acceleration and position?
- How do mass or spring stiffness affect the relationship between acceleration and position?
- How do mass or spring stiffness affect the period or frequency of the oscillation?

You'll find the

answers below.

To show the graph and parameters, click on the "show graph+controls" button above. You can set what variables are shown on the vertical or horizontal axis by selecting from the pop-up menu above. To change a parameter, click on it, type the new value and hit the enter key.

## Physics

Define the following variables and constants

*x* = position of the block
*v* = *x*' = velocity of the block
*m* = mass of the block
*R* = rest length of the spring
*k* = spring stiffness
*b* = damping constant (friction)

A spring generates a force proportional to how far it is stretched (and acting in the opposite direction to the stretch)

*F*_{spring} = −*k* × stretch
If we adjust the coordinate system so that

*x* = 0 corresponds to the spring being unstretched, then the stretch of the spring is simply equal to

*x*. The spring force becomes

*F*_{spring} = − *k* *x*
In addition, there is a damping (friction) force that resists the motion. It is proportional to the velocity. So we add

*F*_{damping} = −*b* *v* to get the total force

*F* = *F*_{spring} + *F*_{damping} = − *k* *x* − *b* *v*
Combining this with Newton's law of motion

*F* = *m* *a*, and the definition of acceleration as the second derivative of position

*a* = *x*'' we have the

differential equation:

*m* *x*'' = −*k* *x* − *b* *v*
or equivalently:

*x*'' = − ^{k}⁄_{m} *x* − ^{b}⁄_{m} *x*'
| (1) |

Equation (1) is the equation of motion for the spring, defining exactly what happens over time.

You can actually see equation (1) visually if you turn on the graph in the simulation. Suppose there is no damping (set damping to zero). Then if you set the graph on the simulation to plot acceleration against position, you will get a straight line, with slope

= −*k*/*m*. So if you increase the stiffness of the spring, the line becomes steeper. If you increase the mass, the line becomes less steep.

## Numerical Solution

To solve this equation numerically (ie. by computer) we use the

Runge-Kutta method. To do so we need to convert the

second order differential equation (1) into a set of first order differential equations. Note that we can write the acceleration as the first derivative of velocity:

*x*'' = *v*'. Therefore we can express equation (1) as a system of two first order differential equations:

*x*' = *v*
*v*' = − ^{k}⁄_{m} *x* − ^{b}⁄_{m} *v*
This is the form that we need in order to use the Runge-Kutta method for

numerically solving the differential equation.

To begin the simulation, we initialize the two variables

*x*,*v* for their value at time

*t*=0. Then we use the Runge-Kutta algorithm to calculate the values of

*x*,*v* after a short time interval, and this continues indefinitely.

## Analytic Solution

An

analytic solution uses mathematics to find the solution instead of the brute force of the computer. The advantage is that we can get some more insight from the analytic solution, instead of having to analyze zillions of numbers that come from a numerical solution.

With no damping (

*b* = 0) and the block initially not moving, the analytic solution is given by

where

*x*_{0} = initial position of the block and

*t* = time.
The period of the oscillation is the time it takes to repeat. From the solution we see that the oscillation repeats when

, and so the period is

The frequency is the inverse of the period:

frequency =
So we predict that

- increasing mass by 4 times doubles the period and halves the frequency;
- increasing spring stiffness by 4 times halves the period and doubles the frequency;

You can check these predictions by modifying the parameters on the simulation (you'll need a stopwatch to time the frequency).

You can view a page with the

derivation of the analytic solution.

## Puzzle Answers

What is the relationship between acceleration and position?

Answer: It is a linear relationship as given by the equation
*x*'' = − ^{k}⁄_{m} *x*
where *x* = position, *x*'' = acceleration, *m* = mass, and *k* = spring stiffness.

How do mass or spring stiffness affect the relationship between acceleration and position?

Answer: From the equation
*x*'' = − ^{k}⁄_{m} *x*
we know that there is a simple linear relationship between acceleration and position. The mass and spring stiffness affect the slope of this line.

- Increasing mass makes the line
*less steep*.
- Increasing spring stiffness makes the line
*steeper*.

How do mass or spring stiffness affect the period or frequency of the oscillation?

Answer: The analytic solution is
and the frequency is given by
frequency =
So we predict that

- increasing mass by 4 times doubles the period and halves the frequency;
- increasing spring stiffness by 4 times halves the period and doubles the frequency;