Points on affine varieties

Scheme morphism for points on affine varieties

AUTHORS:

  • David Kohel, William Stein
  • Volker Braun (2011-08-08): Renamed classes, more documentation, misc cleanups.
  • Ben Hutz (2013)
class sage.schemes.affine.affine_point.SchemeMorphism_point_affine(X, v, check=True)

Bases: sage.schemes.generic.morphism.SchemeMorphism_point

A rational point on an affine scheme.

INPUT:

  • X – a subscheme of an ambient affine space over a ring \(R\).
  • v – a list/tuple/iterable of coordinates in \(R\).
  • check – boolean (optional, default:True). Whether to check the input for consistency.

EXAMPLES:

sage: A = AffineSpace(2, QQ)
sage: A(1,2)
(1, 2)
global_height(prec=None)

Returns the logarithmic height of the point.

INPUT:

  • prec – desired floating point precision (default: default RealField precision).

OUTPUT:

  • a real number

EXAMPLES:

sage: P.<x,y>=AffineSpace(QQ,2)
sage: Q=P(41,1/12)
sage: Q.global_height()
3.71357206670431
sage: P=AffineSpace(ZZ,4,'x')
sage: Q=P(3,17,-51,5)
sage: Q.global_height()
3.93182563272433
sage: R.<x>=PolynomialRing(QQ)
sage: k.<w>=NumberField(x^2+5)
sage: A=AffineSpace(k,2,'z')
sage: A([3,5*w+1]).global_height(prec=100)
2.4181409534757389986565376694

Todo

p-adic heights

add heights to integer.pyx and remove special case

homogenize(n)

Return the homogenization of self at the nth coordinate.

INPUT:

  • n – integer between 0 and dimension of self, inclusive.

OUTPUT:

  • A point in the projectivization of the codomain of self

EXAMPLES:

sage: A.<x,y> = AffineSpace(ZZ,2)
sage: Q = A(2,3)
sage: Q.homogenize(2).dehomogenize(2) == Q
True

::

sage: A.<x,y> = AffineSpace(QQ,2)
sage: Q = A(2,3)
sage: P = A(0,1)
sage: Q.homogenize(2).codomain() == P.homogenize(2).codomain()
True
nth_iterate(f, n)

Returns the point \(f^n(self)\)

INPUT:

  • f – a SchemeMorphism_polynomial with self if f.domain()
  • n – a positive integer.

OUTPUT:

  • a point in f.codomain()

EXAMPLES:

sage: A.<x,y>=AffineSpace(QQ,2)
sage: H=Hom(A,A)
sage: f=H([(x-2*y^2)/x,3*x*y])
sage: A(9,3).nth_iterate(f,3)
(-104975/13123, -9566667)
sage: A.<x,y>=AffineSpace(ZZ,2)
sage: X=A.subscheme([x-y^2])
sage: H=Hom(X,X)
sage: f=H([9*y^2,3*y])
sage: X(9,3).nth_iterate(f,4)
(59049, 243)
orbit(f, N)

Returns the orbit of self by \(f\). If \(n\) is an integer it returns \([self,f(self),\ldots,f^{n}(self)]\).

If \(n\) is a list or tuple \(n=[m,k]\) it returns \([f^{m}(self),\ldots,f^{k}(self)]\).

INPUT:

  • f – a SchemeMorphism_polynomial with self in f.domain()
  • n – a non-negative integer or list or tuple of two non-negative integers

OUTPUT:

  • a list of points in f.codomain()

EXAMPLES:

sage: A.<x,y>=AffineSpace(QQ,2)
sage: H=Hom(A,A)
sage: f=H([(x-2*y^2)/x,3*x*y])
sage: A(9,3).orbit(f,3)
[(9, 3), (-1, 81), (13123, -243), (-104975/13123, -9566667)]
sage: A.<x>=AffineSpace(QQ,1)
sage: H=Hom(A,A)
sage: f=H([(x-2)/x])
sage: A(1/2).orbit(f,[1,3])
[(-3), (5/3), (-1/5)]
sage: A.<x,y>=AffineSpace(ZZ,2)
sage: X=A.subscheme([x-y^2])
sage: H=Hom(X,X)
sage: f=H([9*y^2,3*y])
sage: X(9,3).orbit(f,(0,4))
[(9, 3), (81, 9), (729, 27), (6561, 81), (59049, 243)]
class sage.schemes.affine.affine_point.SchemeMorphism_point_affine_field(X, v, check=True)

Bases: sage.schemes.affine.affine_point.SchemeMorphism_point_affine

The Python constructor.

See SchemeMorphism_point_affine for details.

TESTS:

sage: from sage.schemes.affine.affine_point import SchemeMorphism_point_affine
sage: A3.<x,y,z> = AffineSpace(QQ, 3)
sage: SchemeMorphism_point_affine(A3(QQ), [1,2,3])
(1, 2, 3)
class sage.schemes.affine.affine_point.SchemeMorphism_point_affine_finite_field(X, v, check=True)

Bases: sage.schemes.affine.affine_point.SchemeMorphism_point_affine_field

The Python constructor.

See SchemeMorphism_point_affine for details.

TESTS:

sage: from sage.schemes.affine.affine_point import SchemeMorphism_point_affine
sage: A3.<x,y,z> = AffineSpace(QQ, 3)
sage: SchemeMorphism_point_affine(A3(QQ), [1,2,3])
(1, 2, 3)
orbit_structure(f)

Every point is preperiodic over a finite field. This function returns the pair \([m,n]\) where \(m\) is the preperiod and \(n\) is the period of the point self by f.

INPUT:

  • f – a ScemeMorphism_polynomial with self in f.domain()

OUTPUT:

  • a list \([m,n]\) of integers

EXAMPLES:

sage: P.<x,y,z> = AffineSpace(GF(5),3)
sage: H = Hom(P,P)
sage: f = H([x^2 + y^2,y^2,z^2 + y * z])
sage: P(1,1,1).orbit_structure(f)
[0, 6]
sage: P.<x,y,z> = AffineSpace(GF(7),3)
sage: X = P.subscheme(x^2 - y^2)
sage: H = Hom(X,X)
sage: f = H([x^2,y^2,z^2])
sage: X(1,1,2).orbit_structure(f)
[0, 2]
sage: P.<x,y> = AffineSpace(GF(13),2)
sage: H = Hom(P,P)
sage: f = H([x^2 - y^2,y^2])
sage: P(3,4).orbit_structure(f)
[2, 6]

Previous topic

Affine \(n\) space over a ring

Next topic

Morphisms on affine varieties

This Page