HurwitzZeta[s,a]
gives the Hurwitz zeta function
.
HurwitzZeta
HurwitzZeta[s,a]
gives the Hurwitz zeta function
.
Details
- Mathematical function, suitable for both symbolic and numerical manipulation.
- The Hurwitz zeta function is defined as an analytic continuation of
. - HurwitzZeta is identical to Zeta for
. » - Unlike Zeta, HurwitzZeta has infinite or indeterminate values when the defining series has terms with zero denominator. »
- HurwitzZeta has branch cut discontinuities in the complex
plane running from
to
. - For certain special arguments, HurwitzZeta automatically evaluates to exact values.
- HurwitzZeta can be evaluated to arbitrary numerical precision.
- HurwitzZeta automatically threads over lists.
Examples
open all close allBasic Examples (6)
HurwitzZeta[3, .2]Plot over a subset of the reals:
Plot[HurwitzZeta[2, x], {x, -2, 2}]Plot over a subset of the complexes:
ComplexPlot3D[HurwitzZeta[2, z], {z, -2 - 2I, 2 + 2I}, PlotLegends -> Automatic]Series expansion at the origin:
Series[HurwitzZeta[2, x], {x, 0, 5}]Series expansion at Infinity:
Series[HurwitzZeta[2, x], {x, ∞, 6}]//NormalSeries expansion at a singular point:
Series[HurwitzZeta[2, x], {x, -1, 2}, Assumptions -> x > 1]//NormalScope (35)
Numerical Evaluation (6)
HurwitzZeta[7., 5]HurwitzZeta[.51, .87]N[HurwitzZeta[1 / 3, 8 / 7], 50]The precision of the output tracks the precision of the input:
HurwitzZeta[2.3000000000000000000000000, 48]HurwitzZeta[2.3, 8 + I]Evaluate efficiently at high precision:
HurwitzZeta[54 / 3, 8 / 7`100]//TimingHurwitzZeta[1 / 3, 1 / 7`1000];//TimingCompute average-case statistical intervals using Around:
HurwitzZeta[2, Around[1 / 2, 0.01]]Compute the elementwise values of an array:
HurwitzZeta[-1, {{1 / 2, 1}, {1, 1 / 2}}]Or compute the matrix HurwitzZeta function using MatrixFunction:
MatrixFunction[HurwitzZeta[-1, #]&, {{1 / 2, 1}, {1, 1 / 2}}]//FullSimplifySpecific Values (5)
Simple exact values are generated automatically:
Table[HurwitzZeta[s , 1], {s, -2, 2}]HurwitzZeta[s,a] for symbolic a:
HurwitzZeta[-2, a]//FunctionExpandHurwitzZeta[0, a]//FunctionExpandHurwitzZeta[s,a] for symbolic s:
HurwitzZeta[s, 1 / 2]HurwitzZeta[0, 0]Find a value of s for which HurwitzZeta[s,1]=1.05:
sval = s /. FindRoot[HurwitzZeta[s, 1] == 1.05, {s, 5}]Plot[HurwitzZeta[s, 1], {s, -1, 20}, Epilog -> Style[Point[{sval, HurwitzZeta[sval, 1]}], PointSize[Large], Red]]Visualization (3)
Plot HurwitzZeta as a function of its parameter
for positive
:
Plot[HurwitzZeta[s, 2], {s, -3, 5}]Plot the real and imaginary parts as a function of its parameter
for negative noninteger
:
ReImPlot[HurwitzZeta[s, -1 / 2], {s, -3, 5}]Plot HurwitzZeta as a function of
for various positive integer values of
:
Plot[{HurwitzZeta[2, a], HurwitzZeta[3, a], HurwitzZeta[4, a]}, {a, -2, 2}, PlotLegends -> "Expressions"]Do it for nonpositive integer
:
Plot[{HurwitzZeta[0, a], HurwitzZeta[-1, a], HurwitzZeta[-2, a]}, {a, -4, 4}, PlotLegends -> "Expressions"]Plot the real and imaginary parts as a function of its parameter
for noninteger
:
ReImPlot[{HurwitzZeta[1 / 2, a], HurwitzZeta[-1 / 2, a]}, {a, -4, 4}, PlotLegends -> "Expressions"]Plot the real part of HurwitzZeta function:
ComplexContourPlot[Re[HurwitzZeta[2, z]], {z, -3 - 4I, 3 + 4I}, IconizedObject[«PLotOptions»]]Plot the imaginary part of HurwitzZeta function:
ComplexContourPlot[Im[HurwitzZeta[2, z]], {z, -3 - 4I, 3 + 4I}, IconizedObject[«PlotOptions»]]Function Properties (11)
FunctionDomain[HurwitzZeta[x, a], x]For positive
, this is simply
:
Simplify[%, Assumptions -> a > 0]For negative integer
, the domain is just the negative integers:
Simplify[%%, Assumptions -> a∈ℤ && a < 0]FunctionDomain[HurwitzZeta[x, a], x, Complexes]For positive
, this is again
:
Simplify[%, Assumptions -> a > 0]//ReduceApproximate function range of
:
FunctionRange[HurwitzZeta[x, 3], x, y]//QuietHurwitzZeta threads elementwise over lists:
HurwitzZeta[{2, 3, 4}, 0.5]HurwitzZeta is not an analytic function:
FunctionAnalytic[HurwitzZeta[a, x], {x, a}]FunctionMeromorphic[HurwitzZeta[a, x], {x, a}]
is neither non-decreasing nor non-increasing:
FunctionMonotonicity[{HurwitzZeta[x, 3], x ≠ 1}, x]FunctionInjective[HurwitzZeta[x, 2], x]FunctionInjective[HurwitzZeta[x, 3], x]Plot[{HurwitzZeta[x, 2], -1}, {x, -5, -1}]FunctionSurjective[HurwitzZeta[3, a], a]FunctionSurjective[HurwitzZeta[4, a], a]Plot[{HurwitzZeta[3, a], HurwitzZeta[4, a], -200}, {a, -5, 1}]
is neither non-negative nor non-positive:
FunctionSign[{HurwitzZeta[x, 3], x ≠ 1}, x]
has both singularity and discontinuity for negative integers:
FunctionSingularities[HurwitzZeta[2, a], a]FunctionDiscontinuities[HurwitzZeta[2, a], a]
is neither convex nor concave:
FunctionConvexity[{HurwitzZeta[x, 3], x ≠ 1}, x]TraditionalForm formatting:
HurwitzZeta[s, a]//TraditionalFormDifferentiation (3)
First derivative with respect to a:
D[HurwitzZeta[s, a], a]Higher derivatives with respect to a:
Table[D[HurwitzZeta[s, a], {a, k}], {k, 1, 4}]//FullSimplifyPlot the higher derivatives with respect to a when s=3:
Plot[Evaluate[% /. { s -> 3}], {a, 0, 2}, PlotLegends -> {"First Derivative", "Second Derivative", "Third Derivative", "Fourth Derivative"}]Formula for the ![]()
derivative with respect to a:
D[HurwitzZeta[s, a], {a, k}]// FullSimplifyIntegration (3)
Compute the indefinite integral using Integrate:
Integrate[HurwitzZeta[s, a], a]FullSimplify[D[%, a]]Integrate[HurwitzZeta[s, a], {a, 0, 5}]Integrate[HurwitzZeta[3, a]a^2, a]//FullSimplifyIntegrate[HurwitzZeta[2, a^2]a, {a, 1, 4}]Series Expansions (2)
Find the Taylor expansion using Series:
Series[HurwitzZeta[s, a], {a, 0, 3}]Plots of the first three approximations around
:
terms = Normal@Table[Series[HurwitzZeta[2, a], {a, 0, m}], {m, 1, 5, 2}];
Plot[{HurwitzZeta[2, a], terms}, {a, 0, 10}, PlotRange -> {-10, 10}]Taylor expansion at a generic point:
Series[HurwitzZeta[s, a], {a, x0, 2}]// FullSimplifyFunction Identities and Simplifications (2)
HurwitzZeta is defined through the identity:
Underoverscript[∑, k = 0, ∞](k + a)^-s == HurwitzZeta[s, a]HurwitzZeta[s, a] == HurwitzZeta[s, a - 1] - (1/(a - 1)^s)//FullSimplifyApplications (1)
The word count in a text follows a Zipf distribution:
text = ExampleData[{"Text", "OriginOfSpecies"}, "Words"];wordCount = Tally[text][[All, 2]];Fit a ZipfDistribution to the word frequency data:
rhohat = FindDistributionParameters[wordCount, ZipfDistribution[ρ]]Fit a truncated ZipfDistribution to counts at most 50 using rhohat as a starting value:
rhohat50 = FindDistributionParameters[Select[wordCount, # ≤ 50&], ZipfDistribution[50, ρ], rhohat /. Rule -> List]Visualize the CDFs up to the truncation value:
Plot[{CDF[d1 = ZipfDistribution[ρ] /. rhohat, x], CDF[d2 = ZipfDistribution[50, ρ] /. rhohat50, x]}, {x, 0, 50}, PlotLegends -> {d1, d2}]
Estimate the proportion of the original data not included in the truncated model:
Probability[x > 50, xZipfDistribution[ρ]]% /. rhohatProperties & Relations (4)
HurwitzZeta can be generated by symbolic solvers:
Sum[(n + a)^-3 / 2, {n, 0, Infinity}]RSolve[f[a + 1] == f[a] - 1 / Sqrt[a], f[a], a]For
, two-argument Zeta coincides with HurwitzZeta:
FullSimplify[HurwitzZeta[s, a] == Zeta[s, a], Re[a] > 0]HurwitzZeta includes singular terms for which the denominator is zero:
HurwitzZeta[2, -2]The infinite value comes from the term
in the defining series:
% === Sum[(1/(k + -2)^2), {k, 0, Infinity}]//QuietZeta, by contrast, omits the singular term by default:
Zeta[2, -2]% == Sum[If[k == 2, 0, (1/(k + -2)^2)], {k, 0, Infinity}]//ExpandIf
, a singular term produces the value Indeterminate:
HurwitzZeta[I, -2]HurwitzZeta[s,a] equals HurwitzLerchPhi[1,s,a] for Re[s]>1:
Block[{a = RandomComplex[{-2 - 2I, 2 + 2I}], s = RandomComplex[{1 - 2I, 5 + 2I}]}, HurwitzZeta[s, a] - HurwitzLerchPhi[1, s, a]]Neat Examples (1)
ComplexPlot of HurwitzZeta function, as a function of
with
:
ComplexPlot[HurwitzZeta[3 + 4 I, z], {z, 4}, PlotLegends -> Automatic, ColorFunction -> "CyclicLogAbs", MaxRecursion -> 2, PlotPoints -> 50, Exclusions -> None]See Also
Related Guides
History
Text
Wolfram Research (2008), HurwitzZeta, Wolfram Language function, https://reference.wolfram.com/language/ref/HurwitzZeta.html.
CMS
Wolfram Language. 2008. "HurwitzZeta." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/HurwitzZeta.html.
APA
Wolfram Language. (2008). HurwitzZeta. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/HurwitzZeta.html
BibTeX
@misc{reference.wolfram_2026_hurwitzzeta, author="Wolfram Research", title="{HurwitzZeta}", year="2008", howpublished="\url{https://reference.wolfram.com/language/ref/HurwitzZeta.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_hurwitzzeta, organization={Wolfram Research}, title={HurwitzZeta}, year={2008}, url={https://reference.wolfram.com/language/ref/HurwitzZeta.html}, note=[Accessed: 13-June-2026]}