Easy Octave Algorithm 1

Easy Octave Algorithm 1

This page contains an Octave version of Algorithm 1, on page 55 of the B-series book. This function is intended to run equally well on Matlab, SciLab, as well as Octave.

Its purpose is to evaluate $a_1$, $a_2$, $\dots$, up to a maximum order of pmax which satisfy the equation $$ a_1+a_2x+a_3x^2 + \cdots = (1-x)^{-a_1} (1-x^2)^{-a_2} \cdots $$ in the sense that the coefficients of each power of $x$ on the two sides must agree.

Octave function definition

function Ntrees = alg1(pmax)
  Ntrees = ones(1,  pmax)
  for i = 2: pmax - 1
    for j = pmax: -1: 1
      a = Ntrees(i)
      for k = 1: (j - 1)/i
        Ntrees(j) = Ntrees(j) + a*Ntrees(j - i*k)
        a = a*(Ntrees(i) + k)/(k + 1)
      end
    end
  end
end

$\to$ B-series book
$\to$ Homepage