Finding the Maximum Range

Return to Contents

Now we would like to determine which angle will cause our projectile to travel the greatest horizontal distance. For that, observe that the correct angle will be that for which

Maximization Strategy

 

 

This is because if we imagine that we draw a graph of the range as it depends on then we expect that at the point where it attains a maximum (largest) value the tangent line will be horizontal. If this is not clear then return to the position and velocity portraits page of the previous Chapter.

How do you calculate the horizontal distance traveled by the projectile, given initial altitude = 10 meters, speed V and angle ? Since the horizontal velocity is unaffected by gravity (in principle), this distance must be where we determined that

 

 

or

 

 

And this simplifies to

 

 


since

Actually, you do not have to imagine this. If you go to the calculator and change the graph2D settings, by right clicking on the screen to get the menu, and make the following changes: Settings, Horizontal Extent, from 0 to pi/2 and Settings, Rulingst, x = 0.1 and y = 100.

Then type the following in the command line and press Enter after each line.

You will see:

The graph is not a parabola, but it is almost one. The largest value occurs (the graph becomes horizontal) at about 0.7642 as you can see by checking Trace. We will show a better way to do that below.

To get the equation for that you must solve for in order to maximize the distance, you must differentiate

 

 

with respect to . So

Now when we set this derivative to 0 we will see that we can cancel and g to finish with the equation

This would be a very difficult equation to solve exactly. We will not even try. But consider this. Suppose that instead of 10 meters, the initial height was 0 meters (launched from the Earth's surface). In this case, write down and solve the equation for the angle that gives the greatest horizontal distance exactly. You will find that the answer is 45 degrees. We will solve the equation below. Real problems do not generally have such tidy solutions. In fact, for our problem we do not even know

One may approach an equation like this by approximating using the exploration on this page. You may use this approach. You saw that if the initial height was 0 instead of 10 meters, it was easy to solve for . Now, substitute that angle into your equation. You do not get 0, the answer is either positive or negative. So try a nearby angle for which the sign of your answer is different from the sign of your first guess. The correct answer is probably between these two. So take the average of these, and let that be your next guess. Continue in this way until you are satisfied that your answer is close enough.

Exploration: Approximating the range

This page is similar to the previous one. Here, you may experiment with ballistic projectiles to discover how far they travel before returning to ground (their range), depending on three things:

Cannon height: This is the altitude above the ground at which the cannon is placed. The height is measured in meters, and you determine this height by adjusting the slider at the upper right:

Initially, the height is 0, or ground level. As you move the slider, the height changes. To make fine adjustments to the slider value, click on the thumb, and then press the left or right arrow keys on the keyboard. Finally, you may set an absolute value by hand if you right click on the slider to get its menu, then select Settings, and type in the Current Value desired.

Cannon speed: This is the absolute speed in with which the ball leaves the cannon. Initially, it is set to

 

 

As you change the speed the size of the cannon (at the lower left of the Graph2D) changes to reflect that.

Cannon angle: This is the angle, measured in degrees, that the cannon makes with the ground. Initially it is set to 30 degrees, and as you move the slider between 0 and 90 degrees, you will see the cannot rotate to reflect the change. If you choose an angle larger than 90 degrees, the system will use 90 degrees.

You may fire the cannon at will by pressing the Fire Cannon button. If you check the Sound? checkbox, then you will hear it fire. To clear the screen, press Clear.

You will see the trajectory of the ball in the Graph2D

which is scaled from -50 to 500 meters in each direction. You may also zoom-in around a rectangle that you draw by pressing the In button, then clicking the mouse on the upper-left corner of the new window and dragging it to the lower right corner, and releasing it. You may do this repeatedly, and to zoom out one step, just click Out. To zoom back to the start, click Out repeatedly. If you check Trace? then the coordinates of the mouse will be reported in the adjacent field as you move it around.

The following information which is different from the previous page, is reported after each trial:

You are told the maximum range attained in meters (the horizontal distance traveled), and the time that passes before the projectile returns to height 0 (crash time) in seconds.


Let's check our range formula in the calculator. Click and define a function range(v,a) of two variables: v (speed of projectile) and a (angle measured in degrees). The definition will be:

We will supply the angle a in degrees and so we apply the built-in radian function to convert that to the radians that the trigonometric functions expect. At the command line define the function and press Enter.

Range(v,a) := (v^2*sin(2*radian(a))+2*v*cos(radian(a))*sqrt(v^2*sin(radian(a))^2+20*g))/(2*g);

Now, let's try it out. Return to the Maximum range page, just click to return to the Contents page, then select Maximum range attained. Set the cannon at height 10 meters, set the angle at 30 degrees and set the velocity at 50 meters/sec. Fire the cannon. The system reports:

So the time in the air is 5.4748058 seconds, just as our formula on the previous page predicted. Now, return to the calculator and calculate range(50,30).

calc range(50, 30);

and the system reports: 237.0660483. Try some other examples.

Now returning to our problem, we would like to determine which angle will cause our projectile to travel the greatest horizontal distance. For that, observe that the correct angle will be that for which

 

 

As we saw, the equation to solve is

We will do this in the calculator now so that you will have a result to compare your approximation with later on.

That is, type, pressing Enter after each command:

We set the reading mode to exact so that the differentiation will not lose precision

readexact;
make g 49/5;
make v 50;

Define the range function as a function of the angle, t

hor(t) := (v^2*sin(2*t)+2*v*cos(t)*sqrt(v^2*sin(t)^2+20*g))/(2*g);

Now define the derivative of the range function as a function of the angle, t

dhor(t) := value d(hor(t),t);

Get a numerical approximate solution for the equation in the interval

calc roots(dhor(x), 50, [0,1.57]);

The system reports that the approximate solution is

0.76653302568272075

As an aside, this is a bit less than . In fact the system approximates as:

0.78539816339744828

We will return to a general method for approximating solutions to equations such as the one above in the third Section of tis Chapter: Maximizing the Range and Chaos in Newton's Method, after we discuss Newton's Method. For now, we will leave the problem here.

Next, suppose that instead of 10 meters, the initial height was 0 meters (launched from the Earth's surface). In this case, we asked you to find the angle that gives the greatest horizontal distance exactly.

In this case, the term disappears from the equation above, so we are left with:

 

 

But

 

 


so this becomes, simply,

 

 

And we have the trigonometric identity:

 

 


So, finally, our equation is

 

 


Or

 

 

So

You can check this in the calculator with the following steps

readexact;
make g 49/5;
make v 50;

Define the new range function as a function of the angle, t

hor(t) := (v^2*sin(2*t)+2*v*cos(t)*sqrt(v^2*sin(t)^2))/(2*g);

Now define the derivative of the range function as a function of the angle, t

dhor(t) := value d(hor(t),t);

Use the interval to avoid dividing by 0
calc roots(dhor(x), 50, [1/1000,1.57]);

The system reports 0.78539816339734436 which is to 12 decimal places. Not bad.

In the third Section of this Chapter: Maximizing the Range and Chaos in Newton's Method, we will return to the question how we may approximate the solution to the original problem numerically by hand. But as a final topic for this section, you may approach an equation like this by approximating .

Now you might like to set the reading mode back to double, precision 7.

readfloat;
precision 7;


You saw that if the initial height was 0 instead of 10 meters, it was easy to solve exactly for . In that case, . Now, substitute that angle into your original expression for the derivative:

You do not get 0, the answer is either positive or negative.

So try a nearby angle for which the sign of your answer is different from the sign of your first guess. The correct answer is probably between these two. Take the average of these, and let that be your next guess. Continue in this way until you are satisfied that your answer is close enough.

Of course, another way to estimate the correct answer is to fire the cannon at various angles close to . This 'trial and error' method is not so much different from the previous. And it has the advantage that it will give a clear answer to the question:

Does the projectile remain in the air for the longest amount of time when it is fired at an angle that maximizes the range?

See for yourself.