SIAM 2002 challenge #7

7. Let A be the 20,000 × 20,000 matrix whose entries are zero everywhere except for the primes 2, 3, 5, 7, . . . , 224737 along the main diagonal and the number 1 in all the positions aij with |i - j| = 1,2,4,8, . . . ,16384. What is the (1, 1) entry of A-1?

We agreed among ourselves that "(1, 1) entry" most likely was intended to refer to array element A[0][0] (top left) rather than A[1][1].

Got the T-shirt, how about the quilt

image attached to an email i sent:


No solution, but a pretty picture: this is the 625 × 625 little sister of Trefethen's matrix. We fill the diagonal with primes, fill the side bands 1, 2, 4, 8, ... 512 off the diag. with ones, and invert.

I've done the 1250 × 1250 and 2500 × 2500 ones too, they look exactly the same (only bigger <g>) so i expect 5k × 5k, 10k × 10k, and 20k × 20k to look the same as well. There's a lovely "quilted" structure to it.

Displayed by ad-hoc program, each pixel is one entry, with greyscale floor( 255 + 8 * log( entry ) ) if entry nonzero, 0 otherwise -- on which then (of course) minimum 0 and maximum 255 were imposed. Inversion by Gauss Jordan in-place without pivoting, to accuracy of C double type (~15 digits), 1 min 14 sec on 1GHz pentium ///.


A confirmation to 5 digits

Brian,

  > Spotted how do to number 7 on the way to work this morning! <

Oooh! Wow! As it happens, it's the one i was working on today... Haven't made 
much headway. Been thinking of banded diagonal, but the thing is just too wide 
(tried thinking of a clever row/col renumbering scheme using Gray codes, no 
joy). So the best "confirmation" i can offer on that is some numerics.

I tried smaller matrices of the same general structure (real primes, same size 
up to a power of two so the same proportion of "sidebands" is cut off). So i 
wanted to look at 20000; 10000; 5000; 2500; 1250; 625; -- there it breaks down 
so i looked at 624; 312; 156; 78; 39 before that. (Turns out 624 and 625 are 
indistinguishible from the POV of the topleft element, up to 15 digits at 
least).

Also i tried looking at using fewer sidebands (say none, or just at +/-1 off 
the diagonal, or just +/-1 and +/-2, or just +/-1 and +/-2 and +/-4, and so 
on) to see what difference that makes. Looks to me that the *number* of them 
visible in a row is more important than the exact placement BTW. Anyway i got

Listing the top left entry of the inverses:

              N=39                  N=78                  N=156
 sidebands
 (none)       0.500000000000000  = (0.500000000000000) = (0.500000000000000)
 +/-1         0.608978172457446  ~  0.608978172457446  ~  0.608978172457446
 +/-1,2       0.648357732531960  ~  0.648357732531960  ~  0.648357732531960
 +/-1,2,4     0.687871546624077  ~  0.687871546624077  ~  0.687871546624077
 +/-1,2,4,8   0.708346688467642  ~  0.708346688467642  ~  0.708346688467642
 +/-1,...16   0.717523132162625     0.717523133722170  ~  0.717523133722170
 +/-1,...32   0.721706723257007     0.721715331491687     0.721715331514464
 +/-1,...64   -.---------------     0.723593621131649     0.723594286865109
 +/-1,..128   -.---------------     -.---------------     0.724412923535774
 +/-1,..256   -.---------------     -.---------------     -.---------------


              N=156                 N=312                 N=624
 sidebands
 (none)      (0.500000000000000) = (0.500000000000000) = (0.500000000000000)
 +/-1         0.608978172457446  ~ (0.608978172457446) ~ (0.608978172457446)
 +/-1,2       0.648357732531960  ~ (0.648357732531960) ~ (0.648357732531960)
 +/-1,2,4     0.687871546624077  ~ (0.687871546624077) ~ (0.687871546624077)
 +/-1,2,4,8   0.708346688467642  ~ (0.708346688467642) ~ (0.708346688467642)
 +/-1,...16   0.717523133722170  ~ (0.717523133722170) ~ (0.717523133722170)
 +/-1,...32   0.721715331514464  ~ (0.721715331514464) ~ (0.721715331514464)
 +/-1,...64   0.723594286865109     0.723594286865497  ~ (0.723594286865497)
 +/-1,..128   0.724412923535774     0.724412980591536     0.724412980591542
 +/-1,..256   -.---------------     0.724782033554568     0.724782038520506
 +/-1,..512   -.---------------     -.---------------     0.724945321476019
 +/-1,.1024   -.---------------     -.---------------     -.---------------


              N=625                 N=1250                N=2500
 sidebands
 (none)      (0.500000000000000) = (0.500000000000000) = (0.500000000000000)
 +/-1        (0.608978172457446) ~ (0.608978172457446) ~ (0.608978172457446)
 +/-1,2      (0.648357732531960) ~ (0.648357732531960) ~ (0.648357732531960)
 +/-1,2,4    (0.687871546624077) ~ (0.687871546624077) ~ (0.687871546624077)
 +/-1,2,4,8  (0.708346688467642) ~ (0.708346688467642) ~ (0.708346688467642)
 +/-1,...16  (0.717523133722170) ~ (0.717523133722170) ~ (0.717523133722170)
 +/-1,...32  (0.721715331514464) ~ (0.721715331514464) ~ (0.721715331514464)
 +/-1,...64  (0.723594286865109) ~ (0.723594286865497) ~ (0.723594286865497)
 +/-1,..128   0.724412980591542  ~ (0.724412980591542) ~ (0.724412980591542)
 +/-1,..256   0.724782038520506  ~  0.724782038520506  ~ (0.724782038520506)
 +/-1,..512   0.724945321476019     0.724945321901902  ~ (0.724945321901902)
 +/-1,.1024   -.---------------     0.725018832586766     0.725018832625760
 +/-1,.2048   -.---------------     -.---------------     0.725052422219399
 +/-1,.4096   -.---------------     -.---------------     -.---------------


 Legend:    -.---------------  same as one above (more side bands won't show)

             =                 equal arithmetically

             ~                 looks equal to 15 places

           (x.xxxxxxxxxxxxxxx) not calculated, assumed same as one left of it,
                               to 15 places

It turns out that, to fifteen places, only the last three (later on, two) of 
each column are different from the ones left of it. Yet the pattern by which 
new row values in the table form is not clear to me. If you list, for each 
column in the table, difference between successive values, and then ratios of 
successive differences, the ratios wobble up and down a bit, unpredictably.

So i could not say much more about the N = 20,000 column, +/-1..16384 row, 
entry, than that it's about 0.72508 (which, as far as it goes, corroborates 
the first few digits of your result).

All inverses done by simple Gauss Jordan without pivoting, which seems 
adequate as our diagonal elements are so much bigger than the rest.

As 2500x2500 took 80 minutes and 50 meg, and the time and space go up by 8x 
and 4x respectively at each doubling, i didn't intend to do bigger ones. I was 
hoping for a clear pattern. Also, at 5000 float operations for every matrix 
element i start doubting that those 15 digits of type double have more than 
about 10 digits of reality left in them, another reason not to push on.

  > 0.7250783462684 <

I'm getting really curious as to your method. :)

--Regards, marijke [²°02-03-20 17:22:47.33, 55°51'35"N, 5°05'03"W, 0.02]
  http://www.maxwellian.demon.co.uk/~marijke/

See Brian's solution

<back