Polynomial Julia Sets

Enter a comma separated list of polynomial coefficients in the order of ascending degree to define a polynomial. Hit the generate button to generate the filled Julia set of the resulting polynomial using an escape time algorithm. You can click on the image to choose an initial seed and visualize the resulting orbit.

coefficients:
zmin: zmax: Axes:

Some theory

The Julia set

Definition: The filled Julia set of a polynomial \(f\) is exactly the set of all initial seeds \(z_0\in\mathbb C\) that lead to bounded orbits under iteration of \(f\). The Julia set of \(f\) is the boundary of the filled Julia set.

Since the Julia set is the boundary of the filled Julia set any neighborhood (no matter how small) of any point in the Julia set contains points that stay bounded under iteration of \(f_c\) and points that diverge to \(\infty\) under iteration of \(f_c\). The Julia set is exactly where the chaos lies under iteration of \(f_c\).

The escape time algorithm

We can generate an image of the filled Julia of the general polynomial \(f(z)= a_nz^n+a_{n-1}z^{n-1}+\cdots+a_0\) as follows.

The escape radius

The exact escape radius depends on the polynomial. In particular, suppose that \(|z_0|>2\) and \[|z_0| > 2\left|\frac{a_{n-1}+\cdots+a_0}{a_n}\right|.\] Then, the orbit of \(z_0\) under iteration of \(f\) escapes to \(\infty\). Here's a supporting computation:

\[\begin{align} |z_1| = |f(z_0)| &= |a_nz_0^n+a_{n-1}z_0^{n-1}+\cdots+a_0| \\ &= \left|z_0^n\left(a_n+\frac{a_{n-1}}{z_0}+\cdots+\frac{a_0}{z_0^n}\right)\right| \\ &\geq |z_0^n|\left(|a_n| - \left|\frac{a_{n-1}}{z_0}+\cdots+\frac{a_0}{z_0^n}\right|\right) \\ &\geq |z_0^n|\left(|a_n| - \left|\frac{a_{n-1}+\cdots+a_0}{z_0}\right|\right) \\ &> 2|z_0| \frac{1}{2} = \lambda |z_0|, \end{align}\]

for some \(\lambda>1\). In general, \(|z_k|\geq \lambda |z_{k-1}|\) - i.e. each iterate is larger than the previous by at least this same multiplicative factor.