411 REFERENCE · Wikibooks
Fractals/Iterations in the complex plane/atomdomains
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
Name
period domain
atom domain.Atom Domain by Robert P. MunafoPractical interior distance rendering by Claude Heiland-Allen
BOF61( see book Beauty Of Fractals page 61 )The_Beauty_of_Fractals in english wikipediaBof61 algorithm in wikibooks
orbit trap at (0,0) An orbit trap at (0,0) by hobold
mclosetime
Examples
Images
fractalforums : cellular-coloring-of-mandelbrot-insides
Video
2D Mandelbrot zoom (4K, 60fps) ayoungblood
You tube video : Mandelbrot, 1080p 25fps by Warren Garabrandt
Description
Atom domains in case of the Mandelbrot set ( parameter plane) are parts of parameter plane with the same the index p.
index
it is positive integer
for p=1 domain is a whole plane because in the algorithm value of complex modulus is compared to infinity
it is equal to
the period of hyperbolic component of the Mandelbrot set which is inside domain
iteration at which modulus of z is minimized during iteration of critical point
Properities
Note that :
atom domains are overlapping
"Atom domains surround hyperbolic components of the same period, and are generally much larger than the components themselves"misiurewicz_domains by Claude
"These domains completely enclose the hyperbolic components of the same period"
"the atom domain is wholy within its own Newton basin, and also significantly larger than the corresponding component"mandelbrot set newton basins by Claude Heiland-Allen
Atom domain contain :
component of mandelbrot set with period n mv
exterior of this component
some other components
Importance
It can be used for :
fast finding ( aprioximating) of period n components of Mandelbrot set and it's centers, (domains are greater than components which makes them useful for finding components)
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;}}
Shadertoy
Shadertoy bof61
modifications
Filtered atom domains
modified atom domains - which makes smaller domains more visible.
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 :
the time it takes z to reach its smallest value
iterate of the critical point makes the closest approach
Index (c) is the iteration when point of the orbit was closest to the origin. Since there may be more than one, index(c) is the least such.
This algorithms shows borders of domains with the same index(c)Fractint doc by Noel Giffin
.A Series of spiral bays in the Mandelbrot set by Patrick Hahn
Fragment of code : fractint.cfrm from Gnofract4d gnofract4d
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
thumbnail|Atom domains : note that atom domains overlapp and "completely enclose the hyperbolic components of the same period"Practical interior distance rendering by Claude Heiland-Allen
Note that this method can be applied to both exterior and interior. It is called atom domain.Atom Domain From the Mandelbrot Set Glossary and Encyclopedia, by Robert Munafo It can also be modified Modified Atom Domains by Claude Heiland-Allen
Size of the atom domain
estimation of size Atom domain size estimation by Claude Heiland-Allen
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