Graphing Rational Functions

How do I read this?

Why factor?

What are these things?
 What is a rational function?
 What is a domain?

What are the key features of a rational function?
 What is an xintercept?

What is the associated rational function?
 What is a hole in the graph?
 What is a vertical asymptote?
 What is a horizontal asymptote?

What are the properties of a rational function?
 What are these "intervals"?

How do I find these things?
 How do I find the domain?
 How do I find the xintercepts?

How do I find the associated rational function?
 How do I find the holes?
 How do I find the vertical asymptotes?
 How do I find the horizontal asymptote?
 How do I find these "intervals"?
 How do I find the sign on each interval?

How do I plot these things?
 How do I plot the xintercepts?
 How do I plot the holes?
 How do I plot the vertical asymptotes?
 How do I plot the horizontal asymptote?

How do I sketch the rational function from all of this?

How do I sketch the function on one of these intervals?

Why is it THAT?!
 Why is this the domain?
 Why are these the xintercepts?

Why is that the associated rational function?
 Why are these the holes?
 Why are these the vertical asymptotes?
 Why is that the horizontal asymptote?

Why are these the properties of rational functions?
It wasn't until I was a junior in college that I was able to read exposition on
mathematics and get anything out of it. So, here are some hints. First, get a
pencil and some paper. When you come across something that is difficult to
understand, write it down. Then, read it very slowly. If you still don't
understand it, write down the definition of every piece that you are not
familiar with. Then, repeat the same for the definition. It may also be
useful to follow along with your own rational function written down. For
example, let the numerator be:
(x1)(x5)(x+3)^{2}(x+4)(x+5),
and let the denominator be
(x4)(x5)^{2}(x+3)(x+4)(x+9).
Don't multiply it out. When going through this tutorial, you will see that
this has xintercepts at x = 1 and x = 5. It has holes in the graph at the
points (3, 0) and (4, 1/72). It has vertical asymptotes at x = 4, x = 5 and x
= 9. It has a horizontal asymptote y = 1. You should use this to follow
along as you read as an example.
The purpose of factoring the numerator and denominator into irreducible factors
is so that the zeros of both the numerator and denominator are easily
visisble. It is the xcoordinates of all of the zeros of the numerator and
denominator that give us the "key features" and the domain.
Factoring allows us to find the zeros easily, and then from the factored form,
we can easily read off most of the information.
A rational function is a function of the form f(x) = p(x)/q(x) where p(x) and
q(x) are polynomials. That is, it is a RATIO of polynomials.
The domain of a function is, loosely speaking, the numbers you can plug into
the formula and it still makes sense, i.e. the set of xs where you can actually
evaluate the expression. For most purposes, there are three things you need to
consider. You can never divide by zero. You can never take an even root (that
is, square root, fourth root, etc.) of a negative number. Finally, you can
never take a logarithm of a number less than or equal to 0. Every x where none
of these things happens is in the domain. However, if it does happen for a
particular x, that x is not in the domain.
You are probably asking what I mean by "key features." By key features I mean
the xintercept(s), vertical asymptote(s), hole(s) in the
graph and finally the horizontal asymptote (if it exists). (NOTE: I will not
cover oblique (sometimes known as slant or skew) asymptotes here.) I call
these the key features because they build the scaffoloding on which to sketch
our rational function. All of these features are described below.
The xintercepts of a graph are the numbers x for which f(x) = 0.
The
xintercepts are the x values for which the graph of the function touches the
x axis. We can easily plot the point corresponding to an xintercept because
we know its y value is 0. Sometimes xintercepts are referred to as zeros of
the function because they solve f(x) = 0. If nothing else, they are points we
know are on the graph of the function.
The associated rational function is a function derived from your original
rational function to help you determine where you have holes and where you have
asymptotes. It is not necessary, but it can be useful. Explicitly, the
associated rational function is your original rational function with all of the
common factors cancelled. Of course, this is done after you have factored the
numerator and denominator completely.
A hole in the graph is
a place where the function is not defined, but you could make the function
continuous by defining it there. So,
holes are removable discontinuities.
Whenever you have a removable discontinuity at x = c, your graph looks like a
continuous function, but the point at x = c has been removed.
A vertical asymptote is an infinite discontinuity.
If you have a vertical
asymptote at x = c, then your graph goes to either positive or negative
infinity on at least one side of c. It is like the graph is trying to become a
vertical line at x = c, but of course it can't. We call the line x = c a
vertical asymptote.
A horizontal asymptote is an imaginary horizontal line that your function gets
close to when x is very far away from 0. It means that if you zoom in on the
graph for really big x values, the graph looks like a horizontal line.
Horizontal asymptotes are horizontal lines, so they have the form y = a, for
some real number a.
Rational functions have some nice properties. They are continuous at every
point of their domain. That means the function is continuous at every x except
for the zeros of the denominator.
Furthermore, at every point that is not in the domain, which is every point
that is a zero of the denominator, you have either a hole or an asymptote. So,
rational functions have no jump
discontinuities  their only discontinuities are removable or infinite.
A rational function may or may not have any or all of its key features. For
example, (x^{4} + 4)/(x^{2} + 1) has no xintercepts, holes,
vertical asymptotes or horizontal asymptotes, while the example suggested at
the beginning has all of them. Any combination of xintercepts, holes and
vertical asymptotes is possible.
Finally, a rational function can only change sign (that is, its y values go
from positive to negative or negative to positive) at the zeros of the
numerator or the zeros of the denominator. So, knowing where the asymptotes,
holes and xintercepts are tells you the only places it can change sign. This
is very useful for sketching the graph.
The intervals I am referring to are
intervals where the rational function is
continuous and stays positive or stays negative.
We will graph the rational function by graphing it on each of these intervals.
The domain is very easy to determine once you have factored,
if you didn't cancel anything!
Since a rational function is a ratio of polynomials, and polynomials
have all real x as their domain, the only possible problems is dividing by 0
(there are no roots or logarithms floating around). So, the zeros of the denominator are not in the domain of
f(x)!
Now, for any x that is not a zero of the denominator, we can plug it in to the
polynomials and get a number divided by a nonzero number, which we can
compute. Therefore, the domain of a rational
function is all real numbers x except for the zeros of the denominator.
To determine the xintercepts of a rational function, you must look at the
zeros of the numerator. If x = a is a zero of the numerator and NOT a zero of
the denominator, then you have an xintercept. Notice that we don't have an x
intercept if BOTH the numerator and denominator are 0, since 0/0 is undefined.
Therefore, the xintercepts are precisely the zeros
of the numerator that are in the domain of the rational function.
If you have a rational function f(x), the first step in finding its associated
rational function is to completely factor the numerator and denominator.
Then, to find the associated function g(x), just cancel the common factors of
the numerator and denominator. So, the associated
rational function g(x) is the original function f(x) with all of the common
factors of the numerator and denominator cancelled. NOTE: This is NOT the same
function as f(x) because g(x) may have a different domain!
To find the holes of the graph, look at the associated rational function. If
there is a point c that is not in the domain of f(x) but IS in the domain of
g(x), then you have a hole. That is, you have a
hole in the graph at x = c if you can canel ALL of the (x  c) factors in the
denominator. What this means is that someone came along and
multiplied and divided by (x  c)^{k}, and by doing so took c out of
the domain (because you can NEVER divide by 0). This is why you figure out the
domain without canceling anything. If you cancel before finding the domain,
you miss all of the holes (not to mention you are tacitly writing 0/0 = a
number). Now, we know how to find the x coordinate of every hole from the
factored rational function.
Once you have found the x coordinates of the hole, we need to know the y
coordinate. Suppose we have a hole at x = c. We can't look at f(c)
because this will give us 0/0. But, we CAN look at the associated rational
function because c is in its domain. This is exactly how we find where to put
the hole. The y coordinate of the hole is then g(c). That is, cancel the
common factors from f(x) and then plug in c. (If you get 0 in the denominator
you either didn't cancel all of the factors, or you didn't have a hole there).
Now, we have the coordinates of the hole: (x, y). In general,
If f(x) is a rational function and g(x) is the associated rational function,
and f(x) has a hole at x=c, then the coordinates of the hole are (c, g(c)).
Now that you have the associated rational function, there is a vertical
asymptote of f(x) at every zero of the denominator of the associated function.
That is, there is a vertical asymptote at the
reamining zeros of the denominator AFTER cancelling all common
factors.
Not all rational functions have a horizontal asymptote. In fact:
 If the degree of the numerator is bigger than the degree
of the denominator, the rational function DOES NOT have a horizontal
asymptote.
 If the degree of the numerator is less than or equal to the dgree
of the denominator, the rational function DOES have a horizontal asymptote.
We can actually say more about these horizontal asymptotes.

If the degree of the numerator is less than the degree of the denominator, then
the horizontal asymptote is y = 0.

If the degree of the numerator is equal to the degree of the denominator, then
the horizontal asymptote is y = the ratio of the leading coefficient of the
numerator divided by the leading coefficient of the denominator.
By the "leading coefficient" we mean the coefficient of the
highest order term in the polynomial once it is multiplied out.
We want open intervals on the x axis where the function is continuous and
doesn't change sign. From the properties of a rational function, we know it
can only change sign at the zeros of the numerator or denominator. These
intervals are the intervals you get by starting at negative infinity and
walking to the right along the x axis, and stopping every time you hit a root
of the numerator or denominator, then starting on the other side of that root,
and continue until you have passed all of the roots.
It is probably easier to do this AFTER you have done the first three steps of
sketching the rational function. If you have done the first three steps, then
you look at every interval between holes, vertical asymptotes, and zeros. The
first interval is from negative infinity until you reach the x coordinate of
the left most thing you have on your graph. Then, you have the intervals
between all of the things you have graphed. Finally, the last interval is from
the right most thing you have graphed to positive infinity.
Alternatively, we can do this explicitly by just using the numbers. This is
motivated by the previous way of finding the intervals.
First, we write a
list of all of the zeros of the numerator and all of the zeros of the
denominator. Let's pretend that my list is 7, 4, 5, 2, 3, 5, 3, 1.
The next step is to list them without repetition. In this example the 3 and 5
appear twice in my list, so I'll only write them once, getting:
7, 4, 5, 2, 3, 1.
We want intervals, so we should put these in order from smallest to
largest (that is, in increasing order). Doing this with my list I get:
3, 2, 1, 4, 5, 7.
Now, we can write down our intervals. Our first interval is from negative
infinity to 3. We want to look at the open intervals, so this is the interval
( infinity, 3). Then, we want the intervals between consecutive roots. So,
the next intervals would be (3, 2), (2, 1), (1, 4), (4, 5), and (5, 7).
Finally, we want the last interval from 7 to infinity: (7, infinity).
Now, we have chopped up the real line into intervals where the function is
continuous (notice that every piece of these intervals is in the domain).
Furthermore, by stopping at the zeros of the numerator also, we have stopped
everywhere the function might go from positive to negative, or negative to
positive.
Now that we have these intervals, determining the sign on the interval is
easy. We just
pick a point in the interval and evaluate the function at that
point. If the value is positive, the function stays positive on this
interval. If the value is negative, the function stays negative on this
interval.
For example, on the interval (3, 2), we could pick 2.5, and look
at f(2.5). This would tell us the whether the function is positive or
negative on the interval. NOTE: It doesn't matter what point in the interval
you pick because we only care whether the value is positive or negative and we
don't care about the actual value. So, if you can, pick a number that is easy
to work with, like an integer. For the interval (3, 2) I can't pick an
integer because there are no integers in the interval (we are not including the
endpoints).
Once you have found the x coordinates of all of the xintercepts, you can put
them on the graph. If you have an xintercept at x=a,
plot the point (a, 0) on your graph.
Suppose you found that your rational function has a hole at the point (a,b).
Since a is not in the domain of f, the point (a,b) is NOT part of the graph of
f(x). Therefore, if you have a hole at the point
(a,b), draw a small open circle at the point (a,b). This will
allow you to identify where your graph has a removable discontinuity.
The vertical asymptotes are not part of the graph of the function. They are a
guide to the function's behavior there. You know now that the function has an
infinite discontinuity everywhere there is a vertical asymptote. To indicate
this,
if there is a vertical asymptote at x = c, draw the vertical line x = c
with dashes (or dots).
The horizontal asymptote is not part of the graph of the function. However, it
is a guide for graphing it. For this reason,
if there is a horizontal asymptote at y = a, draw the horizontal line y = a
with dashes (or dots).
We adopt the strategy of divide and conquor.
 Find and plot the xintercept(s) (if there are any).
 Find and plot the hole(s) (if there are any).
 Find and plot the vertical asymptote(s) (if there are any).
 Find and plot the horizontal asymptote (if it has one).
 Find the intervals on which the function is continuous and does not change
sign.
 Sketch the function on each interval.
 If you have corners or something in your picture, redraw those parts so
that the graph is smooth.
And you're done!
Once you have determined the intervals as described HERE,
we can sketch the
graph on that interval by what happens at the endpoints, and using the fact
that f(x) is always positive or always negative on this interval.
The first thing to do is to determine the sign on this interval.
This tells
you whether your graph should be above the x axis (if it is positive) or below
the x axis (if it is negative) on the entire interval.
There are three kinds of intervals you may encounter.
If the numerator and denominator both have no zeros, then your ONLY interval
will be ( infinity, infinity). Without
calculus, you can not create a reasonably accurate sketch of this.
If you have an interval (a, b), and both a and b are finite,
then you know what happens at x=a and what
happens at x = b (from the previous steps). You either have a vertical
asymptote, a hole, or a zero.
If you have a vertical asymptote at x = a or x = b,
you know the function
has to go to positive infinity or negative infinity. We can do even better
than that. Since we know whether f(x) is positive or negative on this
interval, we know which one it goes to! If f(x) is positive on the interval,
it MUST go to positive infinity at the asymptote. Likewise, if f(x) is
negative on the interval, it has to go to negative infinity at the asymptote.
This gives us a "y value" at the endpoint when we have an asymptote.
Draw a short, almost vertical line segment inside this interval near the
asymptote by the top of the graph if f(x) is positive on the interval, or by
the bottom of the graph if f(x) is negative on the interval.
If you have a zero or a hole at the endpoint,
you already know the value at that endpoint
to connect to the picture on the other side.
Now,
without picking up your pencil and without touching the x axis, connect
the point (or line segment) on the left with the point (or line segment) on the
right.
Do this so that it is smooth on this interval, i.e. without drawing
corners or making sharp turns.
If you have an asymptote at both endpoints,
it
should look like a stretched U if the function is positive on the interval, or
a streched upsidedown U if the function is negative on the interval.
If one endpoint is an asymptote and the other is a zero or a hole,
the picture on this
interval should look like a stretched J or r (depending on which side the
asymptote is on), or one of them backwards.
If each endpoint is either a zero or a hole,
just connect the dots, staying above the x axis if the function is
positive on the interval, or staying below the x axis if the function is
negative on the interval.
Finally, we have to deal with
intervals where one endpoint is either positive
or negative infinity.
Call this interval ( infinity, a) or (a, infinity).
Inside the interval, near x = a, do what we did above. That is, if there is
an asymptote, draw the little piece.
Now the question is what to do for the "endpoint at infinity".
This is where the horizontal asymptote comes in.
If you have a horizontal asymptote,
draw a short horizontal line segment along
the asymptote at the far left of the graph if you are looking at ( infinity,
a), or at the far right of the graph if you are looking at (a, infinity).
Then, connect that segment to what you had near x = a without lifting your
pencil and staying on the proper side of the x axis (as determined by the sign
on the interval).
If you do NOT have a horizontal asymptote,
we need to make sure our graph
indicates this. For the interval ( infinity, a): if the function is positive
on the interval, draw a short diagonal line segment near the top left corner of
your
graph coming down and in. If the function is negative on the interval, draw a
short diagonal line segment starting at the bottom left corner coming up.
For the interval (a, infinity): if the function is positive on this interval,
draw a short diagonal line segment near the top right corner of your
graph coming down and in (that is, with positive slope). If the function is
negative on this interval, draw a short diagonal line segment near the bottom
right corner of your graph coming up and in (that is, with negative slope).
Now, connect this segment with what you had near x=a without lifting your
pencil or touching the x axis.
The original function is not defined when its denominator is 0. So, none of
the roots of the denominator can be in the domain. Polynomials are defined for
every x, that is, the domain of any polynomial is all real numbers. Therefore,
the ratio of two polynomials has domain all real numbers except those that make
the denominator 0. This means that every x that doesn't make the denominator 0
must be in the domain.
In order to have an x intercept, the x value must be in the domain of the
function. Therefore, we can not look at the x that make the denominator 0.
For every other x, we can compute f(x) by the formula. Since f(x) is a
fraction, and we know that a fraction is only zero when its numerator is zero,
we have to look at the points that make the numerator 0, but not the
denominator.
This is the associated rational function because holes and asymptotes are
technically characterized by limits. A hole is simply a removable
discontinuity, which means that the limit of f(x) as x approaches a exists, but
either f(a) is not equal to the limit, or f is not defined at x=a. Also, a
vertical asymptote is simply an infinite discontinuity, which means that the
limit of f(x) as x approaches a from the right or the left is positive or
negative infinity. When taking limits, we only care about the behavior of the
function really close to the point x = a, but we don't care at all about the
function AT a. Cancelling common factors only affects what happens AT the
zeros of the factors. Since we are dealing with limits, the limit of f(x)
equals the limit of g(x) as x approaches ANY real number. The associated
rational function has the benefit of having no common zeros in the numerator
and the denominator. This means that g(x) has no holes, and it has an
asymptote at every zero of the denominator. Furthermore, as a rational
function, it is continuous for all real numbers except the zeros of the
denominator. These zeros are easy to see because g(x) comes from the factored
original function. This gives us a way of finding the limit of f(x) as x
approaches a, where a is a hole. Namely, the limit of f(x) as x approaches a
= the limit of g(x) as x approaches a, and since g is continuous at x = a, this
is just g(a). So,
We use this as our associated rational function because we can find the y
coordinate of a hole by evaluating g at a, that is, compute g(a), and it
distinguishes between removable discontinuities and infinite discontinuities.
A hole is simply a removable
discontinuity, which means that the limit of f(x) as x approaches a exists, but
either f(a) is not equal to the limit, or f is not defined at x=a.
Rational functions are continuous at every point of their domain, so it is not
possible for f(a) to be different than the limit, if a is in the domain.
We know that if g(x) is the associated rational function, then the limit of
f(x) as x approaches a is equal to the limit of g(x) as x approaches a. This
is why we picked this as our associated function.
If the limit of g(x) as x
approaches a exists, and a is not in the domain of f, then f MUST have a
removable discontinuity there, i.e. a hole.
Since holes are discontinuities, we only need to look at the zeros of the
denominator of f(x). We know that if x = a is a zero of the denominator of
f(x) but not a zero of the denominator of g(x), then f(x) has a hole at x = a.
If, on the other hand, x = a is a zero of the denominator of g(x), then we have
an infinite discontinuity (a vertical asymptote, see below.). So,
if x = a is a zero of the denominator of f(x), but not a zero of the
denominator of g(x), then f(x) has a hole at x = a, and if f(x) has a hole at x
= a, then x = a is not a zero of the denominator of g(x).
A vertical asymptote is simply an infinite discontinuity, which means that the
limit of f(x) as x approaches a from the right or the left is positive or
negative infinity.
Because we have our associated function g(x), and g(x) has no common factors in
the numerator and denominator, it will never happen that as x approaches a,
both the numerator and denominator go to zero. This allows us to pick out the
vertical asymptotes.
Suppose we have two functions s(x) and t(x), and we want to know the limit of
s(x) / t(x) as x approaches a. ASSUME that s(x) / t(x) is defined in an open
interval around a, except possibly at x = a. Also, ASSUME that s(x) / t(x) is
positive on this interval, except possibly at x = a. IF the limit of s(x) as x
approaches a exists and IS NOT EQUAL to 0, AND the limit of t(x) as x
approaches a exists and IS EQUAL to 0, then the limit of s(x) / t(x) as x
approaches a is infinity (not that the limit exists, this is just describing
the behavior). Also, if s(x) / t(x) is negative in an interval around x=a,
except possibly at a, and the other conditions above are met, then the limit of
s(x)/ t(x) as x approaches a is negative infinity (again, not that the limit
exists, this is just describing behavior).
With this in mind, this is EXACTLY what is going on with the onesided limits
of g(x). g(x) is continuous on its domain. Its domain is all real numbers
except the few that make its denominator 0. g(x) caon only change sign when
either its numerator or denominator is zero. Therefore, between these zeros
that are spread out, it has a constant sign. This means that if x = a is a
zero of the denominator, then there is some A less than a for which g(x) is
continuous on the interval (A, a), and has a constant sign there. If it is
positive on this interval, then the limit of g(x) as x approaches a from the
left is positive infinity, and if it is negative on the interval, the limit
of g(x) as x approaches a from the left is negative infinity, from discussion
in the previous paragraph. The exact same thing is true for the limits from
the right. Therefore,
all of the zeros of the denominator of g(x) give rise to
infinite onesided limits, from EITHER side.
Since this is the same as the
limit of f(x), f(x) has an asymptote at all of the zeros of the denominator of
g(x). Also, since asymptotes are discontinuities, and f(x) is only
discontinuous at the zeros of its denominator, we only have to look there for
asymptotes. We already saw that if x = a is a zero of the denominator of f(x)
but is not a zero of the denominator of g(x), then f(x) has a removable
discontinuity at x = a, and not an infinite discontinuity. This means that if
f(x) has an asymptote at x = a, then a is a zero of the denominator of g(x),
and if x = a is a zerof of the denominator of g(x), then f(x) has an asymptote
at x = a.
Strictly speaking,
a horizontal asymptote is the limit of f(x) as x
approaches infinity, or as x approaches negative infinity.
Since horizontal asymptotes deal with the behavior as x approaches positive or
negative infinity, we don't care what happens at x = 0. Suppose the
the numerator is a polynomial of degree m, and the
denominator is a polynomial of degree n.
The numerator looks like:
A x^{m} +B x^{m1} + C x^{m2} + ...
and the denominator looks like:
a x^{n} +b x^{n1} + c x^{n2} + ...
where A is not zero and a is not zero.
Multiply the numerator and
denominator by 1/x^{n}, where n is the degree of the denominator.
(The observent reader will notice that we just
put a hole in the graph of our original function at x = 0). This is
essentially multiplying by 1, which is allowed. Since we only put a hole at x
= 0, we haven't changed the limit as x approaches infinity. Now, every power
of x has been reduced by n. In particular, the numerator looks like:
A x^{mn} + B x^{mn1} + C x^{mn2} + ...
and the denominator looks like:
a + b x^{1} + c x^{2} + ...
As x approaches either positive or negative infinity, everything goes to 0 in
the denominator, except a (the leading coefficient!). So,
the limit of the new
denominator as x approaches positive or negative infinity is a.
Now, we have to look at the numerator. If m  n is bigger than 0, we have x to
a positive power in this new numerator. This goes to infinity as x goes to
infinity. Now, m  n is positive ONLY when the degree of the numerator m is
bigger than the degree of the denominator, n. This means that
as x approaches
infinity, the ratio goes to either positive or negative infinity, which is why
there is no horizontal asymptote if the degree of the numerator is bigger than
the degree of the denominator.
If the degree of the numerator is equal to the degree of the denominator, that
is, if n = m, then our numerator looks like:
A + B x^{1} + C x^{2} + ...
We see that the limit of this as x approaches either positive or negative
infinity is A since the negative powers of x go to 0. Therefore,
if the degree of the numerator equals the degree
of the denominator, the limit of f(x) as x approaches positive or negative
infinity is A / a.
Finally, if the degree of the numerator is less than the degree of the
denominator, then m  n is negative. This means that every power of x in the
new numerator is negative. Therefore, as x approaches positive or negative
infinity, EVERY TERM of this new numerator goes to 0. This is why
if the degree of the numerator
is less than the degree
of the denominator, the limit of f(x) as x approaches positive or negative
infinity is 0 / a = 0.
Since rational functions are the ratio of two polynomials, and
polynomials are
continuous on the whole real line, the ratio is continuous everywhere it is
defined (that is, everywhere except when the denominator is zero).
Since this
is precisely the domain of the rational function, it is continuous on its
domain.
If x = a is a zero of the denominator of f(x), then either it is a zero of the
denominator of g(x), or it isn't. If it is a zero of the denominator of g(x),
you have an infinite discontinuity (see Why are these the
vertical asymptotes?). If it is not a zero of the denominator of g(x),
then it is a
removable discontinuity (see Why are these the holes?).
Therefore,
at every
zero of the denominator of f(x) you either have a removable discontinuity or an
infinite discontinuity.
This means that there are
only two possible types of discontinuities: removable or infinite. Since the
function is continuous everywhere it is defined, there is no possible way to
have a jump discontinuity.
If you look at an interval on the domain of your rational function, that is
the interval does not contain a zero of the denominator, then the function is
continuous there. By the Intermediate Value Theorem, it can only change from
positive to negative if it has an xintercept there. So, in between zeros of
the denominator, it can only change sign at xintercepts. The only other place
it could possibly change sign is by going from one side of a zero of the
denominator to the other side, since the function is not continuous there.