FINDPERC and FINDPERM Find Period in Component, Ver 1.3, (C) Jay R. Hill, May 12, 1997 Redistribution and noncommercial use of this program is fine as long as you you keep the programs and this document together. Given the approximate coordinates in or very near a component of the Mandelbrot Set, these programs will help you deterimine the period and the 'center' of the component. The center of a period p component is a complex number, c, for which the following iteration, starting with z=0, yields z=0 after p iterations. The iteration is the basic Mandelbrot Set formula: z <- z*z + c BACKGROUND. On about May 6, 1997 zussman@netvision.net.il wrote to sci.fractals: > > Hi ! > I'm searching for a program wich can state the periods of the bulbs > quickly . > I'm also searching for information about the windows in the > bifurcation diagram ( fiegenbaum diagram ) compared with the > bifurcation ( and periods ) in mandelbrondelbrot. > > Guy . Great question Guy. So, here are two programs for Guy and anyone else who wants to know the period of a component of the Mandelbrot Set. FINDPERC.EXE uses 80-bit floating point arithmetic to achieve 19 digit results. The program FINDPERM, also included, uses 57 digits with the extended arithmetic package MFLOAT by Friedrich Kaufmann. It displays results to 37 digits. One way to use this program is with FRACTINT or other Mandelbrot Set plotter which displays coordinates. I like WinFract, the old windows version of FRACTINT, since it has a coordinate box showing the coordinates of any spot on the screen. With FRACTINT or WinFract in one window and one of these programs in a DOS window, you can locate components easily. Be aware that FRACTINT in higher than 320x200 mode must be in graphics DOS mode when you press Alt-ENTER to switch between Windows and DOS (in Win95). If you press TAB to see the coordinates and switch to Windows mode while FRACTINT is in the ASCII mode, you will blow your picture away! USAGE. FINDPERC.EXE realpart imagpart or FINDPERM.EXE realpart imagpart where (realpart, imagpart) is in or VERY near the component. If you forget how to run the programs, just type the name and a help text appears. When running, the programs display 4 columns, k, real(z[k]), imag(z[k]), norm(P[k]) z[k] is the k-th iteration and P is the cummulative product of (2*z[k]). When k is at the period, you will see z and P drop to near zero. Try -.31858988 .62252567. A screen full of numbers shows the norm(P[k]) column that P is always larger than 1. So we keep going, at the prompt: See a period? What is it? (Press ENTER to keep going.) we press ENTER a few times. When you get to k=304, we see this: k, real(z[k]), imag(z[k]), norm(P[k]) 303 -0.71341524036164 0.43591489613005 4750.122208675 304 0.00034962851219 0.00054900920032 0.008049579 Finally, the period is likely to be 304 since P[304] is much less than 1. P fell to 0.00804957986829, so at the prompt we enter 304. The result is: Started with=(-0.318589880000000000 0.622525670000000000) period=304 Found center=(-0.318590930805574861 0.622525086442532124) period=304 This confirms the period and solves for the component center. If the center we found does not match the expected value given the uncertainties of your original guess, then the period is wrong or the guess not close enough. If you put 305 as the period, you get: Started with=(-0.318589880000000000 0.622525670000000000) period=305 Found center=( 0.000000000000000000 0.000000000000000000) period=1 The program failed to find a solution with that period. Next try -.31856978 .62255716. Run program until you see 1899 -0.71343552607456 0.43629675580981 17506031.028553824 1900 0.00006561073511 0.00001794898841 0.323997053 P drops below 1 from 17506031.028 to .324. That it, ENTER 1900 and get: Started with=(-0.318569780000000000 0.622557159999999999) period=1900 Found center=(-0.318569781551786128 0.622557157465553250) period=1900 We know there is a component near (-.125 1.25) with period 4. The iterations diverge in 3 iterations. Enter 4, we are lucky, the answer: Found center=(-0.156520166833755062 1.0322471089228318) period=4 Other solutions can be found with this starting value: Started with=(-0.125000000000000000 1.250000000000000000) period=5 Found center=(-0.198042099364253840 1.100269537292698530) period=5 Started with=(-0.125000000000000000 1.250000000000000000) period=6 Found center=(-0.163598261552022645 1.099780642888272150) period=6 and so on. But usually such luck runs out with smaller higher period components. I use Newton's method. (Newton was no Srinivasa Ramanujan.) :-) MORE EXAMPLES. Use the cut and paste tool bar in your Win95 Dos window to try these. Found center=(-0.318614350657053174 0.622619818705517736) period=620 Found center=(-0.318614350657037262 0.622619818705529503) period=4960 Found center=(-0.318614350657049402 0.622619818705531170) period=3100 There is a very small bud on the edge of the bid cardoid. Found center=(-0.305387626598290530 0.621188098119757066) period=478 And a very small little cardioid in its branches Found center=(-0.305375844037193914 0.621193604423463881) period=1068 and its period 4 x 1068 cardiod nearby Found center=(-0.305375654258032003 0.621193684057795200) period=4272 Here is another cardoid in branches Found center=(-0.305375053063239252 0.621194524943383268) period=1841 And its period 4 x 1841 cardiod nearby Found center=(-0.305375017903283374 0.621194595993191902) period=7364 with its 5 x 1841 cardiod nearby Found center=(-0.305375064263574989 0.621194577480919706) period=9205 and its 9 x 1841 cardiod nearby Found center=(-0.305375064929673924 0.621194575544827108) period=16569 And some more in branches of the original period 478 bud: Found center=(-0.305371675699702831 0.621195607463890906) period=2024 Found center=(-0.305370656815140940 0.621195006931190628) period=1251 Found center=(-0.305373404413026598 0.621195638112011218) period=3092 Found center=(-0.305370398501323764 0.621196601413837009) period=956 Found center=(-0.305376676023385352 0.621195863767802037) period=885 Found center=(-0.305374581005961303 0.621195301492036328) period=2614 Found center=(-0.305372478737719552 0.621196983916585383) period=3275 Found center=(-0.305371090741148021 0.621195896981910752) period=2319