Magma

MAGMA Computational Algebra System

Magma
 •  How to get it
 •  Download
 •  Online Demo
 
Resources
 •  Online Help
 •  Discovering Mathematics with Magma
 •  Citations
 •  How to cite Magma
 •  Links
 •  Contact us
 
[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Rational Curves and Conics

The general tools for constructing and analyzing curves are described in Chapter 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(coeffs) : [RngElt] -> CrvCon
    Ambient: Sch                        Default: 
This creates a conic curve with the given sequence of coefficients (which should have length 3 or 6). A sequence [a, b, c] designates the conic aX2 + bY2 + cZ2, while a sequence [a, b, c, d, e, f] designates the conic aX2 + bY2 + cZ2 + dXY + eYZ + fXZ.
Conic(M) : Mtrx -> CrvCon
    Ambient: Sch                        Default: 
This creates a conic curve associated to the given matrix M, which must be symmetric. Explicitly, the equation of the conic is [X, Y, Z]M[X, Y, Z]tr.
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.
IsConic(S) : Sch -> BoolElt, CrvCon
Returns true if and only if the scheme S is a nonsingular plane curve of degree 2, in which case it returns a curve (of type CrvCon) with the same defining polynomial as a second value.
RationalCurve(X,f) : Prj, RngMPolElt -> CrvRat
The rational curve in the projective plane X determined by the linear polynomial f.
IsRationalCurve(C) : Sch -> BoolElt, CrvRat
Returns true if and only if the scheme C is defined by a linear polynomial in some projective plane P2, and if so, returns a curve with the same defining polynomial in P2 of type CrvRat as the second return value.

Example CrvCon_ConicCreation (H111E1)

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);
CrvPln
> 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 the curve 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 (type CrvPln), which are themselves subtypes of general curves (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

These examples illustrate how to obtain standard models of a curve of genus zero, either as a conic or a parametrization by the projective line.


Example CrvCon_RationalCurveExample (H111E2)

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
We see that C is highly singular, and its desingularization has genus zero. At most 18 of 73 points are singular. Note that a nonsingular curve of genus zero would have 72 points. So we now 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(C, Place(p), Curve(P1));
> 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 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 (H111E3)

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 (defined over the base field) is equivalent to the existence of a parametrization (defined over the base field) of the curve by the projective line.

> 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 (398469/162001 : -118246/162001 : 1)
> RationalPoint(C1);
(398469/162001 : -118246/162001 : 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(C1, Curve(P1));
> phi;
Mapping from: Prj: P1 to CrvCon: C1
with equations : 398469*u^2 + 944072*u*v + 559185*v^2
-118246*u^2 - 200850*u*v - 85289*v^2
162001*u^2 + 329499*u*v + 162991*v^2
and inverse
-4634102139*x + 30375658963*y + 31793350442*z
5456130497*x - 25641668406*y - 32136366969*z
and alternative inverse equations : 5456130497*x - 25641668406*y - 32136366969*z
-6424037904*x + 21645471041*y + 31600239062*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 now do a naive search for rational points on the curve.

> time RationalPoints(C1 : Bound := 100000);
{@ @}
Time: 2.420
Although there were no points with small coefficients, the parametrization provides us with any number of rational points.

> phi(P1![0,1]); 
(559185/162991 : -85289/162991 : 1)
> phi(P1![1,1]); 
(1901726/654491 : -404385/654491 : 1)
> phi(P1![1,0]);
(398469/162001 : -118246/162001 : 1)

Example CrvCon_ConicAccess (H111E4)

This example illustrates how to obtain diagonal equations for conics, and how to extend the base field.

> P2<x,y,z> := ProjectiveSpace(RationalField(),2);
> f := 1134*x^2 - 28523*x*y - 541003*x*z - 953*y^2 - 3347*y*z - 245*z^2;
> C := Conic(P2, f);
> LegendrePolynomial(C);
1134*x^2 - 927480838158*y^2 - 186042605936505203884941*z^2
> ReducedLegendrePolynomial(C);
817884337*x^2 - y^2 - 353839285266278*z^2
> P<t> := PolynomialRing(RationalField());
> K := NumberField(t^2 - t + 723);
> C := BaseExtend(C,K);

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

Version: V2.16 of Mon Nov 16 15:04:45 EST 2009

Valid HTML 4.01! Valid CSS!