# Fractals/Iterations in the complex plane/analysis

How to analyze discrete dynamical system based on the rational map ${\displaystyle f}$ of one complex variable defined on the Riemann sphere ?

${\displaystyle z_{n+1}=f(z_{n})}$
${\displaystyle f:{\hat {\mathbb {C} }}\to {\hat {\mathbb {C} }}}$

Find non-repelling periodic points

# Goals

• find critical points ( finite and infinite) = critical set
• find periodic points (cycles), it's periods[1] and stability
• find relation between critical point, attracting points and their basin (domain of attraction)

# dictionary

• rational functions, that is, holomorphic maps of the Riemann sphere to itself, or equivalently, ratios of two polynomials, up to Moebius transformations in both domain and range.

# Algorithm

Algorithm by pauldelbrot[2] "For rational maps, I'd suggest the following procedure would work:

• Follow all critical orbits for some large number of iterations.
• For each one: Run it a few thousand more iterations and see if it gets close to the landing points of any previous ones. If it does, discard it.
• Divide the Riemann sphere into small regions in a grid; e.g. by keeping two square bitmaps, representing in one the inside of the unit circle and in the other the outside of it by representing the inside of the unit circle for w = 1/z.
• Color the pixels in these bitmaps containing the remaining critical orbit landing points red, green, blue, etc.; maybe use a conservative distance estimate at each one to widen this to a small disk of pixels.
• Apply the original algorithm, only instead of looking for pixels to hit white or not, you look for them to hit all those various colors, and propagate those colors.

In the end you should have colorful filled-in basins of attraction along with grey along the Julia set itself. Conversion of the two bitmaps into a suitable visual representation of a sphere is left as an exercise for the reader."

# steps

• compute degree of the map
• compute first derivative wrt the variable z  : ${\displaystyle f'(z)={\frac {d}{dz}}f(z)}$
• compute critical points
• compute attractors ( attracting periodic cycles) and their periods as a limits of critical orbits
• compute multiplier for each attractor
• make image

## degree

The degree d of rational map f is the maximum of degrees of its denominator and of its numerator, provided they are relatively prime:

${\displaystyle f(z)={\frac {p(z)}{q(z)}}}$

${\displaystyle d=deg(f)=max\{deg(p),deg(q)\}\geq 2}$

## critical points

### Definition

Critical point on the Riemann sphere is a

• point z where f is not locally one-to one = fails to be injective in any neighbourhood of z, and f is not constant
• points at which valency ( order) is grater then 1

A critical point of ${\displaystyle f(z)}$  is a:[3]

• finite point z satisfying ${\displaystyle f'(z)=0}$
• poles of f of order 2 or higher
• point at infinity z = ∞
• if the degree d of ${\displaystyle f(z)}$  is at least two
• if ${\displaystyle f(z)=1/g(z)+c}$  for some c and a rational function ${\displaystyle g(z)}$  satisfying this condition.

### The Riemann-Hurwitz formula

Number of critical points n counted with appropriate multiplicity on the Riemann sphere is

n = 2*d-2

Where d = degree of the function

This is an upper bound (maximal number because of counting multiplicities), so the function can have less critical points[4]

### How to check if infinity is critical point ?

Evaluate function f

${\displaystyle f(z)={\frac {p(z)}{q(z)}}}$

at point in infinity[5]

There are 2 cases

• ${\displaystyle f(\infty )=\infty }$  so infinity is a fixed point of f
• ${\displaystyle f(\infty )\neq \infty }$  so infinity is not a fixed point of f

The degree of

• of numerator ${\displaystyle p(z)}$  is ${\displaystyle n}$
• of denominator ${\displaystyle q(z)}$  is ${\displaystyle m}$ .

#### fixed point

The infinity is a fixed point of f

${\displaystyle f(\infty )=\infty }$

then the ${\displaystyle \infty }$  is a critical point of ${\displaystyle f}$  if

${\displaystyle n>m+1}$

Example

${\displaystyle f(z)={\frac {z^{3}+2z+3}{z-1}}}$

kill(all);
remvalue(all);
display2d:false;

define(f(z), (z^3+ 2*z + 3)/(z - 1));

/* first derivativa wrt z */
define( d(z), diff(f(z),z,1));

/* hipow does not expand expr, so hipow (expr, x) and hipow (expand (expr, x)) may yield different results */
n : hipow(num(f(z)),z);
m : hipow(denom(f(z)),z);

/* check if infinity is a fixed point */
limit(f(z),z,infinity);

/* finite critical points */

s:solve(d(z)=0)$s : map(rhs,s)$
s : map('float,s)$s : map('rectform,s)$

#### not a fixed point

The infinity is not a fixed point of f

${\displaystyle f(\infty )\neq \infty }$

look at the function

${\displaystyle w\mapsto f(1/w)}$ .

The derivative is given by

${\displaystyle -{\frac {f'(1/w)}{w^{2}}}=-{\frac {p'(1/w)q(1/w)-p(1/w)q'(1/w)}{w^{2}q(1/w)^{2}}}}$

then if:

• ${\displaystyle n=m=1}$  then ${\displaystyle \infty }$  is not a critical point of ${\displaystyle f}$ .
• ${\displaystyle n=m>1}$  then if
• the numerator is of degree ${\displaystyle 2m-2}$  and ${\displaystyle \infty }$  is not a critical point of ${\displaystyle f}$ .
• the numerator is of degree ${\displaystyle <2m-2}$  then ${\displaystyle \infty }$  is a critical point of ${\displaystyle f}$ .
• ${\displaystyle n=m-1}$  then ${\displaystyle \infty }$  is not a critical point of ${\displaystyle f}$ .
• ${\displaystyle n  then ${\displaystyle \infty }$  is a critical point of ${\displaystyle f}$ .

## Attractors

• Find attractor ( attracting periodic points, cycle) as a limit set of critical orbit
• find period of a cycle

### How to check if infinity is fixed point ?

Here infinity has period 2 = is not a fixed point

a: -3-3*%i; /* d */
c: 0.0;
define(f(z), 1/(z^3+ a*z + c));

(%i4) limit(f(z),z,infinity);
(%o4)                                  0
(%i5) limit(f(z),z,0);
(%o5)                              infinity

Here infinity is not a fixed point

remvalue(all);
display2d:false;
define(f(z), 1/(z^3+ 2.099609375*z +  0.349609375));
(%i5)limit(f(z),z,infinity);
(%o5) 0
(%i6) limit(f(z),z,0);
(%o6) 2.860335195530726

Here infinity is a fixed point

define(f(z), (z^3+ 2*z + 3)/(z - 1));
n : hipow(num(f(z)),z);
m : hipow(denom(f(z)),z);
(%o3) f(z):=(z^3+2*z+3)/(z-1)
(%i4)
(%o4) 3
(%i5)
(%o5) 1
(%i6) limit(f(z),z,infinity);
(%o6) infinity

## Basins = Fatou domains

• Each of the Fatou domains ( basin of attraction) contains at least one critical point of ${\displaystyle f(z)}$
• each attracting, superattracting and parabolic cycle attracts a critical point
• there is only a finite number of Fatou domains :
• rational function of degree d cannot have more than 2(d—1) cycles of stable regions[6]
• "the basins of attractions of distinct periodic cycles are disjoint. As a rational map of degree d has at most 2d−2 critical points, the number of attracting and parabolic cycles of f is bounded by 2d − 2" [7]
• A Fatou domain can contain several critical points
• Each domain of the Fatou set of a rational map can be classified into one of four different classes.[8]
• number of componnets

# Basin data

• function ( input)
• period of attracting cycle
• one critical point which falls into the attracting cycle and is in the same component as the attracting point ( see below)
• attractor = one point from the attracting cycle, which is in the same component as above critical point
• multiplier of the attracting cycle

If one have above data for each basin then it is possible to make image of dynamic plane

# Images

• critical orbits ( forward orbit of critical points)
• periodic points ( mostly attracting cycles )
• basins of attraction

# Programs

## Maxima CAS code

Steps

• computes first derivative d(z) using symbolic methods
• computes ( only finite) critical points, as a roots of equation d(z) = 0 using symbolic methods
• computes forward orbit of critical points and make imeges
• visual inspection of images gives approximated period of the attractor
kill(all);
remvalue(all);
display2d:false;

/* map */

define(f(z), (z^2)/(z^9 -z + 0.025));

/* first derivativa wrt z */
define( d(z), diff(f(z),z,1));

GiveOrbit(z0,iMax):=
/*
computes (without escape test)
(forward orbit of critical point )
and saves it to the list for draw package */
block(
[z,orbit,temp],
z:z0, /* first point = critical point z:0+0*%i */
orbit:[[realpart(z),imagpart(z)]],
for i:1 thru iMax step 1 do
( z:f(z),
z:float(z),
z:rectform(z),
z:float(z),
if (cabs(z)>3) then break,
/*if (cabs(z)< 0.00001) then break, */
orbit:endcons([realpart(z),imagpart(z)],orbit)),

return(orbit)
)$GiveAttractor(z0,iMax):= /* computes (without escape test) (forward orbit of critical point ) and saves it to the list for draw package */ block( [z,orbit,temp], z:z0, /* first point = critical point z:0+0*%i */ orbit:[], for i:1 thru iMax step 1 do ( z:f(z), z:float(z), z:rectform(z), z:float(z) ), for i:1 thru 10 step 1 do ( z:f(z), z:float(z), z:rectform(z), z:float(z), if (cabs(z)>3) then break, /*if (cabs(z)< 0.00001) then break, */ orbit:endcons([realpart(z),imagpart(z)],orbit)), return(orbit) )$

GiveScene(attractor):=
gr2d(title= "Possible cycle",
user_preamble = "set nokey;set size square;set noxtics ;set noytics;",

point_type    = filled_circle,
points_joined = false,
point_size    = 0.7,
/* */
color		  =red,
points(attractor)
)$/* critical points [-0.8366600265340756*%i,0.8366600265340756*%i] */ s:solve(d(z)=0)$
s : map(rhs,s)$s : map('float,s)$
s : map('rectform,s)$s2 : allroots(s[2])$
s2 : map(rhs,s2)$s2 : map('float,s2)$
s2 : map('rectform,s2)$s : cons(s[1], s2); MyOrbits:[]; for z in s do ( print(i,z), orbit : GiveOrbit(z,30), MyOrbits:endcons([discrete,orbit], MyOrbits) )$

MyAttractors:[];
for z in s do (

attractor : GiveAttractor(z,300),
attractor : GiveScene(attractor),
MyAttractors:endcons(attractor, MyAttractors)

)$load(draw); path:""$ /*  pwd, if empty then file is in a home dir , path should end with "/" */
fileName: sconcat(path,  "cycles")\$
draw(
terminal = png,
file_name = fileName,
columns= 4,
MyAttractors
);

# Difference between polynomial and rational maps

Infinity

• for polynomials infinity is superattracting fixed point. So in the exterior of Julia set (basin of attraction of infinity) the dynamics is the same for all polynomials. Escaping test ( = bailout test) can be used as a first universal tool.
• for rational maps infinity is not a superattrating fixed point. It may be periodic point or not.

Critical points

• The theorem of Lucas states that the critical points of a polynomial in the complex plane lie within or on the convex hull of the zeros.[9]
• The critical points of B(Z) in the interior of the disc lie within or on the (non-Euclidean) convex hull of the zeroes of B(Z), with respect to the Poincar´e metric.

Visualisation

• "In order to graphically study these sets which, as we shall see are four dimensional, we employ a range of techniques for visualizing high dimensional objects more commonly reserved for studying 3D volumes arising from MRI or CT scans, techniques known as volume visualization." [10]

# Problems

• overflows caused by denominators close to zero. Solution : "The use of normalized homogeneous coordinates avoids overflow and underflow errors " Luis Javier Hernández Paricio.
• "the representation of a rational function by a pair of homogeneous polynomials of two variables and with the same degree allows us to compute the numerical value of the function at any pole point and at the point at infinity" Luis Javier Hernández Paricio.