1
$\begingroup$

Suppose one wishes to test if a given algebraic surface f(x,y,z,w) = 0 in projective 3 space has singular points, that is df/dx = df/dy = df/dz = 0, and one also wishes to calculate these singular points explicitly. Is there a general algorithm for doing this, and does there exist an implementation of this algorithm in a modern programming language?

I have written my own script in MatLab which does find singular points, but it doesn't find all of them. It takes the naive approach and simply calculates the partial derivatives and attempts to solve for the system of partial derivative equations and f = 0. For a quintic polynomial which is known to have 31 singularities (the togliatti quintic), my algorithm only finds 20 singularities.

I've also looked into the programming language Magma, which has a function "SingularPoints(C) : Sch -> SetIndx" which claims to return "The singular points of the curve C which are defined over the base field of C." But beyond this, the documentation is a bit sparse, and doesn't say if this function works for curves of more than two real variables. Here's the link to the documentation:

http://magma.maths.usyd.edu.au/magma/handbook/text/1415#15982

I found the above documentation after looking at the following paper on arxiv, in the section on togliatti quintic equations:

https://arxiv.org/pdf/2206.05492 (page 109)

$\endgroup$
2
  • $\begingroup$ What do you mean by "calculating these singular points explicitly"? Roots of high-degree polynomials do not have nice algebraic expressions in general. $\endgroup$
    – lhf
    Commented Jul 29, 2023 at 1:03
  • $\begingroup$ I mean either solve for them analytically (or numerically) for polynomials of degree 4 or less, or compute them numerically for higher degree polynomials, if they exist at all. A special case that I am looking at is for degree 3 polynomials, so these will in general have degree 2 partial derivatives. $\endgroup$ Commented Jul 29, 2023 at 9:34

0

You must log in to answer this question.