How on Earth Did Aaron Judge Bean That Stadium Roof? Physics!

Stadiums are designed by engineers so that balls won't hit them—but physics finds a way.
Image may contain Clothing Apparel Team Sport Team Sports Sport Softball Baseball Glove and Baseball Glove
Getty Images

During a recent Home Run Derby, Aaron Judge did something that no one thought was possible. He took a swing and hit a ball so hard that it collided with the ceiling at Marlins Park. The ball hit the ceiling about 170 feet above the ground. The height of the ceiling had been designed by engineers so that balls wouldn't hit it—but clearly, they can.

OK, I don't really want to talk about sports. I want to talk about physics. Just how would you even calculate the height of a baseball's trajectory? I'm not just going to show you how to do it, I'm going to let you do it too.

Force and Momentum

I'm going to start with the most important physics idea needed for the trajectory of a baseball: the momentum principle. This says that the total force on an object is equal to the time rate of change of the momentum. Momentum is the product of mass and velocity; both it and the force are vectors.

If you know the forces on an object, you can find its change in momentum. With the momentum, you get the velocity and then can find the new position. That's basically how it works.

Two Forces on a Baseball

After a baseball is hit by the bat, it only has two forces on it (OK, approximately two forces. The first is the gravitational force, a downward force that depends on the mass of the object and the value of the gravitational field (g = 9.8 N/kg). The second force on the ball is a little more complicated: It's the air resistance force.

Although you don't think about it much, you've felt this air resistance force before. When you stick your hand out of a moving window or when you ride on a bike you can feel the force as you move through the air. One of the simplest models for this force uses the following equation:

That might look complicated, but it's not too bad. The ρ is the density of air (about 1.2 kg/m3 in most cases). The cross sectional area of the object is A and C is the drag coefficient that depends on the shape of the object. Finally, there is the velocity. This model says that as the velocity increases, the air resistance also increases.

But you might notice one little problem with the above expression: It's not a vector. I left that part off for simplicity, but yes—air resistance is a vector. The direction of this force is always in the direction opposite of the velocity vector.

I can find the values of all of these parameters for air drag, and the mass and size of the ball are easily found online. For this calculation, I will use a drag coefficient of 0.3.

Calculating Trajectory

Isn't this a projectile motion problem? Couldn't you just use the kinematic equations to find the range of a ball after it was hit? Actually, no. This isn't projectile motion because we are including the drag force. Projectile motion problems have an object with the only force being the gravitational force—and this would be approximately true for baseballs at low speeds. We are clearly not dealing with low-speed balls.

You can't use the kinematic equations because those assume the acceleration is constant. However, as the ball slows down or changes direction the air resistance force also changes. With this non-constant acceleration, there is really only one option: Create a numerical solution.

In a numerical solution, we essentially cheat. Since the problem is that forces are not constant, we can pretend they are constant if we take just a tiny time interval (say 0.01 seconds). During this short time, the velocity and thus the air resistance won't change too much, so I could use the kinematic equations (for constant acceleration). This constant force approximation works—but it leaves us with another problem. If I want to calculate where the ball is after 1 second, I would need to do this calculation 100 times (100 x 0.01 = 1). And this is where the computer becomes useful (but not required).

If you want to go over the details of creating a numerical calculation, take a look at this post that models the motion of a spring. Otherwise, let's just jump right into the code. Notice that you can indeed change things in the code and run it again—that's the fun part. Just click the "play" to run it and the "pencil" to edit.

This code is written in Python. That means that the number sign (or as my kids call it, the hashtag) at the beginning of line makes it a comment that is ignored by the program. I added a bunch of comments to point out things that you might want to change (like the initial velocity and the launch angle). Go ahead, change something. You won't break it.

Homework

Since I gave you the numerical calculation, I also have to give you homework.

  • Find a launch speed and angle that would produce a home run. You will need to find the home run distance for a particular park. Yes, you should probably find a way to include the height of the wall.
  • What is the minimum launch speed that would hit the rafters for Marlins Park?
  • For a given speed, what angle gives the maximum range? No, it's not 45 degrees—that's only for motion with no air resistance.
  • What would happen if you increased the density of air by just a little bit? Does it make a huge difference?
  • My calculation uses a drag coefficient of 0.3—but this is just an approximation. In fact, the drag coefficient changes with the velocity of the ball. See if you can modify the code to include a better drag coefficient. This site might be a good place to start to figure out how to change that coefficient.
  • What about the Magnus force? This is another force due to the interaction between the air and a spinning object. See if you can add that force to the numerical calculation.