|
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
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 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.
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.
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.
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.
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.
The rational curve in the projective plane X determined by the
linear polynomial f.
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.
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.
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).
Returns the defining polynomial of the conic or rational curve C.
Returns the defining ideal of the conic or rational curve C.
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.
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 ]
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)
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]
|