# z→z²+cz⁵
mick asked a math.stackexchange.com question about the filled-in Julia sets of the polynomial:
# 1 Critical Points
has 4 solutions
which is where iteration should start from to determine the number of components that the filled-in Julia set has (1 if all critical points remain bounded, infinitely many if a critical point escapes to infinity).
implies for all , which is not interesting.
# 2 Boundedness
Suppose . If that implies , then for all (by induction).
We want whence
Suppose whence
Maximizing such that gives that is, if for any then it’ll remain bounded.
Additionally, if all the critical points are certainly bounded, because .
Note: this does not imply it converges to , but the technique of the next section could maybe be adapted. I think boundedness is enough but I’m not 100% sure.
# 3 Escape To Infinity
Assume .
Suppose with some . If that implies , then as .
Concretely, let and .
Writing for some and , then . Now
In the second part of the product, substitute , and having assumed we know , that is,
Therefore, if then implies that that the iteration escapes to infinity.
Moreover, if , then , that is this region of the plane always escapes to infinity (for a non-zero critical point). The bound 0.01 could be increased with more effort.
# 4 Special c
The right-most tip of the escaping region (see visualisation below) is pre-periodic, with positive real satisfying for the real critical point and for the complex critical points (which means all the critical points are bounded and the filled-in Julia set has a single component).
Using SageMath, the exact value can be found as the cube of a root of a quintic with algebraic coefficients:
f(c, z) = z^2 + c * z^5
for cp in solve(diff(f(c, z), z) == 0, z):
try:
g(c) = (f(c, f(c, z)) - f(c, z)).substitute(cp).expand()
h(x) = (g(x^3) * x^7).canonicalize_radical()
P = sum([ QQbar(H[0]) * polygen(QQbar)^H[1] for H in h(x).coefficients() ])
c0 = QQbar.polynomial_root(P, CIF(RIF(0.6, 0.7), RIF(-0.1, 0.1)))^3
z0 = QQbar(- (2 / (5 * c0))^(1/3))
z1 = QQbar((- 2 / (5 * c0))^(1/3))
print(all([f(c0, z0) == f(c0, f(c0, z0)), f(c0, z1) == f(c0, f(c0, f(c0, z1)))]))
print(h(x))
print(P)
print(CIF(c0))
except:
pass
(download: z2cz5.sage) which outputs:
True
-3/1953125*5^(2/3)*(15625*5^(2/3)*2^(2/3)*x^5 - 18750*2^(1/3)*x^3 - 648*2^(1/3))
-0.3257301139913888?*x^5 + 0.1061001071608432?*x^3 + 0.003666819703478739?
0.2294487977025897?
that is, the special is .
I used SageMath version 9.5, Release Date: 2022-01-30 as
found in Debian Bookworm (current testing distribution) on
2023-03-09.
# 5 Visualisation
Source code for Fragmentarium (FragM fork version
Fragmentarium 2.5.7.221026 Digilantism with include path
Examples/Claude): z2cz5.frag
- green: critical point proven to escape to infinity (center) or remain bounded (outside)
- red: no decision reached after 1000 iterations
- light: critical point escapes to infinity (filled-in Julia set has infinitely-many components)
- dark: critical point remains bounded (filled-in Julia set has a single component)
- blue coordinate grid at 1, 0.1, 0.01, … spacing
Wide view:

Zoomed view:

Close up view of special :

Animation of filled-in Julia set near special for real :
