Section8.5Counting Trees
Our aim is to derive the generating series for the number of trees on \(n\) vertices (or, more precisely, the number of isomorphism classes of tress on \(n\) vertices). We use \(R(x)\) to denote the generating series for rooted trees on \(n\) vertices. We can check that
We see that \(R(x)\) is a fixed point of a map of the form
We set up our ring of power series:
If R is a power series \(\sum r_n x^n\), then R.V(i) denotes the series \(\sum r_n x^{ni}\). For example,
So our mapping on series is easy.
You should prove that this procedure produces a sequence of series that converges to the generating series for rooted trees. You will probably find this procedure converges somewhat more quickly than your convergence proof implies.
Next we apply the Newton-Raphson procedure. Here's the code, without explanation :-(
Note that rr = Qx([0,1,1]) is an up-market version of rr = x+x^2. The line rr = Qx(rr.list()) is a hack to force Sage to work with the required degree of precision. Your exercise is to show that the output of this procedure is correct.
If \(T(x)\) is the generating series for trees, then