College football season is coming to an end (I guess technically, the season is over - it is bowl season). Anyway, this is something I wanted to do a long time ago, but I kept getting side tracked. If I don't do it now, I will never do it. Most people know that a ball without air resistance (traditional projectile motion) goes the farthest if you throw it at a 45 degree angle. What if there is air resistance? Why is 45 the best angle without air resistance? What other questions are there?

I posted about projectile motion before - so you might want to start there. When people say "projectile motion", typically, they mean motion of an object only under the influence of a constant gravitational force. This gives an acceleration of -9.8 m/s^{2} in the vertical direction and zero acceleration in the horizontal direction. I will start with this and maybe I can show that the maximum range occurs at 45 degrees. I will then model this with vpython. Finally I will add air resistance and see what happens. Are you ready?

### Projectile Motion - no air resistance

If there is no air resistance, then I can use the kinematic equations for both the x- and y-directions:

Also, if I always start the time from t = 0 seconds, then I can replace ?t with just t. Note that I am using x and y to represent the position at the end of the time interval. I replaced the vertical acceleration with -g (as is commonly done). So, how find out how far this object will go? First, I will assume it starts and ends at y = 0 meters (on level ground). Also, I will assume that the ball is thrown with an initial speed v_{0} at and angle ? above the horizontal. This will give the initial x- and y-velocities:

Since there is no acceleration in the x-direction, the initial x-velocity is the same as the final x-velocity and the same as the velocity anywhere in between. It just doesn't change. So, what else do I know? I know x_{0} = 0 meters (will I don't know this as much as I choose it to be true) as well as y_{0} = 0 meters. The final y position is also 0 meters. The final x-position is what I am trying to find. As I discussed previously, the way to solve these projectile problems is to realize that there are actually 2 kinematics problems. A 1-dimensional kinematics problem in x-direction and a 1-D problem in the y-direction. The only thing these two problems have in common is the time. The time it take for the x-motion is the same as the time it takes for the y-motion (because really, it's the same motion). I will have to use the y-motion to solve for the time and then use that time in the x-motion. Here is the y-motion will all the stuff I have said plugged in (forgive me for writing zero with no units - I am too lazy).

Now, I can use this expression for time in the x-motion:

What does this expression for the final x position mean? Well, first it DOES have the correct units (units of meters). Also, what if I throw the ball at a 90 degree angle (straight up)? If I plug in ? = 90 degrees, sin(90) = 1, but cos(90) = 0. So, the range is 0 meters. Also, if I throw the ball at 0 degrees, then cos(0) = 1, but sin(0) = 0. Don't confuse this with throwing a football completely horizontal, it WILL have a non-zero range. This is because it is not thrown from the ground, but rather some distance (like 1.5 meters) above the ground). In this range calculation, I am neglecting the position above the ground because the ball will approximately be caught at the same level it is thrown. So, do I have enough to answer the question - what is the angle for the maximum range? Well, I could take the derivative of the range function with respect to ? and do a max-min problem but I want this to be accessible to those without calculus. A plot of cos(?)sin(?) from ? shows this:

Also, I can (to further overkill the point) create a plot of the trajectory (x position vs. y position) for a ball thrown at different angles. This is done with vpython.

Here the angle is changed by 5 degrees for each run. Notice that 5 degrees goes the same distance as 85 degrees. This is because sin(5)cos(85) = sin(85)cos(5). Also, notice that the maximum angle does not depend on the initial velocity (magnitude). This can be seen in the above derivation. Ok - this post is longer than I expected. I will break it into two and end here. In part II, I will add air resistance and see what happens.

- Log in to post comments

Rhett,

Beautiful stuff you post here. Have you ever considered to do a "textbook" or at least some kind of tutorial for those of us who want to learn to code in vpython?

I mean, simple stuff because you should't have much time to do it. Just an idea. Some post with the basics.

Keep up with the good work and greetings from Portugal. =)

I turned to this site to see how far you can throw a football, and I got "Good Will Hunting".

This RULEZ and ROX! :)

Nicholas A.

GREAT!!!!!!!!!!!!!!! but i don't uderstand all that Yo=y stuff could you TRY to make it more simple

(DON'T BLAME ME I'M ONLY 10)

But isn't true that if you are throwing from a higher height that you will get better results if you throw at a lower degree?