On Thu, Jul 23, 2020 at 9:42 PM Bill Gosper <billgosper@gmail.com> wrote:
A couple of months ago, Julian found the first half of this identity for the (self avoiding) "median curve" <http://gosper.org/dragmed.png> of the usual dyadic rational sweep over 2^k+1 points.
1/2 (dragun[2^-k n] + dragun[2^-k (1 + n)]) == dragun[2^-k (1/2 - 1/4 (-1)^(1 + n) + n)] == dragun[2^(-3 - k) (-4 + 8 (1 + n) + Sqrt[2] Cos[1/4 (1 + n) π] - 2 Cos[1/2 (1 + n) π] - Sqrt[2] Cos[3/4 (1 + n)π] - (2 + Sqrt[2]) Sin[1/4 (1 + n) π] + 2 Sin[1/2 (1 + n) π] - (-2 + Sqrt[2]) Sin[3/4 (1 + n) π])]
I just "conjectured" this 2nd half. The Heighway function never sees the trigs and radicals, which are artifacts of a period 8 perturbation of the sweep parameter.
Mandelbrot seemed slightly embarrassed by his kludgy averaging|smoothing recipe for self avoidance. I'll bet he would have been pleased to see it fall out of these simple formulas. Though not nearly as pleased as just being able to exactly evaluate continuous fractal curves anywhere on the continuum.
It turns out that the (self-avoidng) median curve of the Terdragon <http://gosper.org/Terdmed.png> is identical to merely phase shifting it by half a step. It's possible that this is a new theorem, since it's not obvious how to take half a step on a triadic fractal.
Umm, no. TerDragon[1/2] obviously = 1/2 by symmetry, and the image of the interval [k,k+1]/3^n, is just a miniature TerDragon, so the median curve = halfstep shift theorem is obvious. But it's hard to find a nice sampling pattern for the median
<http://gosper.org/Terdshftmed.png> curve of the median curve <http://gosper.org/Terdshftmed.png>, because all its points are double! Leaving you with an exponential search (over the two-valued inverses) for a simple pattern. —rwg
That makes it hard, but something else seems to be making it impossible. E.g., the doublet preimages of the median curve of the median curve sampled at frequency 27 go In[245]:= dragtry@#[[1]] & /@ Mean[{Drop[%240, 1], Drop[%240, -1]}] Out[245]= {{59/2160, 131/2160}, {109/2160, 181/2160}, {73/720, 97/720}, {299/2160, 371/2160}, {349/2160, 421/2160}, {143/720, 167/720}, {539/2160, 611/2160}, {589/2160, 661/2160}, {233/720, 257/720}, {779/2160, 851/2160}, {829/2160, 901/2160}, {313/720, 337/720}, {1019/2160, 1091/2160}} Searching every possible binary choice for 12 consecutive doublets, In[255]:= Select[FindSequenceFunction[ Differences@Take[#, {2, 13}]] & /@ %247[[1 ;; 2^12]], Head@# =!= FindSequenceFunction &] // tim During evaluation of In[255]:= 27779.940092,0 (* Almost 8 hours *) Out[255]= {} (Failing similarly without the "Differences".) How can this simple fractal behave so randomly? Does FindSequenceFunction have some kind of blindspot? It didn't with the Heighway Dragon. Iterating the averaging once and again produces strange mixes of single and double points. (dragtry is inverse TerDragon): In[261]:= dragtry@#[[1]] & /@ Mean[{Drop[#, 1], Drop[#, -1]}] &@ Mean[{Drop[%240, 1], Drop[%240, -1]}] Out[261]= {{1/18}, {5/54}, {59/432, 373/2160}, {1/6}, {347/2160, 85/432}, {13/54}, {5/18}, {17/54}, {155/432, 853/2160}, {7/18}, {23/54}, {203/432, 1093/2160}} In[262]:= dragtry@#[[1]] & /@ Mean[{Drop[#, 1], Drop[#, -1]}] &@ Mean[{Drop[#, 1], Drop[#, -1]}] &@ Mean[{Drop[%240, 1], Drop[%240, -1]}] // tim During evaluation of In[262]:= 4.897701,11 Out[262]= {{109/2160, 181/2160}, {295/2952}, {1919/11070}, {1771/11070}, {689/2952}, {539/2160, 611/2160}, {589/2160, 661/2160}, {317/984}, {4379/11070}, {829/2160, 901/2160}, {1279/2952}} —rwg