Dynamical semigroups#
A dynamical semigroup is a finitely generated subsemigroup of the endomorphism ring of a subscheme of projective or affine space.
AUTHORS:
Dang Phan (August 6th, 2023): initial implementation
- class sage.dynamics.arithmetic_dynamics.dynamical_semigroup.DynamicalSemigroup(systems)[source]#
Bases:
Parent
A dynamical semigroup defined by a multiple dynamical systems on projective or affine space.
INPUT:
ds_data
– list or tuple of dynamical systems or objects that define dynamical systems
OUTPUT:
DynamicalSemigroup_affine
ifds_data
only contains dynamical systems over affine space; andDynamicalSemigroup_projective
otherwise.EXAMPLES:
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: DynamicalSemigroup(([x, y], [x^2, y^2])) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> DynamicalSemigroup(([x, y], [x**Integer(2), y**Integer(2)])) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSystem([x, y], P) sage: g = DynamicalSystem([x^2, y^2], P) sage: DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSystem([x, y], P) >>> g = DynamicalSystem([x**Integer(2), y**Integer(2)], P) >>> DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
sage: A.<x> = AffineSpace(QQ, 1) sage: f = DynamicalSystem_affine(x, A) sage: DynamicalSemigroup(f) Dynamical semigroup over Affine Space of dimension 1 over Rational Field defined by 1 dynamical system: Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (x)
>>> from sage.all import * >>> A = AffineSpace(QQ, Integer(1), names=('x',)); (x,) = A._first_ngens(1) >>> f = DynamicalSystem_affine(x, A) >>> DynamicalSemigroup(f) Dynamical semigroup over Affine Space of dimension 1 over Rational Field defined by 1 dynamical system: Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (x)
sage: A.<x> = AffineSpace(QQ, 1) sage: f = DynamicalSystem(x, A) sage: g = DynamicalSystem(x^2, A) sage: DynamicalSemigroup((f, g)) Dynamical semigroup over Affine Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (x) Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (x^2)
>>> from sage.all import * >>> A = AffineSpace(QQ, Integer(1), names=('x',)); (x,) = A._first_ngens(1) >>> f = DynamicalSystem(x, A) >>> g = DynamicalSystem(x**Integer(2), A) >>> DynamicalSemigroup((f, g)) Dynamical semigroup over Affine Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (x) Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (x^2)
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: X = P.subscheme(x - y) sage: f = DynamicalSystem_projective([x, y], X) sage: g = DynamicalSystem_projective([x^2, y^2], X) sage: DynamicalSemigroup_projective([f, g]) Dynamical semigroup over Closed subscheme of Projective Space of dimension 1 over Rational Field defined by: x - y defined by 2 dynamical systems: Dynamical System of Closed subscheme of Projective Space of dimension 1 over Rational Field defined by: x - y Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Closed subscheme of Projective Space of dimension 1 over Rational Field defined by: x - y Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> X = P.subscheme(x - y) >>> f = DynamicalSystem_projective([x, y], X) >>> g = DynamicalSystem_projective([x**Integer(2), y**Integer(2)], X) >>> DynamicalSemigroup_projective([f, g]) Dynamical semigroup over Closed subscheme of Projective Space of dimension 1 over Rational Field defined by: x - y defined by 2 dynamical systems: Dynamical System of Closed subscheme of Projective Space of dimension 1 over Rational Field defined by: x - y Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Closed subscheme of Projective Space of dimension 1 over Rational Field defined by: x - y Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
If a dynamical semigroup is built from dynamical systems with different base rings, all systems will be coerced to the largest base ring:
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: Q.<z,w> = ProjectiveSpace(RR, 1) sage: f = DynamicalSystem([x, y], P) sage: g = DynamicalSystem([z^2, w^2], Q) sage: DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Real Field with 53 bits of precision defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Real Field with 53 bits of precision Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Real Field with 53 bits of precision Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> Q = ProjectiveSpace(RR, Integer(1), names=('z', 'w',)); (z, w,) = Q._first_ngens(2) >>> f = DynamicalSystem([x, y], P) >>> g = DynamicalSystem([z**Integer(2), w**Integer(2)], Q) >>> DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Real Field with 53 bits of precision defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Real Field with 53 bits of precision Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Real Field with 53 bits of precision Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
sage: A.<x> = AffineSpace(QQ, 1) sage: B.<y> = AffineSpace(RR, 1) sage: f = DynamicalSystem(x, A) sage: g = DynamicalSystem(y^2, B) sage: DynamicalSemigroup((f, g)) Dynamical semigroup over Affine Space of dimension 1 over Real Field with 53 bits of precision defined by 2 dynamical systems: Dynamical System of Affine Space of dimension 1 over Real Field with 53 bits of precision Defn: Defined on coordinates by sending (x) to (x) Dynamical System of Affine Space of dimension 1 over Real Field with 53 bits of precision Defn: Defined on coordinates by sending (x) to (x^2)
>>> from sage.all import * >>> A = AffineSpace(QQ, Integer(1), names=('x',)); (x,) = A._first_ngens(1) >>> B = AffineSpace(RR, Integer(1), names=('y',)); (y,) = B._first_ngens(1) >>> f = DynamicalSystem(x, A) >>> g = DynamicalSystem(y**Integer(2), B) >>> DynamicalSemigroup((f, g)) Dynamical semigroup over Affine Space of dimension 1 over Real Field with 53 bits of precision defined by 2 dynamical systems: Dynamical System of Affine Space of dimension 1 over Real Field with 53 bits of precision Defn: Defined on coordinates by sending (x) to (x) Dynamical System of Affine Space of dimension 1 over Real Field with 53 bits of precision Defn: Defined on coordinates by sending (x) to (x^2)
If a dynamical semigroup is built from dynamical systems over number fields, a composite number field is created and all systems will be coerced to it. This composite number field contains all of the initial number fields:
sage: # needs sage.rings.number_field sage: R.<r> = QQ[] sage: K.<k> = NumberField(r^2 - 2) sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: Q.<x,y> = ProjectiveSpace(K, 1) sage: f = DynamicalSystem([x, y], P) sage: g = DynamicalSystem([z^2, w^2], Q) sage: DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Number Field in k with defining polynomial r^2 - 2 defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Number Field in k with defining polynomial r^2 - 2 Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Number Field in k with defining polynomial r^2 - 2 Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
>>> from sage.all import * >>> # needs sage.rings.number_field >>> R = QQ['r']; (r,) = R._first_ngens(1) >>> K = NumberField(r**Integer(2) - Integer(2), names=('k',)); (k,) = K._first_ngens(1) >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> Q = ProjectiveSpace(K, Integer(1), names=('x', 'y',)); (x, y,) = Q._first_ngens(2) >>> f = DynamicalSystem([x, y], P) >>> g = DynamicalSystem([z**Integer(2), w**Integer(2)], Q) >>> DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Number Field in k with defining polynomial r^2 - 2 defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Number Field in k with defining polynomial r^2 - 2 Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Number Field in k with defining polynomial r^2 - 2 Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
sage: # needs sage.rings.number_field sage: R.<r> = QQ[] sage: K.<k> = NumberField(r^2 - 2) sage: L.<l> = NumberField(r^2 - 3) sage: P.<x,y> = ProjectiveSpace(K, 1) sage: Q.<z,w> = ProjectiveSpace(L, 1) sage: f = DynamicalSystem([x, y], P) sage: g = DynamicalSystem([z^2, w^2], Q) sage: DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Number Field in kl with defining polynomial r^4 - 10*r^2 + 1 defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Number Field in kl with defining polynomial r^4 - 10*r^2 + 1 Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Number Field in kl with defining polynomial r^4 - 10*r^2 + 1 Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
>>> from sage.all import * >>> # needs sage.rings.number_field >>> R = QQ['r']; (r,) = R._first_ngens(1) >>> K = NumberField(r**Integer(2) - Integer(2), names=('k',)); (k,) = K._first_ngens(1) >>> L = NumberField(r**Integer(2) - Integer(3), names=('l',)); (l,) = L._first_ngens(1) >>> P = ProjectiveSpace(K, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> Q = ProjectiveSpace(L, Integer(1), names=('z', 'w',)); (z, w,) = Q._first_ngens(2) >>> f = DynamicalSystem([x, y], P) >>> g = DynamicalSystem([z**Integer(2), w**Integer(2)], Q) >>> DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Number Field in kl with defining polynomial r^4 - 10*r^2 + 1 defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Number Field in kl with defining polynomial r^4 - 10*r^2 + 1 Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Number Field in kl with defining polynomial r^4 - 10*r^2 + 1 Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
sage: # needs sage.rings.number_field sage: R.<r> = QQ[] sage: K.<k> = NumberField(r^2 - 2) sage: L.<l> = NumberField(r^2 - 3) sage: P.<x> = AffineSpace(K, 1) sage: Q.<y> = AffineSpace(L, 1) sage: f = DynamicalSystem(x, P) sage: g = DynamicalSystem(y^2, Q) sage: DynamicalSemigroup((f, g)) Dynamical semigroup over Affine Space of dimension 1 over Number Field in kl with defining polynomial r^4 - 10*r^2 + 1 defined by 2 dynamical systems: Dynamical System of Affine Space of dimension 1 over Number Field in kl with defining polynomial r^4 - 10*r^2 + 1 Defn: Defined on coordinates by sending (x) to (x) Dynamical System of Affine Space of dimension 1 over Number Field in kl with defining polynomial r^4 - 10*r^2 + 1 Defn: Defined on coordinates by sending (x) to (x^2)
>>> from sage.all import * >>> # needs sage.rings.number_field >>> R = QQ['r']; (r,) = R._first_ngens(1) >>> K = NumberField(r**Integer(2) - Integer(2), names=('k',)); (k,) = K._first_ngens(1) >>> L = NumberField(r**Integer(2) - Integer(3), names=('l',)); (l,) = L._first_ngens(1) >>> P = AffineSpace(K, Integer(1), names=('x',)); (x,) = P._first_ngens(1) >>> Q = AffineSpace(L, Integer(1), names=('y',)); (y,) = Q._first_ngens(1) >>> f = DynamicalSystem(x, P) >>> g = DynamicalSystem(y**Integer(2), Q) >>> DynamicalSemigroup((f, g)) Dynamical semigroup over Affine Space of dimension 1 over Number Field in kl with defining polynomial r^4 - 10*r^2 + 1 defined by 2 dynamical systems: Dynamical System of Affine Space of dimension 1 over Number Field in kl with defining polynomial r^4 - 10*r^2 + 1 Defn: Defined on coordinates by sending (x) to (x) Dynamical System of Affine Space of dimension 1 over Number Field in kl with defining polynomial r^4 - 10*r^2 + 1 Defn: Defined on coordinates by sending (x) to (x^2)
A dynamical semigroup may contain dynamical systems over function fields:
sage: R.<r> = QQ[] sage: P.<x,y> = ProjectiveSpace(R, 1) sage: f = DynamicalSystem([r * x, y], P) sage: g = DynamicalSystem([x, r * y], P) sage: DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field Defn: Defined on coordinates by sending (x : y) to (r*x : y) Dynamical System of Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : r*y)
>>> from sage.all import * >>> R = QQ['r']; (r,) = R._first_ngens(1) >>> P = ProjectiveSpace(R, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSystem([r * x, y], P) >>> g = DynamicalSystem([x, r * y], P) >>> DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field Defn: Defined on coordinates by sending (x : y) to (r*x : y) Dynamical System of Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : r*y)
sage: R.<r> = QQ[] sage: P.<x,y> = ProjectiveSpace(R, 1) sage: f = DynamicalSystem([r * x, y], P) sage: g = DynamicalSystem([x, y], P) sage: DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field Defn: Defined on coordinates by sending (x : y) to (r*x : y) Dynamical System of Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : y)
>>> from sage.all import * >>> R = QQ['r']; (r,) = R._first_ngens(1) >>> P = ProjectiveSpace(R, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSystem([r * x, y], P) >>> g = DynamicalSystem([x, y], P) >>> DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field Defn: Defined on coordinates by sending (x : y) to (r*x : y) Dynamical System of Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : y)
sage: R.<r,s> = QQ[] sage: P.<x,y> = ProjectiveSpace(R, 1) sage: f = DynamicalSystem([r * x, y], P) sage: g = DynamicalSystem([s * x, y], P) sage: DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Multivariate Polynomial Ring in r, s over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Multivariate Polynomial Ring in r, s over Rational Field Defn: Defined on coordinates by sending (x : y) to (r*x : y) Dynamical System of Projective Space of dimension 1 over Multivariate Polynomial Ring in r, s over Rational Field Defn: Defined on coordinates by sending (x : y) to (s*x : y)
>>> from sage.all import * >>> R = QQ['r, s']; (r, s,) = R._first_ngens(2) >>> P = ProjectiveSpace(R, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSystem([r * x, y], P) >>> g = DynamicalSystem([s * x, y], P) >>> DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Multivariate Polynomial Ring in r, s over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Multivariate Polynomial Ring in r, s over Rational Field Defn: Defined on coordinates by sending (x : y) to (r*x : y) Dynamical System of Projective Space of dimension 1 over Multivariate Polynomial Ring in r, s over Rational Field Defn: Defined on coordinates by sending (x : y) to (s*x : y)
sage: R.<r,s> = QQ[] sage: P.<x,y> = ProjectiveSpace(R, 1) sage: f = DynamicalSystem([r * x, s * y], P) sage: g = DynamicalSystem([s * x, r * y], P) sage: DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Multivariate Polynomial Ring in r, s over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Multivariate Polynomial Ring in r, s over Rational Field Defn: Defined on coordinates by sending (x : y) to (r*x : s*y) Dynamical System of Projective Space of dimension 1 over Multivariate Polynomial Ring in r, s over Rational Field Defn: Defined on coordinates by sending (x : y) to (s*x : r*y)
>>> from sage.all import * >>> R = QQ['r, s']; (r, s,) = R._first_ngens(2) >>> P = ProjectiveSpace(R, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSystem([r * x, s * y], P) >>> g = DynamicalSystem([s * x, r * y], P) >>> DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Multivariate Polynomial Ring in r, s over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Multivariate Polynomial Ring in r, s over Rational Field Defn: Defined on coordinates by sending (x : y) to (r*x : s*y) Dynamical System of Projective Space of dimension 1 over Multivariate Polynomial Ring in r, s over Rational Field Defn: Defined on coordinates by sending (x : y) to (s*x : r*y)
A dynamical semigroup may contain dynamical systems over finite fields:
sage: F = FiniteField(5) sage: P.<x,y> = ProjectiveSpace(F, 1) sage: DynamicalSemigroup(([x, y], [x^2, y^2])) Dynamical semigroup over Projective Space of dimension 1 over Finite Field of size 5 defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Finite Field of size 5 Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Finite Field of size 5 Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
>>> from sage.all import * >>> F = FiniteField(Integer(5)) >>> P = ProjectiveSpace(F, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> DynamicalSemigroup(([x, y], [x**Integer(2), y**Integer(2)])) Dynamical semigroup over Projective Space of dimension 1 over Finite Field of size 5 defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Finite Field of size 5 Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Finite Field of size 5 Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
If a dynamical semigroup is built from dynamical systems over both projective and affine spaces, all systems will be homogenized to dynamical systems over projective space:
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: A.<z> = AffineSpace(QQ, 1) sage: f = DynamicalSystem([x, y], P) sage: g = DynamicalSystem(z^2, A) sage: DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> A = AffineSpace(QQ, Integer(1), names=('z',)); (z,) = A._first_ngens(1) >>> f = DynamicalSystem([x, y], P) >>> g = DynamicalSystem(z**Integer(2), A) >>> DynamicalSemigroup((f, g)) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
- base_ring()[source]#
The base ring of this dynamical semigroup. This is identical to the base ring of all of its defining dynamical system.
OUTPUT: A ring.
EXAMPLES:
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSemigroup(([x, y], [x^2, y^2])) sage: f.base_ring() Rational Field
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSemigroup(([x, y], [x**Integer(2), y**Integer(2)])) >>> f.base_ring() Rational Field
- change_ring(new_ring)[source]#
Return a new
DynamicalSemigroup
whose generators are the initial dynamical systems coerced tonew_ring
.INPUT:
new_ring
– a ring.
OUTPUT:
A
DynamicalSemigroup
defined by this dynamical semigroup’s generators, but coerced tonew_ring
.EXAMPLES:
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSemigroup(([x, y], [x^2, y^2])) sage: f.change_ring(RR) Dynamical semigroup over Projective Space of dimension 1 over Real Field with 53 bits of precision defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Real Field with 53 bits of precision Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Real Field with 53 bits of precision Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSemigroup(([x, y], [x**Integer(2), y**Integer(2)])) >>> f.change_ring(RR) Dynamical semigroup over Projective Space of dimension 1 over Real Field with 53 bits of precision defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Real Field with 53 bits of precision Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Real Field with 53 bits of precision Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
- codomain()[source]#
Return the codomain of the generators of this dynamical semigroup.
OUTPUT: A subscheme of a projective space or affine space.
EXAMPLES:
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSemigroup(([x, y], [x^2, y^2])) sage: f.codomain() Projective Space of dimension 1 over Rational Field
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSemigroup(([x, y], [x**Integer(2), y**Integer(2)])) >>> f.codomain() Projective Space of dimension 1 over Rational Field
- defining_polynomials()[source]#
Return the set of polynomials that define the generators of this dynamical semigroup.
OUTPUT: A set of polynomials.
EXAMPLES:
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSemigroup(([x, y], [x^2, y^2])) sage: f.defining_polynomials() {(x, y), (x^2, y^2)}
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSemigroup(([x, y], [x**Integer(2), y**Integer(2)])) >>> f.defining_polynomials() {(x, y), (x^2, y^2)}
- defining_systems()[source]#
Return the generators of this dynamical semigroup.
OUTPUT: A tuple of dynamical systems.
EXAMPLES:
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSemigroup(([x, y], [x^2, y^2])) sage: f.defining_systems() (Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : y), Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2))
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSemigroup(([x, y], [x**Integer(2), y**Integer(2)])) >>> f.defining_systems() (Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : y), Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2))
- domain()[source]#
Return the domain of the generators of this dynamical semigroup.
OUTPUT: A subscheme of a projective space or affine space.
EXAMPLES:
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSemigroup(([x, y], [x^2, y^2])) sage: f.domain() Projective Space of dimension 1 over Rational Field
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSemigroup(([x, y], [x**Integer(2), y**Integer(2)])) >>> f.domain() Projective Space of dimension 1 over Rational Field
- nth_iterate(p, n)[source]#
Return a set of values that results from evaluating this dynamical semigroup on the value
p
a total ofn
times.INPUT:
p
– a value on which dynamical systems can evaluaten
– a nonnegative integer
OUTPUT: a set of values
EXAMPLES:
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSemigroup(([x^2, y^2],)) sage: f.nth_iterate(2, 0) {(2 : 1)}
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSemigroup(([x**Integer(2), y**Integer(2)],)) >>> f.nth_iterate(Integer(2), Integer(0)) {(2 : 1)}
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSemigroup(([x^2, y^2],)) sage: f.nth_iterate(2, 1) {(4 : 1)}
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSemigroup(([x**Integer(2), y**Integer(2)],)) >>> f.nth_iterate(Integer(2), Integer(1)) {(4 : 1)}
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSemigroup(([x^2, y^2],)) sage: f.nth_iterate(2, 2) {(16 : 1)}
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSemigroup(([x**Integer(2), y**Integer(2)],)) >>> f.nth_iterate(Integer(2), Integer(2)) {(16 : 1)}
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSemigroup(([x + y, x - y], [x^2, y^2])) sage: f.nth_iterate(2, 0) {(2 : 1)}
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSemigroup(([x + y, x - y], [x**Integer(2), y**Integer(2)])) >>> f.nth_iterate(Integer(2), Integer(0)) {(2 : 1)}
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSemigroup(([x + y, x - y], [x^2, y^2])) sage: f.nth_iterate(2, 1) {(3 : 1), (4 : 1)}
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSemigroup(([x + y, x - y], [x**Integer(2), y**Integer(2)])) >>> f.nth_iterate(Integer(2), Integer(1)) {(3 : 1), (4 : 1)}
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSemigroup(([x + y, x - y], [x^2, y^2])) sage: f.nth_iterate(2, 2) {(5/3 : 1), (2 : 1), (9 : 1), (16 : 1)}
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSemigroup(([x + y, x - y], [x**Integer(2), y**Integer(2)])) >>> f.nth_iterate(Integer(2), Integer(2)) {(5/3 : 1), (2 : 1), (9 : 1), (16 : 1)}
- orbit(p, n)[source]#
If
n
is an integer, return \((p, f(p), f^2(p), \dots, f^n(p))\). Ifn
is a list or tuple in interval notation \([a, b]\), return \((f^a(p), \dots, f^b(p))\).INPUT:
\(p\) – value on which this dynamical semigroup can be evaluated
\(n\) – a nonnegative integer or a list or tuple of length 2 describing an interval of the number line containing entirely nonnegative integers
OUTPUT: a tuple of sets of values on the domain of this dynamical semigroup.
EXAMPLES:
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: d = DynamicalSemigroup(([x, y], [x^2, y^2])) sage: d.orbit(2, 0) ({(2 : 1)},)
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> d = DynamicalSemigroup(([x, y], [x**Integer(2), y**Integer(2)])) >>> d.orbit(Integer(2), Integer(0)) ({(2 : 1)},)
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: d = DynamicalSemigroup(([x, y], [x^2, y^2])) sage: d.orbit(2, 1) ({(2 : 1)}, {(2 : 1), (4 : 1)})
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> d = DynamicalSemigroup(([x, y], [x**Integer(2), y**Integer(2)])) >>> d.orbit(Integer(2), Integer(1)) ({(2 : 1)}, {(2 : 1), (4 : 1)})
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: d = DynamicalSemigroup(([x, y], [x^2, y^2])) sage: d.orbit(2, 2) ({(2 : 1)}, {(2 : 1), (4 : 1)}, {(2 : 1), (4 : 1), (16 : 1)})
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> d = DynamicalSemigroup(([x, y], [x**Integer(2), y**Integer(2)])) >>> d.orbit(Integer(2), Integer(2)) ({(2 : 1)}, {(2 : 1), (4 : 1)}, {(2 : 1), (4 : 1), (16 : 1)})
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: d = DynamicalSemigroup(([x, y], [x^2, y^2])) sage: d.orbit(2, [1, 2]) ({(2 : 1), (4 : 1)}, {(2 : 1), (4 : 1), (16 : 1)})
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> d = DynamicalSemigroup(([x, y], [x**Integer(2), y**Integer(2)])) >>> d.orbit(Integer(2), [Integer(1), Integer(2)]) ({(2 : 1), (4 : 1)}, {(2 : 1), (4 : 1), (16 : 1)})
- specialization(assignments)[source]#
Returns the specialization of the generators of this dynamical semigroup.
INPUT:
\(assignments\) – argument for specialization of the generators of this dynamical semigroup.
OUTPUT: a dynamical semigroup with the specialization of the generators of this dynamical semigroup.
EXAMPLES:
sage: R.<r> = QQ[] sage: P.<x,y> = ProjectiveSpace(R, 1) sage: f = DynamicalSystem([r * x, y], P) sage: g = DynamicalSystem([x, r * y], P) sage: d = DynamicalSemigroup((f, g)) sage: d.specialization({r:2}) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (2*x : y) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : 2*y)
>>> from sage.all import * >>> R = QQ['r']; (r,) = R._first_ngens(1) >>> P = ProjectiveSpace(R, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSystem([r * x, y], P) >>> g = DynamicalSystem([x, r * y], P) >>> d = DynamicalSemigroup((f, g)) >>> d.specialization({r:Integer(2)}) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (2*x : y) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : 2*y)
sage: R.<r> = QQ[] sage: P.<x,y> = ProjectiveSpace(R, 1) sage: f = DynamicalSystem([r * x, y], P) sage: g = DynamicalSystem([x, y], P) sage: d = DynamicalSemigroup((f, g)) sage: d.specialization({r:2}) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (2*x : y) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : y)
>>> from sage.all import * >>> R = QQ['r']; (r,) = R._first_ngens(1) >>> P = ProjectiveSpace(R, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSystem([r * x, y], P) >>> g = DynamicalSystem([x, y], P) >>> d = DynamicalSemigroup((f, g)) >>> d.specialization({r:Integer(2)}) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (2*x : y) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : y)
sage: R.<r,s> = QQ[] sage: P.<x,y> = ProjectiveSpace(R, 1) sage: f = DynamicalSystem([r * x, y], P) sage: g = DynamicalSystem([s * x, y], P) sage: d = DynamicalSemigroup((f, g)) sage: d.specialization({r:2, s:3}) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (2*x : y) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (3*x : y)
>>> from sage.all import * >>> R = QQ['r, s']; (r, s,) = R._first_ngens(2) >>> P = ProjectiveSpace(R, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSystem([r * x, y], P) >>> g = DynamicalSystem([s * x, y], P) >>> d = DynamicalSemigroup((f, g)) >>> d.specialization({r:Integer(2), s:Integer(3)}) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (2*x : y) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (3*x : y)
sage: R.<r,s> = QQ[] sage: P.<x,y> = ProjectiveSpace(R, 1) sage: f = DynamicalSystem([r * x, s * y], P) sage: g = DynamicalSystem([s * x, r * y], P) sage: d = DynamicalSemigroup((f, g)) sage: d.specialization({s:3}) Dynamical semigroup over Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field Defn: Defined on coordinates by sending (x : y) to (r*x : 3*y) Dynamical System of Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field Defn: Defined on coordinates by sending (x : y) to (3*x : r*y)
>>> from sage.all import * >>> R = QQ['r, s']; (r, s,) = R._first_ngens(2) >>> P = ProjectiveSpace(R, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSystem([r * x, s * y], P) >>> g = DynamicalSystem([s * x, r * y], P) >>> d = DynamicalSemigroup((f, g)) >>> d.specialization({s:Integer(3)}) Dynamical semigroup over Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field Defn: Defined on coordinates by sending (x : y) to (r*x : 3*y) Dynamical System of Projective Space of dimension 1 over Univariate Polynomial Ring in r over Rational Field Defn: Defined on coordinates by sending (x : y) to (3*x : r*y)
- class sage.dynamics.arithmetic_dynamics.dynamical_semigroup.DynamicalSemigroup_affine(systems)[source]#
Bases:
DynamicalSemigroup
A dynamical semigroup defined by multiple dynamical systems on affine space.
INPUT:
ds_data
– list or tuple of dynamical systems or objects that define dynamical systems over affine space.
OUTPUT:
DynamicalSemigroup_affine
EXAMPLES:
sage: A.<x> = AffineSpace(QQ, 1) sage: f = DynamicalSystem(x, A) sage: g = DynamicalSystem(x^2, A) sage: DynamicalSemigroup_affine((f, g)) Dynamical semigroup over Affine Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (x) Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (x^2)
>>> from sage.all import * >>> A = AffineSpace(QQ, Integer(1), names=('x',)); (x,) = A._first_ngens(1) >>> f = DynamicalSystem(x, A) >>> g = DynamicalSystem(x**Integer(2), A) >>> DynamicalSemigroup_affine((f, g)) Dynamical semigroup over Affine Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (x) Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (x^2)
- homogenize(n)[source]#
Return a new
DynamicalSemigroup_projective
with the homogenization atn
of the generators of this dynamical semigroup.INPUT:
n
– a tuple of nonnegative integers. Ifn
is an integer, then the two values of the tuple are assumed to be the same
OUTPUT:
DynamicalSemigroup_projective
EXAMPLES:
sage: A.<x> = AffineSpace(QQ, 1) sage: f = DynamicalSystem(x + 1, A) sage: g = DynamicalSystem(x^2, A) sage: d = DynamicalSemigroup((f, g)) sage: d.homogenize(1) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x0 : x1) to (x0 + x1 : x1) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x0 : x1) to (x0^2 : x1^2)
>>> from sage.all import * >>> A = AffineSpace(QQ, Integer(1), names=('x',)); (x,) = A._first_ngens(1) >>> f = DynamicalSystem(x + Integer(1), A) >>> g = DynamicalSystem(x**Integer(2), A) >>> d = DynamicalSemigroup((f, g)) >>> d.homogenize(Integer(1)) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x0 : x1) to (x0 + x1 : x1) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x0 : x1) to (x0^2 : x1^2)
sage: A.<x> = AffineSpace(QQ, 1) sage: f = DynamicalSystem(x + 1, A) sage: g = DynamicalSystem(x^2, A) sage: d = DynamicalSemigroup((f, g)) sage: d.homogenize((1, 0)) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x0 : x1) to (x1 : x0 + x1) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x0 : x1) to (x1^2 : x0^2)
>>> from sage.all import * >>> A = AffineSpace(QQ, Integer(1), names=('x',)); (x,) = A._first_ngens(1) >>> f = DynamicalSystem(x + Integer(1), A) >>> g = DynamicalSystem(x**Integer(2), A) >>> d = DynamicalSemigroup((f, g)) >>> d.homogenize((Integer(1), Integer(0))) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x0 : x1) to (x1 : x0 + x1) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x0 : x1) to (x1^2 : x0^2)
- class sage.dynamics.arithmetic_dynamics.dynamical_semigroup.DynamicalSemigroup_affine_field(systems)[source]#
Bases:
DynamicalSemigroup_affine
- class sage.dynamics.arithmetic_dynamics.dynamical_semigroup.DynamicalSemigroup_affine_finite_field(systems)[source]#
- class sage.dynamics.arithmetic_dynamics.dynamical_semigroup.DynamicalSemigroup_projective(systems)[source]#
Bases:
DynamicalSemigroup
A dynamical semigroup defined by a multiple dynamical systems on projective space.
INPUT:
ds_data
– list or tuple of dynamical systems or objects that define dynamical systems over projective space.
OUTPUT:
DynamicalSemigroup_projective
EXAMPLES:
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: DynamicalSemigroup_projective(([x, y], [x^2, y^2])) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> DynamicalSemigroup_projective(([x, y], [x**Integer(2), y**Integer(2)])) Dynamical semigroup over Projective Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x : y) Dynamical System of Projective Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x : y) to (x^2 : y^2)
- dehomogenize(n)[source]#
Return a new
DynamicalSemigroup_projective
with the dehomogenization atn
of the generators of this dynamical semigroup.INPUT:
n
– a tuple of nonnegative integers. Ifn
is an integer, then the two values of the tuple are assumed to be the same
OUTPUT:
DynamicalSemigroup_affine
EXAMPLES:
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSystem([x, y], P) sage: g = DynamicalSystem([x^2, y^2], P) sage: d = DynamicalSemigroup((f, g)) sage: d.dehomogenize(0) Dynamical semigroup over Affine Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (y) to (y) Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (y) to (y^2)
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSystem([x, y], P) >>> g = DynamicalSystem([x**Integer(2), y**Integer(2)], P) >>> d = DynamicalSemigroup((f, g)) >>> d.dehomogenize(Integer(0)) Dynamical semigroup over Affine Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (y) to (y) Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (y) to (y^2)
sage: P.<x,y> = ProjectiveSpace(QQ, 1) sage: f = DynamicalSystem([x, y], P) sage: g = DynamicalSystem([x^2, y^2], P) sage: d = DynamicalSemigroup((f, g)) sage: d.dehomogenize(1) Dynamical semigroup over Affine Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (x) Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (x^2)
>>> from sage.all import * >>> P = ProjectiveSpace(QQ, Integer(1), names=('x', 'y',)); (x, y,) = P._first_ngens(2) >>> f = DynamicalSystem([x, y], P) >>> g = DynamicalSystem([x**Integer(2), y**Integer(2)], P) >>> d = DynamicalSemigroup((f, g)) >>> d.dehomogenize(Integer(1)) Dynamical semigroup over Affine Space of dimension 1 over Rational Field defined by 2 dynamical systems: Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (x) Dynamical System of Affine Space of dimension 1 over Rational Field Defn: Defined on coordinates by sending (x) to (x^2)
- class sage.dynamics.arithmetic_dynamics.dynamical_semigroup.DynamicalSemigroup_projective_field(systems)[source]#