
DHViewer looking at the Mandelrot set of c(Cos(z)+Cos(2z)) [click to enlarge]
Dark Heart Complex Function Viewer
DHViewer allows you to interactively explore
the fractal dynamics of a wide variety of complex polynomial, rational and
transcendental functions.
Many of the most interesting examples which can be viewed in dertail with DHViewer are shown in Exploding the Dark Heart of Chaos
DHViewer and its twin RZViewer form the tools to investigate the functions discussed in this paper.
Fig 1: Cubic function z3-z+c its conjoint
parameter plane (Mandelbrot set) showing the overlapping effects of the escape
from each of the two critical points and two cubic Julia sets from the ÔMariana
trenchÕ in the crossed cusps leading toward the centre of the black overlap
region entrapping both critical points resulting in a fully connected Julia
set.
Dark Heart Mac XCode Viewer: Application - Source
See http://dhushara.com/DarkHeart/ for research, updates and source
code.
DHViewer is a matched pair application with the
Riemann Zeta Function Viewer, RZViewer, which explores the corresponding
L-functions based on Dirichlet series, rather than power series, and can be
downloaded from the above site.
You can investigate a variety of functions, z2+c, cz(1-z), z3+c,
z4+c, z3-z+c, z3+(c-1)z-c, Newton's method on the previous cubic i.e. (2z3+c)/(3z2+c-1), the Herman ring function cz2(z-4)/(4z-1), cCos(z), c(Sin(z) + Sin(2z)/2), c(Cos(z)+Cos(2z), c(Cos(z1/2), cSin(z)/z, czez, czLog(z), czz, czz+1,
e(-z^2)+c, zez+c, Cos(z)+c, some of which form a border line with the gamma function in RZViewer. All but a few of the functions are unique valued on the complex plane. Although c(Cos(z1/2) has no branch cuts, all those
implicitly involving Log(z), including czLog(z), czz, czz+1
do.
Basics:
Drag a rectangle to enlarge a portion of the current image.
Click a point to cycle:
Function > Mandelbrot > Julia(c)
at the clicked point c on the Mandelbrot set. By clicking,
you can investigate the discrete dynamical parameter plane (Mandelbrot set) of
the critical values and the Julia sets of
z=f(z,c) for (x,y)=c.
The controls all have floating help panes to guide you.
The window can be resized to suit in real time,
resulting in a refresh and recalculation.
Standard settings:
Threads enables a multi-core machine to work faster
using as many threads as coprocessors.
Max Iterations gives how many iteration steps of a point on the Julia or Mandelbrot
set before maximum iteration cutoff.
Recalc refreshes and recalculates the existing screen. Reset returns to the function and default
scale but doesn't alter any other settings. Keep scope on click keeps the window centre and scale
when clicking between Mandelbrot, Julia and function, so the other parameters
can be changed without changing the point of view.
To facilitate fast fractal iteration, the
default is 100 function series terms and a cutoff of 64 iterations for each
point of the Mandelbrot and Julia sets, but these can be adjusted for greater
accuracy.
Fig2: Transcendental function Cos(z)+c has a repeating
parameter plane (Mandelbrot set) again with two critical values corresponding
to the maxima and minima of the function, displaying the same cubic features as
in fig 1. The Julia set right from the ÔMariana trenchÕ shows the same cubic characteristics as the Julia set in fig 1 lower right. by comparison cCos(z) has dominant degree 2 behavior and c(Cos(z)+Cos(2z) has degree 4 components because of its double repeated maxima).
Menus:
About gives a complete instruction summary. Save saves the current window's image as a tif file and all the settings for a given calculation in a text file, enabling you to save all the parameters for future investigation and redrawing. It will overwrite existing files of the same name. Open will
open a previous calculation and redraw it. Images in the main window can also
be captured and saved directly to png format using shift apple 4. Print enables an image to be printed or
exported to pdf format. Page Setup needs to be landscape in 80% to fit the
standard window on one A4 page. Help directs you to the about menu.
Text file format: Mandel (=2 function =1 Mandelbrot =0 Julia), Scale, X, Y, cr, ci, altgamma (not used), the current function,
escape type (abs real or imag), orbit trap epsilon (negative exponent 10-n),
escape only (0 or 1), color scheme (0 to 3), escape bound (exponent 10n),
number of zeta terms (not used), attractor radius epsilon bound (negative
exponent 10-n), maximum iterations.

Fig 3: (Left): Complex cube roots of unity in Newton's method). (Right): Herman ring Mandelbrot set
both portrayed in RGB ranked colours
Advanced settings:
Pop-up Menus: Color schemes can be changed in real time using the
color pop up menu. All the other controls require window recalculation.
A Variety of Functions as discussed above can be explored
using the function pop-up menu.
The escape bound can be set but resets on function
change to the one most appropriate for the given function.
Buttons and Text Fields: Current window parameters and c values can be read out from and
written into the text fields and set by pressing the appropriate button. Numbers in the text fields are double
precision and may appear in floating format e.g. -7.000000186963007e-05
manifestly too large to see in their entirety in the text box without dragging
or selecting all and copying. The Julia c values will be overwritten by the Mandelbrot
critical point origin and current Julia click point each cycle but can be
manually re-entered as desired.
Tick boxes:
There is an imaginary axis orbit trap option. Escape only tests only for escaping points, to
avoid spurious periodic solutions from overwriting escaping orbits, but is
slower because attracting orbits have to run to the Max interactions for each
point.
Sliders: Attractor
bound adjusts
the size of the epsilon neighbourhood testing for fixed point or periodic
attractors. Escape bound sets the numerical bounds
on points escaping to infinity.
There are several colour schemes for function, Mandelbrot and Julia:
Function: (0) rgb = logarithmic abs(z), blue cosine
abs(z), green ang(z). This is the most informative although not the most
appealing (1)rgb = real, imaginary and angle, (2) bg = abs(z) and angle (3) rgb
= real, imaginary and cos(angle).
Mandelbrot: (0) Sine wave colours, (1) attractor coded
colours, (2) RGB ranked colours which can also show which attracting fixed
point is involved in NewtonÕs method and the Herman ring (3) Potential function
rainbow. Attractor coding gives
escaping points tending to real infinity green through orange and points
remaining finite coloured by decreasing blue by iteration, combined with
redness corresponding to the attractor period.
The 'critical' point for the Mandelbrot set is
chosen to represent a prominent critical landmark. Other critical points can be
chosen using the advanced settings. Not all the functions have meaningful
Mandelbrot sets.
Julia: (0) Sine wave colours, (1) attractor coded
colours, (2) RGB ranked colours, (3) rainbow with potential function on
escaping points. Colour coded Julia attractors have blue shaded to escaping
real, red shaded to periodic attractor, green non-negative periodic attractor,
with grey indeterminate. The red and green are tinged with blue to indicate the
period.