Mandelbrot Mandelbrot Is a Program That Explores the Dynamics of Iterating the Complex Function and a Couple of Variations. It
Total Page:16
File Type:pdf, Size:1020Kb
Mandelbrot Mandelbrot is a program that explores the dynamics of iterating the complex function and a couple of variations. It contains five modes: 1. Orbit, which computes and plots the iterates , where and c is a fixed complex number. 2. Julia, which graphs specified Julia sets associated with the Mandelbrot set, 3. Mandelbrot, which allows the user to zoom in on specified parts of the Mandelbrot set, 4. Burning Ship, which graphs the Burning Ship fractal and allows the user to zoom in on specified regions (added Summer, 2010), and 5. Mulitbrot, which graphs multibrot fractals and allows the user to zoom in on specified regions (added Summer, 2010). Upon execution of Mandelbrot the user is first asked to choose a mode. After that a user can change modes by selecting the appropriate option under the Mode menu. Let‟s begin by choosing the Orbit mode. Upon selecting that mode, three windows will appear as in Figure 1. The one on the left is a rendering of the Mandelbrot set (the region colored in black) graphed in the complex plane where the real part ranges from -2 to 0.5 and the imaginary part ranges from -1.25 to 1.25. The window in the middle displays that portion of the complex plane for which both the real and imaginary parts range from -2.5 to 2.5. A circle whose center is at the origin and with radius 2 is also displayed. The window on the right is the status window. The current value of the complex number is located in the left window by a “+” symbol and the values of its real part a and imaginary part b are listed in the status window. Initially, c is set to zero. The user can change the complex number in two ways: 1. One can input the numbers a and b in their text boxes located in the status window, or 2. One can drag the mouse in order to move the “+” symbol around. As it is being moved a window appears at the bottom of the screen which gives the numerical values for the real part a and the imaginary part b of c. Upon pressing the “Go” button, a red dot appears at the origin in the middle window and signifies the location of . Also a window appears at the bottom of the screen giving the real part (x) and the imaginary part (y) of the current iterate. Each time the “Next” button is pressed, the new iterate is graphed as a red dot in the middle window and the location of the old iterate changes from red to blue. If an iterate ever lies outside the circle of radius 2, then the complex number is not a part of the Mandelbrot set, otherwise c is in the Mandelbrot set. Figure 1 For the present we will skip over the “Julia” mode and move on to the “Mandelbrot” mode. Upon selecting this mode, three windows will appear: The Mandelbrot set on the left, a blank window in the middle and the status window on the right. Let us first look at the status window. At the top is an edit box for the “Zoom Level”. We will discuss that momentarily. Next are text boxes which give the current intervals for the real part a and imaginary part b of the complex plane to be graphed in the middle window. If, for example, you change the left endpoint of the screen a-interval from to , then press the “Go” button, the program will plot a portion of the Mandelbrot set in the middle window, as in Figure 2. Note first of all that the “Zoom Level” is now 1. Also note that the program, if necessary, will „square‟ the graphing window; that is, it will redefine the screen a-interval or the screen b-interval so that they have the same length. In this example the screen a-interval was shortened to , whose length is 1.5. The program extended it to have the same midpoint but new length 2.5, the length of the longer b-interval. Thus, the program redefined the new screen a-interval to be . Another way to zoom in on portions of the Mandelbrot set is to use the “Zoom” button. When it is pressed, you move the mouse, then click, to define one corner of the zoom window. Then move the mouse again and click to define the diagonally opposite corner of the zoom window. Once the “OK” button is pressed, the program automatically “squares” the zoom window, increments the zoom level by one, prints the new screen a- and b-intervals in the status window, and graphs the zoomed portion of the Mandelbrot set in the middle window. If the zoom level is zero, the left window is used to define the new zoom window; otherwise the middle window is used. You can go back to a previous zoom level by typing its number in the zoom edit box, then press the “Go” button. Figure 3 shows a close-up view of the small “copy” of the Mandelbrot set that appears at the extreme left in the original set. Figure 2 Figure 3 Now what about the colors? Here is what the program is doing. For each pixel in the zoom window, the program assigns it the appropriate complex number . It then starts the iterative process and . If for some n, the value of is such that the sum of the squares of its real and imaginary parts is greater than 4 (that is, lies outside the circle in the complex plane whose center is at the origin and whose radius is 2), then c is not part of the Mandelbrot set and the iteration stops and the pixel is assigned a color. Initially, if n is 5 or less the pixel is colored cyan. If n is greater than 5 but is 10 or less, the pixel is colored blue. If n is greater than 10 but is 20 or less, the pixel is colored red, and if n is greater than 20 but is 40 or less, the pixel is colored yellow. If still lies within the circle of radius 2, there is an excellent chance c actually lies within the Mandelbrot set, so its pixel is colored black. The cut-off values for the various colors can be edited in the status window. Figure 4 shows the same magnified portion of the Mandelbrot set as in Figure 3, but where the cut-off values for each of the colors was doubled. Figure 4 Let‟s now go back to the Julia mode. There is a Julia set for each of the points c in the complex plane. Given a complex number c, we use the same recursion as before, , but this time we vary the initial value . If for an initial , an iterate lies outside the circle centered at origin but of radius 2, then is not part of c‟s Julia set; otherwise it is. When the Julia mode is selected, the screen appears as in Figure 5. The status window appears pretty much the same as the one for Mandelbrot mode, except for the addition of text boxes allowing you to specify the real part a and the imaginary part b of the complex number c. Alternatively you can specify c by using the mouse to move the “+” symbol appearing in the left window displaying the Mandelbrot set. Note that when is redefined, the option to change the screen a- and b-intervals and the option to zoom in are disabled; that is, the Julia set must be initially drawn in the window for which and . Once the “Go‟ button is pressed and the Julia set is drawn, those options are again enabled. Figure 6 shows the Julia set corresponding to a point in the upper “bud” of the Mandelbrot set. Note that the colors are determined in the same way that they are for the Mandelbrot set. Figure 7 shows a zoomed in portion (the extreme left portion) of the same Julia set and Figure 8 shows the Julia set for a nearby c that is outside the Mandelbrot set. Figure 5 When the Burning Ship mode is selected, the screen looks like Figure 9. Note that the leftmost screen is no longer the Mandelbrot set, but it is the “burning ship” fractal. This fractal is generated in much the same way that the Mandelbrot set is generated, except that rather than generating the sequence with , we generate the sequence with , and where represents the real part of and represents the imaginary part of . The burning ship mode status window is identical to that of the Mandelbrot mode, so the options available for the burning ship fractal are identical to those of the Mandelbrot set. This fractal gets its name from the fact that if one zooms in on the lower right of the fractal, an image appears, as in Figure 10, that roughly resembles a burning ship. The last mode is the multibrot mode, and the multibrot fractals, like the burning ship fractal, are generated in way similar to that of the Mandelbrot set. First, fix an exponent d. For each pixel in the zoom window, the program assigns it the appropriate complex number . It then starts the iterative process and . If for some n, the value of is such that the sum of the squares of its real and imaginary parts is greater than 4 (that is, lies outside the circle in the complex plane whose center Figure 6 is at the origin and whose radius is 2), then c is not part of the multibrot set, the iteration stops and the pixel is assigned a color.