Ask Your Question

Sagemath refuses to load singular curve

asked 2019-12-09 23:20:09 +0200

klx gravatar image

updated 2019-12-10 08:29:34 +0200

I know that this below Elliptic curve is singular at $(23796,0)$

F = GF(23981)
E = EllipticCurve(F,[0, 0, 0, 17230, 22699])


$\frac{\partial f}{\partial x} = 3x^2 + 17230 =0 \pmod p$ and vanishes at $x={185,23796}$ and $(185,0)$ not on the curve.

$\frac{\partial f}{\partial y} = -2y = 0 \pmod p$ and vanishes at $y=0$

I'm trying to define this curve to plot but SageMath gives the error;

ArithmeticError: invariants (0, 0, 0, 17230, 22699) define a singular curve

How can I plot this curve?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2019-12-10 16:54:37 +0200

nbruin gravatar image

You can define the curve easily; just not as an elliptic curve, because being nonsingular is part of their definition.

sage: F = GF(23981)
sage: A.<x,y>=F[]
sage: C=Curve(y^2-(x^3+17230*x+22699))

Plotting a curve over a finite field will be difficult and probably uninsightful.

edit flag offensive delete link more


When I try to plot, I've the following error NotImplementedError: plotting of curves over Finite Field of size 23981 is not implemented yet

klx gravatar imageklx ( 2019-12-11 20:41:15 +0200 )edit

What picture do you expect? What do you think you'll be able to tell from the picture?

nbruin gravatar imagenbruin ( 2019-12-12 01:40:53 +0200 )edit

The shape of the singular point. Cusp or node. Of course, when drawing over the finite field, we got only point. Should I look at the curve over Q?

klx gravatar imageklx ( 2019-12-12 14:43:12 +0200 )edit

F['x'](x^3+17230*x+22699).factor() gives (x + 23611) * (x + 185)^2. it's a node. The "picture" that you're used to over the reals doesn't apply over other fields (well ... for subfields over the reals it still helps a bit). We only use the same terminology over other fields because we have algebraic characterizations of the different types of singularities.

In this case, using the tangent cone is probably the easiest: move the singularity to the origin:

sage: f=y^2-(x^3+17230*x+22699)
sage: f(x-185,y)
-x^3 + 555*x^2 + y^2

You can see that the lowest degree non-zero homogeneous part is 555*x^2+y^2. Its degree is larger than 1, so no single tangent line: singular point. The form you do get does not have repeated roots, so the singularity is a node (of degree 2).

nbruin gravatar imagenbruin ( 2019-12-12 18:29:30 +0200 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2019-12-09 21:20:27 +0200

Seen: 1,661 times

Last updated: Dec 10 '19