What is an Engel Expansion?

It turns out that each positive real number \(x\in\mathbb{R}^+\) can be written in the form


where \({a_1,a_2,a_3,\ldots}\) is a unique non-decreasing sequence, finite or infinite, of postive integers. This is called the Engel expansion of \(x\), after the German mathematician Friedrich Engel.


One striking sequence is that for the number \(e\). It’s \({1,1,2,3,\cdots}\), so

\[e=\frac{1}{1}+\frac{1}{1}+\frac{1}{1\cdot 2}+\frac{1}{1\cdot 2\cdot 3}+\cdots.\]

This is simply the well-know infinite sum


but it’s funny that either \(\pi\) or \(e\) often show up in these kinds of things.


The find the values of \(a_i\), use the following iterative algorithm. Set



where \(\lceil y\rceil\) is the ceiling, the smallest integer greater than or equal to \(y\), and


and continue this process until you hit a value of \(u_i\) that is zero. And that’s it. Finding a value of \(u_i\) that is zero may or may not happen, since an Engel expansion can be infinite.

As a numerical example, let’s apply this algorithm to \(x=1.225\). We have \(u_1=1.225\) and \(a_1=\lceil{1/1.225}\rceil=1\). Then \(u_2=1.225\cdot 1-1=0.225\) and \(a_2=\lceil{1/0.225}\rceil=5\). And then \(u_3=0.225\cdot 5-1=0.125\) and \(a_3=\lceil{1/0.125}\rceil=8\). And then it stops, because \(u_4=0.125\cdot 8-1=0\). Hence,

\[1.225=\frac{1}{1}+\frac{1}{1\cdot 5}+\frac{1}{1\cdot 5\cdot 8}.\]

Where Does the Algorithm Come From?

A way to understand where the algorithm comes from, is to start from the original Engel expansion again,


The obvious value to set \(a_1\) to would be \(1/x\), because then we would be done. However, we want the \(a_i\)s to be integers, so we set \(a_1=\lceil 1/x\rceil\). We know that \(x\) is now not (necessarily) equal to \(1/a_1\), but we do know that we want to pick the other \(a_i\)s so that the rest of the (possibly infinite) sum is equal to their difference, so


First we get rid of the \(a_1\)s in all the remaining terms by multiplying both sides of the equation by \(a_1\), so


It turns out that we then immediately end up in a situation that is very similar to what we started off with, so that we can repeat the whole process by setting \(u_2=xa_1-1\), which is the next step in the algorithm.

Note that this algorithm leads to \(a_2\) (and all further \(a_i\)s) being positive, since \(x-1/a_1\geq 0\), because \(\lceil 1/x\rceil\geq 1/x\).

Also note that this doesn’t prove that the algorithm converges to the correct solution (although it actually does). It simply shows where the algorithm comes from.

Add new comment

The content of this field is kept private and will not be shown publicly.
Spam avoidance measure, sorry for this.

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.
Submitted on 11 April 2022