If you want to be a Major League Baseball pitcher, you need to be able to throw a ball *really* fast—like 85 to 100 miles per hour. The faster the pitch, the less time a batter has to react and swing the bat, which means you have a greater chance of getting the ball past him for a strike. (For folks who aren’t baseball fans: A strike is when the batter swings and misses, or fails to swing at a ball that’s in the strike zone. Three strikes, of course, and you’re out.) This requirement has considerably dampened my dream of pitching in the major leagues.

But … is it possible to throw a strike with a much lower speed?

In fact, quite a few players have thrown strikes with very low pitch speeds, in one case as low as 31.1 miles per hour, according to the CodifyBaseball account on Twitter. Sometimes when a game runs into extra innings and a team uses up all their relief pitchers, a manager will send a position player to the mound. These guys who aren’t regular pitchers typically throw the ball at lower speeds—but they can still get strikes.

Let’s use Python to model some pitches and see how difficult this is.

Fast Pitch Trajectory

Once a ball leaves the pitcher’s hand, it’s going to move along a path governed by two forces: the downward-pulling gravitational force and the backwards-pushing air drag force. The combination of these two forces will change the ball’s velocity as it moves toward home plate.

The gravitational force is pretty easy to deal with, since it’s a constant force that depends only on the mass of the ball (which is about 0.144 kilograms) and the gravitational field (g = 9.8 newtons per kilogram). The drag force is more challenging, because the magnitude and direction of this force depend on the velocity of the ball. The problem is that a net force changes the ball’s velocity—but now one of these forces (the drag force) *depends* on the ball’s velocity.

Pretty much the only way to model this motion is with a numerical calculation in which the motion is split into tiny time intervals. During each of these intervals we can assume that the forces are constant. With a constant force, we can find the change in velocity and position of the baseball. For the next time interval, we can find the new force—because the velocity changed—and then repeat the whole process.

This might seem like a “physics cheat,” but there are countless problems that can only be handled this way. Some of my favorite examples are solving the three-body problem (which governs things like the interactions of three stars in space), or modeling the Earth’s climate, or modeling the quantum mechanics of any atom other than hydrogen.

But before we do that, let me address two common questions. First: Do we really need to include the air drag force?