scipy.special.

zeta#

scipy.special.zeta(x, q=None, out=None)[source]#

Riemann or Hurwitz zeta function.

Parameters:
xarray_like of float or complex.

Input data

qarray_like of float, optional

Input data, must be real. Defaults to Riemann zeta. When q is None, complex inputs x are supported. If q is not None, then currently only real inputs x with x >= 1 are supported, even when q = 1.0 (corresponding to the Riemann zeta function).

outndarray, optional

Output array for the computed values.

Returns:
outarray_like

Values of zeta(x).

See also

zetac

Notes

The two-argument version is the Hurwitz zeta function

\[\zeta(x, q) = \sum_{k=0}^{\infty} \frac{1}{(k + q)^x};\]

see [dlmf] for details. The Riemann zeta function corresponds to the case when q = 1.

For complex inputs with q = None, points with abs(z.imag) > 1e9 and 0 <= abs(z.real) < 2.5 are currently not supported due to slow convergence causing excessive runtime.

References

[dlmf]

NIST, Digital Library of Mathematical Functions, https://dlmf.nist.gov/25.11#i

Examples

>>> import numpy as np
>>> from scipy.special import zeta, polygamma, factorial

Some specific values:

>>> zeta(2), np.pi**2/6
(1.6449340668482266, 1.6449340668482264)
>>> zeta(4), np.pi**4/90
(1.0823232337111381, 1.082323233711138)

First nontrivial zero:

>>> zeta(0.5 + 14.134725141734695j)
0 + 0j

Relation to the polygamma function:

>>> m = 3
>>> x = 1.25
>>> polygamma(m, x)
array(2.782144009188397)
>>> (-1)**(m+1) * factorial(m) * zeta(m+1, x)
2.7821440091883969