Дзета-функция SciPy возвращает дико большое значение - PullRequest
1 голос
/ 20 февраля 2012

Документы SciPy для дзета-функции состояния:

y = zeta (x, q) возвращает дзета-функцию Римана с двумя аргументами: сумма ((к + д) ** (- х), к = 0..inf)

При задании параметров x=2, q=0 мы должны получить sum((k)**(-2),k=0..inf), что согласно вики-записи о дзета-функции Римана должно дать примерно 1,645

Тем не менее, SciPy дает следующее

>>> from scipy.special import zeta
>>> zeta(2,0)
1.7976931348623157e+308

Я что-то упустил или сломана дзета-функция?

Ответы [ 2 ]

5 голосов
/ 20 февраля 2012

Старая строка документации для scipy.special.zeta говорит:

y=zeta(x,q) returns the Riemann zeta function of two arguments:
sum((k+q)**(-x),k=0..inf)

Согласно статье в Википедии, это дзета-функция Гурвица, "которая совпадает с дзета Риманафункция, когда q = 1"(не q = 0).И действительно, это так:

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

Обновление : строка документа прямо говорит: «Версия с двумя аргументами - это дзета-функция Гурвица», а «дзета-функция Римана соответствует q = 1.«

1 голос
/ 20 февраля 2012
#!/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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...