Calculus of generating functions

The main idea behind the calculus of generating functions is to figure out how to compute the generating function of a sequence that is the product (or sum, etc.) of two other sequences whose generating functions are known. There are different rules for dealing with different types of generating functions; for instance, the rules that hold for manipulating ordinary generating functions may have analogues with their exponential generating function counterparts, but the rules are often not the same. Hence, we must be careful when manipulating formal power series, and note which type of generating function we're working with.

Ordinary generating functions edit

Similar to differentiation in the subject of calculus, we have a lot of rules we can use to manipulate ordinary power series. We'll start with the shift rule.

Shift rule edit

To start, let's consider an easy example. Suppose we have that


and we want to find the generating function for the sequence  . Formally, we want the function g(x) that has power series representation


Since we know that


We have that


and reindexing gives


Finally, dividing both sides by x, we achieve


which was precisely the function we wanted. Setting  , we now have

 , as desired.

From this example, we can derive a rule.

Shift rule

If  , then the ordinary generating function for the sequence   is the function


Polynomial multiplier rule edit

Again, let


Suppose we want the generating function for  . How can we get this to come about?

Here, we have to be a bit more clever than we were with the shift rule above. Notice that if   then


which is almost what we want. If we multiply both sides by x, we get


which is exactly what we want. So, if




Immediately, we see the use for some operator notation; notation that will tell us to perform the operation "differentiate f once with respect to x, then multiply the result by x".

We elect to use notation similar to Euler's differential operator (for ease); that is, D. To express this more precisely, we'll stipulate that


and that


Applying a similar idea to the one above, if we want to find the OPS for   given the generating function for  , we would apply the "xD" operator twice. Notation for this would be


and in words means "differentiate f, multiply by x, differentiate again, and then multiply by x". This leads to the intermediate rule that   whenever f is the generating function for the sequence  . Now that we have a rule for multiplying a sequence by nk, by default we have a rule for multiplying a sequence by any polynomial in n.

Polynomial multiplier rule



and p is any polynomial, then