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.