T.3) Limit theorems

Intuitively, limits seem to be well behaved, in part because we expect limits to be unique---i.e. if [Graphics:LimitsTutorialgr89.gif] f[x] exists, f[x] cannot approach 2 distinct values. Moreover, we expect limits of simple combinations of functions to be predictable:

If f[x] -> L as x -> a and g[x] -> M as x -> a, we expect the these things to happen:
1) [Graphics:LimitsTutorialgr90.gif] (f[x] ± g[x]) = L ± M
2) [Graphics:LimitsTutorialgr91.gif] ( k f[x] ) = k L
3) [Graphics:LimitsTutorialgr92.gif] (f[x] g[x]) = L M
4) [Graphics:LimitsTutorialgr93.gif] (f[x] / g[x]) = L/M (provided M is not 0).

These statements, which seem to be self-evident, are at the heart of why we really need the epsilon-delta definition of a limit. To actually demonstrate that the intuitive idea of a limit is truely well-behaved, we must resort to using the epsilon-delta definition.

Since the derivative (i.e. instantaneous rate of change) is defined in terms of a limit, understanding how limits actually behave (i.e. the theorems in this section), will also make it easier for us to develop some rules to make it easy to find derivatives of any function created from our standard building blocks---e^x, Log[x], power functions, and trig functions---which we've already learned how to differentiate.

Here are outlines of the basic epsilon--delta proofs that your colleages in the traditional section have been working with.

T.3.a) Limits are unique

The theorem here says that if f[x] approaches L as x approaches a and it also approaches M, then L and M must be equal.

The proof proceeds by showing that since for small epsilon, having
0 < | x - a | < delta guarantees both | f[x] - L | < epsilon and | f[x] - M | < epsilon, we also
get | L - M | < epsilon. This last statement does not involve x and is true for any epsilon. Thus L and M cannot differ.

T.3.b) Simplifications which change the domain don't affect the value of the limit

The main point here is that having 0 < | x - a | guarantees that we do not look at the value at a. If simplicication changes the domain by defining f[x] at a, where it was previously undefined (for instance, cancelling common factors in numerator and denominator), then we will not see the changes. If the change in domain happens away from a, then the fact that we are only concerned with values near a will allow us to ignore the changes.

T.3.c) [Graphics:LimitsTutorialgr94.gif] (f[x] + g[x]) = [Graphics:LimitsTutorialgr95.gif] f[x] + [Graphics:LimitsTutorialgr96.gif] g[x]

Here the usual proof splits the allowed error between f[x] and g[x]: Given epsilon > 0 find delta1 and delta2 such that
if 0 < | x - a | < [Graphics:LimitsTutorialgr97.gif], then | f[x] - L | < epsilon/2
and
if 0 < | x - a | < [Graphics:LimitsTutorialgr98.gif], then | g[x] -M | < epsilon/2.
Let delta = min([Graphics:LimitsTutorialgr99.gif], [Graphics:LimitsTutorialgr100.gif]); then we get both functions within epsilon/2 of their limits, so the sum is within epsilon of the sum L + M.

T.3.d) [Graphics:LimitsTutorialgr101.gif] ( f[x] g[x] ) = [Graphics:LimitsTutorialgr102.gif] f[x] * l[Graphics:LimitsTutorialgr103.gif] g[x]

The epsilon--delta proof for
[Graphics:LimitsTutorialgr104.gif] ( f[x] g[x] ) = [Graphics:LimitsTutorialgr105.gif] f[x] * [Graphics:LimitsTutorialgr106.gif] g[x]

is significantly more delicate to prove. Here's the proof if at least one of the limits is not 0:

Let epsilon > 0 be given, [Graphics:LimitsTutorialgr107.gif] f[x] = L, and [Graphics:LimitsTutorialgr108.gif] g[x] = M. We can assume that L is not equal to 0, since we know that one of the functions does not approach 0. Since L is not 0, epsilon/|L| > 0, and there is a [Graphics:LimitsTutorialgr109.gif] such that if 0 < | x - a | < [Graphics:LimitsTutorialgr110.gif], then | g[x] - M | < epsilon/(2 |L|). This statement also implies that if 0 < | x - a | <[Graphics:LimitsTutorialgr111.gif], then M - epsilon/(2 |L|) < g[x] < M + epsilon/(2 |L|). That means that we can find a number, G > 0 such that G > | g[x] | for all x in the interval [a - [Graphics:LimitsTutorialgr112.gif], a + [Graphics:LimitsTutorialgr113.gif] ] that are not equal to a. The number epsilon/(2 G) > 0, so there is a [Graphics:LimitsTutorialgr114.gif] such that if 0 < | x - a | < [Graphics:LimitsTutorialgr115.gif] , then | f[x] - L | < epsilon/(2 G).

Now let delta = min([Graphics:LimitsTutorialgr116.gif], [Graphics:LimitsTutorialgr117.gif]). If we know that 0 < | x - a | < delta, then we also know two facts:
| f[x] - L | < epsilon/(2 G)
and
| g[x] - M | < epsilon/(2 |L|).

Now let's examine what happens to | f[x] g[x] - L M | for x's that
satisfy 0 < | x - a | < delta:

| f[x] g[x] - L M | = | f[x] g[x] - L g[x] + L g[x] - M L |
= | (f[x] - L) g[x] + L (g[x] - M) |
<= | g[x] (f[x] - L) | + | L (g[x] - M) |
= | g[x] | * | f[x] - L | + | L | * | g[x] - M
<= G | f[x] - L] + | L | * | g[x] - M |
< G ( epsilon/(2 G) ) + | L | ( epsilon/(2 | L |) )
= epsilon/2 + epsilon/2
= epsilon

Thus we've now shown that
if 0 < | x - a | < delta, then | f[x] g[x] - L M | < epsilon
as desired.

To complete the proof of this limit rule, we also must examine the case where both f[x]-> 0 and g[x] -> 0. That part is one of the Give it a Try problems.

T.3.e) [Graphics:LimitsTutorialgr118.gif] ( f[x]/g[x] ) = [Graphics:LimitsTutorialgr119.gif] f[x] / [Graphics:LimitsTutorialgr120.gif] g[x]

First note that rule
[Graphics:LimitsTutorialgr121.gif] ( f[x]/g[x] ) = [Graphics:LimitsTutorialgr122.gif] f[x] / [Graphics:LimitsTutorialgr123.gif] g[x]
only makes sense if [Graphics:LimitsTutorialgr124.gif] g[x] is not 0. Here's the rough outline of the proof:

Step 1) Show that if [Graphics:LimitsTutorialgr125.gif] g[x] = M, where M is not 0, then
[Graphics:LimitsTutorialgr126.gif] 1/g[x] = 1/M
(The details are left to you in one of the Give It a Try problems.)

Step 2) Re-write the function, f[x]/g[x] as (f[x]) * (1/g[x]) and use the rule for products of limits.
(The details are left to you.)

T.3.f) The squeeze theorem (or pinching theorem)

We've used this idea already in sections B.1.b and B.3. If we can trap f[x] between two (better behaved) functions that we know approach L as x -> a, then we can conclude that f[x]-> L as x-> a as well. A more formal statement of the theorem is:

Theorem. If g[x] <= f[x] <= h[x] and if [Graphics:LimitsTutorialgr127.gif] g[x] = L =
[Graphics:LimitsTutorialgr128.gif] h[x], then f[x] must also approach L as x -> a---i.e.
[Graphics:LimitsTutorialgr129.gif] f[x] = L.

The proof uses the smaller of the two delta's given by the hypothesized limits for a particular epsilon, so that having 0 < | x - a | < delta guarantees
L - epsilon < f[x] <= g[x] <= h[x] < L + epsilon.

T.3.f.i)

Recall that when we were looking at the instantaneous rate of change in Sin[x], we got stuck at this point:

d/dx (Sin[x]) = ( Sin[x + h] - Sin[x] )/ h
since there was no obvious algebra to do. Asking Mathematica to do some simplifying for us gives:

Simplify[(Sin[x + h] - Sin[x])/h]
[Graphics:LimitsTutorialgr2.gif][Graphics:LimitsTutorialgr130.gif]

At this point, it's clear that we can tell that Cos[ x + h/2] -> Cos[x] as h-> 0, but it is not clear what happens to Sin[h/2]/2.

Fill in the last hole in the proof that d/dx Sin[x] = Cos[x] by using the squeeze theorem to show that [Graphics:LimitsTutorialgr136.gif] (Sin[h/2]/h] = 1/2.
Illustrate with a plot.