[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Rational Curves and Conics

The general tools for constructing and analyzing curves are described in Chapter PLANE ALGEBRAIC CURVES. We do not repeat them here, but rather give some examples to demonstrate those basics that the user will need in Section Rational Curve and Conic Examples. In Section Rational Curves and Conics we describe the main parametrization function for rational curves and functions which enable type change from a curve of genus zero to a rational curve.

Subsections

Rational Curve and Conic Creation

Rational curves and conics are the specialized types for nonsingular plane curves of genus zero, defined by polynomials of degree 1 and 2, respectively. The condition of nonsingularity is equivalent to that of absolute irreducibility for conics, and imposes no condition on a linear equation in the plane.

Conic(X,f) : Prj, RngMPolElt -> CrvCon
Construct the conic C defined by the polynomial f in the projective plane X. The parameters and most specialised algorithms for conics apply only to curves whose base ring is the integers or the rationals.
RationalCurve(X,f) : Prj, RngMPolElt -> CrvRat
The rational curve in the projective plane X determined by the linear polynomial f.
IsConic(C) : Sch -> BoolElt, CrvCon
Returns true if and only if C is a nonsingular plane curve of degree 2, in which case it returns a curve with the same defining polynomial of type CrvCon as a second value.
IsRationalCurve(C) : Sch -> BoolElt, CrvRat
Returns true if and only if the scheme C is defined by a linear polynomial in some projective plane P^2, and if so, returns a curve with the same defining polynomial in P^2 of type CrvRat as the second return value.

Example CrvCon_ConicCreation (H90E1)

In the following example we create a degree 2 curve over the rational field, the create a new curve of type conic using IsConic.

> P2<x,y,z> := ProjectivePlane(Rationals());
> C0 := Curve(P2,x^2 + 3*x*y + 2*y^2 - z^2);
> C0;
Curve over Rational Field defined by
x^2 + 3*x*y + 2*x^2 - z^2
> bool, C1 := IsConic(C0);
Clearly this is a nonsingular degree two curve, so bool must be true, and we have created a new curve C1 in the same ambient space P2, but of type conic.

> C1;
Conic over Rational Field defined by
x^2 + 3*x*y + 2*y^2 - z^2
> AmbientSpace(C0) eq AmbientSpace(C1);
true
> DefiningIdeal(C0) eq DefiningIdeal(C1);
true
> C0 eq C1;
false
> Type(C0);
Crv
> Type(C1);
CrvCon
The equality test fails here, because the two objects are of different Magma type.

Access Functions

The basic access functions for rational curves and conics are inherited from the general machinery for plane curves and hypersurface schemes.

BaseRing(C) : Crv -> Rng
BaseField(C) : Crv -> Rng

Returns the base ring of C.

Category(C) : Crv -> Cat
Type(C) : Crv -> Cat

Returns the category of rational curves CrvRat or of conics CrvCon; these are special subtypes of planes curves, which have type Crv.

DefiningPolynomial(C) : Crv -> RngMPolElt
Returns the defining polynomial of the conic or rational curve C.
DefiningIdeal(C) : Crv -> RngMPol
Returns the defining ideal of the conic or rational curve C.

Rational Curve and Conic Examples

We develop several examples which illustrate the creation of genus zero curves, reduction to standard models (conics and rational curves), and the facilities for finding points on these models, and finaling the corresponding trivialization by parametrizing the curve by a projective line.

Strictly speaking, in the previous example we have bypassed the datatypes of rational curves and conics, but the principal strategies of reducing a genus zero curve to one of standard form is demonstrated. In harder cases, over the rationals or a number field, we might not be able to find any rational point at all. In the next example, we construct another curve of genus zero over the rationals, without knowing a priori, that there exists any rational point.


Example CrvCon_RationalCurveExample (H90E2)

We begin with a example of a singular curve of geometric genus zero.

> P2<x,y,z> := ProjectivePlane(FiniteField(71));
> C := Curve(P2,(x^3 + y^2*z)^2 - x^5*z);
> C;
Curve over GF(71) defined by
x^6 + 70*x^5*z + 69*x^3*y^2*z + y^4*z^2
> ArithmeticGenus(C);
10
> Genus(C);
0
> #RationalPoints(C);
73
> Z := SingularSubscheme(C);
> Degree(Z);
18
This curve is highly singular, but is geometrically of genus zero and since at most 18 of 73 points are singular, there exists a nonsingular point which makes it birational to a projective line.

A curious note is that there are 73, not 72 points, as one would expect for a nonsingular curve of genus zero. So we will investigate the source of the extra points.

> cmps := IrreducibleComponents(Z);
> [ Degree(X) : X in cmps ];
[ 11, 7 ]
> [ Degree(ReducedSubscheme(X)) : X in cmps ];
[ 1, 1 ] 
> [ RationalPoints(X) : X in cmps ];
[
{@ (0 : 0 : 1) @},
{@ (0 : 1 : 0) @}
]
Since the only singular rational points on C are (0 : 0 : 1) and (0 : 1 : 0) the "obvious" point (1 : 0 : 1) must be nonsingular, and we can use it to obtain a rational parametrization of the curve, as explained in Section Isomorphisms.

> P1<u,v> := ProjectiveSpace(FiniteField(71),1);
> p := C![1,0,1]; 
> m := Parametrization(P1,C,p);
> S1 := {@ m(q) : q in RationalPoints(P1) @};
> #S1;
72
> [ q : q in RationalPoints(C) | q notin S1 ];
[ (0 : 1 : 0) ]
We conclude that the extra point comes from a singularity, whose resolution does not have any degree one places over it (see Section Divisors of Chapter PLANE ALGEBRAIC CURVES for background on places of curves). We can verify this explicitly.

> [ Degree(p) : p in Places(C![0,1,0]) ];
[ 2 ]

Example CrvCon_ConicCurve (H90E3)

In this example we start by defining a projective curve and we check that it is rational, that is, it has genus zero.

> P2<x,y,z> := ProjectiveSpace(Rationals(),2);
> C0 := Curve(P2,x^2 - 54321*x*y + y^2 - 97531*z^2);
> IsNonsingular(C0);
true
The curve C is defined as a degree 2 curve over the rationals. By making a preliminary type change to the type of conics, CrvCon, we can test whether there exists a rational point over Q, and use efficient algorithms of Section Finding Points for finding rational points on curves in conic form. The existence of a point is equivalent to the existence of a parametrization of the curve by the projective line. To make the parametrization both efficient and useful, it is crucial to have a point of small size, which is obtained by the reduction algorithms of Section Point Reduction

> bool, C1 := IsConic(C0);
> bool;
true
> C1;
Conic over Rational Field defined by
x^2 - 54321*x*y + y^2 - 97531*z^2
> HasRationalPoint(C1);
true
> RationalPoint(C1);
(-17847061/14971 : -306/14971 : 1)
The parametrization intrinsic requires a one-dimensional ambient space as one of the arguments. This space will be used as the domain of the parametrization map.

> P1<u,v> := ProjectiveSpace(Rationals(),1);
> phi := Parametrization(P1,C1);                            
> phi;
Mapping from: Prj: P1 to CrvCon: C1
with equations : -10811015/29243*u^2 - 7277832/29243*u*v - 1224835/29243*v^2
-57/29243*u^2 - 566/29243*u*v + 306/29243*v^2
u^2 - 34635/29243*u*v - 14971/29243*v^2
and inverse
19071896/8095011*x - 22178087549/2698337*y - 2920273202/8095011*z
x + 197669555470/8095011*y + 1125995395/2698337*z
and alternate inverse equations : 8095011/18525733*x + 11627620910/1089749*y + 3377986185/18525733*z
x - 587265145701/18525733*y + 5704198066/18525733*z
The defining functions for the parametrization may look large, but they are defined simply by a linear change of variables from the 2-uple embedding of the projective line in the projective plane. We demonstrate that the algorithm has found a nontrivial point and parametrization, by attempting to use the naive point sieve of Section Finding Points to find any small points.

> time RationalPoints(C1 : Bound := 100000);
{@ @}
Time: 13.540
Now, despite the lack of points with small coefficients, the parametrization lets us realize any number of rational points on the curve.

> phi(P1![0,1]); 
(1224835/14971 : -306/14971 : 1)
> phi(P1![1,1]); 
(19313682/20363 : 317/20363 : 1)
> phi(P1![1,0]);
(-10811015/29243 : -57/29243 : 1)


 [Next][Prev] [Right] [Left] [Up] [Index] [Root]