Collisions And Momentum

Collisions occur frequently in both real life and in games. Modeling collisions correctly can make or break a game. Model collisions poorly and it will be difficult for your players to believe in the world you’ve created for them.

(Photo from Madden 2007)

Learning Objectives

  • Define the terms momentum and impulse.
  • Explain what the coefficient of restitution is and how it affects colliding objects.
  • Compare the differences and similarities between elastic and inelastic collisions
  • Implement the concepts of momentum and energy to model the collision between objects.


Momentum is the measure of a body’s tendency to remain in motion. This quantity is proportional to both the mass and the velocity of the object. Mathematically, it is the product of the mass and the velocity.

\begin{align} \vec p = m \vec v \end{align}

Notice that this is a vector equation! In this way, momentum is different from kinetic energy, which is a scalar. When Newton wrote his 2nd Law of motion, he was really meaning something more general than $\vec F = m \vec a$. Here’s a excerpt from Newton’s famous book Philosophiae Naturalis Principia Mathematica where Newton describes his 2nd Law of Motion:

“The alteration of motion is ever proportional to the motive force impressed; and is made in the direction of the right line in which that force is impressed.”

We can use this notion of momentum to rewrite our previous notion of Newton’s 2nd Law as

\begin{align} \vec F = \frac { \Delta \vec p } { \Delta t } \end{align}

When two objects collide, momentum may be transferred from one to the other. The total momentum of the system, however, will always remain the same. If one object loses momentum, the other object must gain momentum. Furthermore, the amount that one loses and the other gains must be equal. This is the foundation for the Conservation of Linear Momentum. This conservation law states that the total momentum of a system before a collision must equal the total momentum of a system afterwords. In the language of algebra, this is

\begin{equation} m_1 v_{1i} + m_2 v_{2i} = m_1 v_{1f} + m_2 v_{2f} . \end{equation}

There are two different types of collisions, elastic and inelastic. The most important difference between the two is that elastic collisions conserve kinetic energy. Elastic collisions involve two objects that collide and bounce off of each other while retaining their original shapes. No physical collision between two objects is ever exactly elastic, but two billiard balls colliding would be a great approximation of an elastic collision. Inelastic collisions involve a change in the system's total kinetic energy. With most physical collisions, the kinetic energy is used to deform the two object, create sound waves, and increase the temperature of the two object. An example of this type of collision would be the collision between a two pieces of putty or an automobile accident. Part of the system’s original kinetic energies used to deform the shape of the objects, generate sound, or to increase the temperature of the two objects. A perfectly inelastic collision is a special case in which the two colliding bodies stick together after the collision. They then move off as a single unit with the same velocity. Mathematically, this means the final velocities in Eq.(3) are equal and the equation can be rewritten as

\begin{align} m_1 v_{1i} + m_2 v_{2i} = \left( m_1 + m_2 \right) v_{f} . \end{align}

Real collisions are typically somewhere between the two cases of a perfectly elastic and perfectly elastic collision. The degree to which the collision is elastic can be described by the coefficient of restitution, $\varepsilon$. For a perfectly elastic collision, the total amount of kinetic energy is conserved. In a real collision, some of this kinetic energy is lost. By using the conservation of momentum and kinetic energy for an elastic collision, one can derive what’s called the Velocity Equation

\begin{equation} v_{2f} - v_{1f} = v_{1i} - v_{2i} . \end{equation}

When the collision is not precisely elastic, the right side of Eq.(5) is multiplied by coefficient of restitution. If $\varepsilon = 1$, the collision is perfectly elastic. If $\varepsilon = 0$, the collision is perfectly inelastic.

\begin{align} v_{2f} - v_{1f} = \varepsilon \left( v_{1i} - v_{2i} \right) . \end{align}

This means that one can use the same equation for both elastic and inelastic collisions, and therefore the same function block. You won’t need two separate routines by using the coefficient of restitution.
So far, only one-dimensional collisions have been detailed, but multi-dimensional collisions are simply a superposition of the two or three orthogonal directions. Eqs. (3) and (6) can be used to evaluate the final velocities in the x, y, and z directions separately. So long as the components of the initial velocities are known, finding the three-dimensional final velocities is simply a matter of applying Eqs. (3) and (6) three times, once for each direction.

Elastic Inelastic
Momentum $\vec{p_i} = \vec{p_f}$ $\vec{p_i} = \vec{p_f}$
Kinetic Energy ${KE_i} = {KE_f}$ ${KE_i} \neq {KE_f}$
Coefficient of Restitution $\varepsilon = 1$ $\varepsilon \neq 1$

One special type of collision is the reflection. Imagine a billiard ball colliding with a rail and bouncing off. Figure 1 shows a diagram of this type of collision. Here we assume the mass of the rail is vastly greater than the mass of the ball. In the case of the rail being aligned with a coordinate axis, as is shown in Figure 1, then Eq. (6) in the direction perpendicular to the rail becomes

\begin{align} v_{1i} = - \varepsilon \cdot v_{1f} \end{align}

The parallel velocity will remain the same. This is a special case. The surface with which an object collides is not always going to be aligned with a coordinate axis. To address the more general problem of an object bouncing off of a surface with any given orientation, we will need to do some more geometry, see Figure 2. As with the ball-rail problem, the component of the velocity parallel to the surface remains unchanged, while the velocity perpendicular to the surface is inverted as described in Eq. (7). Using this notion of parallel and perpendicular velocities, we can write the initial and final velocities as such,

\begin{align} \vec v_{i} = \left( \begin{array}{cc} v_{\parallel} \\ v_{\perp} \end{array} \right) , \end{align}


\begin{align} \vec v_{f} = \left( \begin{array}{cc} v_{\parallel} \\ - \varepsilon \cdot v_{\perp} \end{array} \right) . \end{align}

The change in velocity, given the above, is

\begin{align} \Delta \vec v = \vec v_{f} - \vec v_{i} = \left( \begin{array}{cc} 0 \\ - \left( \varepsilon + 1 \right) \cdot v_{\perp} \end{array} \right) , \end{align}

such that

\begin{align} \vec v_f = \vec v_i + \Delta \vec v \end{align}

The more general case of Eqs. (10) and (11) involve using the normal vector to the surface to find the perpendicular projection of the initial velocity vector.

\begin{align} \vec v_{\perp} = Proj_{\hat n} \vec v_i \end{align}
\begin{align} \vec v_{\perp} = \left( \frac {\left( \vec v_i \cdot \hat n \right)} { \left| \hat n \right| ^2} \right) \hat n \end{align}

However, since $\hat n$ is a unit vector, its magnitude is exactly one. This means we can simplify the above equation.

\begin{align} \vec v_{\perp} = \left( \vec v_i \cdot \hat n \right) \hat n \end{align}

The general form of Equation 10 now becomes

\begin{align} \vec v_f = \vec v_i - \left( \varepsilon + 1 \right) \left( \vec v_i \cdot \hat n \right) \hat n \end{align}

where $\hat n$ is the unit vector normal to the surface. This equation will work for either the 2D or 3D case since it’s only the perpendicular velocity that is changing.

Laboratory Procedures

  1. Write a function that will model the reflection of an object off of a plane surface. The inputs to the function should be the initial velocity vector for the object, the coefficient of restitution and the two vectors that define the plane.
  2. Demonstrate the execution of your code to your instructor: _
  3. Write a function that will model the collision between two objects in 1D. The inputs to the function should be the two initial velocities, the masses of the two objects, and the coefficient of restitution.
  4. Demonstrate the execution of your code to your instructor: _

Postlab Questions

  1. The code produced in Procedure 3 is applicable to the collision of two spheres in 3D space as well. When two spheres collide, the two centers of the spheres define a line of action. The final velocities along the line of action can be found using the same method used in Procedure 3, and the velocities perpendicular to the line of action remain unchanged. Describe a qualitative method for defining the line of action, and finding the parallel and perpendicular velocities for two spheres colliding in 3D space.
  2. Explain the behavior of two objects when they collide with a coefficient of restitution greater than one.
  3. If the coefficient of restitution is less than one, then kinetic energy is lost. Energy cannot be created nor destroyed, though, so where does this lost kinetic energy go?
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License