Sage Basic Dynamics Functionality Computational Problems Other topics
Sage for Dynamical Systems Benjamin Hutz Department of Mathematics and Computer Science Saint Louis University
December 5, 2015 RTG Workshop: Arithmetic Dynamics
This work is supported by NSF grant DMS-1415294
Benjamin Hutz
Sage for Dynamical Systems
1 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
What is Sage? SageMath is a free open-source mathematics software system licensed under the GPL. It builds on top of many existing open-source packages: NumPy, SciPy, matplotlib, Sympy, Maxima, GAP, FLINT, R and many more. Access their combined power through a common, Python-based language or directly via interfaces or wrappers. Mission Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab. http://www.sagemath.org/ Benjamin Hutz
Sage for Dynamical Systems
Sage
2 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
How can you use Sage
Online https://cloud.sagemath.com Locally Download from http://www.sagemath.org/ Prebuilt binaries Install from source code
Benjamin Hutz
Sage for Dynamical Systems
Sage
3 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Dynamical Systems and Sage Sage-dynamics project 1
Started at ICERM in 2012
2
Sage-days 55 in 2013
3
NSF grant DMS-1415294, 2014-2017 (PI: Hutz)
4
Future Sage-days ?2017/2018?
Resources Project Page: http://wiki.sagemath.org/ dynamics/ArithmeticAndComplex Google group: sage-dynamics
Benjamin Hutz
Sage for Dynamical Systems
Sage
4 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Basic Functionality
1
Projective space, affine space, and subschemes (varieties)
2
Points and functions
3
Iteration
4
Heights and canonical heights
5
Periodic points, dynatomic polynomials
6
Critical points
Benjamin Hutz
Sage for Dynamical Systems
Basic Dynamics Functionality
5 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
sage: A. = AffineSpace(QQ,1) sage: H = End(A) sage: f = H([xˆ2-1]) sage: P=A(2) sage: f(P), f(f(P)), f(f(f(P))), f.nth_iterate(P,4) ((3), (8), (63), (3968)) sage: f.orbit(P,[0,3]) [(2), (3), (8), (63)] sage: f.nth_iterate_map(2) Scheme endomorphism of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (xˆ4 - 2*xˆ2)
Benjamin Hutz
Sage for Dynamical Systems
Basic Dynamics Functionality
6 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Basic Examples: Varieties sage: A. = AffineSpace(QQ,2) sage: X = A.subscheme([x-1, yˆ2-4]); sage: X.dimension() 0 sage: X.rational_points() [(1, -2), (1, 2)] sage: X.defining_ideal() 8 Ideal (x - 1, yˆ2 - 4) of Multivariate Polynomial Ring in x, y over Rational Field 9 sage: X.coordinate_ring() 10 Quotient of Multivariate Polynomial Ring in x, y over Rational Field by the ideal (x - 1, yˆ2 4) 1 2 3 4 5 6 7
Benjamin Hutz
Sage for Dynamical Systems
Basic Dynamics Functionality
7 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Height definitions Given a point P = (P0 : · · · : PN ) The (absolute) global height is defined as h(P) =
1 log(max(|Pi |)) [K : Q]
The local height (Green’s function) at a place v is defined as λv (P) = log(max(|Pi |v )) The canonical height with respect to a morphism f is defined as h(f n (P)) ˆ h(P) = lim . n→∞ deg(f )n Benjamin Hutz
Sage for Dynamical Systems
Basic Dynamics Functionality
8 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Basic Examples: Heights
1 2 3 4 5 6 7 8 9 10
sage: P. = ProjectiveSpace(QQ,1) sage: H = End(P) sage: f = H([4*xˆ2-3*yˆ2,4*yˆ2]) sage: Q = P(3,5) sage: Q.green_function(f,2, prec=100, N=20) -0.69314585848661813056646800473 sage: Q.global_height() 1.60943791243410 sage: Q.canonical_height(f,error_bound=0.001) 2.3030927691516823627114122790
Benjamin Hutz
Sage for Dynamical Systems
Basic Dynamics Functionality
9 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Basic Examples: Local Heights
sage: K. = QuadraticField(3) sage: P. = ProjectiveSpace(K,1) sage: H = Hom(P,P) sage: f = H([17*xˆ2+1/7*yˆ2,17*w*x*y]) sage: f.green_function(P([2,1]), K.ideal(7), N=7) 6 0.48647753726382832627633818586 7 sage: f.green_function(P([w,1]), K.ideal(17), error_bound=0.001) 8 -0.70691993106090157426711999977 1 2 3 4 5
Benjamin Hutz
Sage for Dynamical Systems
Basic Dynamics Functionality
10 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Definitions: Dynatomic Polynomial Let f ∈ K [z] be a single variable polynomial. Definition The n-th dynatomic polynomial for f is defined as Y Φ∗n (f ) = (f d (z) − z)µ(n/d) . d|n
Definition We can also define a generalized dynatomic polynomial for preperiodic points as Φ∗m,n (f ) =
Φ∗n (f m ) . Φ∗n (f m−1 )
More general definitions can be made using intersection theory. Benjamin Hutz
Sage for Dynamical Systems
Basic Dynamics Functionality
11 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Basic Examples: Dynatomic Polynomial 1 2 3 4 5 6
7 8 9 10
sage: R. = FunctionField(QQ) sage: P. = ProjectiveSpace(R,1) sage: H = End(P) sage: f = H([xˆ2+c*yˆ2,yˆ2]) sage: f.dynatomic_polynomial(3) xˆ6 + xˆ5*y + (3*c + 1)*xˆ4*yˆ2 + (2*c + 1)*xˆ3*yˆ3 + (3*cˆ2 + 3*c + 1)*xˆ2*yˆ4 + (cˆ2 + 2*c + 1)* x*yˆ5 + (cˆ3 + 2*cˆ2 + c + 1)*yˆ6 sage: f.dynatomic_polynomial(3).subs({x:0,y:1}) cˆ3 + 2*cˆ2 + c + 1 sage: f.nth_iterate(P(0),3) (cˆ4 + 2*cˆ3 + cˆ2 + c : 1)
Benjamin Hutz
Sage for Dynamical Systems
Basic Dynamics Functionality
12 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Basic Examples: Number Fields
1 2 3 4 5 6 7 8 9 10
sage: A. = AffineSpace(QQ,1) sage: H = End(A) sage: f = H([zˆ2+1]) sage: R = A.coordinate_ring() sage: K. = NumberField(f.dynatomic_polynomial(2) .polynomial(R.gen(0))) sage: A. = AffineSpace(K,1) sage: H = End(A) sage: f = H([zˆ2+1]) sage: f.orbit(A(w),3) [(w), (-w - 1), (w), (-w - 1)]
Benjamin Hutz
Sage for Dynamical Systems
Basic Dynamics Functionality
13 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Basic Examples: All Periodic Points
sage: P. = ProjectiveSpace(QQbar,1) sage: H = End(P) sage: f = H([xˆ2+yˆ2,yˆ2]) sage: f.periodic_points(2) 5 [(-0.500000000000000? - 1.322875655532296?*I : 1), 6 (-0.500000000000000? + 1.322875655532296?*I : 1)] 1 2 3 4
Benjamin Hutz
Sage for Dynamical Systems
Basic Dynamics Functionality
14 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Basic Examples: Critical Points
sage: P. = ProjectiveSpace(QQbar,1) sage: H = End(P) sage: f = H([xˆ2+yˆ2,yˆ2]) sage: f.critical_points() 5 [(0 : 1), (1 : 0)] 6 sage: f.critical_height(error_bound=0.001) 7 0.20367726136974000143661899538 1 2 3 4
Benjamin Hutz
Sage for Dynamical Systems
Basic Dynamics Functionality
15 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Basic Examples: Finite Fields
sage: P. = ProjectiveSpace(GF(13),1) sage: H = End(P) sage: f = H([xˆ2+yˆ2,yˆ2]) sage: f.cyclegraph() 5 Looped digraph on 14 vertices 6 sage: P([2,1]).orbit_structure(f) 7 [0, 4] 1 2 3 4
Benjamin Hutz
Sage for Dynamical Systems
Basic Dynamics Functionality
16 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
1
Rational preperiodic points 1
2 2
2
Determine if a morphism f : P1 → P1 is post-critically finite Construct a pcf map with specified portrait
Automorphism groups 1
4
Determine all of the rational preperiodic points for a morphism f : PN → PN . Determine if a given point is preperiodic for f .
Post-critically finite maps 1
3
Rational preperiodic points Post-critically finite maps Automorphism Groups
Construct a family of maps each of whose automorphism group contains the given finite group.
Other topics 1 2
Benjamin Hutz
Products of projective spaces and Wehler K3 surfaces Iteration of subvarieties
Sage for Dynamical Systems
Computational Problems
17 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
Definitions Theorem (Northcott) The set of rational preperiodic points for a morphism f : PN → PN is a set of bounded height. Conjecture (Morton-Silverman) Given a morphism f : PN → PN of degree d, defined over a number field of degree D, then there exists a constant C(d, D, N) such that # PrePer(f ) ≤ C(d, D, N).
Benjamin Hutz
Sage for Dynamical Systems
Computational Problems
18 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
A precise description of n Theorem (Morton-Silverman 1994, Zieve) Let f : P1 → P1 defined over Q with deg(f ) ≥ 2. Assume that f has good reduction at p with a rational periodic point P. Define n = minimal period of P. m = minimal period of P modulo p. r = the multiplicative order of (f m )0 (P) mod p Then n=m
or
n = mrpe
for some explicitly bounded integer e ≥ 0.
Benjamin Hutz
Sage for Dynamical Systems
Computational Problems
19 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
Algorithm for finding all rational preperiodic points [Hut15] 1
For each prime p in PrimeSet with good reduction find the list of possible global periods: 1 2
2
3
Intersect the lists of possible periods for all primes in PrimeSet. For each n in PossiblePeriods 1
4 5
Find all of the periodic cycles modulo p Compute m, mrpe for each cycle.
Find all rational solutions to f n (x) = x.
Let PrePeriodicPoints = PeriodicPoints. Repeat until PrePeriodicPoints is constant 1
Add the first rational preimage of each point in PrePeriodicPoints to PrePeriodicPoints.
Use Weil restriction of scalars for number fields (polynomials in dimension 1). Benjamin Hutz
Sage for Dynamical Systems
Computational Problems
20 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
Examples sage: P. = ProjectiveSpace(QQ,1) sage: H = End(P) sage: f = H([xˆ2-29/16*yˆ2,yˆ2]) 4 sage: f.rational_preperiodic_graph() 5 Looped digraph on 9 vertices 1 2 3
1 2 3 4 5 6 7
sage: R. = PolynomialRing(QQ) sage: K. = NumberField(tˆ3 + 16*tˆ2 - 10496*t + 94208) sage: PS. = ProjectiveSpace(K,1) sage: H = End(PS) sage: f = H([xˆ2-29/16*yˆ2,yˆ2]) #Hutz sage: len(f.rational_preperiodic_points()) #6s 21
Benjamin Hutz
Sage for Dynamical Systems
Computational Problems
21 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
Examples
3 4 5 6
sage: sage: sage: sage: sage: 13
K. = QuadraticField(33) PS. = ProjectiveSpace(K,1) H = End(PS) f = H([xˆ2-71/48*yˆ2,yˆ2]) #Stoll len(f.rational_preperiodic_points()) #1s
1 2 3 4 5
sage: sage: sage: sage: 44
P. = ProjectiveSpace(QQ,2) H = End(P) f = H([xˆ2 - 21/16*zˆ2,yˆ2-2*zˆ2,zˆ2]) len(f.rational_preperiodic_points()) #1.5s
1 2
Benjamin Hutz
Sage for Dynamical Systems
Computational Problems
22 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
Is a point preperiodic? Let f : PN → PN be a morphism of degree d. Theorem ˆ A point P is preperiodic for f if and only if h(P) = 0. Theorem There exists a constant C independent of a point P such that ˆ h(P) − h(P) ≤ C(f ). Theorem For all points P ˆ (P)) = d h(P). ˆ h(f Benjamin Hutz
Sage for Dynamical Systems
Computational Problems
23 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
Algorithm: is preperiodic()
1 2
ˆ If h(P) > C, then not preperiodic. Compute forward images 1 2
Benjamin Hutz
If we encounter a cycle, return preperiodic If the height becomes > C, return not preperiodic.
Sage for Dynamical Systems
Computational Problems
24 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
Example sage: sage: sage: 4 sage: 5 sage: 6 (1,3)
P. = ProjectiveSpace(QQ,2) H = End(P) f = H([xˆ2-29/16*zˆ2,yˆ2 - 21/16*zˆ2,zˆ2]) Q = P(1,-3,4) Q.is_preperiodic(f,return_period=True)
sage: sage: sage: sage: sage: sage: False
K. = QuadraticField(-2) P. = ProjectiveSpace(K,2) H = End(P) f = H([xˆ2-29/16*zˆ2,yˆ2 - 21/16*zˆ2,zˆ2]) Q = P(w,-3,4) Q.is_preperiodic(f)
1 2 3
1 2 3 4 5 6 7
Benjamin Hutz
Sage for Dynamical Systems
Computational Problems
25 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
Definitions Definition We say that P is a critical point for f if the jacobian of f does not have maximal rank at P. Definition We say that f is post-critically finite if all of the critical points are preperiodic. Definition The critical height of f is defined as X ˆ h(c). c∈crit Benjamin Hutz
Sage for Dynamical Systems
Computational Problems
26 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
Algorithm: is postcritically finite()
1
Compute the critical points of f over Q
2
Determine if each is preperiodic.
Benjamin Hutz
Sage for Dynamical Systems
Computational Problems
27 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
Example
1 2 3 4 5 6 7 8 9
sage: P. = ProjectiveSpace(QQ,1) sage: H = End(P) sage: f = H([xˆ2 + 12*yˆ2, 7*x*y]) sage: f.critical_points(R=QQbar) [(-3.464101615137755? : 1), (3.464101615137755? : 1 )] sage: f.is_postcritically_finite() False sage: f.critical_height(error_bound=0.001) 2.8717614996729500069637701410
Benjamin Hutz
Sage for Dynamical Systems
Computational Problems
28 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
` maps Example: Lattes
1 2 3 4 5 6 7 8 9 10
sage: P. = ProjectiveSpace(QQ,1) sage: E = EllipticCurve([0,0,0,0,2]);E Elliptic Curve defined by yˆ2 = xˆ3 + 2 over Rational Field sage: f = P.Lattes_map(E,2) sage: f.is_postcritically_finite() True sage: f.critical_point_portrait() Looped digraph on 10 vertices sage: f.critical_height(error_bound=0.001) 8.2900752025070323779826707582e-17
Benjamin Hutz
Sage for Dynamical Systems
Computational Problems
29 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
R. = PolynomialRing(QQ) A. = AffineSpace(R,1) H = End(A) f = H([zˆ2+c]) f.dynatomic_polynomial([2,2]).subs({z:0})
R. = QQ[] K. = NumberField(xˆ2+1) A. = AffineSpace(K,1) H = End(A) f = H([zˆ2+i]) f.orbit(A(0),4) (i), (i - 1), (-i), (i - 1)] Sage for Dynamical Systems
Computational Problems
30 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
Gleason Polynomial
1 2 3 4 5 6 7 8 9 10
sage: R. = PolynomialRing(QQ) sage: A. = AffineSpace(R,1) sage: H = End(A) sage: f = H([zˆ2+c]) sage: K. = NumberField(f.dynatomic_polynomial(3) .subs({z:0})) sage: A. = AffineSpace(K,1) sage: H = End(A) sage: f = H([zˆ2+w]) sage: f.orbit(A(0),3) [(0), (w), (wˆ2 + w), (0)]
Benjamin Hutz
Sage for Dynamical Systems
Computational Problems
31 / 48
Sage Basic Dynamics Functionality Computational Problems Other topics
Rational preperiodic points Post-critically finite maps Automorphism Groups
Dec 5, 2015 - Benjamin Hutz. Department of Mathematics and Computer Science ..... Given a morphism f : PN â PN of degree d, defined over a number field ...
are present, as it were, only under their code (program) aspect. In particular .... the two different response functions/programs - behaviourRight() ... Bradford MIT.
principled ways of finding the embedding dimension dE, the time delay Ï and the system dynamics ξ. Under Takens' ... The first step to forecast a chaotic time-series is to employ the history of the observations to reconstruct the state-space .... I
Connect more apps... Try one of the apps below to open or edit this item. pdf-1834\stochastic-dynamical-systems-concepts-numerical-methods-data-analysis.pdf.
Prentice-Hall Inc., Englewood Cliffs, New Jersey,. 1987. 10. Ju, J. W. On energy-based coupled elastoplastic damage theories: Constitutive modeling and computational aspects. International Journal of Solids and Structures, 25(7), 1989: 803-833. 11. L
Oct 13, 2004 - PSYM = {systems which admit a principal symbolic extension} (which ... analytic properties of the so called entropy structure, a sequence of ...
Abstract-This paper discusses three learning algorithms to train R.ecrirrenl, Neural Networks for identification of non-linear dynamical systems. We select ...
May 3, 2007 - integration of ordinary, random, and stochastic differential equations. One of ...... 1(yn), v2(yn) and the d à d matrices Bi(yn) are defined by the.
Page 3 of 86. A. Szatkowski - On geometric formulation of dynamical systems. Parts I and II.pdf. A. Szatkowski - On geometric formulation of dynamical systems.
Oct 13, 2004 - Denote this quantity by HDu(Î). Replacing f by fâ1, we obtain the stable Hausdorff dimension of Î to be the unique number δs = HDs(Î) such.
(in press), these authors reviewed the history of work on bimanual ... provide a fit to data may be quantitatively elegant, especially if, as has been true .... University, and Research Scientist Development Award K02-MH00977-O1A1 from the.
has a fixed point which is a global attractor, then the mixing is fast. The limit ..... coefficients homogeneous of degree d in its variables {xij}. ...... the 48th Annual IEEE Symposium on Foundations of Computer Science, FOCS '07, pages 205â214,.
of hidden constraints by analysing the description of the constitutive space of the system. Hidden. constraints .... a tangent vector to the space .... Parts I and II.pdf.
So, the analog de- signer must depart from the traditional linear design paradigm, ..... [4] B.P. Lathi, Modern Digital and Analog Communication Systems, Oxford.