Section 25.2 Improving the PNT
ΒΆWe can build an interactive table of some results if we are online.xxxxxxxxxx
def _(k=(3,[2..11])):
F = lambda x: sum([Li(x^(1/j))*moebius(j)/j for j in [1..k]])
T = [['$i$', r'$\pi(i)$', '$Li(i)$', r'$\pi(i)-Li(i)$', r'$\pi(i)-\sum_{j=1}^{%s} \frac{\mu(j)}{j} Li(x^{1/j})$'%k]]
for i in [100000,200000..1000000]:
T.append([i, prime_pi(i), Li(i).n(digits=7), (prime_pi(i)-Li(i)).n(digits=4), (prime_pi(i)-F(i)).n(digits=4)])
pretty_print(html(table(T,header_row = True, frame = True)))
Conjecture 25.2.1.
The (absolute value of the) error in the PNT is less than
18Οβxlog(x).

xxxxxxxxxx
def _(n=(5000,(1000,10^6))):
P = plot(prime_pi,n-1000,n, color='black', legend_label=r'$\pi(x)$')
P += plot(Li,n-1000,n, color='green', legend_label='$Li(x)$')
P += plot(lambda x: Li(x) - 1/(8*pi)*sqrt(x)*log(x),n-1000,n, color='blue',linestyle='--', legend_label="Von Koch error estimate")
P += plot(lambda x: Li(x) + 1/(8*pi)*sqrt(x)*log(x),n-1000,n, color='blue',linestyle='--')
show(P)
Theorem 25.2.3.
The truth of the error estimate
|Ο(x)βLi(x)|β€18Οβxlog(x)
for the prime number theorem is equivalent to saying that ΞΆ(s) equals zero precisely where Riemann thought it would be zero in 1859 (see Conjecture 25.3.7).