Documentation Center

  • Trial Software
  • Product Updates


Convert between partial fraction expansion and polynomial coefficients


[r,p,k] = residue(b,a)
[b,a] = residue(r,p,k)


The residue function converts a quotient of polynomials to pole-residue representation, and back again.

[r,p,k] = residue(b,a) finds the residues, poles, and direct term of a partial fraction expansion of the ratio of two polynomials, b(s) and a(s), of the form

where bj and aj are the jth elements of the input vectors b and a.

[b,a] = residue(r,p,k) converts the partial fraction expansion back to the polynomials with coefficients in b and a.


If there are no multiple roots, then

The number of poles n is

n = length(a)-1 = length(r) = length(p)

The direct term coefficient vector is empty if length(b) < length(a); otherwise

length(k) = length(b)-length(a)+1

If p(j) = ... = p(j+m-1) is a pole of multiplicity m, then the expansion includes terms of the form



Vectors that specify the coefficients of the polynomials in descending powers of s


Column vector of residues


Column vector of poles


Row vector of direct terms


Numerically, the partial fraction expansion of a ratio of polynomials represents an ill-posed problem. If the denominator polynomial, a(s), is near a polynomial with multiple roots, then small changes in the data, including roundoff errors, can make arbitrarily large changes in the resulting poles and residues. Problem formulations making use of state-space or zero-pole representations are preferable.


If the ratio of two polynomials is expressed as


b = [ 5 3 -2 7]
a = [-4 0 8 3]

and you can calculate the partial fraction expansion as

[r, p, k] = residue(b,a)

r =

p =

k =

Now, convert the partial fraction expansion back to polynomial coefficients.

[b,a] = residue(r,p,k)

b =
   -1.2500   -0.7500    0.5000   -1.7500

a =
    1.0000   -0.0000   -2.0000   -0.7500

The result can be expressed as

Note that the result is normalized for the leading coefficient in the denominator.

More About

expand all


It first obtains the poles with roots. Next, if the fraction is nonproper, the direct term k is found using deconv, which performs polynomial long division. Finally, the residues are determined by evaluating the polynomial with individual roots removed. For repeated roots, resi2 computes the residues at the repeated root locations.


[1] Oppenheim, A.V. and R.W. Schafer, Digital Signal Processing, Prentice-Hall, 1975, p. 56.

See Also

| |

Was this topic helpful?