Skip to content

Commit f16b6a2

Browse files
committed
rational
1 parent 61e4a28 commit f16b6a2

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

README.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
[![Build status](https://github.com/Anaconda-Platform/anaconda-project/workflows/Build%20and%20test/badge.svg)](https://github.com/Anaconda-Platform/anaconda-project/actions)
77

88

9-
# numerical periodicity detection
9+
# numerical periodicity detection of a polynomial Julia set
1010

11-
determine numerically the cycles of a polynomial Julia set
11+
determine numerically the cycles
1212

1313
# algorithm
1414

@@ -22,6 +22,18 @@ Then I construct the orbit of those using double precision (or sometimes float12
2222
## find periods
2323
At the end of the orbit computation, I check backwards whether the last iterate has already been visited before (squared Euclidean distance of two points below 10^-15) to get the cycle length.
2424

25+
# Rational maps
26+
27+
One can use the code for polynomial cycles to also detect attracting/parabolic ones numerically in the rational case by making some changes:
28+
* Load 2 polynomials f and g to denote the rational f/g.(routien "loadPolynom")
29+
* Find the zeros of g (poles) using the "findeNullstellen" .routine.
30+
* Construct symbolically the derivative as two polynomials (f'*g-g'*f) and (g*g) using "ableitenFA" for the polynomial derivative (I have a polynomial multiplication and addition routine here in case you haven't implemented those yourself)
31+
* Find the zeros of (f'*g-g'*f) again using "findeNullstellen" (critical points)
32+
* Construct numerically the orbits of all those values (critical points and poles) to get (attracting) cycles - this needs some work as it's best to implement this anew (from the routien "analysiereJulia"), implementing a check for inf/NaN as a numerical value. If needed,
33+
evaluating the symbolic derivative polynomials to get the multiplier (function Polynom::eval_arg_f)
34+
* Max iteration and epsilon might need to be adjusted as the complex division constitutes another layer of numerical instability.
35+
36+
2537

2638

2739
# use

0 commit comments

Comments
 (0)