On Orbit Start-Points (z0)

Fractals like the mandelbrot set are generated using a function (in case
of the mandelbrot set it is “f(z) = z^2 + c”) that is repeatedly applied
to itself, thus generating the sequence “z0, f(z0), f(f(z0))” etc…

Picking a proper start value “z0” is important to obtain nice results, in particular to find smaller Mandelbrot Sets embedded in the fractal. Using a “non-suitable” value for z0 might yield interesting results, but mostly it is only “dust”.

For Julia Sets, the orbit starting value is always “point”, the current point coordinate. For Non-Julia-Sets (I will call these “Mandel Sets” from now on, apologies to all mathematicians) the best choice is a root of the first derivative of the function is 0. Fortunately, this is rather easy for most functions. The function of the Mandelbrot Set is “z^2 + c”. Its first derivative is f'(z) = 2z, and hence since f'(z0) should be 0, the start value “z0” is 0.

Classic mandelbrot using the aggregate program

My favorite functions for fractals are the hyperbolic functions “sinh” and “cosh”.
They yield nice fractals, eg the function “f(z) = sinh z * c”. The first derivative is “f'(z) = cosh z * c” and thus a root and therefore a suitable choice for z0 is “i * pi / 2”.

Spike in the sinh mandelbrot set

Challenges

For some functions, it might be tricky to find a start value “z0”. For instance, the first derivation might never be 0, eg. for “exp z * c” or “z^-2 + c”. In particular in the latter case, picking 0 as start value is a problem because of the division by 0. In such cases, one possibility is to simply use “c” like for Julia Sets, although one might not find mandelbrot islands. A better choice is to modify the function a bit, eg use “(exp z – z) * c” for which “0” can be used for “z0”. This one is an interesting fractal.

Fractal with typical artifacts of the exponential function

Another class of functions are those that contain functions like “cabs”, “conj”, “rabs” or “iabs”. These functions do not have a derivative. I personally do a mathematically unreasonable thing and simply pretend that eg “(cabs z)’ = z”. In most cases, “burning-shipifying” (placing a “cabs” in front of every “z” in the function) a fractal creates weird, asymetric spider webs (not that attractive), but the exponential function above creates interesting results.

Converging fractals

There is a wide range of fractals for which no point of the complex plane exceeds the bailout radius (I will call them ‘bound fractals’). Let’s start with a rather simple function and determine its critical points: “f(z) = z^-2 + log z + c”. The first derivative is “f'(z) = -2 * z^-3 + /z” and thus one critical point is “sqrt 2”. Using this value as “z0” yields this beautiful collection of mandelbrot sets.

Tip of convergent fractal

Newton fractals

Newton fractals are a class of bound fractals that is based on the Newton approximation. The Newton approximation for a function “f” is defined as “z – f / f'” and it converges to a root of “f”. To obtain a critical point of this function, we need to find a point such that “f * f” = 0″. The first derivation “f'” must not be 0 to avoid a division by 0, and for polynomial functions, “f” should also not be 0. Hence, we look for points such that “f(z)” = 0″ and “f(z)’ != 0” and “f(z) != 0”

Let’s try to find a critical point for “newton(sinh z + c, z)”. The second derivation is “f”(z) = sinh z” and therefore, z0 can be “0” (sinh is not a polynomical function).

I guess this is one of my favorite fractals. Unfortunately, “sinh” is not the fastest function, and its precision is limited, so let’s try the function “newton(z^3 – 3 * z^2 + c, z)”. The second derivation is “f”(z) = 6z – 6″ which yields the value “1” for z0.

Newton set with embedded mandelbrot set

In order to generate Newton Sets with a higher degree we can also use integration and backtrack from the second derivate: Let’s say that “f”(z) = z^3 – 1″. This means that “z0” could be “1”. After two times integrating this function we obtain
“f(z) = z^5 / 20 – z^2 / 2 + alpha * z + beta” where we can freely pick alpha and beta (one of these should contain “c” though).

One variation of this function is “newton(z^5 – 10 * z^2 + c, z)”. Another beautiful fractal. In general, I guess this is the easiest approach to obtain Newton sets based on polynoms with degree 5 or higher.

Nova fractals (R = 1)

And this brings us to Nova fractals. Their function strongly resembles the one of newton fractals except for the factor “R” and the addend “c”: “z – R * f / f + c”. If we restrict ourselves to the case “R = 1”, the same condition for start points as for newton fractals apply, i.e., “f * f”” should be 0.

I never paid much attention to Nova fractals but I am starting to believe that this might have been a mistake. They are gorgeous. This is the nova fractal generated by the function “newton((z + 1)(z – 1)(z + i)(z – i), z) + c” with “z0 = 1”.

Nova fractal with minmax orbit trap

Amazing…

Cheers

Karl

P.S.: If you find typos, comment here

P.P.S.: Anyone here who studied mathematics? I studied computer science, naturally more algebra than analysis, so if anyone with a background in analysis finds bad notions/notations, please tell me, I will correct them.

Leave a comment

Design a site like this with WordPress.com
Get started