我试图用这个算法计算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
有人能帮忙吗?我希望能够得到更多的迭代次数和精度。谢谢
当
n<10
时,可以计算betaD(2**n)
。 当n>10
,zeta(2**n,1/4)
是无限的,因此betaD(2**n)
中有一个错误decimal
库可以处理数据的大小:https://docs.python.org/2/library/decimal.html相关问题 更多 >
编程相关推荐