[Next][Prev] [Right] [Left] [Up] [Index] [Root]
Subsections
In this section we discuss isomorphisms between heterogeneous types
-- isomorphisms between combinations of curves of type Crv,
CrvCon, and CrvRat, and their parametrizations by a
projective line.
The first function which we treat here is Conic, and is as
much a constructor as an isomorphism. It takes an arbitrary genus
zero curve C, and using the anti-canonical divisor -KC of
degree 2, constructs the Riemann-Roch space. For a genus zero
curve, this is a dimension 3 space of degree 2 functions, which
gives a projective embedding of C in P2 as a conic.
This provides the starting point to make any genus zero curve
amenable to the powerful machinery for point finding and isomorphism
classification of conics.
An isomorphism --- provided that one exists --- of the projective
line with a conic can be described as follows.
The 2-uple embedding φ: P1 -> P2 is defined
by (u:v) |-> (u2:uv:v2) gives an isomorphism of P1
with the conic C0 with defining equation y2 = xz. The
inverse isomorphism C0 -> P1 is defined by the
maps
matrix(
(x:y:z) |-> (x:y) on x ≠0, cr
(x:y:z) |-> (y:z) on z ≠0, )
respectively. Since these open sets cover the conic C0, this
defines an isomorphism, not just a birational map. In order to
describe an isomorphism of a conic C0 with P1, it is
then necessary and sufficient to give a change of variables which
maps C0 = φ(P1) onto the conic C1. This matrix is
called the parametrization matrix and is stored together
with a conic C1 once a rational point is found.
Given a curve of genus zero, returns a conic determined by the
anti-canonical embedding of C.
We demonstrate the function Conic on the curve of
Example H111E2 to find a conic model, even though we
know that it admits a rational parametrization.
> P2<x,y,z> := ProjectivePlane(FiniteField(71));
> C0 := Curve(P2,(x^3 + y^2*z)^2 - x^5*z);
> C1, m := Conic(C0);
> C1;
Conic over GF(71) defined by
x^2 + 70*x*z + y^2
> m : Minimal;
(x : y : z) -> (x^3*y*z : 70*x^5 + x^4*z + 70*x^2*y^2*z : x^3*y*z + y^3*z^2)
This function is an optimized routine for parametrizing a conic C defined
over Z or Q. It returns a 3 x 3 matrix M, which defines a
parametrization of C as a projective change of variables from the 2-uple
embedding of a projective line in the projective plane, i.e. for
a point (x0:y0:z0) on C, the point
(x1:y1:z1) = (x0:y0:z0) M
satisfies the equation y12 = x1z1. Note that as usual in Magma
the action of M is on the right, and consistently, the action of
scheme maps is also on the right.
In this example we demonstrate that the parametrization matrix
determines the precise change of variables to transform the conic
equation into the equation y2 = xz. We begin with a singular
plane curve C0 of genus zero and construct a nonsingular conic
model in the plane.
> P2<x,y,z> := ProjectiveSpace(Rationals(),2);
> C0 := Curve(P2,(x^3 + y^2*z)^2 - x^5*z);
> C1, m := Conic(C0);
> C1;
Conic over Rational Field defined by
x^2 - x*z + y^2
The curve C1 has obvious points, such as (1 : 0 : 1),
which Magma internally verifies, without having to make an
explicit user call to HasRationalPoint.
> ParametrizationMatrix(C1);
[1 0 1]
[0 1 0]
[0 0 1]
> Evaluate(DefiningPolynomial(C1),[x,y,x+z]);
-x*z + y^2
We note that as is standard in Magma the action of matrices, as with
maps of schemes, is a right action on coordinates (x : y : z).
Parametrization(C, P) : CrvCon, Crv -> MapSch
Parametrization(C, p) : Crv, Pt -> MapSch
Parametrization(C, p) : Crv, PlcCrvElt -> MapSch
Parametrization(C, p, P) : CrvCon, Pt, Crv -> MapSch
Parametrization(C, p, P) : CrvRat, Pt, Crv -> MapSch
Parametrization(C, p, P) : CrvCon, PlcCrvElt, Crv -> MapSch
Parametrization(C, p, P) : CrvRat, PlcCrvElt, Crv -> MapSch
ParametrizeOrdinaryCurve(C) : Crv -> MapSch
ParametrizeOrdinaryCurve(C, p) : Crv, Pt -> MapSch
ParametrizeOrdinaryCurve(C, p) : Crv, PlcCrvElt -> MapSch
ParametrizeOrdinaryCurve(C, p, I) : Crv, Pt, RngMPol -> MapSch
ParametrizeOrdinaryCurve(C, p, I) : Crv, PlcCrvElt, RngMPol -> MapSch
ParametrizeRationalNormalCurve(C) : Crv -> MapSch
These functions are as above (see Parametrization), but use different
algorithms.
When C is a plane curve with only ordinary singularities (see subsection
Ordinary Plane Curves), a slightly
different procedure is followed that relies less on the general function
field machinery and tends to be faster and can produce nicer
parametrizations. The variants ParametrizeOrdinaryCurve allow
direct calls to these more specialised procedures. The I argument
is the adjoint ideal of C (loc. cit.), which may be passed in
if already computed.
The final function listed is slightly different. It applies only to
rational normal curves, ie non-singular rational curves of degree d
in ordinary d-dimensional projective space for d ≥1. For the sake
of speed, the irreducibility of C is not checked. The function uses
adjoint maps to find either a line or conic parametrization of C:
if d is odd, an isomorphism from the projective line to C is returned,
and if d is even an isomorphism from a plane conic is returned. The
method uses no function field machinery and can be much faster than the
general function.
In this example we show how to parametrize a projective rational curve
with a map from the one-dimensional projective space. First we construct
a singular plane curve and verify that it has geometric genus zero.
> k := FiniteField(101);
> P2<x,y,z> := ProjectiveSpace(k,2);
> f := x^7 + 3*x^3*y^2*z^2 + 5*y^4*z^3;
> C := Curve(P2,f);
> Genus(C);
0
In order to parametrize the curve, we need to find a nonsingular point
on the curve C, or at least a point of C over which there exists a
unique degree one place --- geometrically such a point is one at which
C has a cusp. In order to find such a point we can call the intrinsic
RationalPoints(C) which, over a finite field, returns an indexed
set all points rational points of C over its base field.
Having done so in the background, we demonstrate that the particular
point (2 : 33 : 1) is such a nonsingular rational point.
> p := C![2,33,1];
> p;
(2 : 33 : 1)
> IsNonsingular(C,p);
true
The parametrization function takes a projective line as the third argument,
which will be used as the domain of the parametrization map.
> P1<u,v> := ProjectiveSpace(k,1);
> phi := Parametrization(C, Place(p), Curve(P1));
> phi;
Mapping from: Prj: P1 to Prj: P2
with equations : 2*u^7 + 5*u^6*v + 81*u^5*v^2 + 80*u^4*v^3 + 13*u^3*v^4
33*u^7 + 88*u^6*v + 90*u^5*v^2 + 73*u^4*v^3 + 25*u^3*v^4 +
83*u^2*v^5 + 72*u*v^6 + 24*v^7
u^7
Finally we confirm that the map really does parametrize the curve C.
Note that the map is normalized so that the point at infinity on the
projective line P1 maps to the prescribed point p.
> Image(phi);
Scheme over GF(101) defined by
x^7 + 3*x^3*y^2*z^2 + 5*y^4*z^3
> Image(phi) eq C;
false
> DefiningIdeal(Image(phi)) eq DefiningIdeal(C);
true
> phi(P1![1,0]);
(2 : 33 : 1)
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|