Section 20.4 Heuristics for the Sum of Divisors
¶Subsection 20.4.1 Numbers instead of points
¶Could this type of argument conceivably be used for σ=σ1? The answer is yes! Consider the following rewrite of the sum of sigmas, which are themselves the sum of divisors:
∑n≤xσ(n)=∑n≤x∑q∣nq=∑q,d such that qd≤xq=∑d≤x∑q≤xdq.
We have changed from a sum of sums of divisors (which might not be consecutive, and makes σ annoying to compute) to a sum of sums of consecutive integers 5 Most proofs of this are quite terse, which was inappropriate for my students; I have drawn from [C.4.5, Chapter 4.4 ], [C.2.9, Section 22], and [C.4.6, Theorem 3.4]..
We can think about this graphically again. Instead of comparing points on a hyperbola with points in columns or rows, though, we will compare numbers at points on a hyperbola with numbers at points in rows. We can think of it as summing up a weighted set of points. Consider Figure 20.4.1.

Example 20.4.2.
In Figure 20.4.1 we see that
6∑k=1σ(k)=1+(1+2)+(1+3)+(1+2+4)+(1+5)+(1+2+3+6)=
(1+2+3+4+5+6)+(1+2+3)+(1+2)+1,
which means we can think of it as a sum of sums from 1 to the length of each row.
xxxxxxxxxx
def _(n=(6,list(range(2,50)))):
viewsize=n+1
g(x)=1/x
P=Graphics()
P += plot(n*g,(x,0,n+1))
grid_pts = [[i,j] for i in [1..viewsize] for j in [1..viewsize]]
P += points(grid_pts,rgbcolor=(0,0,0),pointsize=2)
lattice_pts = [coords for coords in grid_pts if (coords[0]*coords[1]<=n)]
for thing in lattice_pts:
P += text(thing[0],thing,rgbcolor=(0,0,0))
show(P,ymax=viewsize,aspect_ratio=1)
Each row has ⌊nk⌋ integers.
-
Adding up the first j integers (from one to j) has formula
j(j+1)2=j22+j2,which we used in Subsection 20.3.2 as well.
The most wrong ⌊x⌋(⌊x⌋+1)2 can be from x(x+1)2 is j+1=O(j) (this is simple algebra).
∑n≤xσ(n)=∑d≤x∑q≤xdq=∑d≤x[12⌊xd⌋2+12⌊xd⌋]
=∑d≤x[12(xd)2+12(xd)+O(xd)].
Subsection 20.4.2 Order calculations and more
¶But this is actually possible to analyze! First, we perform some order calculations. We already saw that ∑d≤x1d=log(x)+O(1), so
∑d≤x12(xd)=12O(xlog(x))=O(xlog(x)).
(See Exercise 20.6.15.) Also, ∑d≤xO(xd) must be
O(x∑d≤x1d)=O(xlog(x)).
Next, let's get more information about ∑d≤x[12(xd)2]. Recall that the (convergent) improper integral ∫∞xdyy2 approximates ∑d>x1d2.
Since both converge, and by the same pictures as above, the error is certainly O(1/x2). Then I can rewrite things as
∑d≤x1d2=∞∑d=11d2−∑d>x1d2
=∞∑d=11d2−∫∞x1y2dy+O(1/x2)=∞∑d=1(1d2)−1x+O(1/x2).
Thus the whole crazy double sum can be approximated as follows, quite accurately:
∑n≤xσ(n)=x22∑d≤x(1d2)+x2∑d≤x1d+O(xlog(x))
=x22(∞∑d=1(1d2)−1x+O(1/x2))+O(xlog(x))
=x22∞∑d=1(1d2)−x2+O(xlog(x)).
And the average value of σ must be this divided by x, namely
1x∑n≤xσ(n) is x2∞∑d=11d2+O(log(x)).
Since we know that the series converges, this means the average value of σ increases quite linearly, with an error (at most) increasing logarithmically! This might be a shock – that one could actually get something fairly accurate like this relatively easily using calculus ideas like improper integrals and (implicitly) the integral test for infinite series. But check out the data!

