Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
NOTICE from J. C. (Clint) Sprott ([email protected]): The program, Chaos Data Analyzer, which I authored is a research and teaching tool containing 14 tests for detecting hidden determinism in a seemingly random time series of up to 16,382 points provided by the user in an ASCII data file. Sample data files are included for model chaotic systems. When chaos is found, calculations such as the probability distribution, power spectrum, Lyapunov exponent, and various measures of the fractal dimension enable you to determine properties of the system Underlying the behavior. The program can be used to make nonlinear predictions based on a novel technique involving singular value decomposition. The program is menudriven, very easy to use, and even Contains an automatic mode in which all the tests are performed in succession and the results are provided on a onepage summary. Chaos Data Analyzer requires an IBM PC or compatible with at least 512K of memory. A math coprocessor is recommended (but not required) to Speed some of the calculations. The program is available on 5.25 or 3.5" disk and includes a 62-page User's Manual. Chaos Data Analyzer is peer-reviewed software published by Physics Academic Software, a cooperative Project of the American Institute of Physics, the American Physical Society, And the American Association of Physics Teachers. Chaos Data Analyzer and other related programs are available from The Academic Software Library, North Carolina State University, Box 8202, Raleigh, NC 27695-8202, Tel: (800) 955-TASL or (919) 515-7447 or Fax: (919) 515-2682. The price is $99.95. Add $3.50 for shipping in U.S. or $12.50 for foreign airmail. All TASL programs come with a 30-day, moneyback guarantee Q6b: How is the Mandelbrot set actually computed? A6b: The basic algorithm is: For each pixel c, start with z=0. Repeat z=z^2+c up to N times, exiting if the magnitude of z gets large. If you finish the loop, the point is probably inside the Mandelbrot set. If you exit, the point is outside and can be colored according to how many iterations were completed. You can exit if |z|>2, since if z gets this big it will go to infinity. The maximum number of iterations, N, can be selected as desired, for instance 100. Larger N will give sharper detail but take longer. Q6c: Why do you start with z=0? A6c: Zero is the critical point of z^2+c, that is, a point where d/dz (z^2+c) = 0. If you replace z^2+c with a different function, the starting value will have to be modified. E.g. for z->z^2+z+c, the critical point is given by 2z+1=0, so start with z=-1/2. In some cases, there may be multiple critical values, so they all should be tested. Critical points are important because by a result of Fatou: every attracting cycle for a polynomial or rational function attracts at least one critical point. Thus, testing the critical point shows if there is any stable attractive cycle. See also: 1. M. Frame and J. Robertson, A Generalized Mandelbrot Set and the Role of Critical Points, _Computers and Graphics_ 16, 1 (1992), pp. 35-40. Note that you can precompute the first Mandelbrot iteration by starting with z=c instead of z=0, since 0^2+c=c. Q6d: What are the bounds of the Mandelbrot set? When does it diverge? A6d: The Mandelbrot set lies within |c|<=2. If |z| exceeds 2, the z sequence diverges. Proof: if |z|>2, then |z^2+c|>= |z^2|-|c|> 2|z|-|c|. If |z|>=|c|, then 2|z||c|> |z|. So, if |z|>2 and |z|>=c, |z^2+c|>|z|, so the sequence is increasing. (It takes a bit more work to prove it is unbounded and diverges.) Also, note that |z1=c, so if |c|>2, the sequence diverges. *** To "iterate" means to repeat. An iteration is a repetition of an operation. In math, iterations often involve taking the output of a function and plugging it back in - repeating a process using each output as the input for the following iteration. Here's an example of a very simple iteration using the function 5 + x/2: Pick a number, say 0, and put it in for x. What do you get out? 5 + 0/2 = 5. Now *iterate*: put the output of the function (5) back in for x. What do you get out this time? 5 + 5/2 = 7.5 Now put that output (7.5) in for x. 5 + 7.5/2 = ... Etc., etc. You can see that by continuing these iterations (repetitions), you will get the infinite sequence: 0, 5, 7.5, 8.75, .. You can research iteration and fractals together. A great place to start is Cynthia Lanius' web unit on fractals: http://math.rice.edu:80/~lanius/frac/ For explanations of iteration, look at her Jurassic Park fractal page: http://math.rice.edu/~lanius/frac/jurra.html and Properties of Fractions - formation by iteration: http://math.rice.edu/~lanius/fractals/iter.html *** http://mathforum.org/library/drmath/view/53807.html To understand the Mandelbrot set, one first needs to be familiar with complex numbers. If you know the basic arithmetic of complex numbers, then you can skip the next few paragraphs. If not, read it carefully. Complex numbers were introduced to answer the question of "What is the solution to x^2 + 1 = 0 (x squared plus 1 equals 0)?" Now, you'd think that such an equation would have no solution, and this is true if x has to be a *real* number. But let's call i = Sqrt[-1] (the square root of -1). Then x = +i and x = -i are solutions to the above equation. And you're thinking, "But you're not allowed to take the square root of a negative number!" Well, this is not completely true. The "rule" should say, "The square root of a negative number is not a real number." We don't mind the fact that this new number i is an apparent contradiction because in defining it, we give it the following properties: i follows the "regular" operations of addition, subtraction, multiplication, and division as for the reals, and i^2 = -1. So i is what we call the *imaginary unit* of the *complex* numbers. In the reals, there are two units: 1 and -1. In the complex numbers, which are numbers of the form a + bi (a plus b times i) for real numbers a and b, there are four units: 1, -1, i and -i. So the complex numbers are an extension of the reals, since when b = 0, we get the real numbers. Addition of two complex numbers gives a complex number: (a+bi)+(c+di) = (a+c)+(b+d)i Multiplication of two complex numbers also gives a complex number: (a+bi)(c+di) = ac + adi + bci + bdi^2 = ac + (ad-bc)i - bd = (ac-bd) + (ad-bc)i (remember, i^2 = -1) Just as with the reals, there is an additive identity (0 + 0i = 0), and a multiplicative identity (1 + 0i = 1). Every nonzero element a+bi has an additive inverse, namely -a-bi, and a multiplicative inverse, namely (a-bi)/(a^2+b^2). So when we multiply, add, divide, or subtract two complex numbers, the result is also a complex number (except when dividing by 0, of course, which is still undefined). Sometimes, though, we simply write complex numbers as a single variable, usually z or w. That makes it easier to work with in some cases. Hopefully, you're familiar with the real number line. It's a graphical representation of the real numbers, and is usually depicted like this: <----|---|---|---|---|---|---|---|---|---|---|----> ... -5 -4 -3 -2 -1 0 1 2 3 4 5 ... Every real number is a point on this line. Now, the complex numbers have a graphical representation as well, but it's a lot more interesting. It's the *complex plane*. Every complex number is a point in a Cartesian coordinte system, where the x-axis is the real axis, just like the real number line, and the y-axis is the *imaginary* axis, where complex numbers of the form 0+bI are plotted. It looks like this: ^ Im(z) | 3i + | 3+2i 2i + . | i+ | <-+---+---+---+---+---+---+---+---+-> -4 -3 -2 -1 |0 1 2 3 4 -i + | -2i + . 2-2i | -3i + . | 1-3i + Here I have plotted the points 3+2i, 2-2i, and 1-3i. Fairly straightfoward stuff, especially if you've had coordinate geometry. Now, what does this have to do with the Mandelbrot set? Well, you mentioned the equation z = z^2 + c, but a more accurate way of writing this is: f(z) : z |--> z^2 + c That is, we have a function f, where z maps to z^2 + c, or for a value of z, the equation tells us to square it and add c to it. This in itself is not all that interesting, but what happens if we keep applying f. For example, f(0) = c f(f(0)) = c^2 + c f(f(f(0))) = (c^2 + c)^2 + c f(f(f(f(0)))) = ((c^2 + c)^2 + c)^2 + c . . . . . . etc. The French mathematician Gaston Julia asked the question, "For a given value of c, for what values of z does f(f(f(...f(z))) stay bounded?" In other words, we pick a value of c, say c = 0, and we pick a value of z, say z = 1/2. Then we calculate: f(1/2) = (1/2)^2 = 1/4 f(1/4) = (1/4)^2 = 1/16 f(1/16) = (1/16)^2 = 1/256 Clearly, if we keep going, z will get smaller and smaller, approaching 0. Now, what if we picked z = 2? Then f(2) = 4, f(4) = 16, f(16) = 256, and it is just as clear that z will increase without bound. If we pick z = 1, then f(1) = 1, and no matter how many times we apply f, z stays fixed at 1. So on the positive real line, all the points between 0 and 1 inclusive stay bounded under this mapping, and all other points do not because they increase without limit. If we define Or+(f,z) to be the *forward orbit* of z under f (the infinite set {z, f(z), f(f(z)), f(f(f(z))), ...}), then Or+(f,z) is *bounded* if a finite region contains every point in Or+(f,z). We call each element in Or+(f,z) an *iterate* of z under f. In particular, if we repeat f on z n times, f(f(...f(z))) is the n(th) iterate of z under f. So Or+(f,1/2) is bounded, since every element/iterate in it is contained in the interval [0,1/2], and Or+(f,2) is not bounded, since you cannot pick a *finite* interval that contains all iterates. Well, this is pretty straightfoward, but what happens when we pick different values of c? Well, this is what Julia asked, but he gave things a twist - what if z and c were *complex* numbers, rather than merely *real* numbers? It turns out that this leads to very interesting results, so interesting that they are still being investigated a hundred years after Julia asked the question. We define a *Julia set* to be the set of all complex numbers z such that Or+(f,z) is bounded, where f(z) : z |--> z^2 + c, and c is some given complex number. I leave it as an excercise for you to show that if c = 0, the corresponding Julia set is a disk of radius 1 when plotted in the complex plane. Now, Benoit Mandelbrot, sometime in the late 70's/early 80's, asked the question, "For what values of c is Or+(f,0) bounded?" That is, we pick various values of c, and calculate f(f(f(...f(0)))), and find out if this stays bounded or diverges to infinity. The rather surprising result is that when one plots the various values of c (*not z*, but c) in the complex plane, one obtains a fractal. We define the *Mandelbrot set* to be the set of all complex numbers c such that Or+(f,0) is bounded, where f(z) : z |--> z^2 + c. There are unusual properties of the M-set, some of which are very difficult to prove: 1) The M-set is "connected," that is, for any two points in the M-set, there is a continuous line connecting those two points. 2) The M-set is the set of all c for which the corresponding Julia set is connected. That is, if a point c is in the M-set, then the Julia set for that value of c is connected. 3) The M-set is contained in a disk of radius 2, and a point is *not* in the M-set if there exists some iterate in Or+(f,0) which is outside this disk. (This gives an easy way to check that a point is not in the set.) Well, that concludes my overview of the Mandelbrot set. I've written a lot here, and depending on your level of mathematics, there is a great deal more that can be said. I will leave it to you to research the topic further. Check out your local library; you'll find a lot of accessible books on the topic, as fractals have become quite popular in the "armchair science" community. Mathematicians have been studying them for decades. -Doctor Pete, The Math Forum Check out our web site! http://mathforum.org/dr.math/ ***** Dimensions of Fractals. If we divide a line segment into equal parts, each 1/nth of the whole, we will need n^1 parts to reassemble the original line segment. The dimension of the object is equal to the exponent. If we divide a square into smaller squares, each with side 1/n of the whole, we shall require n^2 parts to reassemble the original square. Again the mathematical dimension is equal to the exponent. Similarly, if we divide a cube into smaller cubes, each with edge 1/nth the original cube, we shall require n^3 parts to reassemble the original cube. Again the dimension is equal to the exponent. In all three cases - the line segment, the square, and the cube, we can piece together n^d smaller parts with edge scaled down by 1/n from the original, and rebuild the original. Now the SIMILARITY DIMENSION 'd' is defined as the ratio: log(number of parts) d = --------------------------log(1/linear magnification) Thus for the line segment ln(n^1) d = ------- = 1 ln(n) For square ln(n^2) 2.ln(n) d = ------- = -------- = 2 ln(n) For cube ln(n) ln(n^3) 3.ln(n) d = -------- = -------- = 3 ln(n) ln(n) The similarity dimension is a basic tool in studying fractals. If you think of the Koch snowflake, each side of the triangle develops into 4 smaller parts; scaled down to 1/3 size, the triangles are self-similar. Hence the dimension ln(4) snow flake d = ------- = 1.261... ln(3) ln(3) The Sierpinski triangle d = ----- = 1.584..... ln(2} ln(8) The Sierpinski carpet d = ------- = 1.892.... ln(3) ln(20) The Sierpinski sponge d = ------ = 2.726.... ln(3) ln(2) The Cantor set d = ------- = 0.630.... ln(3) The large dark areas of the Mandelbrot set are two-dimensional but the entire set, being not exactly self-similar, does not have a similarity dimension. On the other hand, the similarity dimension is only one of many that yield fractal dimensions. The boundary of the Mandelbrot set wiggles so violently as to be considered two-dimensional in the Hausdorff-Besicovich dimension. -Doctor Anthony, The Math Forum Check out our web site! http://mathforum.org/dr.math/