Julia set

Julia set Julia set

This blog post is meant as background information about my Julia sets generator.

In general, the Julia set is a set of numbers and is complementary to the Fatou set. These two sets are named after the French mathematicians Gaston Julia and Pierre Fatou who are the fathers of complex dynamics. The Mandelbrot set is a set of complex numbers and is found by Adrien Douady and named after french mathematician Benoit Mandelbrot. Both sets are bounded by fractals.

Mandelbrot set Mandelbrot set

To obtain the Julia set, we need two variables, usually called zz and cc. Both are complex numbers defined as z=zreal+zimagiz=z_{real} + z_{imag}*i and c=creal+cimagic=c_{real} + c_{imag}*i. Different functions can be used to obtain a Julia set but most commonly used is the complex quadartic polynomial: f(z)=z2+cf(z) = z^2 + c

We choose start values for all four numbers c0,real,c0,imag,z0,real,z0,imagc_{0,real}, c_{0,imag}, z_{0,real}, z_{0,imag} and then calculate f(z)f(z) and use it as new zz value. This is repeated for a fixed number of iterations nitern_{iter}. If z<2|z|<2 for i<niteri< n_{iter}, then the value belongs to the Julia set. This is repeated for all values zrealz_{real} and zimagz_{imag}.

The Julia set can be visualized in a plane where for each zrealz_{real} and zimagz_{imag} the value i/niteri/n_{iter} is plotted. Choosing different start values for crealc_{real} and cimagc_{imag} renders different Julia sets. If we choose a fixed value for z0z_0, usually z0=0z_0=0, and plot the result for all values of cc, we obtain the Mandelbrot set.

But why not just vary all four start values creal,cimag,zreal,zimagc_{real}, c_{imag}, z_{real}, z_{imag}? Well this is certainly possible but the result is a set of numbers in 4D hyperspace. That is quite hard to imagine and also hard to visualize.

To visualize (parts of) the 4D space, we choose a plane (2D) to actually show on the screen. To define it we need two 4D base vectors which span our plane plus a 4D position vector to fix the origin. For a position vector (creal,cimag,zreal,zimag)=(0,0,0,0)(c_{real}, c_{imag}, z_{real}, z_{imag}) = (0,0,0,0) and base vectors (1,0,0,0)(1,0,0,0) and (0,1,0,0)(0,1,0,0) we obtain the typical Mandelbrot set, often called the “Apfelmännchen”. For different position vectors and base vectors 0,0,1,00,0,1,0 and 0,0,0,10,0,0,1 we obtain variations of the Julia set. But why limit ourselfs to these base vectors? We can choose any two base vectors and different origins, which renders many different and beautiful pictures of fractals. Try it out here with my Julia sets generator.

Helpful resources:

Comments

Currently Deactivated - Contact me on email or Twitter if you have questions or suggestions.