I finally understand Pauldelbrot's #Triskelion #fractal formula enough to have extended it to true "dial-a-#Julia" parameter representation.

I posted more details here, also check the post I quoted (follow link back to original post) in this thread:
https://fractalforums.org/image-threads/25/julia-and-mandelbrot-sets-w-or-wo-lyapunov-sequences/2696/msg18077#msg18077

#maths #mandelbrot

Julia and Mandelbrot sets w or w/o Lyapunov sequences in Image Threads

Page 3 of 3: @claude: Thanks. "Binary colouring" and kind of a binary answer too - "No. No. Yes." Just experimenting a bit with formulas for tricomplex numbers a

Hm, I think the dial-a-Julia is more complicated than that - doesn't seem to work intuitively in all cases...
yeah it''s way more complicated. even for combining two Julia sets you need iterative algorithms (reading about "slow mating" recently).

This is 1/5 mated with 3/7, by Wolf Jung's slow mating code. I think these are called "kokopelli" and "airplane" but I'm not 100% sure.

The coordinates of the original quadratic Julia sets z^2+p and z^2+q are:
p=-0.156520166834+1.03224710892i
q=-1.75487766625+0i

This gets transformed by slow mating into a rational Julia set of (z^2+a)/(z^2+b) with:
a=0.0179135710251-1.62249482949i
b=0.843957176345+0.530054232669i

Why the code needs angles as inputs and not just p,q complex numbers I'm not sure - maybe it has to do with needing (pre)periods for the mating step? I need to read the code to be sure...

Extract from the code:

```
u = rd - 1.0L, v = id, x = 1.0L - rc, y = ic, w = x*x + y*y;
u /= w; v /= w; w = u*x - v*y; y = u*y + v*x; x = w;
u = rd*rd - id*id; v = 2.0L*rd*id; w=u*u + v*v;
x /= w; y /= w; w = x*u + y*v; y = y*u - x*v; x = w;
w = rd*rd + id*id; u = rc/w; v = ic/w;
w = u*rd + v*id; v = v*rd - u*id; u = w;
w = u*x - v*y; v = u*y + v*x; u = w;
```

it would be nice if there were comments explaining what complex number expression of (rd+i id) and (rc + i ic) this is computing into (u+ i v) and (x + i y), but there aren't, so I guess I have to carefully unpick what all of this means.

This is the bit that takes the mated values and from them computes $a$ and $b$ for the rational function $(z^2+a)/(z^2+b)$.

I think that the mess of code works out as:

$$A = \frac{C(D-1)}{D^3(1-C)}$$
$$B = \frac{D-1}{D^2(1-C)}$$

but I'm not 100% sure, I guess I could test it numerically to see how close it is....

I implemented Slow Mating for quadratic polynomials using the equations and hints in Chapter 5 of Wolf Jung's 2017 paper "The Thurston Algorithm for quadratic matings" https://arxiv.org/abs/1706.04177

My code is 145 lines of quite-straightforward C, vs 2249 lines of C++ with various state hidden in mutating objects for the code accompanying the paper (which admittedly does a lot more, working from angles to compute the complex points and (pre)periods that are the input to my code). I'll do a blog post next week once I've tested more cases to make sure I haven't done any big mistakes.

There were a couple of subtleties, 1. needing to use cproj() to normalize infinity's representation and avoid NaNs; and 2. in one place, converting (a - b) / (a - c) to (1 - b/a) / (1 - c/a) so that it still works when a is infinite.

Attached images are the north period 4 island mated with the west period 4 island (blue background), and 2/5 bulb mated with 1/2 bulb (turquoise background).

#Quadratic #JuliaSets #SlowMating #RationalFunction #maths #fractals

The Thurston Algorithm for quadratic matings

Mating is an operation to construct a rational map f from two polynomials, which are not in conjugate limbs of the Mandelbrot set. When the Thurston Algorithm for the unmodified formal mating is iterated in the case of postcritical identifications, it will diverge to the boundary of Teichmüller space, because marked points collide. Here it is shown that the colliding points converge to postcritical points of f , and the associated sequence of rational maps converges to f as well, unless the orbifold of f is of type (2, 2, 2, 2). So to compute f , it is not necessary to encode the topology of postcritical ray-equivalence classes for the modified mating, but it is enough to implement the pullback map for the formal mating. The proof combines the Selinger extension to augmented Teichmüller space with local estimates. Moreover, the Thurston Algorithm is implemented by pulling back a path in moduli space. This approach is due to Bartholdi--Nekrashevych in relation to one-dimensional moduli space maps, and to Buff--Chéritat for slow mating. Here it is shown that slow mating is equivalent to the Thurston Algorithm for the formal mating. An initialization of the path is obtained for repelling-preperiodic captures as well, which provide an alternative construction of matings.

1/3 child bulb of north period 4 island, mated with 1/2 child bulb of period 3 island

I used my mandelbrot-numerics programs to calculate the input coordinates:
```
./slow-mating $(m-nucleus double $(m-exray-in double ".(001100110100)" 16 1000 | tail -n 1) 12 64 1) 0 12 $(m-nucleus double $(m-exray-in double ".(011100)" 16 1000 | tail -n 1) 6 64 1) 0 6
```

I plotted the pullback curves of the previous example. for periodic cycles the first curve is fixed at 0 or infinity and the next is the critical point (which in previous posts I labelled C and D for the two families of curves, and gave an expression to calculate A and B from them to give the rational function (Z^2+A)/(Z^2+B)).

The pullback process involves all the curves simultaneously, each segment of the curve depends on the previous segment of the next curve in the periodic cycle.

I didn't check for homotopy violations yet, not sure how, nor when it is likely to occur....