Fractals/Iterations in the complex plane/atomdomains

< Fractals < Iterations in the complex plane

Name

Images

Video:

Description

Atom domains in case of the Mandelbrot set ( parameter plane) are parts of parameter plane for which the index p≥1 at which |zp| is minimized during iteration of z0=0 and zn+1=z2n+c.

Properities

Note that :

Importance

It can be used for :

Algorithm

whole parameter plane

// code from :
// http://mathr.co.uk/blog/2014-11-02_practical_interior_distance_rendering.html
// C program by Claude Heiland-Allen
complex double z = 0;
      complex double dc = 0;
      double minimum_z2 = infinity; // atom domain
      int period = 0;

      // iteration 
      for (int n = 1; n <= maxiters; ++n) {
        dc = 2 * z * dc + 1;
        z = z * z + c;
        double z2 = cabs2(z);

        if (z2 < minimum_z2) {
          minimum_z2 = z2;
          period = n;}}


bof61


This is the method described in the book "The Beauty of Fractals" on page 63, but the image in on page 61.

Color of point is proportional to :

This algorithms shows borders of domains with the same index(c)[6] [7].


Fragment of code : fractint.cfrm from Gnofract4d [8]

bof61 {
 init:
       int current_index = -1 ; -1 to match Fractint's notion of iter count
       int index_of_closest_point = -1
       float mag_of_closest_point = 1e100
 loop:
       current_index = current_index + 1
       float zmag = |z|
       if zmag < mag_of_closest_point
               index_of_closest_point = current_index
               mag_of_closest_point = zmag
       endif
 final:
       #index = index_of_closest_point /256.0
}

Cpp function

//       function is based on function mclosetime
//       from mbrot.cpp 
//       from program mandel by Wolf Jung 
//      http:www.iram.rwth-aachen.de/~jung/indexp.html  
////8 = iterate =  bof61
// bailout2=4 
int mclosetime(std::complex<double> C , int iter_max,  int bailout2)
{ int j, cln = 0;
  double x = C.real(), y = C.imag(), u, cld = 4;
  for (j = 0; j <= iter_max; j++)
  { u = x*x + y*y; 
    if (u > bailout2) return j;
    if (u < cld) {cld = u;cln = j; }
 
    u = x*x - y*y + C.real();
    y = 2*x*y + C.imag();
    x = u;
  }
  return iter_max + cln % 15; //iterate, bof61
  
}

It can be used :

// compute escape time  
              int last_iter= mclosetime(C,iter_max,bailout2);
              //  drawing code */
              if (last_iter>=iter_max) { putpixel(ix,iy,last_iter - iter_max);} // interior
                                else putpixel(ix,iy,WHITE); // exterior
Atom domains : note that atom domains overlapp and "completely enclose the hyperbolic components of the same period"[9]

Note that this method can be applied to both exterior and interior. It is called atom domain [10]. It can also be modified [11]

Size of the atom domain

estimation of size [12]

Function for computing size estimation of atom domain from nucleus c and its period p :

// code by Claude Heiland-Allen
// from http://mathr.co.uk/blog/2013-12-10_atom_domain_size_estimation.html
real_t atom_domain_size_estimate(complex_t c, int_t p) {
  complex_t z = c;
  complex_t dc = 1;
  real_t abszq = cabs(z);
  for (int_t q = 2; q <= p; ++q) {
    dc = 2 * z * dc + 1;
    z = z * z + c;
    real_t abszp = cabs(z);
    if (abszp < abszq && q < p) {
      abszq = abszp;
    }
  }
  return abszq / cabs(dc);
}

References

  1. Atom Domain by Robert P. Munafo
  2. Practical interior distance rendering by Claude Heiland-Allen
  3. Bof61 algorithm in wikibooks
  4. An orbit trap at (0,0) by hobold
  5. misiurewicz_domains by Claude
  6. Fractint doc by Noel Giffin
  7. A Series of spiral bays in the Mandelbrot set by Patrick Hahn
  8. gnofract4d
  9. Practical interior distance rendering by Claude Heiland-Allen
  10. Atom Domain From the Mandelbrot Set Glossary and Encyclopedia, by Robert Munafo
  11. Modified Atom Domains by Claude Heiland-Allen
  12. Atom domain size estimation by Claude Heiland-Allen
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.