スターリングの公式
スターリングの公式は、大きな数の階乗計算を簡略化するための不可欠な道具であり、迅速かつ実用的なおおよそを与えるものである。
この結果は、非常に大きな数を扱うことが一般的である熱力学、確率論、漸近解析といった分野において特に有用である。その展開を理解することは、その応用を容易にするだけでなく、効率的な計算や複雑な問題解決におけるその重要性を理解することにもつながる。
学習目標:
本講義を修了した学生は以下ができるようになる
- 理解する:ガンマ関数による階乗の定義からスターリングの公式を導出する。
- 応用する:スターリングの公式を用いて非常に大きな数の階乗を近似する。
- 計算する:対数と指数の基本的な道具を用いて階乗の対数近似を行う。
内容目次:
スターリングの公式の証明
階乗の対数近似
例:非常に大きな数の階乗の近似
スターリングの公式の証明
スターリングの公式の展開は、ガンマ関数による階乗の定義から始まる。それは次のように表される:
n! =\Gamma(n+1) = \displaystyle \int_0^\infty t^n e^{-t} \, dt
この式を用いて変数変換を行う:t = nx。これは x \in [0, \infty[ および dt = n dx を意味する。この変換により、積分は次のように変形される:
n! = \Gamma(n+1) = \displaystyle \int_0^\infty (nx)^n e^{-nx} n \, dx = n^{n+1} \int_0^\infty x^n e^{-nx} dx
次に、二度目の変数変換を行う:x = 1 + \dfrac{s}{\sqrt{n}}。これにより:
\begin{array}{rl} & s = (x-1)\sqrt{n}, \quad s \in [-\sqrt{n}, \infty[ \\ \\ & dx = \dfrac{ds}{\sqrt{n}} \end{array}
この変換を用いると、積分は次の形を取る:
\begin{array}{rl} n! = \Gamma(n+1) &= \displaystyle n^{n+1} \int_{-\sqrt{n}}^\infty \left( 1 + \dfrac{s}{\sqrt{n}} \right)^n e^{-n\left(1+\dfrac{s}{\sqrt{n}}\right)} \dfrac{ds}{\sqrt{n}} \\ \\ &= \displaystyle \dfrac{n^{n+1}}{\sqrt{n}} \int_{-\sqrt{n}}^\infty e^{n\ln\left( 1 + \dfrac{s}{\sqrt{n}} \right)} e^{-n - s\sqrt{n}} ds \\ \\ &= \displaystyle n^n e^{-n} \sqrt{n} \int_{-\sqrt{n}}^\infty e^{n\ln\left(1+\dfrac{s}{\sqrt{n}}\right) - s\sqrt{n}} ds \end{array}
ここで自然対数のテイラー級数展開を用いる:
\ln(1+x) = \displaystyle\sum_{k=1}^{\infty} \dfrac{(-1)^{k+1}x^k}{k}
この展開を \ln\left(1+\dfrac{s}{\sqrt{n}}\right) に適用すると、指数関数の式は次のように展開される:
\begin{array}{rl} n\ln\left(1+\dfrac{s}{\sqrt{n}}\right) - s\sqrt{n} & = \displaystyle n \left[\sum_{k=1}^{\infty} \dfrac{(-1)^{k+1}\left(\dfrac{s}{\sqrt{n}} \right)^k}{k} \right] - s\sqrt{n} \\ \\ & = n \left[ \dfrac{s}{\sqrt{n}} - \dfrac{s^2}{2n} + \dfrac{s^3}{3n\sqrt{n}} - \dfrac{s^4}{4n^2} + \dfrac{s^5}{5n^2\sqrt{n}} \cdots \right] - s\sqrt{n} \\ \\ & = s\sqrt{n} - \dfrac{s^2}{2} + \dfrac{s^3}{3\sqrt{n}} - \dfrac{s^4}{4n} + \dfrac{s^5}{5n\sqrt{n}} \cdots - s\sqrt{n} \\ \\ & = - \dfrac{s^2}{2} + \dfrac{s^3}{3\sqrt{n}} - \dfrac{s^4}{4n} + \dfrac{s^5}{5n\sqrt{n}} \cdots \\ \\ & = - \dfrac{s^2}{2} + \displaystyle \sum_{k=3}^\infty \dfrac{(-1)^{k+1}s^k}{k\sqrt{n^{k-2}}} \end{array}
したがって、完全な式は次のように書くことができる:
n! = \Gamma(n+1) = \displaystyle n^n e^{-n} \sqrt{n} \int_{-\sqrt{n}}^\infty e^{- \dfrac{s^2}{2} + \displaystyle \sum_{k=3}^\infty \dfrac{(-1)^{k+1}s^k}{k\sqrt{n^{k-2}}}} ds
この結果は、非常に大きな数の階乗を計算するために基本的なものである。n が大きくなるにつれて、指数の中の総和項は 0 に収束し、支配的な項のみが残る。これにより積分は単純化され、ガウス積分として解くことができる:
n! = \Gamma(n+1) \approx \displaystyle n^n e^{-n} \sqrt{n} \int_{-\infty}^\infty e^{- \frac{s^2}{2}} ds = n^n e^{-n} \sqrt{n} \sqrt{2\pi}
この結果は、大きな数の階乗に対するスターリングの公式として知られている:
\boxed{n! \approx \sqrt{2\pi n}\left(\dfrac{n}{e}\right)^{n}}
階乗の対数近似
スターリングの公式から直接導かれる結果の一つが、階乗の対数近似である。スターリングの公式の自然対数を取ると、次を得る:
\begin{array}{rcl} \ln(n!) \approx \ln\left( \sqrt{2n\pi}\left(\dfrac{n}{e}\right)^{n} \right) &=& \dfrac{1}{2}\ln(2n\pi) + n\ln\left(\dfrac{n}{e}\right) \\ \\ &=& \dfrac{1}{2}\ln(2n\pi) + n\ln(n) - n \\ \\ &\approx & n\ln(n) - n \end{array}
最後のステップでは、項 \dfrac{1}{2}\ln(2n\pi) を無視する追加の近似が行われる。この項は、n が大きい値の場合、n\ln(n) - n に比べて無視できるほど小さくなる。
この近似の妥当性は、両者の表現の間の相対誤差を計算することで正当化される:
\begin{array}{rcl} \text{初期近似} & = & \dfrac{1}{2}\ln(2n\pi) + n\ln(n) - n \\ \\ \text{最終近似} & = & n\ln(n) - n \\ \\ \text{相対誤差} &=& \dfrac{\text{最終近似} - \text{初期近似}}{\text{初期近似}} \\ \\ &=& \dfrac{-\dfrac{1}{2}\ln(2n\pi)}{\dfrac{1}{2}\ln(2n\pi) + n\ln(n) - n} \end{array} n \to \infty のときの極限を計算すると:
\begin{array}{rl} \displaystyle \lim_{n\to\infty} \text{相対誤差} & = \displaystyle \lim_{n\to\infty} \dfrac{-\dfrac{1}{2}\ln(2n\pi)}{\dfrac{1}{2}\ln(2n\pi) + n\ln(n) - n} \\ \\ & = \displaystyle \lim_{n\to\infty} \dfrac{-\dfrac{1}{2n}}{\dfrac{1}{2n} + \ln(n) + 1 - 1} = 0 \end{array}
したがって、誤差が n の大きな値に対して 0 に収束するため、次の対数近似を安心して用いることができる:
\boxed{\ln(n!) \approx n\ln(n) - n}
例:非常に大きな数の階乗の近似
10.000! のような非常に大きな数の階乗を計算することは、その結果の大きさのために通常の道具ではほとんど不可能である。しかし、スターリングの公式から導かれる階乗の対数近似を用いれば、基本的な計算機でも扱えるようになる。
階乗の対数公式は次を与える:
\ln(10.000!) \approx 10.000 \ln(10.000) - 10.000
自然対数 (\ln) を常用対数 (\log) に変換するには、次の関係を用いる:
\ln(10.000!) = \dfrac{\log(10.000!)}{\log(e)}
これは次を意味する:
\log(10.000!) \approx \log(e) \cdot (10.000 \ln(10.000) - 10.000)
したがって:
10.000! \approx 10^{\log(e) \cdot (10.000 \ln(10.000) - 10.000)} \approx 10^{35.657,06}
ここで注目すべきは、指数に現れる表現がほとんどの計算機で扱える範囲に収まるという点である。このように、数自体を視覚化することはできなくても、その桁数がおよそ 35,657 桁であることが分かる。このアプローチによって、一見不可能に思える計算が実行可能なものとなる。
