This java applet is a simulation that demonstrates the motion of oscillators coupled by springs. The oscillators (the "loads") are arranged in a line connected by springs to each other and to supports on the left and right ends. The mass of each load and the stiffness (spring constant) of each spring can be adjusted.

At the top of the applet on the left you will see the string of oscillators in motion. By default, the number of loads is set to 5. To move the loads, click on one of them, drag it slightly to one side and then release it.

Below the string you will see a graph showing each normal mode's contribution to the motion. There are two sets of terms; on top are the magnitude terms, which shows the amplitude of each normal mode, and on the bottom are the phase terms. Low-frequency modes are on the left and high-frequency modes are on the right.

If you move the mouse over one of the modes, it will turn yellow, and the motion of the corresponding mode will be drawn underneath the line of oscillators in yellow (unless it's too small to see). So if you move the mouse over all the modes, you can see each of the terms individually.

(One thing to keep in mind when looking at the magnitude of each mode is that the scale is not linear. If it were linear, it would look like the higher-frequency modes all had zero magnitude because their contribution is so small. For small magnitudes, the scale is logarithmic; then about 1/4 of the way up the scale it switches to linear. The same is true for negative magnitudes.)

You can modify the motion of the string in one of two ways. You can click on it directly, or you can modify the normal modes.

The Setup popup allows you to view some predefined interesting cases. The first two choices, 5 masses and 2 masses are very simple. The next two demonstrate weak coupling; in both cases, you will see that the load on the right will oscillate for a while, and then stop; meanwhile the one on the left will oscillate, and then will stop while the right one oscillates, etc. This is because the two active modes have frequencies that are very close, causing beats to occur. Another way to look at it is that energy is slowly transfered from the left load to the right and then back again.

The Mouse popup controls what happens when you click on the string. The default setting is Pull string, which causes the load you click on to be pulled to either side. If you set the popup to Move load, you can edit the position of a single load without disturbing the others (until you release the mouse button).

If you set it to Modify masses, you can modify the mass of one of the loads by clicking on it and dragging the mouse up or down. The size of the load will be changed to match its mass. If you set it to Modify springs, you can modify the spring constant of one of the springs by clicking and dragging up or down. Springs with a high spring constant have a reddish color.

The Reset Positions button allows you to reset the positions of all the loads to equilibrium.

The Reset Masses button allows you to reset the masses of all the loads to the default. The Reset Springs button allows you to reset the springs to the same spring constant.

The Stopped checkbox allows you to stop or start the simulation.

Occasionally two loads will collide, or one of the loads will hit the edge. If this happens, the loads involved will turn red briefly, and the normal modes will be changed to match the new motion of the string. By default, the loads will collide inelastically, causing them to move at the same velocity until they are pulled apart by springs. The Elastic Collisions checkbox allows you to change this so that they collide elastically.

When the Lissajous Figures checkbox is checked, and there are two loads (or two active modes), then the amplitudes of these modes (their normal coordinates) will be plotted, producing a Lissajous figure. This makes the most sense for cases of weak coupling.

The Simulation Speed slider controls how fast the simulation will proceed.

The Damping slider controls how much damping there is. Damping is a force that slows the string down. It is proportional to the speed of the string, so high-frequency modes are damped more than lower ones.

The Number of Loads slider will adjust the number of loads on the string. This can be set as low as one. If you reduce the number of loads then you also reduce the number of normal modes.

Java Version.

Huge thanks to Bob Hanson and his team for converting this applet to javascript.