Function Repository Resource:

# PointsetDerivativeRoots

Get the roots of a derivative for applying the Lucas–Gauss theorem on a set of points

Contributed by: Ed Pegg Jr
 ResourceFunction["PointsetDerivativeRoots"][pts] applies the Lucas-Gauss derivative on a set of pts and finds the roots.

## Details

The Lucas–Gauss theorem states that the convex hull of the roots of any nonconstant complex polynomial contains the roots of its derivative.
With input {{r1,im1},{r2,im2},} and zi=ri+imi, the roots of derivative D[(z-z1)(z-z2),z] are returned as points.
Throughout this document, the roots of a derivative of a nonconstant complex polynomial generated by points are called "roots", out of convenience.

## Examples

### Basic Examples (2)

Find the roots of a set of points:

 In[1]:=
 Out[2]=

By Marden's theorem, the roots of triangle vertices are the foci of an ellipse tangent to midpoints of the triangle's edges:

 In[3]:=
 Out[3]=

Find the roots of a set of points:

 In[4]:=
 Out[5]=

By the Lucas–Gauss theorem, the convex hull of the roots is entirely contained by the convex hull of the original points:

 In[6]:=
 Out[7]=
 In[8]:=
 Out[8]=

### Scope (2)

The root of two points is the midpoint:

 In[9]:=
 Out[8]=

The root of three points is given by the foci of the ellipse tangent to the midpoints of the triangle:

 In[10]:=
 Out[11]=

This is equivalent to the Steiner circumellipse, scaled by a factor of 1/2:

 In[12]:=
 Out[13]=

### Possible Issues (1)

Much as in a convex hull, duplicating a point will not affect the result:

 In[14]:=
 Out[15]=

### Neat Examples (1)

Show eleven levels of the Lucas-Gauss theorem:

 In[16]:=
 Out[18]=

## Version History

• 1.0.0 – 08 March 2023