Liouville (1809-1882)

What is now proved was once only imagin'd (William Blake)

All authors credit Liouville with being the discoverer (creator?) of the first example of a transcendental number, but there is definite confusion with regard to dates . All are agreed on the date (1844), and even on the approximation theorem (again 1844) that he used, but not on the actual number that he first proved to be transcendental.

In seems that in his 1844 paper he proved there were transcendental numbers by using his approximation theorem and continued fractions (indeed anyone who knows both can readily create their own private transcendental numbers at will), but, it seems , it wasn't until 1851 that he gave the following example (that many authors state he gave in 1844), the number now named the Liouvillian number , namely the sum of the infinite series Sum(1/(10^m!),m = 1 .. infinity) ), the decimal number:

0. 11 000 1 00000000000000000 1 0000...

where the 1 's occur at the 1^st, 2^nd, 6^th, 24^th, 120^th , ... places.

Here is one case (perhaps the only case) where a beginner may follow with little difficulty a transcendence proof . It all depends on a completely simple, but utterly important observation concerning how well algebraic numbers may be approximated by rational numbers:

Theorem (Liouville, 1844). Let alpha be any real algebraic number of degree n ( 2 <= n ), then there is a positive constant c = c(alpha) (i.e. the value of c depends only on alpha ) such that

abs(alpha-p/q) > c(alpha)/(q^n) ... (i)

for all rational numbers p/q ( p and q integers, with q > 0).

Remark 1. Liouville's theorem is also true when n = 1, in other words in the case where alpha is itself a rational number. There is then an obvious modification that needs to be made in the statement of the theorem: instead of "for all rational numbers p/q ", one now needs the necessary restriction p/q <> alpha . The validity of (i) is then a complete triviality, for suppose alpha = a/b ( a and b integers, b > 0) and that alpha <> p/q . Then

abs(alpha-p/q) = abs(a/b-p/q) = abs((aq-bp)/bq) = abs(aq-bp)/bq , is at least 1/bq .
since the previous numerator,
abs(aq-bp) , is at least 1 (it can't be 0 since otherwise a/b = p/q )

Thus (i) holds with (say) c = 1/(b+1) .

Remark 2. Inequality (i) is completely trivial if p/q is not close to alpha , since, in that case, the left hand side of (i) is not small, whereas 1/(q^n) has minimum value 1, and is quite small when q is large. In short, one should appreciate that the inequality (i) is only of significance for rationals p/q that are close to alpha .

(The) Proof of Liouville's theorem (is easy). Let f(x) = a[0]*x^n+a[1]*x^(n-1)+`...`+a[n] be the irreducible polynomial with integer coefficients such that f(alpha) = 0 , and let p and q be integers with q > 0. Then, by the mean value theorem,

f(p/q) = f(p/q)-f(alpha) = ( p/q-alpha )*f '( beta ) ... (ii)

for some beta between p/q and alpha (where f '( x ) is the first derivative of f( x )).

If 1 <= abs(alpha-p/q) then (i) holds (trivially) with (e.g.) c = 1/2 , whereas if abs(alpha-p/q) < 1 , then abs(beta) < abs(alpha)+1 , and thus |f '( beta )| is bounded above by a constant c ' whose value depends only on (numbers associated with) alpha :

|f '( beta )| = abs(n*a[0]*beta^(n-1)+(n-1)*a[1]*beta^(n-2)+`...`+a...

where H is the maximum of the absolute values of the coefficients a[0], a[1], `...`, a[n-1] . Multiplying through (ii) by q^n , and using f(p/q) <> 0 (since f( x ) is irreducible of least degree 2, and so has no rational roots), gives

1 <= q^n*abs(f(p/q)) = q^n*abs(alpha-p/q) *|f '( beta )| < q^n*abs(alpha-p/q) * c '

(i) follows immediately.

___________________

I include the following only to illustrate the idea behind the proof of Liouville's theorem. I choose an algebraic alpha of degree 3, one that is a solution of the (irreducible) equation 6*x^3-14*x-x+11 = 0 :

> restart;

> f := x -> 6*x^3 - 14*x^2 - x + 11;

f := proc (x) options operator, arrow; 6*x^3-14*x^2...

> factor(f(x));

6*x^3-14*x^2-x+11

> plot(f(x), x = -1..2);

[Maple Plot]

>

I choose alpha to be the largest of those solutions (you can see it is slightly more than 1.925...)

> fsolve(f(x) = 0);

-.7929093027, 1.200922404, 1.925320232

>

and a rational number p/q that is near to alpha (in the following diagram I have chosen two rational numbers that are close to alpha :

  • p1/q1 = 19/10 , slightly to the left of alpha , and
  • p2/q2 = 39/20 , slightly to the right of alpha

Then, close in near alpha , the graph of the function is almost linear , and thus (whether p/q be p1/q1 or p2/q2 ):

abs(f(p/q)) (which is a non-zero rational number - with denominator q^3 - and so has minimum value 1/(q^3) )

is almost equal to abs(alpha-p/q) *|f '( alpha )|

It should be clear, then, that abs(alpha-p/q) is bounded, from below , by a constant multiplied by 1/(q^3) .

> with(plots): with(plottools):
pl1 := plot(f(x), x = 1.89..1.955, thickness=2):
pl2 := textplot([1.93,-0.03,`alpha`],align=LEFT):
p1 := 19: q1 := 10:
l1 := line([p1/q1, 0], [p1/q1, f(p1/q1)], color=navy, thickness=2):
p2 := 39: q2 := 20:
l2 := line([p2/q2, 0], [p2/q2, f(p2/q2)], color=brown, thickness=2):
pl3 := textplot([1.9,0.06,`p1/q1`],align=ABOVE):
pl4 := textplot([1.9,-0.3,`f(p1/q1)`],align=RIGHT):
pl5 := textplot([1.95,-0.02,`p2/q2`],align=BELOW):
pl6 := textplot([1.95,0.35,`f(p2/q2)`],align=LEFT):
display([pl1, pl2, l1, l2, pl3, pl4, pl5, pl6]);

Warning, the name changecoords has been redefined

[Maple Plot]

>

Once one is in possession of Liouville's theorem, transcendental numbers simply fall into ones lap (in fact, with Cantorian hindsight, one may construct an uncountable number of such Liouville-type numbers). Anyone who is familiar with continued fraction expansions of irrational numbers will see immediately that all one has to do - to produce transcendental numbers - is to define numbers whose partial quotients grow in size sufficiently rapidly... I think that is what Liouville did in his 1844 paper (I've never read the original paper, and stand to be corrected), whereas it was in a later (1851) paper that he gave (what many seem to think was in the 1844 one) his well-known decimal example mentioned earlier:

alpha = Sum(1/(10^m!),m = 1 .. infinity) = 0. 11 000 1 00000000000000000 1 0000...

Proof of transcendence of alpha (the real number alpha cannot be algebraic since it possesses rational approximations that are incompatible with it being algebraic; the relevant rational approximations are simply the early, (first m terms, varying part), of the infinite sum).

Sum(1/(10^m!),m = 1 .. infinity) = 1/(10^1!)+1/(10^...

Now 1/(10^1!)+1/(10^2!)+`...`+1/(10^m!) is a rational number p[m]/q[m] with denominator q[m] = 10^m! , and thus

alpha = p[m]/q[m]+R[m] , where the remainder term, R[m] , is positive and less than 2/(10^(m+1)!) = 2/(q[m]^(m+1)) .

abs(alpha-p/q) < 2/(q[m]^(m+1)) (true for all m = 1, 2, 3, 4, ... )

That latter inequality is incompatible with alpha being an algebraic number: for if alpha were algebraic of degree n then one would have 2/(q[m]^(m+1)) > c(alpha)/(q[m]^n) , which is clearly impossible for m sufficiently large.

Cantor motivated observation. With Cantorian hindsight one may in fact observe that there are an uncountable number of transcendental numbers of Liouville type (meaning ones whose transcendence may be established by the Liouville approach). Simply let { a[n] } be any infinite sequence in which a[n] = 1 or 2 for all n . There is an uncountable number of such sequences, and, for any one of those sequences, the number alpha defined by

alpha = Sum(a[m]/(10^m!),m = 1 .. infinity)

is transcendental, and no two such numbers are equal (different sequences produce different numbers, in this case ).

________________

Actually, there is a way of seeing that the above number is transcendental, without knowing anything about the above approximation theorem. Indeed this alternative way could be understood by a numerate school pupil with some ability. All that is needed is that one should know - really know! - how to multiply decimals together, as I will now illustrate.

Question . Which do you think is easier to work out:

  • the square of the infinite decimal number 0.01010101 ... ?, or
  • the square of the infinite Liouville decimal number 0.11000100 ... ?

If you tried to do the first one longhand (as we all learned at school) I think you would soon run into trouble. Try it! Ask your pupils to try it. The 'carrying' gets to be troublesome...

It shouldn't surprise you to know that the squared decimal will be periodic : that's simply because the above decimal - which should be seen as the sum of the infinite geometric series with initial term 1/100 and 'common ratio' 1/100 - is, of course, the decimal expansion of the rational number 1/99 , and thus the sought, squared decimal, will be whatever is the decimal expansion of 1/(99^2) . But what are the digits in that expansion? First, here are the already seen digits in the infinite expansion of 1/99 :

> with(numtheory):

Warning, the protected name order has been redefined and unprotected

> pdexpand(1/99);

PDEXPAND(1,0,[],[0, 1])

>

That final "[0, 1]" is to be repeated ad infinitum to produce the decimal expansion of 1/99 .

Here are a few others before we see the decimal expansion of 1/(99^2) :

> pdexpand(1/7);

PDEXPAND(1,0,[],[1, 4, 2, 8, 5, 7])

which means that 1/7 = .142857*`...ad inf`

> pdexpand(1/28);

PDEXPAND(1,0,[0, 3],[5, 7, 1, 4, 2, 8])

which means that 1/28 = .3571428e-1*`...ad inf` (with only the '571428' being repeated)

> pdexpand(-97/26);

PDEXPAND(-1,3,[7],[3, 0, 7, 6, 9, 2])

which means that (-97)/26 = -3.7307692*`...ad inf` (with only the '307692' being repeated)

And finally, the decimal expansion of (.1010101e-1*`...`)^2 is (anyone like to guess before I reveal it?):

> pdexpand(1/99^2);

PDEXPAND(1,0,[],[0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5...
PDEXPAND(1,0,[],[0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5...
PDEXPAND(1,0,[],[0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5...
PDEXPAND(1,0,[],[0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5...
PDEXPAND(1,0,[],[0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5...

>

There are 198 digits in the repeating cycle. Don't try - by hand! - working out the decimal expansion of the cube of 1/99 : there are 19602 digits in the cycle. Anyone familiar with the relevant Number Theory will know it's to do with the fact that ord[10](99^3) = 19602 (= 2* 99^2 ), and the above decimal expansion is to do with the fact that ord[10](99^2) = 198 (= 2*99):

> order(10, 99^2);

198

>

and thus that the periodic block of the decimal expansion of 1/(99^2) commences with three 0s, followed by:

> (10^198 - 1)/99^2;

102030405060708091011121314151617181920212223242526...
102030405060708091011121314151617181920212223242526...
102030405060708091011121314151617181920212223242526...

>

It might initially surprise the unsuspecting that it's much easier to work out - by hand! - the decimal value of the square of the above Liouvillian decimal. And its cube, and its fourth power, and ... . Of course one sees why it's easier... : those huge blocks of 0's between the 1's. That alone - without having to use Liouville's approximation theorem - allows one to argue that the Louville decimal is transcendental, as I now illustrate.

First I manufacture a certain quadratic polynomial, 50*x^2+4949*x-545 , for which the above Liouville number ( alpha ) is almost a root (i.e. x = alpha is almost a solution of 50*x^2+4949*x-545 = 0 ).

This is how I arrived at that quadratic (don't worry if you don't follow the continued fraction reasoning behind it): I began by forming the rational number corresponding to the initial part of the Liouville number; in fact simply the third partial sum 1/(10^1!)+1/(10^2!)+1/(10^3!) , which is a rational number, and so has a terminating continued fraction expansion:

> alpha3 := add(1/(10)^(n!), n = 1..3);

alpha3 := 110001/1000000

> cfrac(alpha3, quotients);

[0, 9, 11, 99, 1, 10, 9]

>

Anyone who knows about continued fractions, and knows the effect of a large partial quotient, will spot that '99', and realise why I now define the infinite periodic continued fraction with partial quotients [0, 9, 11, 99, 9, 11, 99, ... ], having initial 0, followed by the infinitely repeated block [9, 11, 99]:

> cf3 := [[0], [9, 11, 99]];

cf3 := [[0], [9, 11, 99]]

> beta3 := invcfrac(cf3);

beta3 := -4949/100+1/100*sqrt(24601601)

> Digits := 10:
evalf(beta3); # you see the 'extra' bit:

.11000101

>

That number, beta3 (which is close to alpha3, which is close to alpha ), is the solution of a quadratic equation, and that equation is recovered by setting

x = -4949/100+sqrt(24601601)/100 , 100*x+4949 = sqrt(24601601) , (100*x+4949)^2 = 24601601 , etc:

> (expand((100*x + 4949)^2) - 24601601);

19607600

The coefficients obviously have gcd = 200:

> igcd(10000, 989800, 109000);

200

> solve(50*x^2 + 4949*x - 545 = 0); # the first is L3

>

Now observe how close x = alpha3 is to being a solution of the equation 50*x^2+4949*x-545 = 0 . I will calculate the value of

  • 50*x^2+4949*x at x = alpha3, first to 7 decimal places, and then
  • 50*x^2+4949*x at x = alpha3, to 8 decimal places

and observe proximity to 545 :

> evalf(50*alpha3^2 + 4949*alpha3, 7);
evalf(50*alpha3^2 + 4949*alpha3, 8);

545.0000

544.99996

>

Thus x = alpha3 is almost a solution of the equation 50*x^2+4949*x-545 = 0 , and we reasonably ask:

could x = alpha be a solution?

Without using Liouville's approximation theorem we may easily see that it isn't. I'm not going to 'dot every i and cross every t' , but rather give pointers and invite you to ponder on your own.

What one wants to do is to somehow calculate 50*alpha^2+4949*alpha-545 and see that it isn't 0.

Note first of all that Maple can't do that exact calculation for us (though it can do many infinite sums):

> restart;
alpha := sum(1/10^(n!), n = 1..infinity); # 'add' won't 'work'

alpha := sum(1/(10^n!),n = 1 .. infinity)

> 50*alpha^2 + 4949*alpha - 545;

50*sum(1/(10^n!),n = 1 .. infinity)^2+4949*sum(1/(1...

>

But one can calculate, or rather see the essential part of the decimal expansion of 50*alpha^2+4949*alpha-545 by hand, and in the process see that 50*alpha^2+4949*alpha-545 <> 0 . The essential point is that it's actually quite easy to square alpha - much easier than squaring the earlier challenge decimal .0101010101... - in the sense that one can see what its decimal expansion is (this is difficult to type up, since I want vertical holds on the place values in the good old-fashioned way of multiplying and 'carrying'). For each line you should keep in mind where the next '1' is occurs, and the next, and the next, ... :

.11000100000000000000000100000000... multiplied by

.11000100000000000000000100000000... is

.011000100000000000000000100000000... plus

.0011000100000000000000000100000000... plus

.00000011000100000000000000000100000000... plus

.00000000000000000000000011000100000000000000000 1 00000000... plus

ad infinitum , which adds up to

alpha^2 = .01210022000100000000000022000200000000000000000 1 00000000... , thus

50*alpha^2 = .6050110000500000000000110001000000000000000000 50 0000000...

4949*alpha = 544.3949490000000000000049490000000000000000000000000000... , which adds up to

544.9999600000500000000049600001000000000000000000 50 0000...

and what I am attempting to draw your eye's attention to is the occurence of that 50 , which is going to occur over and over again (as a consequence of which it is obvious that 50*alpha^2+4949*alpha cannot be equal to 545, a whole number). I invite you to think about why that kind of thing happens, not just in this particular case but in the general case. The above kind of numerical play is only to give one a feeling for this, but you need to start thinking about the question: where, in place , do we get 1s occuring in the decimal expansion of (not just) alpha^2 (but alpha^3, alpha^4, `...` ), and what then if the effect of multiplying by coefficients, and adding, ... Can we end up getting '0' after it's all totted up?

The numerical play has a more formal aspect to it (which should be preceded by play), and that formal aspect is the infinite version of (e.g.) (a[1]+a[2]+a[3])^2 = a[1]^2+a[2]^2+a[3]^2+2*a[1]*a[... ,

namely (a[1]+a[2]+a[3]+`...`)^2 = a[1]^2+a[2]^2+a[3]^2+`.....

+ 2*a[2]*a[3]+2*a[2]*a[4]+2*a[2]*a[5]+`...` + 2*a[3]*a[4]+2*a[3]*a[5]+2*a[3]*a[6]+`...` + ad infinitum

so as to see where 1s occur in (.110001000*`...`)^2 = `.1`^2+`.01`^2+`.000001`^2+`... (each of those contributes a ' 1 ' to the decimal expansion) + the 'cross terms', each of which contributes a ' 2 ' to the decimal, and to see how isolated those 1 s are in terms of their neighbouring non-zero digits.

I will end with a lovely example from Conway & Guy's The Book of Numbers . They observe that the Liouville number is almost a solution of the 6th degree polynomial equation 10*x^6-75*x^3-190*x+21 = 0 :

> Digits := 24: alp := evalf(add(1/(10)^(n!), n = 1..4)):
10*alp^6 - 75*alp^3 - 190*alp;

-21.0000000059484221132340

>

They don't tell their readers how that polynomial was arrived at, and I leave it to my reader to speculate.

Contact details 

After August 31st 2007 please use the following Gmail address: jbcosgrave at gmail.com


This page was last updated 18 February 2005 15:09:57 -0000