19  Monodromy Lab

Partly under construction. For a richer demonstration of monodromy, see https://github.com/ophelia-adams/Monodromy.jl.

Monodromy is a special kind of homotopy, one which goes from a function to itself, so it requires you to already have a root. This might seem strange - after all, we want to find roots. However, it’s not unusual to know a few “obvious” roots, and the monodromy method sometimes lets you find the others with them.

For our purposes, monodromy means homotopies of the form \[H(x,t) = f(x) - \gamma(t)\] where \(\gamma(t)\) is a continuous function on \([0,1]\) such that \(\gamma(0) = \gamma(1)\), and one knows a root of \(f(x) - \gamma(0)\). More generally, if we have a family of functions depending on a parameter (e.g. a physical constant like resistance or mass), varying the parameter produces a homotopy.

A function like \(\gamma\) is called a loop because it usually takes values in \(\CC\), and a continuous function from \([0,1]\) to \(\CC\) looks like a path when plotted, while condition \(\gamma(0) = \gamma(1)\) makes it a loop. It turns out (see HW) that paths in \(\RR\) can’t really produce new roots.

Consider \(f(x) = x^3\) and \(\gamma(t)\) the loop tracing out (counterclockwise) a circle of radius \(8\), starting at \(\gamma(0) = 8\). The homotopy \[H(x,t) = x^3 - 8e^{2\pi i t}\] can be solved directly: it will be the path \[x(t) = 2e^{(2/3)\pi i t}.\]

We can trace out a numerical solution as follows. The graph on the right shows the loop traced by \(\gamma\), while the graph on the left is the path traced by the solution to the homotopy:

So, we started from the solution \(2^3 = 8\) to \(f(x) = 8\), and followed the path to the new solution \((2e^{2\pi i /3})^3 = 8\). The condition \(\gamma(1) = \gamma(0)\) is what ensures we end up at another root of \(f(x) = 8\).

Not every loop will produce a new root. In fact, one which doesn’t go around zero can never yield a new root - this is a fact you have seen or will see in complex analysis! Even a loop that goes around zero in certain ways won’t. For this very simple function, you can probably guess what will happen if you follow \(\gamma\) again, but starting at \(2e^{2\pi i /3}\) on the left plot: it will take you to \(2e^{-2\pi i /3}\). After one more loop, you end up back at \(2\), so a loop \(\gamma\) which goes around \(0\) three times will not find a new root.

Even though the homotopy differential equation technically requires \(\gamma\) to be differentiable, in practice it rarely causes trouble to use simpler piecewise linear paths and loops. While there are issues at the vertices, they should be small for nice enough functions, and are typically caught by path correction.

Keep in mind that the numerical solution to a differential equation only samples finitely many points, so the arithmetic won’t detect corners either – a nearly identical path with slightly rounded (differentiable) corners could produce exactly the same numbers, and when \(\gamma\) is piecewise linear, its contribution to the differential equation is particularly simple, too.