Ana's fractal
Ana's fractal is a fractal in complex plane, which is obtained by applying the operation discussed below to complex variables, and by representing the results as colors.
This fractal is obtained by taking point in the complex plane, applying hyperbolic tangent to it, then multiplying the result by , applying hyperbolic tangent again and repeating this instructions again and again. After some time the results behave much like repeating decimals, meaning that they repeats itself after every iterations. After this point is painted with color number (one can number colors arbitrarily).
Definition[edit]
Let us define a sequence for each point inside the complex plane: and . For large values of , will be either chaotic (with respect to ), or it will tend to some limit / limits. By the sequence tending to several limits we mean, that for large values of , takes only several specific values, and repeats those values in the same order forever. The sets of these values are called attractors.
We can say, that the point , for which is chaotic (with respect to ), has infinitely long attractor. Thus, every complex point has an attractor, with some length.
Let us now define sets, labeled from 1 to infinity. Each set contains all the points, who's attractors have the same length as the label of this set. The set of these sets is called Ana's fractal.
If we paint each point of a complex plane, according to the length of its attractor (i.e. paint each element in Ana's fractal with a separate color), we will obtain the images shown here.
Fractal images and animations[edit]
Images and animations were generated using c++ code.
Code for Wolfram Mathematica[edit]
This code generates Ana's fractal. (Keep in mind, that this code is not optimal)
(* Definition of the function *) topLimit = 10^10; (* If series gets larger than topLimit, we color it with 0 *) f[z_, 0] = z; f[z_, n_] := f[z, n] = z Tanh[ f[z, n - 1]] // N; (* Parameters for convergence check *) colorQuantity = 20; (* Maximal length of attractor *) iter = 200; (* Number of iterations needed to come close to attractor *) error = 0.01; (* Allowed error during searching for the attractor *) checkPairs = 10; (* Pairs to check, before claiming an attractor *) (* Image borders *) reMin = -2; reMax = 2; imMin = -2; imMax = 2; dotsPerUnit = 20; (* Calculation of the attractor length *) limits[zIn_] := Module[{tbl}, (* Save colorQuantity+checkPairs terms in tbl *) tbl = Table[f[zIn, n], {n, iter, iter + colorQuantity + checkPairs}]; (* Check if f is finite *) If[AnyTrue[Abs[tbl], # > topLimit &], Return[0]; (* Paint as 0 if not *) ]; (* Varie the length of attractor *) For[i = 1, i < colorQuantity, i++, (* Check if the attractor length is correct *) If[AllTrue[Table[Abs[tbl[[j]] - tbl[[j + i]]], {j, 1, checkPairs}], # <= error & ], Return[i]; ]; ]; Return[0]; (* attractor is longer than colorQuantity. Paint it as 0 *) ]; (* Plot the image *) ArrayPlot[Table[limits[x + I y], {y, imMin, imMax, 1/dotsPerUnit}, {x, reMin, reMax, 1/dotsPerUnit}]]
References[edit]
This article "Ana's fractal" is from Wikipedia. The list of its authors can be seen in its historical. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.