2011-02-01-some_trig_sums

478 days ago by wstein

def gamma_R(s): return pi^(-s/2) * gamma(s/2) 
       
gamma_R(3+I) 
       
pi^(-1/2*I - 3/2)*gamma(1/2*I + 3/2)
pi^(-1/2*I - 3/2)*gamma(1/2*I + 3/2)
z = complex(1/2+10*I) timeit('psi(z)') 
       
625 loops, best of 3: 496 µs per loop
625 loops, best of 3: 496 µs per loop
gamma(CDF(1/2-10*I)) 
       
3.37872437623e-07 - 1.68936983904e-07*I
3.37872437623e-07 - 1.68936983904e-07*I
psi1 
       

\sum_p   \frac{\log(p)}{\sqrt{p}} \cdot\cos(\log(p)t)

var('t') f(t) = -sum(log(p)/sqrt(p)*cos(log(p)*t) for p in primes(10000)) 
       
A = plot(f, 2,100,plot_points=2000) + sum([line([(x,-1),(x,15)],color='red') for x in zeta_zeros()[:100] if x < 100]) A.show(figsize=[18,6],ymin=0) 
       

Let \pi(x) be the prime counting function.

Take \psi(x)=e^{-t/2}\pi'(e^t), with even extension. 

 
       
 
       
f(t) = -sum((1/sqrt(p))*cos(log(p)*t) for p in primes(1000)) A = plot(f, 2,100,plot_points=2000) + sum([line([(x,-1),(x,15)],color='red') for x in zeta_zeros()[:100] if x < 100]) A.show(figsize=[18,3],ymin=-3) 
       
%time f(t) = -sum(cos(log(p)*t)/sqrt(p) for p in primes(10000)) f = f._fast_float_(t) 
       
CPU time: 10.25 s,  Wall time: 10.25 s
CPU time: 10.25 s,  Wall time: 10.25 s
B=200 A = plot(f, 2, B, plot_points=2000) + sum([line([(x,-1),(x,15)],color='red') for x in zeta_zeros()[:B] if x < B]) A.show(figsize=[18,3],ymin=-3) 
       
A.show(figsize=[100,3],ymin=-3) 
       
%time g(t) = -sum(cos(theta*log(t)) for theta in zeta_zeros()[:2000]) g = g._fast_float_(t) 
       
CPU time: 1.86 s,  Wall time: 1.86 s
CPU time: 1.86 s,  Wall time: 1.86 s
B = 1000 A = plot(g, 2, B, plot_points=2000) + sum([line([(x,-1),(x,15)],color='red') for x in primes(B) if x < B]) A.show(figsize=[100,3],ymin=-3) 
       
%time f(t) = -sum(cos(log(p)*t)/sqrt(p) for p in primes(10000)) f = f._fast_float_(t) 
       
CPU time: 10.41 s,  Wall time: 10.42 s
CPU time: 10.41 s,  Wall time: 10.42 s
B = 200 A = plot(f, 2, B, plot_points=2000) + sum([line([(x,-1),(x,15)],color='red') for x in zeta_zeros()[:B] if x < B]) A.show(figsize=[100,3],ymin=-3)