Function Repository Resource:

# IncompletePFD

Give the incomplete partial fraction decomposition of a rational function

Contributed by: Daniel Lichtblau
 ResourceFunction["IncompletePFD"][num,den,x] returns the incomplete partial fraction decomposition of .

## Details and Options

For a rational function of the form in the variable x, where den factors as d1e1dmem, 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.

## Examples

### Basic Examples (1)

Find the incomplete partial fraction decomposition for :

 In[1]:=
 Out[1]=

### Options (2)

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]=

### Properties and Relations (6)

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]=

### Possible Issues (1)

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]=

## Version History

• 1.0.0 – 16 August 2019

## Author Notes

This function uses a divide-and-conquer approach. It could be more efficient and divide based on keeping total degrees as similar as possible to one another. The inexact coefficient case is, at best, a jury-rig. Improvements would include different functions to handle the extended GCDs and quotient/remainder uses.