MATLAB Function Reference    

Convert between partial fraction expansion and polynomial coefficients



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, and , of the form

where and 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

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

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
Column vector of residues
Column vector of poles
Row vector of direct terms


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.


Numerically, the partial fraction expansion of a ratio of polynomials represents an ill-posed problem. If the denominator polynomial, , 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


and you can calculate the partial fraction expansion as

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

The result can be expressed as

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

See Also

deconv, poly, roots


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

  reshape rethrow