The German mathematician Bernhard Riemann published his work on the investigation of prime numbers in 1859. This eight-page paper, titled "On the Number of Primes Less Than a Given Magnitude", expanded on the work of Euler, Gauss, and Dirichlet and made numerous contributions to the study of both complex and analytic function theory. One of the major claims of this work was a conjecture about the location of zeros of the Riemann zeta function. To put it simply, Riemann hypothesized that all non-trivial zeros of the Riemann zeta function must have real part equal to
- Euler-Maclaurin Summation Formula
- Riemann–Siegel Formula
- Odlyzko–Schonhage Algorithm
This repository contains a Julia implementation of the Riemann–Siegel formula. The code was written by Matthew Kehoe (mskehoe001@gmail.com) and is partially based off the work (written in C) by Glen Pugh and Ken Takusagawa. Future commits of this repository may contain a working implementation of the Odlyzko–Schonhage algorithm in Julia and various enhancements to the root-finding and plotting programs.
Download the Julia code in the src directory. The individual programs are
-
BernoulliNumbers.jl:
This program applies the Akiyama-Tanigawa algorithm to display integer values of the Riemann zeta function. -
PlotZetaOffCriticalLine.jl:
Calculates real values of the Riemann zeta function off the critical line and plots them to the screen. -
PlotZetaOnCriticalLine.jl:
Uses the Riemann-Siegel formula to plot the Riemann-Siegel$Z$ function,$(t,Z(t))$ , at specified time intervals. -
RiemannSiegel.jl:
Implementation of the Riemann-Siegel formula to calculate non-trivial zeros of the Riemann zeta function. -
TuringTest.jl:
Applies Turing's method to bound$S(g_n)$ in the expression$(-1)^n Z(g_n + h_n) > 0$ (which can be used to verify the RH up to a specific height$T$ ). -
rootCount.jl:
Verifies the RH up to a final Gram point using the Riemann-Siegel formula. -
zetaFunctions.jl:
A library of functions used in all the other programs.
Example 1: Plot of
Example 2: Real and Imaginary values of the Riemann-Siegel
Example 3: Real values of the Riemann Zeta function.
Interested readers can review the following material:
- Overview of the Riemann Zeta Function: Edward's Riemann Zeta Function
- C Implementation of Riemann-Siegel Formula: Glen's Project and Ken's Project
- Beamer Presentation: Calculating zeros of the RZF
- Implement the Odlyzko–Schonhage Algorithm in Julia.
- Apply more remainder terms in the calculation of the Riemann-Siegel formula (Ken computed a lot more than four).
- Implement 3D plots of the Riemann zeta function with real and complex values.
Email Matthew Kehoe (mskehoe001@gmail.com) about questions related to this work.