## Commutators & Galois

Suppose I had a machine that could quickly solve equations for me and plot the results. What would happen if I wiggled the inputs—how would the answers dance?

Boaz Katz uploaded a video showing Abel’s theorem—that quintic+ polynomials can’t be solved with radicals.†

The idea for this visualisation is apparently due to V I Arnol’d, from the 60’s

Here’s a code sketch in R:

`#there’s some bogus R nonsense about c() and list() coming...`

swirl <- list(start)

#twiddle the 6 inputs around

for (j in 1:326/8) {

```
swirl <- c( swirl, list( start + c(0,-8*twiddler(j)*j,0,8*twiddler(j)*j,0,0) ) ) }
#change the zeroes to twiddle the other coefficients
require(magrittr) #as if you didn't already!
require(animation)
#you can replace this with just the 'for' loop for testing
saveGIF({
for (swoop in swirl) {
#side by side
par(mfrow=c(1,2));
```

#organising the plots with aesthetic stuff on a second line; is that more readable?
plot( swoop, pch=19, main='coefficients',
xlim=c(-3,3), ylim=c(-3,3), col=rgb(0,0,0, 1-1:6/10) );
#polyroot finds the answers for you, and so is in some sense the “main part” of this script. If I feed polyroot(1,2,-3) it solves x² + 2x − 3 = 0.
polyroot( swoop ) %>% plot(pch=19, cex=2,
col=rainbow(5), main='solutions',
xlim=c(-3,2), ylim=c(-3,5) )
}}, interval=.03, movie.name='Abel-Ruffini.5.clown-balls.gif', ani.width=700, ani.height=300)

The mathematics lesson, I guess, is that:

- even though the braid you twirl with the coefficients is pretty simple (mostly just going around the outside),
- the braid on the right is more interesting.

In Katz’s video you can see the noncommutativity of the commutator: he swaps coefficients a↔b, then b↔a, but the answers (roots) have by then switched.

Anyway, with this code you can twiddle the coefficients of quintic or whatever degree polynomial you like, and get a feeling for the Abel-Ruffini theorem yourself. In making this graphic I played around to several others and hopefully the above code will run without modification, so you can feed 3 numbers into `polyroot(-, -, -)`

for a cubic, 7 numbers into

Here’s a few last code bits: `rcomp start`

for a quartic. Then `options(digits=1); (rcomp(4) -> coefficients); coefficients %>% polyroot`

is your basic pattern before plotting.

Have fun!

† They can be solved with elliptic functions, which I understood better after reading parts of (a) John Stillwell’s book and (b) Ash & Gross’ book