Splitting up a ratio of large polynomials into a sum of
ratios of small polynomials can be a useful tool,
especially for many problems involving Laplace-like
transforms. This technique is known as partial fraction
expansion. Here's an example of one ratio being split
into a sum of three simpler ratios:
8x2+3x-21x3-7x-6=1x+2+3x-3+4x+1
8
x
2
3
x
21
x
3
7
x
6
1
x
2
3
x
3
4
x
1
(1)
There are several methods for expanding a rational function
via partial fractions. These include the method of clearing
fractions, the Heaviside "cover-up" method, and different
combinations of these two. For many cases, the Heaviside
"cover-up" method is the easiest, and is therefore the method
that we will introduce here. For a more complete discussion,
see Signal Processing and Linear Systems by
B.P. Lathi, Berkeley-Cambridge Press, 1998, pp-24-33. Some
of the material below is based upon this book.
Heaviside "Cover-Up" Method
No Repeated Roots
Let's say we have a proper function
Gx=NxDx
G
x
N
x
D
x
(by proper we mean that the degree mm of the numerator
Nx
N
x
is less than the degree pp
of denominator
Dx
D
x
). In this section we assume that there are no repeated
roots of the polynomial
Dx
D
x
.
The first step is to factor the denominator
Dx
D
x
:
Gx=Nxx-
a
1
x-
a
2
…x-
a
p
G
x
N
x
x
a
1
x
a
2
…
x
a
p
(2)
where
a1a1 …
apap
are the roots of
Dx
D
x
.
We can then rewrite
Gx
G
x
as a sum of partial fractions:
Gx=
α
1
x-
a
1
+
α
2
x-
a
2
+…+
α
p
x-
a
p
G
x
α
1
x
a
1
α
2
x
a
2
…
α
p
x
a
p
(3)
where
a1a1 …
apap
are constants. Now, to complete the process, we must
determine the values of these
αα
coefficients. Let's look at how to find
α
1
α
1
.
If we multiply both sides of the
equation of G(x) as a sum of partial fractions
by
x-
a
1
x
a
1
and then let
x=
a
1
x
a
1
,
all of the terms on the right-hand side will go to zero
except for
α
1
α
1
.
Therefore, we'll be left over with:
α
1
=x-
a
1
Gx|x=a1
α
1
x
a1
x
a
1
G
x
(4)
We can easily generalize this to a solution for any one
of the unknown coefficients:
α
r
=x-
a
r
Gx|x=ar
α
r
x
ar
x
a
r
G
x
(5)
This method is called the "cover-up" method because
multiplying both sides by
x-
a
r
x
a
r
can be thought of as simply using one's finger to cover
up this term in the denominator of
Gx
G
x
.
With a finger over the term that would be canceled by
the multiplication, you can plug in the value
x=
a
r
x
a
r
and find the solution for
α
r
α
r
.
Example 1
In this example, we'll work through the partial fraction
expansion of the ratio of polynomials introduced above.
Before doing a partial fraction expansion, you must make
sure that the ratio you are expanding is proper. If it
is not, you should do long division to turn it into the
sum of a proper fraction and a polynomial. Once this is
done, the first step is to factor the denominator of the
function:
8x2+3x-21x3-7x-6=8x2+3x-21x+2x-3x+1
8
x
2
3
x
21
x
3
7
x
6
8
x
2
3
x
21
x
2
x
3
x
1
(6)
Now, we set this factored function equal to a sum
of smaller fractions, each of which has one of the
factored terms for a denominator.
8x2+3x-21x+2x-3x+1=
α
1
x+2+
α
2
x-3+
α
3
x+1
8
x
2
3
x
21
x
2
x
3
x
1
α
1
x
2
α
2
x
3
α
3
x
1
(7)
To find the alpha terms, we just cover up the
corresponding denominator terms in
Gx
G
x
and plug in the root associated with the alpha:
α
1
=x+2Gx|x=-2=8x2+3x-21x-3x+1|x=-2=1
α
1
x
-2
x
2
G
x
x
-2
8
x
2
3
x
21
x
3
x
1
1
(8)
α
2
=x-3Gx|x=3=8x2+3x-21x+2x+1|x=3=3
α
2
x
3
x
3
G
x
x
3
8
x
2
3
x
21
x
2
x
1
3
(9)
α
3
=x+3Gx|x=-1=8x2+3x-21x+2x-3|x=-1=4
α
3
x
-1
x
3
G
x
x
-1
8
x
2
3
x
21
x
2
x
3
4
(10)
We now have our completed partial fraction expansion:
8x2+3x-21x+2x-3x+1=1x+2+3x-3+4x+1
8
x
2
3
x
21
x
2
x
3
x
1
1
x
2
3
x
3
4
x
1
(11)
Repeated Roots
When the function
Gx
G
x
has a repeated root in its denominator, as in
Gx=Nxx-brx-
a
1
x-
a
2
…x-
a
j
G
x
N
x
x
b
r
x
a
1
x
a
2
…
x
a
j
(12)
Somewhat more special care must be taken to find the
partial fraction expansion. The non-repeated terms are
expanded as before, but for the repeated root, an extra
fraction is added for each instance of the repeated
root:
Gx=
β
0
x-br+
β
1
x-br-1+…+
β
r
-
1
x-b+
α
1
x-
a
1
+
α
2
x-
a
2
+…+
α
j
x-
a
j
G
x
β
0
x
b
r
β
1
x
b
r
1
…
β
r
-
1
x
b
α
1
x
a
1
α
2
x
a
2
…
α
j
x
a
j
(13)
All of the alpha constants can be found using the
non-repeated roots method above. Finding the beta
coefficients (which are due to the repeated root) has
the same Heaviside feel to it, except that this time we
will add a twist by using the derivative to eliminate
some unwanted terms.
Starting off directly with the cover-up method, we can find
β
0
β
0
.
By multiplying both sides by
x-br
x
b
r
,
we'll get:
x-brGx=
β
0
+
β
1
x-b+…+
β
r
-
1
x-br-1+
α
1
x-brx-
a
1
+
α
2
x-brx-
a
2
+…+
α
j
x-brx-
a
j
x
b
r
G
x
β
0
β
1
x
b
…
β
r
-
1
x
b
r
1
α
1
x
b
r
x
a
1
α
2
x
b
r
x
a
2
…
α
j
x
b
r
x
a
j
(14)
Now that we have "covered up" the
x-br
x
b
r
term in the denominator of
Gx
G
x
,
we plug in
x=b
x
b
to each side; this cancels every term on the right-hand side
except for
β
0
β
0
,
leaving the formula
β
0
=x-brGx|x=b
β
0
x
b
x
b
r
G
x
(15)
To find the other values of the beta coefficients, we can
take advantage of the derivative. By taking the derivative
of the
equation after cover-up (with respect to
xx
the right-hand side becomes
β
1
β
1
plus terms containing an
x-b
x
b
in the numerator. Again, plugging in
x=b
x
b
eliminates everything on the right-hand side except for
β
1
β
1
,
leaving us with a formula for
β
1
β
1
:
β
1
=ddxx-brGx|x=b
β
1
x
b
x
x
b
r
G
x
(16)
Generalizing over this pattern, we can continue to take
derivatives to find the other beta terms. The solution
for all beta terms is
β
k
=1k!dkdxkx-brGx|x=b
β
k
x
b
1
k
x
k
x
b
r
G
x
(17)
Hint: To check if you've done the partial
fraction expansion correctly, just add all of the partial
fractions together to see if their sum equals the original
ratio of polynomials.
Finding Partial Fractions in Matlab
Matlab can be a useful tool in finding partial fraction
expansions when the ratios become too unwieldy to expand by
hand. It can handle symbolic variables. For example, if
you type syms s, ss will be treated as a symbolic variable.
You can then use it as such when you make function assignments.
If you've done this and have then made a function, say HsHs,
which is a ratio of two polynomials in the symbolic variable ss,
there are two ways to get the partial fraction expansion of it.
A trick way is to say diff(int(H)). When you use these
functions together, Matlab gives back HH expanded into partial
fractions. There's also a more formal way to do it using the
residue command. Type help residue in Matlab for details.