Polynomial morphisms for products of projective spaces

This class builds on the projective space class and its point and morphism classes.

EXAMPLES:

sage: P1xP1.<x,y,u,v> = ProductProjectiveSpaces(QQ, [1, 1])
sage: H = End(P1xP1)
sage: H([x^2*u, y^2*v, x*v^2, y*u^2])
Scheme endomorphism of Product of projective spaces P^1 x P^1 over Rational Field
  Defn: Defined by sending (x : y , u : v) to
        (x^2*u : y^2*v , x*v^2 : y*u^2).
class sage.schemes.product_projective.morphism.ProductProjectiveSpaces_morphism_ring(parent, polys, check=True)

Bases: sage.schemes.generic.morphism.SchemeMorphism_polynomial

The class of morphisms on products of projective spaces.

The components are projective space morphisms.

EXAMPLES:

sage: T.<x,y,z,w,u> = ProductProjectiveSpaces([2, 1], QQ)
sage: H = T.Hom(T)
sage: H([x^2, y^2, z^2, w^2, u^2])
Scheme endomorphism of Product of projective spaces P^2 x P^1 over Rational Field
  Defn: Defined by sending (x : y : z , w : u) to
        (x^2 : y^2 : z^2 , w^2 : u^2).
as_dynamical_system()

Return this endomorphism as a DynamicalSystem_producte_projective.

OUTPUT:

  • DynamicalSystem_produce_projective

EXAMPLES:

sage: Z.<a,b,x,y,z> = ProductProjectiveSpaces([1 , 2], ZZ)
sage: H = End(Z)
sage: f = H([a^3, b^3, x^2, y^2, z^2])
sage: type(f.as_dynamical_system())
<class 'sage.dynamics.arithmetic_dynamics.product_projective_ds.DynamicalSystem_product_projective'>
is_morphism()

Returns True if this mapping is a morphism of products of projective spaces.

For each component space of the codomain of this mapping we consider the subscheme of the domain of this map generated by the corresponding coordinates of the map. This map is a morphism if and only if each of these subschemes has no points.

OUTPUT: Boolean.

EXAMPLES:

sage: Z.<a,b,x,y,z> = ProductProjectiveSpaces([1, 2], ZZ)
sage: H = End(Z)
sage: f = H([a^2, b^2, x*z-y*z, x^2-y^2, z^2])
sage: f.is_morphism()
False
sage: P.<x,y,z,u,v,w>=ProductProjectiveSpaces([2, 2], QQ)
sage: H = End(P)
sage: f = H([u, v, w, u^2, v^2, w^2])
sage: f.is_morphism()
True
sage: P.<x,y,z,w,u> = ProductProjectiveSpaces([2, 1], QQ)
sage: Q.<a,b,c,d,e> = ProductProjectiveSpaces([1, 2], QQ)
sage: H = Hom(P, Q)
sage: f = H([x^2, y^2, u^3, w^3, u^3])
sage: f.is_morphism()
False
nth_iterate(P, n, normalize=False)

Return the nth iterate of the point.

EXAMPLES:

sage: Z.<a,b,x,y,z> = ProductProjectiveSpaces([1, 2], QQ)
sage: H = End(Z)
sage: f = H([a^3, b^3 + a*b^2, x^2, y^2 - z^2, z*y])
sage: P = Z([1, 1, 1, 1, 1])
sage: f.nth_iterate(P, 3)
doctest:warning
...
(1/1872 : 1 , 1 : 1 : 0)
nth_iterate_map(n)

Return the nth iterate of this map.

EXAMPLES:

sage: Z.<a,b,x,y,z> = ProductProjectiveSpaces([1 , 2], QQ)
sage: H = End(Z)
sage: f = H([a^3, b^3, x^2, y^2, z^2])
sage: f.nth_iterate_map(3)
doctest:warning
...
Dynamical System of Product of projective spaces P^1 x P^2 over
Rational Field
  Defn: Defined by sending (a : b , x : y : z) to
        (a^27 : b^27 , x^8 : y^8 : z^8).
orbit(P, N, **kwds)

Return the orbit of this point.

EXAMPLES:

sage: Z.<a,b,x,y,z> = ProductProjectiveSpaces([1, 2], QQ)
sage: H = End(Z)
sage: f = H([a^3, b^3 + a*b^2, x^2, y^2 - z^2, z*y])
sage: P = Z([1, 1, 1, 1, 1])
sage: f.orbit(P, 3)
doctest:warning
...
[(1 : 1 , 1 : 1 : 1), (1/2 : 1 , 1 : 0 : 1), (1/12 : 1 , -1 : 1 : 0), (1/1872 : 1 , 1 : 1 : 0)]