LandauRamanujan常数计算python

2024-06-25 05:47:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用这个算法计算L-R常数K:

def betaD(x):
    return ((4**(-x))*(zeta(x,1/4)-zeta(x,3/4)))

K = 1

lista = np.arange(1,9,1,dtype=float)

for n in lista:
    K = K * (((1-(1/((2)**(2**n))))*(zeta(2**n)/betaD(2**n)))**(1/(2**(n+1))))
    print(K)
    
K = K*(1/np.sqrt(2))

(泽塔来自scipy.special)

如你们所见,我只能达到9次迭代,否则K变成=0,我得到:

/home/martina/pymartina/lib/python3.6/site-packages/ipykernel_launcher.py:9: RuntimeWarning: overflow encountered in double_scalars
  if __name__ == '__main__':
/home/martina/pymartina/lib/python3.6/site-packages/ipykernel_launcher.py:2: RuntimeWarning: invalid value encountered in double_scalars

有人能帮忙吗?我希望能够得到更多的迭代次数和精度。谢谢


Tags: inpyhomelibpackagesnpsitelauncher