Fractals/Iterations in the complex plane/analysis

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

$$z_{n+1} = f(z_n)$$ $$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 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 "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."

If local dynamics near fixed point is to hard
 * move fixed point to zero
 * (to do)

=steps=
 * compute degree of the map
 * compute first derivative wrt the variable z : $$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:

$$ f(z)=\frac{p(z)}{q(z)}$$ $$d = deg(f) = max\{deg(p), deg(q)\} \ge 2$$

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 $$f(z)$$ is a:
 * finite point z satisfying $$f'(z) = 0$$
 * poles of f of order 2 or higher
 * point at infinity z = ∞
 * if the degree d of $$f(z)$$ is at least two
 * if $$f(z) = 1/g(z) + c$$ for some c and a rational function $$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

How to check if infinity is critical point ?
Evaluate function f

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

at point in infinity

There are 2 cases
 * $$f(\infty) = \infty$$ so infinity is a fixed point of f
 * $$f(\infty) \ne \infty$$ so infinity is not a fixed point of f

The degree of
 * of numerator $$p(z)$$ is $$n$$
 * of denominator $$q(z)$$ is $$m$$.

fixed point
The infinity is a fixed point of f

$$f(\infty) = \infty$$

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

$$n > m + 1$$ Example

$$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

$$f(\infty) \ne \infty$$ look at the function

$$w \mapsto f(1 / w)$$. The derivative is given by

$$-\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:
 * $$n = m = 1$$ then $$\infty$$ is not a critical point of $$f$$.
 * $$n = m > 1$$ then if
 * the numerator is of degree $$2 m - 2$$ and $$\infty$$ is not a critical point of $$f$$.
 * the numerator is of degree $$< 2 m - 2$$ then $$\infty$$ is a critical point of $$f$$.
 * $$n = m - 1$$ then $$\infty$$ is not a critical point of $$f$$.
 * $$n < m - 1$$ then $$\infty$$ is a critical point of $$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 $$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
 * "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"
 * 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.
 * 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

=Examples=
 * Rational maps
 * Invariants and Parameter Space Models for Rational Maps by Anastasia Shepelevtseva 2022

=Programs=
 * m-describe from mandelbrot-numerics library by Claude Heiland-Allen: gives description of point c from the parameter plane of complpex quadratic polynomial
 * Describe iterated map (C++) : determine numerically the cycles of a polynomial Julia set by marcm200
 * C program for analyzing and drawing dynamical systems based on the rational maps by Michael Becker, 8/2003

GRPF: Global complex Roots and Poles Finding algorithm

 * GRPF: Global complex Roots and Poles Finding algorithm
 * Matalb code by Piotr Kowalczyk
 * Julia code

visualisation

 * Mark McClure - JavaScript
 * Jux - Julia fractal explorer by xenodream - binary program without src
 * Mandel by Wolf Jung - c++ code
 * Xaos
 * | Wolfram Alfa : julia set f(z) = (z^2-0.2+0.7*I ) /(z^2 + 0.917)
 * RatioField by Gert Buschmann - pascal code
 * Luis Javier Hernández Paricio
 * Plotting basins of end points of rational maps with Sage by Luis Javier Hernandez Paricio, Miguel Maranon Grandes, Marıa Teresa Rivas Rodrıguez
 * Plotting Basins of a Univariate Rational map in Julia by Luis Javier HERNÁNDEZ PARICIO
 * Global Visualization of Basins of Univariate Rational Functions with Julia by Luis Javier Hernández Paricio
 * An implementation in Julia language for the iteration of rational functions on the Riemann sphere. Applications to numerical methods - Extremiana José Ignacio, José Manuel Gutiérrez, Luis Javier Hernández Paricio, María Teresa Rivas Rodriguez

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 images
 * 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.
 * 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."

=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.

=How can you read location from the image ? =
 * m-location-analysis ( parameter plane images) by Claude Heiland-Allen

=See also=
 * How to construct a map with desired properities ? ( inverse process)
 * Counting Hyperbolic Components by Jan Kiwi, Mary Rees. We give formulas for the numbers of type II and type IV hyperbolic components in the space of quadratic rational maps, for all fixed periods of attractive cycles.
 * Hyperbolic components of rational maps: Quantitative equidistribution and counting by Thomas Gauthier, Yûsuke Okuyama, Gabriel Vigny
 * On the classification of critically fixed rational maps by Kristin Cordwell, Selina Gilbertson, +2 authors Samantha Pinella Published 2013 Mathematics arXiv: Dynamical Systems, DOI:10.1090/S1088-4173-2015-00275-1Corpus ID: 51788955
 * On Rational Maps with Two Critical Points J. Milnor Published 2000 Mathematics, Computer Science Experimental Mathematics, DOI:10.1080/10586458.2000.10504657Corpus ID: 18618158
 * mathoverflow.net question: what-are-the-shapes-of-rational-functions?
 * Remarks on quadratic rational maps by John W. Milnor 1992
 * GLOBAL MAPPING PROPERTIES OF RATIONAL FUNCTIONS by Cristina Ballantine1 and Dorin Ghisa
 * analyzing polynomial functions

=References=
 * ON THE ZEROS AND CRITICAL POINTS OF A RATIONAL MAP by XAVIER BUFF
 * Iteration of rational functions (Talk Notes) by Erin Pearse
 * Symmetries for Julia sets of rational maps by Gustavo Rodrigues Ferreira
 * Remarks on Quadratic Rational Maps. by J. Milnor Stony Brook, August 1992
 * On Rational Maps with Two Critical Points by J. Milnor
 * Bounded Hyperbolic Components of Quadratic Rational Maps by Adam Lawrence Epstein September 1, 1997