#!/usr/bin/python
import numpy as np
def mzeta(x,q,N=100):
s=0
for j in np.arange(1,N):
s+= 1./(1.*j+1.*q)**x
return s
for N in [100, 500, 1000, 5000, 15000]:
print mzeta(2.,0.,N), np.pi**2/ 6
производит
br@ratatoskr:~/sweethome/temp$ ./mzeta.py
1.63488390018 1.64493406685
1.64293206551 1.64493406685
1.64393356668 1.64493406685
1.64473404685 1.64493406685
1.64486739796 1.64493406685
Обратите внимание, что суммирование здесь начинается с 1
UPD: действительно, это похоже на значение j=0
при сумме:
print "*****"
x, q=2, 0.1
print mzeta(x,q,10000) + 1./q**x, zeta(x,q)
, что дает
*****
101.433199147 101.433299151