highlighting parts of the Mandelbrot set in renders

  • 3 Replies
  • 236 Views

0 Members and 1 Guest are viewing this topic.

Offline claude

  • *
  • 3d
  • ****
  • Posts: 977
    • mathr.co.uk
« on: November 03, 2018, 06:54:35 PM »
In this thread I will show various ways to highlight different parts of the Mandelbrot set in renders.

First up, minibrots (and other mu-units) via renormalization.

The idea is to see when f_c^p(0) escapes a small region around 0 (for other formulas, replace 0 with a critical point).  This is explained more thoroughly in Demo 5 of Mandel 5.15 by Wolf Jung. The software is GPL but I couldn't decipher it (too much mutable state and magic values), consider the code on the linked web page a public domain implementation.

0. set ER2 = 4
1. find the nucleus C and period P of the owning atom, for example by Newton's method
2. find the d/dz of the nucleus' periodic cycle starting from Z=C (the product of 2Z excluding the Z=0)
4. set er2 = 4 / |d/dz|^2
5. iterate
Code: [Select]
    double _Complex z = 0;
    double _Complex dc = 0;
    double de = -1;
    double DE = -1;
    for (int k = 0; k < N; ++k)
    {
      if (cnorm(z) > er2 && de < 0)
        de = sqrt(cnorm(z)/er2) * log2(2*cnorm(z)/er2) / (cabs(dc) * pixel_spacing);
      for (int l = 0; l < period; ++l)
      {
        if (cnorm(z) > ER2 && DE < 0)
          DE = sqrt(cnorm(z)/ER2) * log2(2*cnorm(z)/ER2) / (cabs(dc) * pixel_spacing);
        dc = 2 * z * dc + 1;
        z = z * z + c;
      }
      if (de >= 0 && DE >= 0) break;
    }
    double MU = tanh(fmax(DE, 0));
    double mu = tanh(fmax(fmax(de, DE) * 4 / (period * period), 0)); // this 4/p^2 scale factor is preliminary, needs more research!
    colour = mix(red, mix(black, white, MU), mu);

full code and more example images at: https://mathr.co.uk/mandelbrot/mu-unit/
the attached shows a period 9 island in the antenna of the 1/3 mu-unit

I modified the distance estimation formula to avoid glitches near iteration band boundaries in the far exterior.  Seems to work, but I'm not sure if it will break in other views.

I suspect the 4/period^2 factor should really be "1 / feigenbaum constant ^ log2(period)" for period double bifurcations?  and other sequences of multiply islands etc might benefit from different factors?  To be researched!

References:
http://mndynamics.com/indexp.html
http://www.mrob.com/pub/muency/muunit.html

Offline claude

  • *
  • 3d
  • ****
  • Posts: 977
    • mathr.co.uk
« Reply #1 on: November 04, 2018, 03:19:43 PM »
Next, mu-atoms aka hyperbolic components via multiplier map:

If |z| reaches a new minimum at iteration p, find the limit cycle z_0 = f_c^p(z_0) by Newton's method.  c is in a hyperbolic component of period p when |d/dz f_c^p(z_0)| <= 1.

Code: [Select]
    double _Complex z = 0;
    double _Complex dc = 0;
    double M = 1.0 / 0.0;
    double DE = -1;
    int highlight = 0;
    for (int k = 1; k < N; ++k)
    {
        dc = 2 * z * dc + 1;
z = z * z + c;
        if (cnorm(z) < M)
        {
          M = cnorm(z);
          double _Complex w = z;
          double _Complex du;
          for (int l = 0; l < 30; ++l)
          {
            double _Complex u = w;
            du = 1;
            for (int m = 0; m < k; ++m)
            {
              du = 2 * u * du;
              u = u * u + c;
            }
            w -= (u - w) / (du - 1);
          }
          if (cnorm(du) < 1)
          {
            DE = 0;
            highlight = k == period;
            break;
          }
        }
        if (cnorm(z) > ER2)
        {
          DE = sqrt(cnorm(z)/ER2) * log2(2*cnorm(z)/ER2) / (cabs(dc) * r0 / H);
          break;
        }
    }

More images and full code at https://mathr.co.uk/mandelbrot/mu-atom/

(In fact the d/dz is a conformal map from the mu-atom to the unit disc, this can be used for other colouring algorithms.)

Offline Adam Majewski

  • *
  • Fractal Friar
  • *
  • Posts: 126
« Reply #2 on: November 04, 2018, 05:25:52 PM »

Offline FractalDave

  • *
  • Uploader
  • *
  • Posts: 171
    • Makin Magic Fractals
« Reply #3 on: November 23, 2018, 05:29:50 PM »
(inside) mmf3.ucl:periodicity set to true periodicity, for some reason I never considered restricting the colours to particular periodicities, easy enough to add though ;)

Am guessing this method is slower then Claude's though the attached image takes exactly the same time as inside "none" on my system !!
Of course Claude's method probably doesn't require such a high iteration count......(this was 2500 though lower would be OK at this res)
The meaning and purpose of life is to give life purpose and meaning.


xx
Mapping images into fractal renders

Started by FractalDave on Fractal Mathematics And New Theories

5 Replies
216 Views
Last post November 25, 2018, 08:14:59 AM
by xenodreambuie
xx
Mandelbrot Burning Ship Mandelbrot Mandelbrot hybrid 3

Started by claude on Fractal Image Gallery

0 Replies
198 Views
Last post January 17, 2018, 12:26:38 AM
by claude
xx
(Mandelbrot / Burning Ship / Mandelbrot / Mandelbrot) Hybrid

Started by claude on Fractal movie gallery

15 Replies
604 Views
Last post February 06, 2018, 04:56:54 AM
by claude
xx
Mandelbrot Burning Ship Mandelbrot Mandelbrot hybrid

Started by claude on Fractal Image Gallery

0 Replies
191 Views
Last post January 16, 2018, 11:30:30 PM
by claude
xx
Mandelbrot Burning Ship Mandelbrot Mandelbrot hybrid 2

Started by claude on Fractal Image Gallery

0 Replies
176 Views
Last post January 17, 2018, 12:10:56 AM
by claude