積分を使ってべき乗和の公式を導出してみる

# べき乗和の公式とは
高校数学の数列の単元で登場する有名公式です．名前になじみはないかもしれませんが以下の式は見たことがあるかと思います．
```math
S_m(n) = 1^m + 2^m + \dots + n^m = \sum_{k=1}^n k^m
```
この和を求める公式として
```math
\begin{align}
    S_0(n) &= n \\
    S_1(n) &= \frac{1}{2}n(n + 1) \\
    S_2(n) &= \frac{1}{6}n(n + 1)(2n + 1)
\end{align}
```
などが存在しています．これらの式は多くの方になじみがあるかと思います．

本記事では各$m$に対する$S_m(n)$を積分を用いて導出する方法を解説したいと思います．

# 導出の方法
正整数$m$に対して$S_{m-1}(n)$の公式は導出されていると仮定します．このもとで以下のようなステップで$S_m(n)$の公式を導出していきます．

1. $S_{m-1}(n)$を不定積分します[^1] (積分定数は不要)．
1. $m$を掛ける．
1. 定数$B_m$を用意して$B_m n$を足す．
1. $n = 1$としたときに結果が$1$になるように$B_m$を決定する．

これだけです．

# 例
試しに$S_0(n) = n$から$S_1(n)$を導出してみましょう．

1. $S_0(n)$を不定積分すると
    ```math
    \int S_0(n)dn = \frac{1}{2}n^2
    ```
1. $m = 1$を掛けて
    ```math
    1 \times \frac{1}{2}n^2 = \frac{1}{2}n^2
    ```
1. $B_1n$を足して
    ```math
    \frac{1}{2}n^2 + B_1n
    ```
1. $n = 1$のとき$1$になるようにすると
    ```math
    \begin{align}
        \frac{1}{2} \times 1^2 + B_1 \times 1 &= 1 \\
        B_1 &= \frac{1}{2}
    \end{align}
    ```

以上より
```math
S_1(n) = \frac{1}{2}n^2 + \frac{1}{2}n = \frac{1}{2}n(n + 1)
```
と$S_1(n)$を求めることができました．

# この方法で求まる理由
$S_m(n)$の定義域を実数に拡張した関数$S_m(x)$がある定数$B_m$を用いて
```math
\left\{
\begin{aligned}
    S_0(x) &= x \\
    S_m(x) &= m\int_0^x S_{m-1}(y)dy + B_mx
\end{aligned}
\right.
```
と表せることを示せばよいです．
特に下の式を$x$で微分すると
```math
S_m'(x) = mS_{m-1}(x) + B_m \tag{1}
```
となります．

$m \geq 0$に関する数学的帰納法で示します．

$m = 0$の時は$S_0(n) = n$なので明らかに成り立ちます．また$B_0 = 1$とします．

$0$から$m-1$のとき(1)式が成立することを仮定します．このもとで
$m$の場合を考えていきます．
まず，
```math
(k + 1)^{m + 1} - k^{m + 1} = \sum_{i=0}^m {}_{m+1}C_i k^i
```
という恒等式に対して両辺$k=1$から$n$までで和をとると
```math
(n + 1)^{m+1} - 1 = \sum_{i=0}^m {}_{m+1}C_i S_i(n)
```
となります．
さらにこの式の両辺の$n$を実数$x$に拡張し
```math
(x + 1)^{m+1} - 1 = \sum_{i=0}^m {}_{m+1}C_i S_i(x)
```
とします．
$S_m(x)$について解けば
```math
S_m(x) = \frac{(x + 1)^{m+1}}{m+1} - \frac{1}{m+1} - \frac{1}{m+1}\sum_{i=0}^{m-1} {}_{m+1}C_i S_i(x) \tag{2}
```
となります．
この両辺を$x$で微分することによって
```math
S_m'(x) = (x + 1)^m - \frac{1}{m + 1}\sum_{i=0}^{m-1} {}_{m+1}C_i S_i'(x)
```
と$S_m'(x)$を$S_0'(x),S_1'(x),\dots,S_{m-1}'(x)$を用いて表せました．
帰納法の仮定((1)式)を用いることによって
```math
\begin{align}
S_m'(x) &= (x + 1)^m - \frac{1}{m+1}\sum_{i=1}^{m-1} {}_{m+1}C_i\left(iS_{i-1}(x) + B_i\right) - \frac{1}{m+1} \\
        &= (x + 1)^{m} - \sum_{i=0}^{m-2} \frac{(i+1) {}_{m+1}C_{i+1}}{m+1} S_{i}(x) - \frac{1}{m+1}\sum_{i=0}^{m-1} {}_{m+1}C_i B_i + 1 \\
        &= (x + 1)^m - 1 - \sum_{i=0}^{m-2} {}_mC_i S_i(x) + 1 - \frac{1}{m+1}\sum_{i=0}^{m-1} {}_{m+1}C_i B_i \\
        &= m S_{m-1}(x) + 1 - \frac{1}{m+1}\sum_{i=0}^{m-1} {}_{m+1}C_i B_i \quad \left( (2)より \right)
\end{align}
```
となるので
```math
\begin{align}
    &B_m = 1 - \frac{1}{m+1}\sum_{i=0}^{m-1} {}_{m+1}C_i B_i \\
    \Leftrightarrow & \sum_{i=0}^m {}_{m+1}C_i B_i = m + 1
\end{align}
```
とすることで(1)式を満たすことが分かります．
(1)式で両辺$x = 0$から$y$で積分することによって
```math
\begin{align}
    &S_m(y) - S_m(0) = m\int_0^y S_{m-1}dx + B_my \\
    \Leftrightarrow & S_m(x) = m\int_0^x S_{m-1}(y)dy + B_mx
\end{align}
```
となり$m$の場合でも成立することが示されました．

# B_mの正体
これまでの数式で登場した$B_m$という数列には「ベルヌーイ数」という名前がついていて最初数項は以下のようになります[^2]．
| $m$ | 0 | 1 | 2 | 3 | 4 |
|:-:|:-:|:-:|:-:|:-:|:-:|
|  $B_m$ | 1 | $\frac{1}{2}$ | $\frac{1}{6}$ | $0$ | $-\frac{1}{30}$ |

このベルヌーイ数はべき乗和の公式以外にも様々な応用が存在するようです．

# 参考文献
https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A6%E3%83%AB%E3%83%8F%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E5%85%AC%E5%BC%8F

https://ja.wikipedia.org/wiki/%E3%83%99%E3%83%AB%E3%83%8C%E3%83%BC%E3%82%A4%E6%95%B0

[^1]: 厳密には$S_{m-1}(n)$の定義域を実数に拡張して$S_{m-1}(x)$などとするべきですが，アルゴリズムには影響しないので省略しています．
[^2]: $B_1 = -\frac{1}{2}$とする流儀も存在します．