关于 zeta function 的 SciPy 文档状态:
y=zeta(x,q) returns the Riemann zeta function of two arguments: sum((k+q)**(-x),k=0..inf)
给定参数 x=2, q=0 我们应该得到 sum((k)**(-2),k=0..inf) 其中根据wiki entry on Riemann zeta function应该给出大约 1.645
然而 SciPy 给出了以下内容
>>> from scipy.special import zeta
>>> zeta(2,0)
1.7976931348623157e+308
我是不是遗漏了什么或者 scipy zeta 函数坏了?
请您参考如下方法:
scipy.special.zeta 的旧文档字符串说:
y=zeta(x,q) returns the Riemann zeta function of two arguments:
sum((k+q)**(-x),k=0..inf)
根据维基百科中的文章,这是 Hurwitz zeta 函数,“当 q = 1(不是 q=0)时,它与黎曼 zeta 函数重合”。确实如此:
In [3]: zeta(1.5, 1)
Out[3]: 2.6123753486854882
In [4]: zeta(2, 1)
Out[4]: 1.6449340668482266
In [5]: zeta(3, 1)
Out[5]: 1.202056903159594
In [6]: zeta(4,1)
Out[6]: 1.0823232337111381
In [7]: np.pi**4 / 90
Out[7]: 1.082323233711138
更新:文档字符串现在明确指出“双参数版本是 Hurwitz zeta 函数”和“黎曼 zeta 函数对应于 q = 1。”
