### Navigation

- index
- modules |
- next |
- previous |
- Schemes »

# 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]

### Navigation

- index
- modules |
- next |
- previous |
- Schemes »