Определение: гармонический ряд (частичная сумма) Hn=∑k=1n1k.
H_n=\sum_{k=1}^n\frac{1}{k}. Hn=k=1∑nk1. Ассимптотика (Эйлер—Маклорен): для больших nnnHn=lnn+γ+12n−112n2+1120n4−⋯ ,
H_n=\ln n+\gamma+\frac{1}{2n}-\frac{1}{12n^2}+\frac{1}{120n^4}-\cdots, Hn=lnn+γ+2n1−12n21+120n41−⋯,
или в общем виде Hn=lnn+γ+12n−∑k≥1B2k2k n2k,
H_n=\ln n+\gamma+\frac{1}{2n}-\sum_{k\ge1}\frac{B_{2k}}{2k\,n^{2k}}, Hn=lnn+γ+2n1−k≥1∑2kn2kB2k,
где B2kB_{2k}B2k — числа Бернулли. Число Эйлера—Маскерони γ≈0.5772156649\gamma\approx0.5772156649γ≈0.5772156649. Простые оценки: ln(n+1)≤Hn≤1+lnn
\ln(n+1)\le H_n\le 1+\ln n ln(n+1)≤Hn≤1+lnn
(интегральное сравнение), и уточнённая оценка остатка 12(n+1)<Hn−lnn−γ<12n,
\frac{1}{2(n+1)}<H_n-\ln n-\gamma<\frac{1}{2n}, 2(n+1)1<Hn−lnn−γ<2n1,
откуда видно, что при приближении Hn≈lnn+γH_n\approx\ln n+\gammaHn≈lnn+γ ошибка порядка O(1/n)O(1/n)O(1/n). Практические рекомендации для больших nnn: - Для быстрой и достаточно точной оценки достаточно двух первых поправок: Hn≈lnn+γ+12n−112n2,
H_n\approx\ln n+\gamma+\frac{1}{2n}-\frac{1}{12n^2}, Hn≈lnn+γ+2n1−12n21,
ошибка тогда O(1/n4)O(1/n^4)O(1/n4). - Для высокой точности берут ещё члены с числами Бернулли по формуле Эйлера—Маклорена. - На практике ещё удобнее и точнее вычислять через дигамма-функцию: Hn=ψ(n+1)+γ,
H_n=\psi(n+1)+\gamma, Hn=ψ(n+1)+γ,
где ψ\psiψ — производная логарифма гамма-функции; большинство библиотек даёт ψ\psiψ с высокой точностью. Вывод: лучшая стратегия для больших nnn — использовать асимптотику Эйлера—Маклорена с несколькими членами или встроенную функцию ψ\psiψ; приближение lnn+γ+12n−112n2\ln n+\gamma+\tfrac{1}{2n}-\tfrac{1}{12n^2}lnn+γ+2n1−12n21 даёт хорошее соотношение точности и простоты.
Hn=∑k=1n1k. H_n=\sum_{k=1}^n\frac{1}{k}.
Hn =k=1∑n k1 .
Ассимптотика (Эйлер—Маклорен): для больших nnn Hn=lnn+γ+12n−112n2+1120n4−⋯ , H_n=\ln n+\gamma+\frac{1}{2n}-\frac{1}{12n^2}+\frac{1}{120n^4}-\cdots,
Hn =lnn+γ+2n1 −12n21 +120n41 −⋯, или в общем виде
Hn=lnn+γ+12n−∑k≥1B2k2k n2k, H_n=\ln n+\gamma+\frac{1}{2n}-\sum_{k\ge1}\frac{B_{2k}}{2k\,n^{2k}},
Hn =lnn+γ+2n1 −k≥1∑ 2kn2kB2k , где B2kB_{2k}B2k — числа Бернулли. Число Эйлера—Маскерони γ≈0.5772156649\gamma\approx0.5772156649γ≈0.5772156649.
Простые оценки:
ln(n+1)≤Hn≤1+lnn \ln(n+1)\le H_n\le 1+\ln n
ln(n+1)≤Hn ≤1+lnn (интегральное сравнение), и уточнённая оценка остатка
12(n+1)<Hn−lnn−γ<12n, \frac{1}{2(n+1)}<H_n-\ln n-\gamma<\frac{1}{2n},
2(n+1)1 <Hn −lnn−γ<2n1 , откуда видно, что при приближении Hn≈lnn+γH_n\approx\ln n+\gammaHn ≈lnn+γ ошибка порядка O(1/n)O(1/n)O(1/n).
Практические рекомендации для больших nnn:
- Для быстрой и достаточно точной оценки достаточно двух первых поправок:
Hn≈lnn+γ+12n−112n2, H_n\approx\ln n+\gamma+\frac{1}{2n}-\frac{1}{12n^2},
Hn ≈lnn+γ+2n1 −12n21 , ошибка тогда O(1/n4)O(1/n^4)O(1/n4).
- Для высокой точности берут ещё члены с числами Бернулли по формуле Эйлера—Маклорена.
- На практике ещё удобнее и точнее вычислять через дигамма-функцию:
Hn=ψ(n+1)+γ, H_n=\psi(n+1)+\gamma,
Hn =ψ(n+1)+γ, где ψ\psiψ — производная логарифма гамма-функции; большинство библиотек даёт ψ\psiψ с высокой точностью.
Вывод: лучшая стратегия для больших nnn — использовать асимптотику Эйлера—Маклорена с несколькими членами или встроенную функцию ψ\psiψ; приближение lnn+γ+12n−112n2\ln n+\gamma+\tfrac{1}{2n}-\tfrac{1}{12n^2}lnn+γ+2n1 −12n21 даёт хорошее соотношение точности и простоты.