Plots of roots of polynomials with integer coefficients

This page contains various plots of roots of polynomials. A list of files is at the end.

The files who names start with rootsD-H contain plots of all roots of all irreducible polynomials of degree at most D whose coefficients are integers between -H and H (the "height").

Here is a png of roots6-5, which uses colour to indicate the density of roots. Click on the image for a larger version. Click here for an interactive zoomable very high-resolution version.

Sam Derbyshire produced a spectacular plot of all roots of all degree 24 polynomials whose coefficents are all in {-1,1}. Here is a close-up of a small portion:

The full image is in polynomial_roots.png which is a 90MB file that you probably want to download rather than view within your browser. Here is a zoomable version that I created, which has higher resolution than Sam's, and a colour scheme that changes as you zoom in.

There are also interactive versions of some other images:
Degree 25, coefficients in {-1,1}
Degree 23, coefficients in {-1,1}
Degree 17, coefficients in {-1,1}
Degree 6, coefficients in {-5, -4, ..., 5}
Degree 6, coefficients in {-4, -3, ..., 4}

Greg Egan also has an interactive applet.

The rest of the images use a different colour scheme, with points coloured based on their degree. The radius of the dots also varies with the degree. The files with -col and -col2 in their names use a different colour scheme. I like -col2. So roots6-4-col2 is one of my favourites.

If you are able to view the postscript files, the detail present in them is amazing, because each root is stored separately with high precision. Here's a screenshot of my postscript viewer, which shows an inset zoom near i. The outer picture shows i near the top and exp(i pi/3) towards the right. The origin is cut-off at the bottom. Click on the image for a larger version.

The .ps and .epsi files are the same data in different formats. I use gv to view the files on screen, and it needs to be given the .ps format. On the other hand, my printer driver can only handle the .epsi format. That's why I've provided both. If anyone can tell me how to make my .ps files more conforming, that would be great! Most of these files are compressed using bzip2, which is indicated by the .bz2 suffix. gv will uncompress these files as it reads them.

When previewing on screen, be sure to turn antialiasing off, e.g. with

gv -noantialias -orientation=landscape -media=letter
Even with antialiasing off, the larger ones are slow to view and use hundreds of megabytes of ram. It takes gv about 1 minute to display roots6-4 on my system, but you can see the points fill in during this time which is interesting. Try roots5-4 first.

The roots6-4 files plot 13,553,584 roots. And yet (uncompressed) they are about 24M in size. How do I store the coordinates, colour and radius of each root in under two bytes? The main clever trick is to use the 8 fold symmetry of the plots. The reflection symmetry in the x and y axes is clear, but can you see the third symmetry?

See the readme file for some further explanation of the mathematics, and polynomial-roots.tar for the code I used.

And see for more about polynomial roots, and links to some references. The slides from a talk John gave contain proofs of various facts about the images. Scientific American also wrote an article about this topic.