The Fractal Program Julia

This program is an introduction to the "Ratio" program. It is used to draw the Mandelbrot- and Julia sets for a family of iterations of the form z → z2(1 + qz2)/(1 - qz2) + ρ, where q is a real parameter (determining the family) and ρ is a complex parameter (determining the function in the family). For q = 0 we get the usual family z → z2 + ρ, and the same is practically the case when q is numerically very large, but in this case the Mandelbrot set will turn in the opposite direction. With the program we can study how this metamorphosis takes place.

All operations are carried out by using the keys and by scrolling or entering values. The program is closed by pressing Esc twice. The drawing stops when a (random) key is pressed. The cursor must be inside the window when editing: The parameter q is adjusted by key Q (enter a value and press Enter). When a picture is drawn (or merely a sufficiently large portion of it), you can alter the colouring or the section, or you can go on to the Julia sets. You can study the alteration of the sets by drawing a sequence of pictures in which q is increasing or decreasing by pressing the keys A (ascending) and D (decreasing) respectively (the small positive number added to or subtracted from q is not constant, it is smallest when the parameter is near 0). Use the key S to stop the successive drawing. By pressing any random key several times you can skip pictures and thus speed up the motion.

When editing in the numbers determining the colouring, the cursor must be at the number. You can either enter a new value (and press Enter) or you can scroll up or down in the numbers - if you press Shift, you can scroll in smaller steps. For the colour outside the black area (which is the interior of the Mandelbrot- or Julia set), you must first choose a colour scale. The colours are numbered using a two-digit number (if a digit is 0 the colour is white). The parameters used in the construction of the colour scales are enumerated in the txt document "colours", so this document must be in the folder with the program. The program "Scales" shows the scales, you scroll up and down in the numbers (after Shift in larger steps) and the program is closed by pressing Esc. The list of the colour scales is not complete: it belongs to the other programs and the intention is that the user himself shall construct his own colour scales. Each scale consists of 720 colours and is cyclic, as the beginning is a continuation of the end: A decimal number density/iter determines how close the colours are to one another, and the scale is displaced by the pc displace. The colour of the boundary can be adjusted by using key B - you edit in the RGB values of the colour (they are whole numbers from 0 to 255) and finish by lowering the cursor.

The section is chosen by pressing one of the keys 4-9, then a rectangle appears (it can be removed again by pressing key Z). Its position is managed by the keys 4-7, and its size is managed by keys 8 and 9. The position is fine-adjusted using the arrows, and the size is fine-adjusted after pressing key 0. You begin a new drawing by pressing key 1.

The maximum number of iterations can be adjusted by keys 2 and 3. The number is adjusted automatically when zooming, and its precise value is not essential. The black in the picture is drawn more slowly than the coloured part of the picture, and the black can be drawn quicker by lowering the maximal iteration number, but this may lead to the black becoming blurred.

The thickness of the boundary can be adjusted by key R - enter a decimal number about 0.2-2.

When the decimal number density/slope differs from 0, a lighting-effect appears (after redrawing). We imagine a landscape lying over the fractal that is lit up from a direction determined by two angles (measured in degrees). The landscape is constructed on the basis of either the so-called potential function or the distance function. By key M you can shift between the two alternatives. Here is the difference for the usual Mandelbrot set (in the second picture the light comes vertically down):  The lighting-effect requires three times as many calculations, so the drawing is slower when the density/slope differs from 0.

By pressing key J you go from the Mandelbrot set to the Julia sets for the formula. For every point ρ in the plane, there is an associated Julia set, and the most interesting ones are those associated to points lying near the boundary of the Mandelbrot set. The point in the centre of the window is moved by using the keys 4-7 and the arrows (for fine-adjustment), use key 1 to start drawing the Julia set. After this, use the same procedure as for the Mandelbrot set.

The Julia set associated to the point ρ is mapped onto itself by the mapping z → z2(1 + qz2)/(1 - qz2) + ρ, and this implies that a Julia set is self-similar. If the point ρ is near the boundary of the Mandelbrot set, the structure of the Julia set is identical to the structure of the Mandelbrot set at that locality. Here is a section of the Mandelbrot set (for q = -4) and a Julia set for a point in this section:  Pressing key J brings you back to the Mandelbrot set, and you can choose a new point or a new section of the Mandelbrot set.

By pressing one of the F-keys, the window closes and the picture is redrawn and rendered as file (in BMP format). In this drawing, four times as many points are involved and the average of the colour values is used - in order to make the boundary more attractive. Keys F1-F4 give 800 pixels, keys F5-F8 give 2400 pixels and keys F9-F12 give 7200 pixels. The file is named "pict", and it has a size of 1.4, 12.3 and 111 MB, respectively (if the picture is not to be reworked, you should convert it to JPG format).

For q = 50 the Mandelbrot set is almost equal to the usual - only turned in the opposite direction - however, the Sea Horse Valley does not continue in the same way down to the x-axis. Here is a section and a subsection of this:  A Mandelbrot set is constructed on the basis of two so-called critical points. They are points in the plane that are solutions to a certain equation formed from the iteration function (its derivative set equal to 0). In our case 0 and ∞ are critical points. For q = 0 there are no other than these, but for q different from 0 there are four more, namely: for q > 0 the two points on the x-axis whose numerical value is √((√2 + 1)/q), and the two points on the y-axis whose numerical value is √((√2 - 1)/q); and for q < 0 the two points on the y-axis whose numerical value is √(-(√2 + 1)/q), and the two points on the x-axis whose numerical value is √(-(√2 - 1)/q). By pressing key C you can shift between the choice of 0 and the smallest positive of these numbers (this means that the alternative critical point is imaginary for q positive and real for q negative). For the alternative critical points, the Mandelbrot set is far away when q is numerically small, and it consists of two parts which approach each other when q increases numerically. They melt together when q is about 0.2 and -0.04 respectively. Here is the situation for q = -0.04: Here are sections of the Mandelbrot set for q 1/3 and -0.064 respectively:  For q = 0.017 (and critical point 0) the Mandelbrot set is almost identical to the usual Mandelbrot set, but there is uncleanness around it and it has become disconnected. We look down into the Sea Horse Valley: If we look closer at one of the dust particles, we see that it looks like the Julia sets from this locality: For q = -0.017 the domain which has come from afar, and which is approaching the size of the "true" Mandelbrot set (when the parameter is changed), has hit the antenna. In its main domain we can find this motif: Of all the Mandelbrot sets, the usual Mandelbrot set is the one that has the most locations which can be said to be beautiful. All other Mandelbrot sets are ugly in far the most places. In reward, among the divergent Mandelbrot sets, we may be fortunate enough to find localities which have still more astonishing shapes or beauty than the usual Mandelbrot set has. In the class of functions we are studying here, we iterate against a super-attracting fixed point, namely ∞, and this means that the picture is drawn rather quickly, but the patterns are more "rigid" than when the function is such that the iterations are towards cycles of finite points (this is the case for rational functions for which the denominator has a larger degree than the numerator). For our class of functions we find the best motives for q numerical to be either small or very large. And when q is large it is especially on the main antenna that we should look for decorative patterns:  The program Ratio

Updated: October 2009

This site is a subsection of juliasets.dk