The Mandelbrot set is the set of complex numbers for which the function does not diverge when iterated from , i.e., for which the sequence , , etc., remains bounded in absolute value.
Its definition and name are due to Adrien Douady, in tribute to the mathematician Benoit Mandelbrot. The set is connected to a Julia set, and related Julia sets produce similarly complex fractal shapes.
Mandelbrot set images may be created by sampling the complex numbers and testing, for each sample point , whether the sequence goes to infinity
(in practice -- whether it leaves some predetermined bounded
neighborhood of 0 after a predetermined number of iterations). Treating
the real and imaginary parts of as image coordinates on the complex plane, pixels may then be coloured according to how soon the sequence crosses an arbitrarily chosen threshold, with a special color (usually black) used for the values of
for which the sequence has not crossed the threshold after the
predetermined number of iterations (this is necessary to clearly
distinguish the Mandelbrot set image from the image of its complement).
If is held constant and the initial value of —denoted by —is variable instead, one obtains the corresponding Julia set for each point in the parameter space of the simple function.
Images of the Mandelbrot set exhibit an elaborate and infinitely complicated boundary that reveals progressively ever-finer recursive
detail at increasing magnifications. The "style" of this repeating
detail depends on the region of the set being examined. The set's
boundary also incorporates smaller versions of the main shape, so the fractal property of self-similarity applies to the entire set, and not just to its parts.
The Mandelbrot set has become popular outside mathematics
both for its aesthetic appeal and as an example of a complex structure
arising from the application of simple rules. It is one of the
best-known examples of mathematical visualization and mathematical beauty.
History
The Mandelbrot set has its place in complex dynamics, a field first investigated by the French mathematicians Pierre Fatou and Gaston Julia at the beginning of the 20th century. This fractal was first defined and drawn in 1978 by Robert W. Brooks and Peter Matelski as part of a study of Kleinian groups. On 1 March 1980, at IBM's Thomas J. Watson Research Center in Yorktown Heights, New York, Benoit Mandelbrot first saw a visualization of the set.
Mandelbrot studied the parameter space of quadratic polynomials in an article that appeared in 1980. The mathematical study of the Mandelbrot set really began with work by the mathematicians Adrien Douady and John H. Hubbard, who established many of its fundamental properties and named the set in honor of Mandelbrot for his influential work in fractal geometry.
The mathematicians Heinz-Otto Peitgen and Peter Richter became well known for promoting the set with photographs, books, and an internationally touring exhibit of the German Goethe-Institut.
The cover article of the August 1985 Scientific American introduced a wide audience to the algorithm for computing the Mandelbrot set. The cover featured an image located at -0.909 + -0.275 and was created by Peitgen, et al. The Mandelbrot set became prominent in the mid-1980s as a computer graphics demo, when personal computers became powerful enough to plot and display the set in high resolution.
The work of Douady and Hubbard coincided with a huge increase in interest in complex dynamics and abstract mathematics,
and the study of the Mandelbrot set has been a centerpiece of this
field ever since. An exhaustive list of all who have contributed to the
understanding of this set since then is long but would include Mikhail Lyubich, Curt McMullen, John Milnor, Mitsuhiro Shishikura and Jean-Christophe Yoccoz.
Formal definition
The Mandelbrot set is the set of values of c in the complex plane for which the orbit of 0 under iteration of the quadratic map
remains bounded.[13] That is, a complex number c is part of the Mandelbrot set if, when starting with z0 = 0 and applying the iteration repeatedly, the absolute value of zn remains bounded however large n gets. This can also be represented as
For example, letting c = 1 gives the sequence 0, 1, 2, 5, 26, ..., which tends to infinity. As this sequence is unbounded, 1 is not an element of the Mandelbrot set. On the other hand, c = −1 gives the sequence 0, −1, 0, −1, 0, ..., which is bounded, and so −1 belongs to the Mandelbrot set.
The Mandelbrot set is defined by a family of complex quadratic polynomials
given by
obtained by iterating starting at critical point , which either escapes to infinity or stays within a disk of some finite radius. The Mandelbrot set is defined as the set of all points such that the above sequence does not escape to infinity.
More formally, if denotes the nth iterate of (i.e. composed with itself n times), the Mandelbrot set is the subset of the complex plane given by
As explained below, it is in fact possible to simplify this definition by taking .
Mathematically, the Mandelbrot set is just a set of complex numbers. A given complex number c either belongs to M or it does not. A picture of the Mandelbrot set can be made by coloring all the points that belong to M
black, and all other points white. The more colorful pictures usually
seen are generated by coloring points not in the set according to which
term in the sequence
is the first term with an absolute value greater than a certain cutoff
value, usually 2. The list of colors used are always predefined by the
program used or created by the user, the next color in the list is
chosen when the iteration count rises.
The Mandelbrot set can also be defined as the connectedness locus of the family of polynomials . That is, it is the subset of the complex plane consisting of those parameters for which the Julia set of is connected.
is a polynomial in c and its leading terms settle down as n grows large enough. These terms are given by the Catalan numbers. The polynomials are bounded by the generating function for the Catalan numbers and tend to it as n goes to infinity.
Basic properties
The Mandelbrot set is a compact set, since it is closed and contained in the closed disk of radius 2 around the origin. More specifically, a point belongs to the Mandelbrot set if and only if
- for all
In other words, if the absolute value of ever becomes larger than 2, the sequence will escape to infinity in a short amount of time.
The intersection of
with the real axis is precisely the interval [−2, 1/4]. The parameters
along this interval can be put in one-to-one correspondence with those
of the real logistic family,
The correspondence is given by
In fact, this gives a correspondence between the entire parameter space of the logistic family and that of the Mandelbrot set.
Douady and Hubbard have shown that the Mandelbrot set is connected. In fact, they constructed an explicit conformal isomorphism between the complement of the Mandelbrot set and the complement of the closed unit disk. Mandelbrot had originally conjectured that the Mandelbrot set is disconnected.
This conjecture was based on computer pictures generated by programs
that are unable to detect the thin filaments connecting different parts
of . Upon further experiments, he revised his conjecture, deciding that should be connected. There also exists a topological proof to the connectedness that was discovered in 2001 by Jeremy Kahn.
The dynamical formula for the uniformisation of the complement of the Mandelbrot set, arising from Douady and Hubbard's proof of the connectedness of , gives rise to external rays
of the Mandelbrot set. These rays can be used to study the Mandelbrot
set in combinatorial terms and form the backbone of the Yoccoz
parapuzzle.
The boundary of the Mandelbrot set is exactly the bifurcation locus of the quadratic family; that is, the set of parameters for which the dynamics changes abruptly under small changes of It can be constructed as the limit set of a sequence of plane algebraic curves, the Mandelbrot curves, of the general type known as polynomial lemniscates. The Mandelbrot curves are defined by setting p0 = z, pn+1 = pn2 + z, and then interpreting the set of points |pn(z)| = 2 in the complex plane as a curve in the real Cartesian plane of degree 2n+1 in x and y. These algebraic curves appear in images of the Mandelbrot set computed using the "escape time algorithm" mentioned below.
Other properties
Main cardioid and period bulbs
Upon looking at a picture of the Mandelbrot set, one immediately notices the large cardioid-shaped region in the center. This main cardioid
is the region of parameters for which has an attracting fixed point. It consists of all parameters of the form
for some in the open unit disk.
To the left of the main cardioid, attached to it at the point , a circular-shaped bulb is visible. This bulb consists of those parameters for which has an attracting cycle of period 2. This set of parameters is an actual circle, namely that of radius 1/4 around −1.
There are infinitely many other bulbs tangent to the main cardioid: for every rational number , with p and q coprime, there is such a bulb that is tangent at the parameter
This bulb is called the -bulb of the Mandelbrot set. It consists of parameters that have an attracting cycle of period and combinatorial rotation number . More precisely, the periodic Fatou components containing the attracting cycle all touch at a common point (commonly called the -fixed point). If we label these components in counterclockwise orientation, then maps the component to the component .
The change of behavior occurring at is known as a bifurcation: the attracting fixed point "collides" with a repelling period q-cycle. As we pass through the bifurcation parameter into the -bulb, the attracting fixed point turns into a repelling fixed point (the -fixed point), and the period q-cycle becomes attracting.
Hyperbolic components
All the bulbs we encountered in the previous section were interior components of
the Mandelbrot set in which the maps have an attracting periodic cycle. Such components are called hyperbolic components.
It is conjectured that these are the only interior regions of . This problem, known as density of hyperbolicity,
may be the most important open problem in the field of complex
dynamics. Hypothetical non-hyperbolic components of the Mandelbrot set
are often referred to as "queer" or ghost components.
For real quadratic polynomials, this question was answered
positively in the 1990s independently by Lyubich and by Graczyk and
Świątek. (Note that hyperbolic components intersecting the real axis
correspond exactly to periodic windows in the Feigenbaum diagram. So this result states that such windows exist near every parameter in the diagram.)
Not every hyperbolic component can be reached by a sequence of
direct bifurcations from the main cardioid of the Mandelbrot set.
However, such a component can be reached by a sequence of direct bifurcations from the main cardioid of a little Mandelbrot copy.
Each of the hyperbolic components has a center, which is a point c such that the inner Fatou domain for has a super-attracting cycle – that is, that the attraction is infinite.
This means that the cycle contains the critical point 0, so that 0 is
iterated back to itself after some iterations. We therefore have that n for some n. If we call this polynomial (letting it depend on c instead of z), we have that and that the degree of is . We can therefore construct the centers of the hyperbolic components by successively solving the equations . The number of new centers produced in each step is given by Sloane's OEIS: A000740.
Local connectivity
It is conjectured that the Mandelbrot set is locally connected. This famous conjecture is known as MLC (for Mandelbrot locally connected). By the work of Adrien Douady and John H. Hubbard,
this conjecture would result in a simple abstract "pinched disk" model
of the Mandelbrot set. In particular, it would imply the important hyperbolicity conjecture mentioned above.
The work of Jean-Christophe Yoccoz established local connectivity of the Mandelbrot set at all finitely renormalizable parameters; that is, roughly speaking those contained only in finitely many small Mandelbrot copies. Since then, local connectivity has been proved at many other points of , but the full conjecture is still open.
Self-similarity
The Mandelbrot set is self-similar under magnification in the neighborhoods of the Misiurewicz points. It is also conjectured to be self-similar around generalized Feigenbaum points (e.g., −1.401155 or −0.1528 + 1.0397i), in the sense of converging to a limit set.
The
Mandelbrot set in general is not strictly self-similar but it is
quasi-self-similar, as small slightly different versions of itself can
be found at arbitrarily small scales.
The little copies of the Mandelbrot set are all slightly
different, mostly because of the thin threads connecting them to the
main body of the set.
Further results
The Hausdorff dimension of the boundary of the Mandelbrot set equals 2 as determined by a result of Mitsuhiro Shishikura. It is not known whether the boundary of the Mandelbrot set has positive planar Lebesgue measure.
In the Blum-Shub-Smale model of real computation, the Mandelbrot set is not computable, but its complement is computably enumerable. However, many simple objects (e.g.,
the graph of exponentiation) are also not computable in the BSS model.
At present, it is unknown whether the Mandelbrot set is computable in
models of real computation based on computable analysis,
which correspond more closely to the intuitive notion of "plotting the
set by a computer". Hertling has shown that the Mandelbrot set is
computable in this model if the hyperbolicity conjecture is true.
Relationship with Julia sets
As
a consequence of the definition of the Mandelbrot set, there is a close
correspondence between the geometry of the Mandelbrot set at a given
point and the structure of the corresponding Julia set. For instance, a point is in the Mandelbrot set exactly when the corresponding Julia set is connected.
This principle is exploited in virtually all deep results on the
Mandelbrot set. For example, Shishikura proved that, for a dense set of
parameters in the boundary of the Mandelbrot set, the Julia set has Hausdorff dimension two, and then transfers this information to the parameter plane.
Similarly, Yoccoz first proved the local connectivity of Julia sets,
before establishing it for the Mandelbrot set at the corresponding
parameters. Adrien Douady phrases this principle as:
Plough in the dynamical plane, and harvest in parameter space.
Geometry
For every rational number , where p and q are relatively prime, a hyperbolic component of period q
bifurcates from the main cardioid. The part of the Mandelbrot set
connected to the main cardioid at this bifurcation point is called the p/q-limb. Computer experiments suggest that the diameter of the limb tends to zero like . The best current estimate known is the Yoccoz-inequality, which states that the size tends to zero like .
A period-q limb will have q − 1 "antennae" at the top of its limb. We can thus determine the period of a given bulb by counting these antennas.
Pi in the Mandelbrot set
In an attempt to demonstrate that the thickness of the p/q-limb
is zero, David Boll carried out a computer experiment in 1991, where he
computed the number of iterations required for the series to diverge
for z = ( being the location thereof). As the series doesn't diverge for the exact value of z = ,
the number of iterations required increases with a small ε. It turns
out that multiplying the value of ε with the number of iterations
required yields an approximation of π that becomes better for smaller ε.
For example, for ε = 0.0000001 the number of iterations is 31415928 and
the product is 3.1415928.
Fibonacci sequence in the Mandelbrot set
The Fibonacci sequence
is a sequence such that every number in the sequence is the sum of the
two previous numbers and can be found in the Mandelbrot Set. Starting
with the period one cardioid and the period two bulb, the sequence of
bulb periods where each successive bulb is the largest bulb attached to
the cardioid between the previous two bulbs follows the Fibonacci
sequence. For instance, the period three bulb is the next largest bulb
after the period two bulb, the period five bulb is the largest between
the period two and period three bulbs, and the period eight bulb is the
largest between the period three and period five bulbs. These correspond
with the numbers of the Fibonacci sequence beginning with 1, 2, 3, 5,
8, 13, 21, and so on.
Generalizations
Multibrot sets
Multibrot sets are bounded sets found in the complex plane for members of the general monic univariate polynomial family of recursionsThe Multibrot set is obtained by varying the value of the exponent d. The article has a video that shows the development from d = 0 to 7, at which point there are 6 i.e. (d − 1) lobes around the perimeter. A similar development with negative exponents results in (1 − d) clefts on the inside of a ring.
Higher dimensions
There is no perfect extension of the Mandelbrot set into 3D. This is because there is no 3D analogue of the complex numbers for it to iterate on. However, there is an extension of the complex numbers into 4 dimensions, called the quaternions, that creates a perfect extension of the Mandelbrot set and the Julia sets into 4 dimensions. These can then be either cross-sectioned or projected into a 3D structure.Other, non-analytic, mappings
Another non-analytic generalization is the Burning Ship fractal, which is obtained by iterating the following :
Computer drawings
Escape time algorithm
The simplest algorithm for generating a representation of the Mandelbrot set is known as the "escape time" algorithm. A repeating calculation is performed for each x, y point in the plot area and based on the behavior of that calculation, a color is chosen for that pixel.The x and y locations of each point are used as starting values in a repeating, or iterating calculation (described in detail below). The result of each iteration is used as the starting values for the next. The values are checked during each iteration to see whether they have reached a critical "escape" condition, or "bailout". If that condition is reached, the calculation is stopped, the pixel is drawn, and the next x, y point is examined. For some starting values, escape occurs quickly, after only a small number of iterations. For starting values very close to but not in the set, it may take hundreds or thousands of iterations to escape. For values within the Mandelbrot set, escape will never occur. The programmer or user must choose how much iteration, or "depth", they wish to examine. The higher the maximal number of iterations, the more detail and subtlety emerge in the final image, but the longer time it will take to calculate the fractal image.
Escape conditions can be simple or complex. Because no complex number with a real or imaginary part greater than 2 can be part of the set, a common bailout is to escape when either coefficient exceeds 2. A more computationally complex method that detects escapes sooner, is to compute distance from the origin using the Pythagorean theorem, i.e., to determine the absolute value, or modulus, of the complex number. If this value exceeds 2, or equivalently, when the sum of the squares of the real and imaginary parts exceed 4, the point has reached escape. More computationally intensive rendering variations include the Buddhabrot method, which finds escaping points and plots their iterated coordinates.
The color of each point represents how quickly the values reached the escape point. Often black is used to show values that fail to escape before the iteration limit, and gradually brighter colors are used for points that escape. This gives a visual representation of how many cycles were required before reaching the escape condition.
To render such an image, the region of the complex plane we are considering is subdivided into a certain number of pixels. To color any such pixel, let be the midpoint of that pixel. We now iterate the critical point 0 under , checking at each step whether the orbit point has modulus larger than 2. When this is the case, we know that does not belong to the Mandelbrot set, and we color our pixel according to the number of iterations used to find out. Otherwise, we keep iterating up to a fixed number of steps, after which we decide that our parameter is "probably" in the Mandelbrot set, or at least very close to it, and color the pixel black.
In pseudocode, this algorithm would look as follows. The algorithm does not use complex numbers and manually simulates complex-number operations using two real numbers, for those who do not have a complex data type. The program may be simplified if the programming language includes complex-data-type operations.
For each pixel (Px, Py) on the screen, do:
{
x0 = scaled x coordinate of pixel (scaled to lie in the Mandelbrot X scale (-2.5, 1))
y0 = scaled y coordinate of pixel (scaled to lie in the Mandelbrot Y scale (-1, 1))
x = 0.0
y = 0.0
iteration = 0
max_iteration = 1000
while (x*x + y*y <= 2*2 AND iteration < max_iteration) {
xtemp = x*x - y*y + x0
y = 2*x*y + y0
x = xtemp
iteration = iteration + 1
}
color = palette[iteration]
plot(Px, Py, color)
}
Here, relating the pseudocode to , and :
- and
Histogram coloring
A more complex coloring method involves using a histogram, which keeps track of how many pixels reached each iteration number, from 1 to n. This method will equally distribute colors to the same overall area, and, importantly, is independent of the maximal number of iterations chosen.First, create an array of size n. For each pixel, which took i iterations, find the ith element and increment it. This creates the histogram during computation of the image. Then, when finished, perform a second "rendering" pass over each pixel, utilizing the completed histogram. If you had a continuous color palette ranging from 0 to 1, you could find the normalized color of each pixel as follows, using the variables from above.
total = 0
for (i = 0; i < max_iterations; ++i) {
total += histogram[i]
}
hue = 0.0;
for (i = 0; i <= iteration; ++i) {
hue += histogram[i] / total // Must be floating-point division.
}
color = palette[hue]
This method may be combined with the smooth coloring method below for more aesthetically pleasing images.
Continuous (smooth) coloring
The escape time algorithm is popular for its simplicity. However, it creates bands of color, which, as a type of aliasing, can detract from an image's aesthetic value. This can be improved using an algorithm known as "normalized iteration count", which provides a smooth transition of colors between iterations. The algorithm associates a real number with each value of z by using the connection of the iteration number with the potential function. This function is given byIf we choose a large bailout radius N (e.g., 10100), we have that
For the coloring we must have a cyclic scale of colors (constructed mathematically, for instance) and containing H colors numbered from 0 to H − 1 (H = 500, for instance). We multiply the real number by a fixed real number determining the density of the colors in the picture, take the integral part of this number modulo H, and use it to look up the corresponding color in the color table.
For example, modifying the above pseudocode and also using the concept of linear interpolation would yield
For each pixel (Px, Py) on the screen, do:
{
x0 = scaled x coordinate of pixel (scaled to lie in the Mandelbrot X scale (-2.5, 1))
y0 = scaled y coordinate of pixel (scaled to lie in the Mandelbrot Y scale (-1, 1))
x = 0.0
y = 0.0
iteration = 0
max_iteration = 1000
// Here N=2^8 is chosen as a reasonable bailout radius.
while ( x*x + y*y <= (1 << 16) AND iteration < max_iteration ) {
xtemp = x*x - y*y + x0
y = 2*x*y + y0
x = xtemp
iteration = iteration + 1
}
// Used to avoid floating point issues with points inside the set.
if ( iteration < max_iteration ) {
// sqrt of inner term removed using log simplification rules.
log_zn = log( x*x + y*y ) / 2
nu = log( log_zn / log(2) ) / log(2)
// Rearranging the potential function.
// Dividing log_zn by log(2) instead of log(N = 1<<8 -="" 1="" 2="" bailout="" because="" center="" color1="palette[floor(iteration)]" color2="" color="" entire="" font="" from="" iteration.="" iteration="" nbsp="" not="" nu="" of="" our="" palette="" part="" plot="" py="" radius.="" radius="" range="" the="" to="" want="" we="" x="">
8>
Distance estimates
One can compute the distance from point c (in exterior or interior) to nearest point on the boundary of the Mandelbrot set.Exterior distance estimation
The proof of the connectedness of the Mandelbrot set in fact gives a formula for the uniformizing map of the complement of (and the derivative of this map). By the Koebe quarter theorem, one can then estimate the distance between the midpoint of our pixel and the Mandelbrot set up to a factor of 4.In other words, provided that the maximal number of iterations is sufficiently high, one obtains a picture of the Mandelbrot set with the following properties:
- Every pixel that contains a point of the Mandelbrot set is colored black.
- Every pixel that is colored black is close to the Mandelbrot set.
- stands for complex quadratic polynomial
- stands for n iterations of or , starting with : , ;
- is the derivative of with respect to c. This derivative can be found by starting with and then . This can easily be verified by using the chain rule for the derivative.
From a mathematician's point of view, this formula only works in limit where n goes to infinity, but very reasonable estimates can be found with just a few additional iterations after the main loop exits.
Once b is found, by the Koebe 1/4-theorem, we know that there is no point of the Mandelbrot set with distance from c smaller than b/4.
The distance estimation can be used for drawing of the boundary of the Mandelbrot set, see the article Julia set.
Interior distance estimation
- is the period,
- is the point to be estimated,
- is the complex quadratic polynomial
- is the -fold iteration of , starting with
- is any of the points that make the attractor of the iterations of starting with ; satisfies ,
- , , and are various derivatives of , evaluated at .
There are two practical problems with the interior distance estimate: first, we need to find precisely, and second, we need to find precisely. The problem with is that the convergence to by iterating requires, theoretically, an infinite number of operations. The problem with any given is that, sometimes, due to rounding errors, a period is falsely identified to be an integer multiple of the real period (e.g., a period of 86 is detected, while the real period is only 43=86/2). In such case, the distance is overestimated, i.e., the reported radius could contain points outside the Mandelbrot set.
Optimizations
Cardioid / bulb checking
One way to improve calculations is to find out beforehand whether the given point lies within the cardioid or in the period-2 bulb. Before passing the complex value through the escape time algorithm, first check that:- ,
- ,
- ,
The cardioid test can equivalently be performed without the square root:
Periodicity checking
To prevent having to do huge numbers of iterations for points in the set, one can perform periodicity checking. Check whether a point reached in iterating a pixel has been reached before. If so, the pixel cannot diverge and must be in the set.Periodicity checking is, of course, a trade-off. The need to remember points costs memory and data management instructions, whereas it saves computational instructions.
However, checking against only one previous iteration can detect many periods with little performance overhead. For example, within the while loop of the pseudocode above, make the following modifications.
while (x*x + y*y <= 2*2 AND iteration < max_iteration) {
xtemp = x*x - y*y + x0
ytemp = 2*x*y + y0
if (x == xtemp AND y == ytemp) {
iteration = max_iteration
break
}
x = xtemp
y = ytemp
iteration = iteration + 1
}
Border tracing / edge checking
A similar method operating on the same principle uses rectangles instead of arbitrary border shapes. It is usually faster than boundary tracing because it requires fewer calculations to work out the rectangle. It is inefficient, however, because boundaries are not rectangular, and so some areas can be missed. This issue can be minimized by creating a recursive algorithm that, if a rectangle border fails, will subdivide it into four smaller rectangles and test those, and either fill each or subdivide again and repeat the process.
However, this only works using discrete colors in the escape time algorithm. It will not work for smooth/continuous coloring.
Symmetry utilization
Simply put, rendering less than 100 percent of the image is required if the real axis is present in the image due to the symmetry of the set along the real axis, therefore the programmer would have to simply mirror the pixel color and placement as the image is rendered.Pythagorean theorem bailout method
Simple programs and scripts generally tend to set the escape, or bailout value to two. In doing so, the borders for the color bands are not smooth. The rendering process and colorization method can be improved by utilizing the distance from the origin and the point being rendered with the Pythagorean theorem by summing the squares of the real and imaginary portions of and then escaping if the value is larger or equal to four. The result of this optimization are smoother borders of the color bands, which leads to the images showing a resemblance to most others. Plus, of course, the rendering process of said image is faster.Perturbation theory and series approximation
Very highly magnified images require more than the standard 64–128 or so bits of precision that most hardware floating-point units provide, requiring renderers to use slow "bignum" or "arbitrary-precision" math libraries to calculate. However, this can be sped up by the exploitation of perturbation theory. GivenFurther, it is possible to approximate the starting values for the low-precision points with a truncated Taylor series, which often enables a significant amount of iterations to be skipped. Renderers implementing these techniques are publicly available and offer speedups for highly magnified images by around two orders of magnitude.
An alternate explanation of the above:
For the central point in the disc and its iterations , and an arbitrary point in the disc and its iterations , it is possible to define the following iterative relationship:
- ,
However, for every arbitrary point in the disc it is possible to calculate a value for a given without having to iterate through the sequence from , by expressing as a power series of .
Now given the iteration equation of , it is possible to calculate the coefficients of the power series for each :
Further, separate interpolation of both real axis points and imaginary axis points should provide both an upper and lower bound for the point being calculated. If both results are the same (i.e. both escape or dot not escape) then the difference can be used to recuse until both an upper and lower bound can be established. If floating point hardware can be used to iterate the series, then there exists a relation between how many iterations can be achieved in the time it takes to use BigNum software to compute a given . If the difference between the bounds is greater than the number of iterations, it is possible to perform binomial search using BigNum software, successively halving the gap until it becomes more time efficient to find the escape value using floating point hardware.
References in popular culture
The Mandelbrot set is considered by many the most popular fractal, and has been such referenced several times in popular culture.- The Jonathan Coulton song "Mandelbrot Set" is a tribute to both the fractal itself and to its father Benoit Mandelbrot.
- The second book of the Mode series by Piers Anthony, Fractal Mode, describes a world that is a perfect 3D model of the set.
- The Arthur C. Clarke novel The Ghost from the Grand Banks features an artificial lake made to replicate the shape of the Mandelbrot set.
- The South Korean heavy metal singer Norazo made a music video Ni pal za ya (your fortune), which starts with hypnotic video including Mandelbrot set.
- The album Jupiters Darling by American rock band Heart prominently features a Mandelbrot set on the cover. The set is rotated so that the cusp is on the top, resembling a heart.
- In the second episode (The Big Bran Hypothesis) of the television series ‘’The Big Bang Theory’’, Leonard says that Penny’s apartment is a little messy. Sheldon fires back with “The Mandelbrot set of complex numbers is a little messy. This is chaos.”
- In the movie Matrix Revolutions, the opening scene is depicting the matrix code to consist out of infinitely regressing information, featuring a Mandelbrot set.