Movatterモバイル変換


[0]ホーム

URL:



Written by Christopher Thomas






Mandelbrot Set

Julia Set with C =-1+0i

Julia Set with C =0+1i

Most people know about the Mandelbrot set and Julia sets nowadays. Theywere among the first fractals whose pictures touched publicawareness; their intricate complexity decorates many walls and computermonitors.

The Mandelbrot set and Julia sets are both produced by iterating thefollowing equation using complex numbers (numbers with real and imaginarycomponents, representing points on the Argand plane):



Iterating this equation causes a point to hop around on the plane. Thepoint will either end up staying near the origin, or will fly off toinfinite distance. From a derivation which will be shown later, we knowthat if the point ever gets outside a radius-2 circle about the origin,it is forced to fly out to infinity.

A point is inside the set, then, if it never goes outside the radius-2circle. We can produce pretty pictures by tracking points that go outsidethe circle, and colour-coding them based on the number of steps it took toleave the circle. Points that stay in are assumed to be part of the set(some won't be, but it would take an infinite amount of time to tell forsure using this method).

The same equation is used to produce both Mandelbrot and Julia sets. Todraw a Julia set, we select a fixed value of C and use the location on theplane as the starting value of Z. To draw the Mandelbrot set, we use thelocation on the plane as the value of C, and set Z to zero to start with(or set it to C, which is what it ends up being after one step, but if youthink of it as zero it makes the next paragraph make more sense).

When you think about it, there are actually four variables to be set wheninitializing the equation - the real and imaginary components of both Zand C. This means that you can think of the Mandelbrot and Julia sets asall being cross-sections of a four-dimensional object. The Julia sets arethe set of all cross-sections parallel to one pair of axes. The Mandelbrotset is one specific cross-section parallel to the other pair of axes (theplane defined by "Z = 0"). You can get strange Mandelbrot-like sets bysetting the initial value of Z to a different value. These, along with theMandelbrot set, are another complete set of cross-sections of thefour-dimensional object.


MandelbrotSet with Z0 = 0.5+0.5i

Three-dimensional cross-sections of this object look very neat, but arebeyond the scope of this discussion.





We now consider Mandelbrot and Julia set analogues defined by a similarequation with an exponent other than 2:



The case of integer n is the easiest to implement. The iterated equationis easy to implement, and the only other algorithmic change is to changethe radius of the limiting circle. For reasons discussed in the nextsection, the limiting radius is defined as:



That is, the (n-1)th root of 2.

Some pictures of higher-order Mandelbrot and Julia sets are below:


n=3 MandelbrotSet

n=3 Julia Set withC = -0.5+0.5i

n=3 Julia Set withC = 0+1i

n=7 MandelbrotSet

n=7 Julia Set withC = -0.621+0i

n=7 Julia Set withC = 0.1+0.95i

Some patterns emerge. Julia sets with order n have n-fold rotationalsymmetry, while Mandelbrot sets with order n have (n-1)-fold rotationalsymmetry. The reasons for this lie in the symmetries of exponentiation inthe complex plane (described in the next section). The full proof ofMandelbrot and Julia set symmetries, however, is beyond the scope of thisdiscussion.





Non-integer exponentiation of real numbers is defined in terms of theexponential function:



The same formula can be used with complex values of a and b, when weexpress a as an exponential using the Euler relation:



This gives the following relation in the general case:



Which is to say, the value of a is the natural logarithm of the radius ofthe point in polar coordinates, and the value of b is the angle of thepoint (in radians) in polar coordinates. By converting the location of apoint on the complex plane into polar coordinates, we can therefore turnit into an exponential. This lets us take the logarithm and plug it intothe exponentiation equation, and then we can apply the general version ofEuler's relation again to find the exponential of the complex number.

The upshot of all of this is that, in polar coordinates, raising a to thepower of b multiplies the angle by b, and raises the radius to the powerof b:



This lets us evaluate the equation for non-integer (and non-real) n.

It turns out, however, that there are problems. The relation



has more than one solution for non-integer values of b. For rationalvalues of b, it has a finite number of solutions; for irrational,infinite. In neither case is the correct interpretation of the resultclear. Detailed exploration of the various interpretations, and of complexvalues of b, is beyond the scope of of this discussion.

Lastly, the polar coordinate interpretation of exponentiation explains howthe limiting radius is derived. For an exponent of n, implementation of gives a maximum new radiusof



In the limiting case, the largest possible value of C applied in the bestpossible direction will bring the value of rnew back torold. In other words, the pull away from the origin is exactlybalanced by a displacement back towards it. Given that the largestacceptable value of C is also the limiting radius, and subbing inrlimit for rnew and rold, we get:







The program used to generate the images in this document is availablehere.

Known problems are as follows:


The pictures are still very pretty, though, and are correct forinteger n.


Written by Christopher Thomas. Last updated 21 March 2003.
[8]ページ先頭

©2009-2025 Movatter.jp