Mandelbrot-maps Extended Functions Version
Download the New Extended App - Source Code
For a more powerful Mac application see: Dark Heart Apps
Mandelbrot Maps is an extremely elegant intuitive to use viewer for Mandelbrot and Julia sets which is extremely enjoyable to play with, originally developed by Alasdair Corbett as a university project and extended here by myself aka Chris King to include a diverse variety of complex functions displaying the full intricacies of these fractals. You can download a copy for android (compiled on Android 4.4) from the above link and sideways load it into a phone or tablet using USB or a wireless hotspot. On my Nexus 7, I downloaded ES File Explorer from the Play Store and simply double-tap the file in ES after copying it into downloads.
A Samsung
Galaxy 5 running Android 6 showing the touch button (gray) to give the Julia set (inset)
and the Assistant menu (blue right) giving all the options by clicking the blue menu icon and then the three vertical dots icon in the centre. Under Preferences you can select each of the different functons ilustrated below.
On our Galaxy 5 the app can be activated using MyFiles and clicking the app. With Android 6 there is no menu buttion, so you need to go to Settings > Dexterity and Interaction > Assistant menu and turn it on. This then gives the full functionality includingthe extended functions, as shown above.
.
The
functions include z2+c, z3-z+c, z4/4+cz3/3-z2/2-c,
czexp(z),
cCos(z) Cos(z)+c, (2z3+c)/(3z2+c-1),
and cz2(z-4)/(4z-1), A further update is planned to include the Mandelbrot and Julia sets of the Riemann zeta function. This article shows examples of the eight functions portrayed and the simple intuitive controls to explore them. Click any image to see in full resolution.
Controls
Drag with a
single finger to move around the fractals. Any new areas will fill themselves
in once you stop.Use two
fingers to zoom in and out. Again, the fractal will re-render once you stop. To compare the Mandelbrot and
Julia sets, long click a point in the Mandelbrot set or tap Add Julia on the
menu. Drag the coloured circle around to change the
point parametrising the Julia set. To see the
fractal in more detail, tap it. The zoom level and region displayed will stay
constant as you swap between the two fractals. Tap Reset on the menu to return
to the default area. Dismiss the small fractal by tapping Remove Julia/Mandelbrot on the menu. If
you lose track of the Julia pin, long click again or add and remove the Julia
from the menu to bring it to you.
Other Menu Options and Changing Functions
Under
Preferences you can choose the function being iterated, as well as the colouring scheme for each fractal, whether or not to do an
initial crude
rendering (a blockier first pass that gives a faster first impression but takes
slightly longer overall), and whether or not to show the time for each render after it's complete. Tap Detail
level to control the level of detail on each fractal. Higher detail means more iterations will be done when rendering, taking longer but
giving a clearer picture. Save/Share lets you
save an image of the current fractal into your Pictures folder or share it
using email, Facebook, Twitter, etc.
Development of Mandelbrot Maps
Mandelbrot Maps
was originally developed as an undergraduate dissertation project by Alasdair
Corbett and updated by Sky Welch. The math functions were programmed
in by Chris King (see http://www.dhushara.com/DarkHeart). Any feedback
you leave on the Google Play Store page is appreciated. If you find any bugs, please
include as much detail as possible, such as the device you\'re using, what you
were doing when the error occurred, and what
version of Android you're running. Mandelbrot Maps is open-source software,
released under the GNU General Public License (v3). The source code is linked
from the Mandelbrot Maps Google Play Store
page.
The Mathematics behind the Fractals
The Julia set is the set of points on which a complex iteration is chaotic. In the complement of the Julia set, the iteration proceeds in an orderly way towards attractors. The Mandelbrot set is the set of c-values for which the Julia set of the iteration z=f(z)+c is topologically connected. This would seem to be an
impossible task to depict but there is a cunning trick. For f(z)=z2 it turns out that we can compute this easily, because the critical point, where the function is horizontal, like the local maximum at the top of a mountain, is the last point to escape to infinity because it is last to leave under varying c. If the Julia set of z2+c is connected for a given c, it surrounds the critical point, so iterating from the critical point can't escape to infinity. So if we iterate from the critical point for each c in the complex plane and colour by escape steps, with white if we don't escape in a given number of steps, we can depict these points in the plane, forming the Mandelbrot set, which becomes an atlas of all the Julia sets for different c-values. Outside M, the Julia is a disconnected fractal. Inside it is connected. The iteration in Mandelbrot maps depicts the Julia sets and their internal basins in white colouring only their external complement. Thus if the Julia set is connected it will appear filled in in white. One can also trace the internal orbits and colour them for most Julia sets.
For more complex
functions with several critical points, we get a collection of Mandelbrot sets,
whose overlapping properties reflect different ways the Julia can disconnect.
Hence the cubic and quartic examples, as well as the
Hermann ring, and cos(z)+c, which has repeated Mandelbrot sets very similar to the cubic example z3-z+c illustrated, have multiple critical points, and only the intersection of all the Mandelbrots is coloured white, guaranteeing the Julias
are fully connected as well, with other shaded Mandelbrot regions showing
partial disconnection of the Julias. The
transcendental functions such as c*cos(z) and c*z*exp(z) show that many properties found in z2+c are universal.
.
Figs 3 & 4: The fourth degree function Int((z+1)(z-1)(z+c) or z4/4+cz3/3-z2/2-c
which has critical points at ±1 and –c showing three overlapping
Mandelbrot sets with a complex fourth degree Julia set below.
.
Figs 5 & 6: The Herman ring function cz2(z-4)/(4z-1) which gives rise to a unique Herman ring Julia set with a continuous flow at golden mean angles on the circle in the left part of the set. The Julia set below lies close to but not right at the point where the Herman rings appear.
.
Figs 7 & 8: The Mandelbrot set and a Julia set of czexp(z)
with a single critical point at z=-1, showing quadratic Mandelbrot satellites
showing some properties of the quadratic Mandelbrot set are universal. The
Julia set taken from a period 3 bulb in the main body
shows a lattice of period 3 Julia kernels locally homologous to the quadratic
case.
.
Figs 9 & 10: The Mandelbrot set of c.Cos(z)
again showing quadratic universality. Although it has an infinite number of
critical points they induce equivalent iterations. The Julia set below again
shows a quadratic kernel in the centre repeated in the lattice.
.
Figs 11 & 12: Mandelbrot set of the Newton's method for finding the roots of a polynomial applied to z3+(c-1)z-c=0 which as one zero at z=1 (the other two can be found by factorizing out z-1 and solving the remaining quadratic in terms of c). Using the Newton's formula we arrive at the iteration of the function (2z3+c)/(3z2+c-1). When c = 0 we have the iteration for the cubic roots of unity - i.e. z3- 1 = 0 illustrated below showing Newton's method generally finds the roots in the three deep basins but can occasionally get caught in chaos. Notice every one of the three basins intersects both the other two at every point on the boundary because of the fractal nature of the boundary.
.
Figs 13 & 14: The function Cos(z)+c
has a regular repeating structure unlike cCos(z)
above whose amplitude grows with c, but it now has two repeating critical
points, one at z=0 and one at z=pi because the additive shifts of c take the
maxima and minima out of symmetry. Consequently it has a repeating Mandelbrot
set pair homologous with the cubic example z3-z+c with homologous
Julia lattices as illustrated (below).
.
Figs 15 & 16 Mandelbrot and Julia images of the function z^4+cz^-2 showing baby Mandelbrots with 3=4-1 fold and 6=4+2 fold symmetries.