a = 0.1343601340757372719363390615284261744165
b = -0.6851921014889349327518356825806140975126
s = 7.3485744548807846e-24
t = (1,0,0,1)
formula:
z := z^2 + c
z := z^2 + c
z := (|x| + i |y|)^2 + c
z := (|x| + i |y|)^2 + c

(power 4)

a = 0.639842372544549201204928357495775021977648268509402840359034
b = 0.135996460127830318428355021688587977964732034634690759751358
s = 5.7332335426957978e-43
t = (0.6928120449739648,-0.713231167787216,0.7163656381606373,0.7059139674028518)

```
a = -1.7641372147884787988956820414441815
b = -3.1027166627556593979334487138566918e-2
s = 8.6736173798840355e-19
t = (0.6692182114898958,3.0642424452739516,2.90512202528787,14.796366937687294)
```
(`a+bi` is coordinates of center, `s` is inradius of view, `t` is a site-specific non-uniform stretch 2x2 matrix transformation applied to the pixel coordinates)

looking at the (pre)periods of Misiurewicz point hubs in the filaments (before zooming deeper to embedded Julia sets) could be instructive, from outside inwards along each decorating filament:

with period 1
a) 5k+1, 5(k+1), 5(k+2), ...
b) 5k+1, 5(k+1)-1, 5(k+2)-1, ...
c) 5k+1, 5(k+1), 5(k+2), ...
with period 2
d) 5k, 5(k+1)+1, 5(k+2)+1, ...

I don't know why only the outermost hub in each filament does not fit the general pattern of the sequences following, maybe I should look at the external angles...

Near the other period 5 island north of the 1/3 bulb (further out in the filaments), all the period 17 embedded Julia sets have 17p5/18p5 Misiurewicz points...

Maybe it's more complicated than a simple outermost/inner split, here the period 17 embedded Julia sets have 14p5/18p5 or 16p5/18p5 Misiurewicz points...

I think I need to automate this search to gather more data - labelling each diagram by hand (even if it is only a couple of mouse clicks) is slow boring work...

None of these period 19 embedded Julia sets near a period 5 island are outermost in their filaments, so they all have 19p5/20p5 principal Misiurewicz points.

I need to figure out more precisely what it means to be "outermost in a filament...".

I verified the 28p4/29p4 outermost/inner relationship for 16x period 29 embedded Julia sets near the 1/3 bulb of the northern period 4 island.

Here are closer views of the embedded Julia sets surrounding the period 29 islands. There are two next-lowest period islands of period 29 (inner island) + 4 (outer island) = 33, and there are two pairs of principal Misiurewicz points with equal (pre)periods.

But what those (pre)periods are depends on whether the 29 island is the outermost (lowest period) island in the decorating filament attached to the 2/5 hub. All of them have a 30p4, but the outermost ones have a 28p4 while the inner ones have 29p4.

This small difference is a bit annoying for Rodney, because I don't know the filament structure so I don't know whether to use 28p4 or 29p4 as my target for zooming. Using the 30p4 won't work so well, because the basin of attraction for Newton's method doesn't extend to the 29 at the center.

And this is just one example, other locations seem to have slightly different numerical relationships...

Trying to figure out the formula for the (pre)periods of the principal points of embedded sets in the set.

Here's some context for the following toot: numbers are periods of hyperbolic components, fractions are rotation numbers of bond points, and in the next toot there will be some (preperiod)p(period) labels too.

about 5-10% of the time it fails to find a location. I think this happens because the decorations are sparse at low zoom levels, so it can't get started properly. took 110 attempts to get these 100 locations, I deleted a few because of nanomb2 failures

smooth zoom video of the previous lofi GIF. 2x zoom level keyframes rendered at 1920x1080, interpolated to 10x zoom per second at 60fps, downscaled to 160x90. there is still some strobing of filament width at the keyframe interval. need to figure out the best way to resolve this (maybe rendering keyframes at a higher zoom/temporal density)

Having a bot that can automatically explore is useful for finding failing locations... the attached image should have detailed filaments where the white flat areas are.

Out of 1000 attempts, bot found about 600 locations, of which 16 were visibly incorrect when rendered with NanoMB2 in KF.

Working on a bot for deep zoom exploration. So far it just zooms near to a succession of minibrots, which is not so interesting.

The static-image output mode does have some more choices: minibrot, wheel (100x zoom-out from minibrot), embedded Julia set, 4-fold embedded Julia set, 8-fold embedded Julia set, texture (zoomed a little outside a deep minibrot).

Bot outputs parameter files for KF, today I added zoom out rendering to the no-GUI mode. With the NanoMB2 algorithm and ReuseReference enabled, the attached lofi GIF rendered in about 2m30s wall-clock time on my 16-thread desktop machine.

I wrote some simple code to find the size (how deep to zoom) of n-fold embedded sets in the quadratic set.

Input:
r_o, the size of the outer island;
r_i, the size of the inner island;
m, for n =2^m-fold symmetry.

Output:
r_J, the size of the embedded Julia set.

Code:
```
r_J = r_o;
for (int k = 0; k < m; ++k)
r_J = sqrt(r_J, r_i);
```

Untested closed form solution:
```
r_J = pow(r_o * pow(r_i , (1 << m) - 1), 1.0 / (1 << m));
```
It may work out slower, as `sqrt()` is usually faster than `pow()`. Not likely to be a bottleneck in any code I can think of though.

Haven't worked out yet how to generalize it to higher power sets, maybe I'll play around with it later.

Conjecture that it will work reasonably well also for Burning Ship etc.

Wrote some simple code to trace equipotentials / level sets / lemniscates of the set. Increasing the level by 1 (corresponding to 1 iteration of z_{n+1} = z_n^2+c) needs double the number of points in the curve, so this is not very practical.

The algorithm is quite simple: start from a c_0 with iteration depth m. Compute the corresponding z_{0,m}, multiply it by exp(2 PI i / k) where k is some small value called the sharpness (eg k = 8) to get z_{1,m}, then use 's method to solve for c_1. Repeat this process k 2^m times and the curve of the c values should surround the Mandelbrot set, resembling it more closely as m increases.

Next step would be to take the discrete transform and see if it converges more/less quickly than the Laurent series, chances are it'll be about the same, i.e., incredibly slow...

Reference: mrob.com/pub/muency/lemniscate

I made a diagram based on one by Adam Majewski on wikicommons. Turns out the `betaF` code on the mu-ency page is way faster than the earlier code on the page. This image with 1000 terms calculated in a fraction of the time of 500 terms used in the previous post. Seems to take roughly O(n log n) space (discounting the growth of the numbers stored..).

I'm using my memo-sqlite package to memoize the series coefficients in a database, persisted between program invocations, so I don't have to wait 30mins each time.

Then I convert and pack the list of Rational from the db into an unboxed Vector Double, for faster series evaluation at each point of the curve (using Horner's rule).

Code: code.mathr.co.uk/fractal-bits/

Show more
lurk.org

Welcome to post.lurk.org, an instance for discussions around cultural freedom, experimental, new media art, net and computational culture, and things like that. This is part of a family of services that include mailing lists, group chat, and XMPP.