Read Latex

Monday, October 23, 2006

Numerical Gold: A Certain Series

Consider the series:

1, 1, 2, 3, 12, 20, 300, 525, 1960, 49392, 1481760, 5821200, 164656800, 336370320, …

Do you, offhandedly recognize the generating function? This is a special series.

These are the inverses of the last solution xn
to the Hilbert matrices of order 1, 2, … 14

These matrices were notorious for being ill-conditioned, they are solved here symbolically using Maxima and rational arithmetic.

Maxima notebook is below.

The solution is to the n x n linear algebra problem [H]x = b.

To reproduce these numbers, or larger ones, one can edit the file with a text editor and then drag it into the Maxima window. The last number required 2 minutes to generate on my new dual-core. To change the order of the Hilbert matrix, just change the order variable at the top of the file. It is currently 4. So a point of curiosity really. The numbers become extremely expensive to find, growing at least as the cube of n times a large constant. So to me they are a kind of symbolic gold. The 100th number for example, is probably not knowable at the current time, but that is speculation on my part. You may notice some functional relationship that allows their simple generation thus “Cracking the Hilbert Code”.

For example

12 = 4 * 4 - 4
20 = 5 * 5 - 5
300 = 20 * 20 - 100
525 = 25 * 25 – 100
and so on.

Ref: The Code

load("eigen");
order : 4;
X : columnvector(makelist(concat(x,i), i, 1, order));
h[i,j] := 1/(i + j -1);
Unity[i,j] := 1;
A : genmatrix(h, order, order);
A . X;
B : genmatrix(Unity, 1, order);
A . X = B;
Ap : triangularize(A);
Ap . X = B;
App : invert(Ap);
App . B;