This project provides an interactive visualization tool for exploring the Julia set, a complex fractal that emerges from iterating a holomorphic function over the complex plane. Users can dynamically zoom into regions of interest by clicking on the plot, revealing the fractal's intricate structure at various scales.
Author: Edis Devin Tireli, M.Sc, Ph.D. student
Affiliation: Copenhagen University
In complex analysis, a holomorphic function is one that is complex differentiable at every point in its domain. More formally, a function
exists. This implies that holomorphic functions are infinitely differentiable and thus analytic. The Julia set is intimately connected with the dynamics of holomorphic functions.
The Julia set of a complex function
For functions of the form
- Interactivity: Click to zoom in on areas within the plot to explore the Julia set in greater detail.
-
Custom Functions: Users can input their own holomorphic function in the form
$f(z) = z^n + c$ ,$ f(z) = e^z + c$ , and the usual trigonometric functions of the complex variable$z$ to generate unique Julia sets. - Optimized Performance: Computation is accelerated using Numba, a Just-In-Time compiler for Python, facilitating real-time exploration.
Ensure Python is installed on your system, along with the required packages: numpy
, matplotlib
, and numba
. Install them using pip
if necessary:
pip install numpy matplotlib numba
Execute the script julia_explorer.py
from the command line:
python julia_explorer.py
You will be prompted to enter a holomorphic function. Provide it in some usual form, e.g. z^n + c
, or sin(z) + c
or exp(z) + c
(or a mix):
Enter a function of z and c, like 'z^2 + c':
f(z, c) = z^2 + c
In the above case we choose the famous Mandelbrot set. A plot will then appear, showing the Julia set for your function. Click to zoom and investigate the fractal's complexity. See below for the given example:
and see below for an example of a region of the Mandelbrot set above - can you find it on your own?
We encourage contributions. Feel free to fork the repo, enhance the tool, and submit pull requests.
This project is released under the MIT License - see the LICENSE file for details.
- The mathematical community for the rich theory of complex dynamics.
- The developers of Numba for their exceptional work in accelerating Python code.