Introduction
In this paper, we investigated the
problem of estimating the difference between the area of a
disk and the number of lattice points contained within the
disk. Directly providing tight estimates for the difference
is a long standing problem, but we instead look at different
averages. We examined the problem through the lens of
counting eigenvalues of the Laplacian on different tori,
Klein bottles, and projective planes. A preprint draft of the
paper is available
here.
Table of Contents
- Plots from the paper
- Circle plots
- Counting and
differences
- Convergence
- Frequency plots
- Ellipse plots
- Counting and
differences
- Frequency
plots
- Torus and Klein bottle plots
- Numerics
I. Plots from the paper
Click on any of the images for a PDF version. All of the
plots in this section use grids with 0.1 spacing, and
computations involving g are summed over the disk of
radius 100.
Figure 1 gives us the difference D(t) between the number of
lattice points contained within the disk of radius √t/2π and
its area. See
Section II.A for
more circle plots of this nature.
The difference D(t) is conjectured to be O(t
1/4+ε)
for every ε>0. If this conjecture holds, then Figure 2 will
be t
o(1).
Figure 3 is a plot of the integral of Figure 2.
Figure 4 is Figure 3 multiplied by t
1/4. Since we
showed that A(t) is O(t
-1/4), Figure 4 is bounded
asymptotically.
In the paper we describe a mean value zero, almost periodic function g
such that g(√t) is a good estimate for
t
1/4A(t). See Figure 5 for g(√t).
The error of our estimate is given in Figure 6.
In particular, the error is O(t
-1/2), so the plot
is bounded asymptotically after multiplying by √t.
Here, we instead compute D((2πr)
2), which yields
the difference for the disk of radius r, and integrate it to
get Figure 8.
In the paper we show that ~A has the same asymptotics as
A(2πt
2)/(2√(2π)), which is plotted in Figure 9.
The difference between Figures 8 and 9 is given in Figure 10.
Figures 11 and 12 are plots of g(√t) and its error for a
particular family of ellipses (namely, those with
a
1= 2 and a
2= 1/2). See
Section III.A for more plots in this
vein.
II. Circle plots
A. Counting and differences
Here
we include data for g, t
1/4A(t), and their
difference that goes out to 1,000,000 instead of just 10,000.
B. Convergence
In this section, we investigate the convergence of our approximations to
A and g. We approximated the integral in A by sampling the integrand over
a partition of the domain and averaging the values. As we make the partition
finer, the Riemann sums converge to the integral. The convergence plots
for A in both the sup and l
1 norm are given below.
Similar plots for g are given below. Instead of altering the grid, we evalute
the infinite sum given in equation (1.14) over domains of different sizes.
C. Frequency plots
To see the distribution of D(t), we computed D(t) over the interval
[0, 100000] and binned the data into bins of size 0.1 to make a histogram.
The results are depicted below.
III. Ellipse plots
A. Counting and differences
Here, we reproduce Figures 4, 5, and 6 with different families of ellipses.
The case where a
1 = a
2 = 1 is depicted below. Click
on each image to see the plots for different ellipses.
B. Frequency plots
Here we repeat the binning process from Section II.C for different
ellipses.
IV. Torus and Klein bottle plots
The above figure is a plot of the differences for the counting functions
of the torus and Klein bottle.
Here, we multiply the difference by t
1/4.
Finally, this plot bins the difference to form a histogram.
V. Numerics
Along the way, we ran many numerical computations to test our
hypotheses. The majority of them are written in Python, with
a few in C for performance. All of our source code is
available for download
here.
- circ_comp.py performs all of the basic computations
involving counting lattice points within circular disks. In
particular, this file includes functions for N,
D, g, A, and Atilde. Faster
versions of some of these functions are available in
fast_circ_comp/circ_comp.c.
- convergence.py investigates the convergence
of our approximations to A and g
using finer grid sizes and including more terms,
respectively.
- ellipse.py performs the analogous
computations in the more general case of ellipses.
- fast.py consists of plotting scripts to use
the output of the faster C implementations.
- tilde.py provides means for comparing the two
alternative integrals as well as plotting their
difference.
- window.py computes lots of zoomed plots
simultaneously for both A, g, and their
difference.