Escape-Time Fractals

Burning Ship

Julia

Lyapunov

Mandelbrot

Newton

The new Fractals package makes it easier to create and explore popular fractals, including the Mandelbrot, Julia, Newton, and other time-iterative fractals. The Fractals package can quickly apply various escape time iterative maps over rectangular regions in the complex plane, the results of which consist of images that approximate well-known fractal sets. You can further manipulate the fractal images using the ImageTools package, explore them interactively with the Exploration Assistant, and examine them with other computational commands.

The Fractals package also automatically applies multithreading and optimization techniques that take advantage of the full processing power of your computer by using the Compiler and evalhf for performance. This is further enhanced through use of the Threads package to achieve computational parallelism on multi-core platforms.

Color or grayscale images illustrate the underlying quasi-self-similarity of the fractal sets by exhibiting similar patterns at varying scales. By varying the domain, tolerance, and maximal iteration limit, a large variety of impressive images of fractals can be produced at user-defined resolutions.

>

with(Fractals:-EscapeTime):

Each of the four computational commands below generates three 400x400 pixel images. The first two grayscale images are Arrays, which store information about how many iterations of the relevant iterative map it takes from each starting point for the absolute value to exceed a tolerance (e.g. "escape") and what its final absolute value may be. Each color image is produced by combining the two grayscale layer Arrays to compute an Array with three color layers.

The CodeTools:-Usage command is called around the computations below in order to show the overall timings. The timings may vary, especially with repeated execution, according to whether garbage collection gets performed during the computation. The following commands were executed using 64-bit Maple 18 for Linux on a machine with an Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz.