Visualizing location of zeros of Riemann zeta function along critical line

This was suggested by the video created by Alex Kontorovich that accompanies his article " How I loved to Love and Fear the Riemann Hypothesis," Quanta Magazine, January 4, 2021.

It is a much simpler version of the reproduction of that video made by Clayton Shonkwiler in this community post

which I had not seen before posting this. First, a cover function for

ParametricPlot[ReIm[f], ...]

to provide an obviously missing object from the current, limited, supply of built-in functions for visualization of complex functions.

ComplexParametricPlot[f_, {u_, umin_, umax_}, 
  opts : OptionsPattern[]] := 
 ParametricPlot[ReIm[f], {u, umin, umax}, 
  Evaluate@FilterRules[{opts}, Options[ParametricPlot]]]

Now we move complex variable z = 1/2+t I along the critical line of the Riemann zeta functions, tracing out a curve in the complex plane, Each time the curve passes through the origin we have reached another zero of the zeta function.

Manipulate[
 ComplexParametricPlot[Zeta[1/2 + s I], {s, 0, t}, 
  PlotRange -> {{-2, 5}, {-3, 3}}, PerformanceGoal -> "Quality"],
 {{t, 1, "t"}, 0.99, 101, Appearance -> "Labeled"}]

Here’s a snapshot:

(I thank Mark Normand for pointing me to the Quanta Magazine article suggesting this kind of visualization. It’s possible this is a standard kind of visualization of location of zeros, but I had not run into it before.)

3 Likes

This is a pretty standard visualization. I also tried various curvature calculations at the zeros of the zeta function but never really got anywhere. Even Mathematica 2.0 was well set up to handle this.

One point I was making is that Mathematica ought to have a built-in function, what I named ComplexParametricPlot, that uses a complex-valued function of a real variable as argument — without the user having to explicitly break the complex values into real and imaginary parts with ReIm. After all, complex numbers are built in, and in fact numerical arguments are assumed to be complex unless otherwise specified or evident, so the user should not have to jump even from a small height through loops to use complex-valued functions as is.

1 Like