Consider the problem of three bodies two of which having mass M, one of them having mass m. Body m is in the middle between the other two, coupled to them by two equal linear springs in rest. Now fix the two bodies M and move body m for a small amount perpendicular to the connection line. Now let loose the three of them.

The solution is trivial when we assume m to be finite and M to be infinite (or vice versa), or when the spring constant is 0.

But the problem is so symmetric, that there might be hope to get a closed or approximate solution even for finite m >> M, M >> m, or even M = m?

  • $\begingroup$ Solution to a three-body problem exist when the three bodies are aligned as in your example. $\endgroup$ – Cedric H. Nov 10 '10 at 13:21
  • $\begingroup$ Can you give me a reference, please? $\endgroup$ – Hans-Peter Stricker Nov 10 '10 at 13:23
  • 8
    $\begingroup$ Just a note that this is not what physicists usually mean when they talk about the "three-body problem." These are coupled oscillators. $\endgroup$ – David Z Nov 10 '10 at 16:48
  • $\begingroup$ I have expanded my answer to take your comment into consideration :) $\endgroup$ – Flaviu Cipcigan Nov 11 '10 at 14:14

So far the 2 highest rated answers appear to be looking at the case where $m$ is displaced in line with $M$ - $m$ - $M$, whereas the question asks what happens when the displacement is perpendicular to the connection line. I'll attempt to answer that.

I'll assume that the rest position of the masses were all along the x-axis. So after the initial displacement, we have $M_1$ and $M_2$ at $(-L, 0)$, $(L, 0)$ respectively, and $m$ at (0, $d_0$).

By symmetry, $m$ must always remain at $x = 0$, so its position is $(0,d)$. Assuming small displacements, $M_1$ moves about $(-L, 0)$ by small amounts $x, y$, so its position is $(-L + x, y)$. Correspondingly, $M_2$ is always at $(L -x, y)$. Displacements $d, x, y$ are all functions of time $t$.

To calculate the forces on the masses, we need to know the angle and extension of the spring at any given time. So $\theta, e$ as functions of $d, x, y$.

For small displacements, $Lsin\theta = d - y$ and $sin\theta \approx \theta$. So $$\theta = (d-y)/L$$

To find extension $e$, we start with the triangle $(-L+x, y), (0, y), (0, d)$ which has sides of length $$X = L-x$$ (parallel to x-axis), $$Y = d-y$$ (along y-axis) and $$H = L+e$$ (the hypotenuse).

Note that $Hcos\theta = X$ and $cos\theta \approx 1 - \theta^2/2$ for small $\theta$. This gives $Lcos\theta + e cos\theta = L - x$, expanding to $L - L\frac{\theta^2}{2} + e -e\frac{\theta^2}{2} = L -x$. The $L$s cancel from both sides, and we can also ignore $e\frac{\theta^2}{2}$ as it is of order $small^3$, compared to the other values which are order $small$ ($L\frac{\theta^2}{2}$ is of order $small$ as it is $large * small^2$). This leaves us with $$e = L\frac{\theta^2}{2} - x$$


The force in each spring $F = ke$ allows us to write equations of motion for each mass.

$m$ is the simplest, since we know motion is constricted to be along the y-axis by symmetry. Force on $m$ is twice the spring force (2 springs) applied at an angle of $\theta$, and in the opposite direction to the displacement $d$. So $$F_{m,y} = -2 (ke)sin\theta = -2k (\frac{(d-y)^2}{2L} -x) \frac{d-y}{L}$$

This gives us the acceleration of $m$ from $F = ma$, as $$\ddot{d} = -\frac{2k}{m} (\frac{(d-y)^2}{2L} -x) \frac{d-y}{L}$$

Next, the forces on $M_1$, resolved into $x$ and $y$ components. $$F_{M_1,x} = (ke) cos\theta = k (\frac{(d-y)^2}{2L} -x) (1 - \frac{(d-y)^2}{2L^2})$$ Which gives us $$\ddot{x} = \frac{k}{M} (\frac{(d-y)^2}{2L} -x)(1 - \frac{(d-y)^2}{2L^2})$$

And in the $y$-direction: $$F_{M_1,y} = (ke)sin\theta = k (\frac{(d-y)^2}{2L} -x) \frac{x-y}{L}$$ and so $$\ddot{y} = \frac{k}{M} (\frac{(d-y)^2}{2L} -x) \frac{x-y}{L}$$

The forces acting upon, and motion of, $M_2$ is a reflection of $M_1$.


Sadly solving these equations is beyond my mathematical capability - would be very interested to see what the outcome is. The equations are simple enough that it should be trivial to solve numerically - if I have time over the next few days I'll try to write a simulation for it to report back on the behaviour.

We're going to have the central mass moving up and down, and the end masses moving elliptically (and symmetrically or course). I strongly suspect the motion will be chaotic - it looks similar in terms of degrees of freedom to a double pendulum.


This can be solved without much calculation. First notice that by conservation of momentum, the momentum will always be zero, and the center of mass won't move.

Next, ask what the forces are at the moment when we let all the masses go.

The little mass, (let's say it was pulled to the right by a distance $\Delta x$) experiences a force to the left, coming half from each spring. The force is $2k\Delta x$. By Newton's third law, the big masses feel equal and opposite forces to the right of size $k \Delta x$.

The forces on the two big masses are the same because the springs are compressed/extended the same amount. As the little mass moves, the compression/expansion of the two springs remains the same. Thus, the two big masses always move together. The little mass is forced to move opposite the two big masses to keep the total momentum of the system zero.

The motion of the system is that the two big masses oscillate one way while the little mass oscillates the opposite direction, all with the same frequency. It looks a little bit like a ping-pong ball bouncing back and forth between two large paddles, with the paddles moving in unison, but always coming forward to smack the ping pong ball when it gets close.

The amplitude of the big mass oscillation is $m/2M$ times the amplitude of the small mass (from the condition that the center of mass is stationary).

The frequency is $\sqrt{k_{eff}/M}$, with $k_{eff}$ an "effective spring constant" felt by the big mass. When the big mass moves 1cm, it does not contract the spring 1cm, because the little mass is moving the opposite direction and contracting the spring even more. Instead, the spring contracts $1cm*(1+2M/m)$, so the effective spring constant is $k_{eff} = k(1+2M/m)$ and the frequency of oscillation is $\sqrt{k(1+2M/m)/M}$.

This is an example of a "normal mode" as mentioned by Flaviu.

  • 4
    $\begingroup$ Just a minor technicality, but I think the question has the small mass starting out displaced perpendicular to the line of the springs, not toward one of the big masses. $\endgroup$ – David Z Nov 10 '10 at 21:58
  • $\begingroup$ You're right. I read the question incorrectly. At the moment I don't have time to re-do the answer. $\endgroup$ – Mark Eichenlaub Nov 10 '10 at 22:21
  • 1
    $\begingroup$ I think it actually works out to the same frequency, except for a factor of 2 according to a quick calculation I just did. (I like your reasoning, by the way) $\endgroup$ – David Z Nov 11 '10 at 1:05
  • $\begingroup$ I've been looking into this some more and it seems like my quick calculation was actually completely invalid. At this point all I have is a hunch that the general nature of the motion is the same in 2D, but no math to back it up. (Yet, anyway) $\endgroup$ – David Z Nov 15 '10 at 8:20

If you restrict the motion of the bodies to 1D, then the problem is pretty easy -- you can just solve it by changing to normal mode coordinates. These are collective coordinates, each normal mode coordinate being, in general, a linear combination of the coordinates of all the particles in the system. This transforms the three coupled oscillators (which means energy having terms of the form $x_i x_j$) to three uncoupled oscillators (energy only depending on $q_i^2$), each having a different frequency. The trick is actually similar to completing the square in the total energy of the system, to bring it to a $\sum_i \frac{1}{2} m_i \omega_i^2 q_i^2$ form.

You can solve exactly for these simple harmonic oscillators and then the general solution are going to be a linear combination of these normal modes.

In general, if the particles are allowed to move in all three dimensions, the system should be chaotic. Your initial conditions do restrict the motion in 1D, so this shouldn't be a problem.

Also note that solutions (albeit approximate) for these kind of problems exist for even $10^{23}$ particles, for example if you consider the Debye model, which models the vibration of solids as a lattice of coupled (quantum) harmonic oscillators.

EDIT: Expanding on Hans' comment, even you choose to represent your problem in a 2D coordinate system, the initial conditions and motion will restrict it to 1D.

To see that, let's consider taking our x axis to be the line joining the three particles and fix the origin of the coordinate system on one of the mass $M$ particles. The initial conditions can be written as follows:

$x_1(0) = 0$, $m_1 = M$

$x_2(0) = L + d$, $m_2 = m$

$x_3(0) = 2 L$, $m_3 = M$

$y_1(0) = y_2(0) = y_3(0) = 0$

where $d$ is the displacement of particle 2 along the line joining 1 and 3 (the $x$ axis) and $L$ is the natural length of the spring.

As initially all particles are at rest, and all forces are along the $x$ axis, the $y$ coordinate of either particle cannot change and the situation remains identical for all subsequent times.

Yes, this is an idealised model and in real life you never get the particles to perfectly move in 1 dimension. This is because the general 2D motion of 3 particles connected by springs is chaotic -- a small change in the initial conditions (let's say $y_2 = \epsilon$, which is small) will lead to a large change in the displacements at time $t$.

Apparently, there is a series solution for the three body problem, though I am not sure about the exact assumptions that govern it and if it is applicable to the case of three particles linked by springs free to move in 2D. In the case of all initial velocities zero, this solution wouldn't apply as it "is convergent for all real t, except initial data which correspond to zero angular momentum".

  • $\begingroup$ I am not quite sure if you really handled my question, which was in 2D? $\endgroup$ – Hans-Peter Stricker Nov 11 '10 at 7:31
  • $\begingroup$ Sorry to say, but you still missed the point. I explicitely asked for a perpendicular displacement (which makes 2D necessary). This reads: $x_1(0) = 0, x_2(0) = L, x_3(0) = 2L, y_1(0) = 0, y_2(0) = d, y_3(0) =0$ $\endgroup$ – Hans-Peter Stricker Nov 13 '10 at 14:52

Let $\vec{r_1},\vec{r_3}$ be position vectors of the bodies with mass $M$.
Let $\vec{r_2}$ be position vector of the body body in the middle with mass $m$.

$L$ is the length of spring at rest.


$M\ddot{\vec{r_1}} = k(|\vec{r_2} - \vec{r_1}| - L) \frac{\vec{r_2} - \vec{r_1}}{|\vec{r_2} - \vec{p_1}|} = \vec{F_{12}} $

$M\ddot{\vec{r_3}} = k(|\vec{r_2} - \vec{r_3}| - L) \frac{\vec{r_2} - \vec{r_3}}{|\vec{r_2} - \vec{r_3}|} = \vec{F_{32}} $

$m\ddot{\vec{r_2}} = -(\vec{F_{12}} + \vec{F_{32}})$

I don't know how to solve this. Take a look at this and this.

  • $\begingroup$ I keep thinking your $\vec{p}$ is momentum ;-) $\endgroup$ – David Z Nov 10 '10 at 21:58
  • $\begingroup$ Changed $\vec{p}$ to $\vec{r}$. Hope it removes the confusion! Feel free to edit the answer. Thanks :) $\endgroup$ – Pratik Deoghare Nov 11 '10 at 11:18

I happen to have a 2d dynamics simulator that I hoped my game programming kids might expand into a game physics engine. In any case it took about a minute to set up the problem: *timestep $ dt ncyc .01 25 *nodes $ node x y mass vx vy 0 -1. 0.0 1.e0 .0000 1 -.0 0.1 .1 .0000 2 1. 0.0 1.e0 .0000 *elements $ nel n1 n2 n3 l0 st damp 0 0 1 1.0 1. 0.000 1 1 2 1.0 1. 0.000 *history_nodes 0 1 *end You should note that there is some nonlinearity in the system, as the geometric relation between the vertical displacement changes the spring length nonlinearly (except for small oscillations). The bending mode also nonlinearly couples to the strictly horizontal mode, and the frequency of the later mode is several times higher than for the bending mode. So you get both modes excited, although mostly the vertical one.

  • $\begingroup$ Actually it is more interesting behavior. The vertical motion is not really harmonic, the restoring force goes as Y displacement squared, not linearly, so the frequency becomes longer and longer as the amplitude is decreased. $\endgroup$ – Omega Centauri Dec 21 '10 at 17:11

Now that I've had time to properly think about it. The problem has multiple zero energy modes, and at least one of these is excited by the proposed initialization. But to cut to the chase:

Give the initial configuration masses at x=-1,0,1. This is the equlibrium, so the springs at length=1 have no tension. Now we have three rigid body modes: translation in the X or Y directions. These are zero-energy modes, as the only energy is kinetic which scales as Vsquared, not as V. Similarly we have rotation about the Z axis. This is also a zero energy mode. By symmetry we aren't exiting any of these modes. Then consider the mode represented by the center mode moving up, and the end modes moving downwards. An infinitessimal perturbation produces no internal energy, (spring tension is sqrt(1+deltaY**2)-1, which is quadratic in deltaY, so this is also zero energy mode. So we could have one endnode rotationg counterclockwise, and one rotating clockwise, with no restoring forces to oppose this motion. Initial problem symmetry does not rule out this mode. We have two modes with only x displacements, a symmetric one, where the center mass is fixed and the end nodes move in and out. We also have a mode where the center particles moves right and left, this modeshape would be antisymmetric in x. We should have a sixth mode (because 3 2D particles have six degrees of freedom), but I can't seem to envisage it (alhough an eigenanalysis should reveal it). In any case at least one of these zero energy modes is excited by the initial perturbation. And the restoring forces are nonlinear (the square or great power of the perturbation), so interesting nonlinear behavior will result.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.