gives the ![]()
multiple harmonic number
.
MultipleHarmonicNumber[n,{r1,…,rk}]
gives the ![]()
multiple harmonic number
of orders (
).
MultipleHarmonicNumber[n,{r1,…,rk},{s1,…,sk}]
gives the ![]()
decorated multiple harmonic number
of orders (
) and decoration values (
).
MultipleHarmonicNumber
gives the ![]()
multiple harmonic number
.
MultipleHarmonicNumber[n,{r1,…,rk}]
gives the ![]()
multiple harmonic number
of orders (
).
MultipleHarmonicNumber[n,{r1,…,rk},{s1,…,sk}]
gives the ![]()
decorated multiple harmonic number
of orders (
) and decoration values (
).
Details
- MultipleHarmonicNumber represents finite harmonic sums that generalize HarmonicNumber to multiple, strictly ordered indices with optional decoration modifiers.
- MultipleHarmonicNumber appears in finite Euler sums in analytic number theory, Apéry-type series and coefficients of series expansions of generalized polylogarithms.
- MultipleHarmonicNumber of one argument is same as HarmonicNumber.
- MultipleHarmonicNumber is defined by the nested sum:
-
Two arguments ![TemplateBox[{n, TemplateBox[{{{r, _, 1}, ,, , ..., ,, , {r, _, k}}}, ImplicitList]}, MultipleHarmonicNumber]=sum_( n >= n_1 > n_2 > ... n_(k) >= 1 )1/(n_1^(r_1) n_2^(r_2) ... n_(k)^(r_(k))) TemplateBox[{n, TemplateBox[{{{r, _, 1}, ,, , ..., ,, , {r, _, k}}}, ImplicitList]}, MultipleHarmonicNumber]=sum_( n >= n_1 > n_2 > ... n_(k) >= 1 )1/(n_1^(r_1) n_2^(r_2) ... n_(k)^(r_(k)))](Files/MultipleHarmonicNumber.en/7.png)
Three arguments ![TemplateBox[{n, TemplateBox[{{{r, _, 1}, ,, , ..., ,, , {r, _, k}}}, ImplicitList], TemplateBox[{{{s, _, 1}, ,, ..., ,, {s, _, k}}}, ImplicitList]}, MultipleHarmonicNumber3]=sum_( n >= n_1 > n_2 > ... n_(k) >= 1 )(s_1^(n_1) s_2^(n_2) ... s_(k)^(n_(k)))/(n_1^(r_1) n_2^(r_2) ... n_(k)^(r_(k))) TemplateBox[{n, TemplateBox[{{{r, _, 1}, ,, , ..., ,, , {r, _, k}}}, ImplicitList], TemplateBox[{{{s, _, 1}, ,, ..., ,, {s, _, k}}}, ImplicitList]}, MultipleHarmonicNumber3]=sum_( n >= n_1 > n_2 > ... n_(k) >= 1 )(s_1^(n_1) s_2^(n_2) ... s_(k)^(n_(k)))/(n_1^(r_1) n_2^(r_2) ... n_(k)^(r_(k)))](Files/MultipleHarmonicNumber.en/8.png)
- It belongs to the family of harmonic numbers the includes HarmonicNumber, AlternatingHarmonicNumber, etc.
- This is a mathematical function that is suitable for both symbolic and numerical manipulation.
- The function supports numerical evaluation of the following types:
-
machine precision N Yes arbitrary precision N Yes worst-case intervals CenteredInterval No average-case intervals Around No - In
,
is the truncation index, the entries
are the weights (also called orders or indices), and
are the decoration values (also called colors or numerator weights).
is the depth. - In the two-argument form, decoration values are all
: ![TemplateBox[{n, TemplateBox[{{{r, _, 1}, ,, , ..., ,, , {r, _, k}}}, ImplicitList]}, MultipleHarmonicNumber]=TemplateBox[{n, TemplateBox[{{{r, _, 1}, ,, , ..., ,, , {r, _, k}}}, ImplicitList], TemplateBox[{{1, ,, ..., ,, 1}}, ImplicitList]}, MultipleHarmonicNumber3] TemplateBox[{n, TemplateBox[{{{r, _, 1}, ,, , ..., ,, , {r, _, k}}}, ImplicitList]}, MultipleHarmonicNumber]=TemplateBox[{n, TemplateBox[{{{r, _, 1}, ,, , ..., ,, , {r, _, k}}}, ImplicitList], TemplateBox[{{1, ,, ..., ,, 1}}, ImplicitList]}, MultipleHarmonicNumber3]](Files/MultipleHarmonicNumber.en/10.png)
- The truncation index
must be a non-negative integer. The weights
and the decoration values
can be arbitrary complex numbers. - MultipleHarmonicNumber of depth 1 reproduces HarmonicNumber:
-
One argument (degenerate case) MultipleHarmonicNumber[n] HarmonicNumber[n] Two arguments MultipleHarmonicNumber[n,{r}] HarmonicNumber[n, r] Three arguments MultipleHarmonicNumber[n,{r},{s}] HarmonicNumber[n, r, s] - When the defining series converges, the
limit coincides with the corresponding multiple zeta/polylog values: -
Two arguments MultipleHarmonicNumber[∞,{r1,…,rk}]
MultipleZeta[{r1,…,rk}]Three arguments MultipleHarmonicNumber[∞,{r1,…,rk},{s1,…,sk}]MultiplePolyLog[{r1,…,rk},{s1,…,sk}] - Products of MultipleHarmonicNumber satisfy stuffle (quasi shuffle) relations from nested sums.
- Sum, RSolve, GeneratingFunction, ExponentialGeneratingFunction, ZTransform and DirichletTransform include methods for handling inputs involving MultipleHarmonicNumber.
- Sum and RSolve may return results in terms of MultipleHarmonicNumber.
Examples
open all close allBasic Examples (5)
Numerically evaluate a decorated depth-2 multiple harmonic number:
MultipleHarmonicNumber[10, {2, 3}, {1 / 4, 1 / 6}]Plot over a subset of integer
:
DiscretePlot[MultipleHarmonicNumber[n, {2, 3}], {n, 1, 20}]Plot by varying a weight parameter:
Plot[MultipleHarmonicNumber[10, {r, 3}, {1 / 4, 1 / 6}], {r, 1, 10}]Plot by varying a decoration parameter:
Plot[MultipleHarmonicNumber[10, {2, 3}, {s, 1 / 6}], {s, 0, 2}]Series definition of MultipleHarmonicNumber:
Sum[((1 / 5)^n2(1 / 7)^n4/n1^2n2^4n3^3n4^6), {n1, 1, n}, {n2, 1, n1 - 1}, {n3, 1, n2 - 1}, {n4, 1, n3 - 1}]Scope (12)
Numerical Evaluation (2)
Specific Values (6)
MultipleHarmonicNumber[10, {2, -4}]Evaluate for rational weights:
MultipleHarmonicNumber[10, {1 / 6, 1 / 2}]MultipleHarmonicNumber[10, {I, -2I}]Evaluate for rational decoration values:
MultipleHarmonicNumber[10, {2, 3}, {1 / 6, 10 / 8}]Evaluate for complex decoration values:
MultipleHarmonicNumber[10, {2, 3}, {I, 2I}]MultipleHarmonicNumber with a symbolic truncation index may autoevaluate to lower-level functions:
MultipleHarmonicNumber[n, {1, 0}]MultipleHarmonicNumber[n, {1, 1}]Visualization (4)
Plot of the diagonal depth-2 values across positive
, highlighting rapid decay with increasing weight:
Plot[MultipleHarmonicNumber[10, {r, r}], {r, 1, 10}]Compare depth-2 multiple harmonic numbers at a fixed truncation index, showing how the position of the variable weight affects decay:
Plot[Evaluate@{MultipleHarmonicNumber[20, {r, 2}], MultipleHarmonicNumber[20, {2, r}]}, {r, 2, 10}, ...]Vary the first color parameter
, illustrating how a decorated multiple harmonic number changes under a small color deformation:
Plot[MultipleHarmonicNumber[10, {2, 3, 4}, {s, 1 / 3, 1 / 6}], {s, -1 / 2, 1 / 2}]Explore the dependence of a multiple harmonic number on a complex decoration value
:
ComplexPlot3D[MultipleHarmonicNumber[10, {2, 3}, {s, 1 / 3}], {s, -1 / 2 - I / 2, 1 / 2 + I / 2}, Rule[...]]Applications (20)
Nested Rational Sums (3)
Strictly nested rational sum (
) reduces to a depth-3 MultipleHarmonicNumber with weights
:
Sum[(1/n1^2n2^4n3^3n4^6), {n1, 1, k}, {n2, 1, n1 - 1}, {n3, 1, n2 - 1}, {n4, 1, n3 - 1}]Weakly nested sum (
) expands into a linear combination of MultipleHarmonicNumber instances corresponding to all weight compositions:
Sum[((1 / 5)^n2(1 / 7)^n4/n1^2n2^4n3^3n4^6), {n1, 1, k}, {n2, 1, n1}, {n3, 1, n2}, {n4, 1, n3}]Mixed weak/strict nesting prunes terms, yielding a subset of the MultipleHarmonicNumber composition expansion:
Sum[((1 / 5)^n2(1 / 7)^n4/n1^2n2^4n3^3n4^6), {n1, 1, k}, {n2, 1, n1 - 1}, {n3, 1, n2 - 1}, {n4, 1, n3}]Finite Euler Sums (5)
A basic finite Euler sum that collapses to MultipleHarmonicNumber:
Sum[HarmonicNumber[n]^2, {n, 1, k}]Mixed alternating/ordinary harmonic numbers with a
factor:
Sum[(AlternatingHarmonicNumber[n, 2]HarmonicNumber[n]/n^3), {n, 1, k}]A finite Euler sum involving HyperHarmonicNumber:
Sum[HyperHarmonicNumber[2, n]HarmonicNumber[n], {n, 1, k}]Sum involving a quadratic decorated MultipleHarmonicNumber with a
factor:
Short[Sum[(MultipleHarmonicNumber[n, {2, 3}, {1 / 4, 1 / 5}]^2/n), {n, 1, k}], 3]A triangular double Euler sum:
Sum[HarmonicNumber[n]^2, {k1, 1, k}, {n, 1, k1}]Finite Mordell–Tornheim Sums (2)
A finite Mordell–Tornheim sum involving two variables:
Sum[(1/m1^2 m2^3 (m1 + m2)^4)Boole[m1 + m2 ≤ k], {m1, 1, k}, {m2, 1, k}]A Mordell–Tornheim sum involving three variables:
Short[Sum[(1/m1^2 m2^3 m3^4 (m1 + m2 + m3)^2)Boole[m1 + m2 + m3 ≤ k], {m1, 1, k}, {m2, 1, k}, {m3, 1, k}], 3]Sums Involving Stirling Numbers (2)
A finite sum with StirlingS1 expressed in terms of MultipleHarmonicNumber:
Sum[(StirlingS1[i, 2]/(i - 1)!)i^2, {i, 1, n}]A sum involving the product of HarmonicNumber and StirlingS1 expressed in terms of MultipleHarmonicNumber:
Sum[(HarmonicNumber[i]StirlingS1[i, 2]/(i - 1)!) i^2, {i, 1, n}]A finite sum with StirlingS2 expressed in terms of MultipleHarmonicNumber:
Sum[(StirlingS2[i, 2]/ i^2), {i, 1, n}]A sum involving the product of HarmonicNumber and StirlingS2 expressed in terms of MultipleHarmonicNumber:
Sum[HarmonicNumber[i]StirlingS2[i, 2] i^2, {i, 1, n}]Recurrence Equations (3)
Solve a linear recurrence with a driver given by the square of a generalized harmonic number, expressing the result in terms of MultipleHarmonicNumber:
RSolveValue[{x[k] - 2x[k - 1] == HarmonicNumber[k, 2] ^ 2, x[1] == 1}, x[k], k]A mixed alternating–ordinary harmonic driver (scaled by
), with the result expressed in terms of MultipleHarmonicNumber:
RSolveValue[{x[k] - 2x[k - 1] == AlternatingHarmonicNumber[k] * HarmonicNumber[k] * k, x[1] == 1}, x[k], k]A depth-2 MultipleHarmonicNumber driver, whose solution simplifies in terms of MultipleHarmonicNumber:
RSolveValue[{x[k] - 2x[k - 1] == MultipleHarmonicNumber[k, {2, 3}] / k, x[1] == 1}, x[k], k]Series Expansion of Polylogs (3)
Series expansion coefficients of GeneralizedPolyLog can be written in terms of MultipleHarmonicNumber:
GPLSeriesAsMHN[word_List, x_Symbol, nmax_Integer] /; Not[MemberQ[word, 0]] :=
Module[{k = Length[word], nn, ratios},
ratios = If[k >= 2, word[[ ;; -2]] / word[[2 ;; ]], {}];
Sum[(-1) ^ k(x / word[[1]]) ^ nn * If[k == 1, 1, Inactive[MultipleHarmonicNumber][nn - 1, ConstantArray[1, k - 1],
ratios]] / nn, {nn, 1, nmax}]
];Expand GeneralizedPolyLog[{2, 3}, x] around
up to order 4:
GPLSeriesAsMHN[{2, 3}, x, 4]Compare with Series to validate:
% == Normal[Series[GeneralizedPolyLog[{2, 3}, x], {x, 0, 4}]]//ActivateCompute the generating function of a square of a MultipleHarmonicNumber:
GeneratingFunction[MultipleHarmonicNumber[n, {2, 3}, {1 / 4, 1 / 5}]^2, n, x]Compute the exponential generating function of the product of StirlingS1 and a MultipleHarmonicNumber:
ExponentialGeneratingFunction[StirlingS1[n, 3]MultipleHarmonicNumber[n, {2, 3}], n, x]Discrete Transforms (2)
Compute the ZTransform of a MultipleHarmonicNumber:
ZTransform[MultipleHarmonicNumber[n, {2, 3, 4}, {1 / 4, 1 / 5, -1 / 6}], n, z]Compute the Dirichlet transform of a MultipleHarmonicNumber:
DirichletTransform[MultipleHarmonicNumber[n, {2, 3, 4}, {1 / 4, 1 / 5, -1 / 6}], n, s]Properties & Relations (8)
Equivalent notations for the depth-1 case with unity weight/decoration values:
{MultipleHarmonicNumber[n], MultipleHarmonicNumber[n, {1}], MultipleHarmonicNumber[n, {1}, {1}]}Depth-1 uncolored case reduces to the generalized harmonic number:
MultipleHarmonicNumber[n, {4}]Depth-1 colored case reduces to the decorated harmonic number:
MultipleHarmonicNumber[n, {4}, {1 / 2}]Depth-1 with decoration value
gives the alternating harmonic number:
MultipleHarmonicNumber[n, {1}, {-1}]MultipleHarmonicNumber[n, {2}, {-1}]A HyperHarmonicNumber can be written as a linear combination of MultipleHarmonicNumber instances:
HyperHarmonicNumberToMHN[p_, n_, r_, s_] :=
(1 / Factorial[p - 1]) * Sum[((-1) ^ (l - j)) * Abs[StirlingS1[p, l]] * Binomial[l - 1, j - 1] * (n ^ (j - 1)) * Inactive[MultipleHarmonicNumber][n, {r + j - l}, {s}], {j, 1, p}, {l, j, p}]Write the identity for a specific set of parameters:
With[{n = 10, r = 2, s = 1 / 6, p = 3},
Inactive[HyperHarmonicNumber][p, n, r, s] == HyperHarmonicNumberToMHN[p, n, r, s]
]Activate[%]When the defining series converges, the
limit coincides with the corresponding multiple zeta/polylog values:
MultipleHarmonicNumber[∞, {2, 4, 6}] === MultipleZeta[{2, 4, 6}]MultipleHarmonicNumber[∞, {2, 4, 6}, {1 / 3, 1 / 5, 1 / 7}] === MultiplePolyLog[{2, 4, 6}, {1 / 3, 1 / 5, 1 / 7}]Use the stuffle product to expand a product of multiple harmonic numbers into a sum:
MultipleHarmonicNumber[n, {2, 3}] * MultipleHarmonicNumber[n, {2, 1}] == ResourceFunction["StuffleProductExpand"][MultipleHarmonicNumber[n, {2, 3}]MultipleHarmonicNumber[n, {2, 1}]]Verify the identity by plugging in a value for
:
% /. n -> 10//ActivateMultipleHarmonicNumber satisfies a first-order depth-peeling recurrence in
:
![]()
Build the sequence by solving the recurrence with RecurrenceTable:
MHNRecurrence[nmax_Integer ? NonNegative, r_List, s_List] /; Length[r] == Length[s] :=
Module[{d = Length[r], h, n},
With[
{
eqns = Join[Table[n ^ r[[j]] (h[j, n] - h[j, n - 1]) == s[[j]] ^ n h[j + 1, n - 1], {j, d}], {h[d + 1, n] == 1}], inits = Join[Table[h[j, 0] == 0, {j, d}], {h[d + 1, 0] == 1}], vars = Array[h[#, n]&, d + 1]
},
RecurrenceTable[{eqns, inits}, vars, {n, 1, nmax}][[All, 1]]
]
]Enumerate the recurrence for some fixed parameters:
MHNRecurrence[10, {4, 6, 2}, {1 / 2, -1, 2 / 3}]Validate by comparing with direct evaluation:
% == Table[MultipleHarmonicNumber[n, {4, 6, 2}, {1 / 2, -1, 2 / 3}], {n, 10}]Define the utility modZeroQ to test whether a rational expr is 0 mod m:
modZeroQ[expr_, m_Integer] := Module[{t = Together[expr], num, den}, num = Numerator[t];den = Denominator[t];
If[CoprimeQ[den, m], Mod[num * PowerMod[den, -1, m], m] == 0, False]
];Verify the congruence
across many primes (for p > l s +3):
With[{s = 3, l = 2},
rList = ConstantArray[s, l];
primes = Select[Prime[Range[100]], # >= Total[rList] + 3&];AllTrue[primes, modZeroQ[MultipleHarmonicNumber[# - 1, rList], #]&]
]Related Guides
History
Introduced in 2026 (15.0)
Text
Wolfram Research (2026), MultipleHarmonicNumber, Wolfram Language function, https://reference.wolfram.com/language/ref/MultipleHarmonicNumber.html.
CMS
Wolfram Language. 2026. "MultipleHarmonicNumber." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/MultipleHarmonicNumber.html.
APA
Wolfram Language. (2026). MultipleHarmonicNumber. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/MultipleHarmonicNumber.html
BibTeX
@misc{reference.wolfram_2026_multipleharmonicnumber, author="Wolfram Research", title="{MultipleHarmonicNumber}", year="2026", howpublished="\url{https://reference.wolfram.com/language/ref/MultipleHarmonicNumber.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_multipleharmonicnumber, organization={Wolfram Research}, title={MultipleHarmonicNumber}, year={2026}, url={https://reference.wolfram.com/language/ref/MultipleHarmonicNumber.html}, note=[Accessed: 12-June-2026]}