Using continued fractions to generate rational approximations

A redditor asks:

How would I find a good rational approximation to something like $\log_{10}(7)$?

The Mathematical Ninja mutters 0.85 under his breath, as a matter of course, reasoning that $\log_{10}(7) \approx \log_{10}\left(\sqrt{ \frac {10^2 }{2} } \right)$, although my calculator says 0.845098, so he's off by about 0.6%.

However, that's not the question. The question is, how to come up with a good rational approximation, and the answer is to use continued fractions

The steps are to generate a series of numbers and turn it into a fraction.
$\log_{10}(7) = 0.845098...$

  • The first digit is 0, which you take away; divide 1 by what's left over to get 1.18329...
  • The first digit of this is 1, which you take away (0.183...) and divide 1 by what's left over to get 5.4556...
  • The first digit of this is 5, which you take away to get (0.455...) and... (you get the drift)

The sequence you end up with is [0; 1, 5, 2, 5, 6, 1, 4813...]. (That last number I worked out is comparatively huge, which means -- even though the sequence goes on for ever, there's a good rational approximation!)

What does this all have to do with fractions? Well, the continued fraction expression of $\log_{10}(7)$ is written as $0 + \frac{1}{1 +
\frac{1}{5 +
\frac{1}{2 +
\frac{1}{ 5 +
\frac{1}{ 6 +
\frac{1}{ 1 +
\frac{1}{ 4813 + ...}}}}}}}$

Working out the convergents -- the fractions you get as you truncate the sequence -- you get:

  • $0$ (rubbish approximation)
  • $0 + \frac{1}{1} = 1$ (somewhat better)
  • $0 + \frac{1}{1 + \frac{1}{5}} = \frac{5}{6}$ or 0.833... (much better)
  • $0 + \frac{1}{1 + \frac{1}{5 + \frac{1}{2}}} = \frac{11}{13}$ or 0.846... (pretty decent)
  • $0 + \frac{1}{1 + \frac{1}{5 + \frac{1}{2+ \frac{1}{5}}}} = \frac{60}{71}$ or 0.84507... (good)
  • $0+ \frac{1}{1 + \frac{1}{5 + \frac{1}{2+\frac{1}{5 + \frac{1}{6}}}}} = \frac{371}{439}$ or 0.84510
  • $0 + \frac{1}{1 + \frac{1}{5 + \frac{1}{2+\frac{1}{5 + \frac{1}{6 + \frac{1}{1}}}}}} = \frac{431}{510}$ or 0.845098 (correct to one part in a trillion)
  • $0 + \frac{1}{1 + \frac{1}{5 + \frac{1}{2+\frac{1}{5 + \frac{1}{6 + \frac{1}{1+\frac{1}{4813}}}}}}} = \frac{2074774}{2455069}$ (a lot of work for an answer only marginally better).

So, depending on how accurate you need your logarithm, you can go for either $\frac{60}{71}$ (which is good enough for government work) or $\frac{431}{510}$, which is extremely accurate.

* Edited 2015-08-24 to fix a LaTeX error


Colin is a Weymouth maths tutor, author of several Maths For Dummies books and A-level maths guides. He started Flying Colours Maths in 2008. He lives with an espresso pot and nothing to prove.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Sign up for the Sum Comfort newsletter and get a free e-book of mathematical quotations.

No spam ever, obviously.

Where do you teach?

I teach in my home in Abbotsbury Road, Weymouth.

It's a 15-minute walk from Weymouth station, and it's on bus routes 3, 8 and X53. On-road parking is available nearby.

On twitter