# Wolfram Function Repository

Instant-use add-on functions for the Wolfram Language

Function Repository Resource:

Give the incomplete partial fraction decomposition of a rational function

Contributed by:
Daniel Lichtblau

ResourceFunction["IncompletePFD"][ returns the incomplete partial fraction decomposition of . |

For a rational function of the form in the variable *x*, where *den* factors as *d*_{1}^{e1}…*d*_{m}^{em}, the incomplete partial fraction decomposition is the unique way of rewriting as a sum , where *den* is factored into a product of powers of irreducible polynomials.

In the special case where all exponents are equal to 1, this is the same as the full partial fraction decomposition.

ResourceFunction["IncompletePFD"] takes a Modulus option that can affect the factorization.

ResourceFunction["IncompletePFD"] also supports an Extension option that gives algebraic numbers to be allowed in the factorization.

Find the incomplete partial fraction decomposition for :

In[1]:= |

Out[1]= |

Find the incomplete partial fraction decomposition for modulo 5:

In[2]:= |

Out[2]= |

Check the result is equivalent to the rational function:

In[3]:= |

Out[3]= |

The rational function does not have a nontrivial decomposition over the rationals:

In[4]:= |

Out[4]= |

The denominator factors over the Gaussian integers, so providing that as an extension gives a decomposition over linear denominators:

In[5]:= |

Out[5]= |

Apart is similar to IncompletePFD, but it does a full decomposition over the rationals. First define a numerator and denominator:

In[6]:= |

In[7]:= |

In[8]:= |

Out[8]= |

In[9]:= |

Out[9]= |

Compute the incomplete partial fraction decomposition:

In[10]:= |

Out[10]= |

Apart gives a mathematically equivalent result :

In[11]:= |

Out[11]= |

For high degrees, IncompletePFD can be notably faster than Apart:

In[12]:= |

In[13]:= |

Out[13]= |

In[14]:= |

Out[14]= |

In[15]:= |

Out[15]= |

In[16]:= |

Out[16]= |

Check that the denominators are the expected factors to the correct powers:

In[17]:= |

Out[17]= |

Check that the result is equivalent to the rational function *num*/*den*:

In[18]:= |

Out[18]= |

IncompletePFD is intended for polynomials with exact coefficients and may give a result that is deficient due to numerical instability of the method when given input with approximate coefficients:

In[19]:= |

In[20]:= |

Out[20]= |

In[21]:= |

Out[21]= |

In[22]:= |

Out[22]= |

- 1.0.0 – 16 August 2019

This work is licensed under a Creative Commons Attribution 4.0 International License