多項式・指数・対数関数の極限、増大のスピード比較

どうも、木村(@kimu3_slime)です。

多項式、指数、対数関数は、\(x\)を大きくすると無限大に発散しますが、そのスピードには違いがあります。今回は、指数関数的な増大の強さ、無限大での極限の発散のスピードを比較した結果を紹介します。

 

発散のスピード

今回比較したい関数は、\(\log_e x, x^a ,x^b , e^x\)です。ただし、\(0<a<b\)とします。どの関数も、\(x\)が大きくなれば限りなく大きくなり、\(x\to \infty\)で無限大に発散するという点は同じです。

しかし、その発散のスピードが違います。結論から言えば、対数関数が最も遅く、多項式(べき関数)はその中間で、指数関数が最も速いです。

指数関数の図では、縦軸が対数目盛となっている、つまり\(\log x^{100},\log e^x\)のグラフであることに注意。巨大な数は対数スケールでないと変化が目で追えません。

この発散のスピードは、極限の言葉を使えば次のように表せるものです。

\[\lim_{x\to \infty} \frac{x^a}{\log_e x}= \infty\]

\[\lim_{x\to \infty} \frac{x^b}{x^a}= \infty\]

\[\lim_{x\to \infty} \frac{e^x}{x^b}= \infty\]

\[\lim_{x\to \infty} \frac{\log_e x}{x^a}= 0\]

\[\lim_{x\to \infty} \frac{x^a}{x^b}= 0\]

\[\lim_{x\to \infty} \frac{x^b}{e^x}= 0\]

\(\log_e x\)より\(x^a\)の方が「より速く」無限大に近づくというイメージは、この極限によって表されています。分母分子ともに無限大へ向かうという点は同じですが、比を取って比べると、どちらが勝っているかわかります。\(x^a\)より\(x^b\)、\(x^b\)より\(e^x\)の方がより速く増大するわけです。

ここでは多項式というよりは、単純に\(x^a\)のようなべき関数を考えています。多項式も、無限大に発散するようなものならば、結局は最高次数の大きさによって発散のスピードが変わるので。

 

以上の結果はなぜそうなるのか、証明してみましょう。

まず基本的な事実として、\(x>0\)のときこれらの関数を微分すると

\[(\log_e x)^\prime = \frac{1}{x}\]

\[(x^a)^\prime = a x ^{a-1}\]

\[(e^x)^\prime = e^x\]

となります。対数関数はその値が大きくなるほど、変化率\(\frac{1}{x}\)が小さくなるので、めちゃくちゃ遅く増大していそうです。一方、指数関数は変化率が\(e^x\)そのものなので、\(e^x\)が大きくなるほど変化率がさらに増えて爆発的に増加しそうです。べき関数は、次数が1落ちるので、中間くらいですね。

 

まず、べき関数はべきの指数が大きいほど速く発散することについて。これは単純にひとまとめにして、

\[\begin{eqnarray} \lim_{x\to \infty} \frac{x^a}{x^b}&=& \lim_{x\to \infty} \frac{1}{x^{b-a}} \\&=&0 \end{eqnarray}\]

ですね。\(b-a>0\)なので、\(\lim _{x \to \infty}x^{b-a}= \infty\)となるからです。

 

続いて、べき関数\(x^b\)と指数関数\(e^x\)の比較について。

\(b\)は一般に実数であり自然数ではありませんが、\(b\)より大きな自然数\(n\)を使って比べます。例えば、\(x>0\)において

\[\frac{1}{n!} x^n \leq  e^x\]

という不等式が成り立つことが示せます。

これはテイラー展開

\[e^x = \sum_{k=0}^\infty \frac{1}{k!}x^k\]

を知っていると簡単です(そもそも、この式を指数関数の定義とすることがある)。\(x>0\)のとき右辺は正の数の和の極限であり、有限個\(n\)までの和の方が当然少なくなるので。

知らなくても、繰り返し微分をすれば不等式を導くことができます。

\[f_n (x) = e^x – \sum_{k=0}^n \frac{1}{k!}x^k\]

と置き、\(x \geq 0\)、\(n\)が自然数のとき、\(f_n (x) \geq 0\)を示せば良いです。

数学的帰納法で示します。\(n=1\)のとき、\(f_1 ^\prime (x) =e^x -1\)なので、\(x\geq 0\)では単調増加です。さらに\(f_1(0)=e^0-1=0\)なので、\(f_1(x) \geq 0\)と言えました。

\(n=\ell\)、\(\ell\)は自然数のとき、\(f_\ell (x) \geq 0\)と仮定しましょう。このとき、

\[\begin{eqnarray}  (f_{\ell+1})^\prime (x) &=& e^x -\sum_{k=0}^\ell \frac{1}{k!}x^k \\&=& f_{\ell}(x) \\ &\geq& 0  \end{eqnarray}\]

で、\(x \geq 0\)のとき\(f_{\ell +1}\)は単調増加です。また、\(f_{\ell+1}(0)=e^0-1=0\)なので、\(f_{\ell+1}(x) \geq 0\)が言えました。

よって、\(x>0\)のとき

\[\begin{eqnarray}  0 &<&\frac{ x^b}{e^x} \\ &\leq& \frac{ x^n }{e^x}\\ &=& \frac{x^{n+1} }{ xe^x } \\ &\leq & \frac{(n+1)! e^x}{x e^x}\\ &= & \frac{(n+1)! }{x} \end{eqnarray}\]

で、\(n\)は\(x\)に依存していないことに注意すれば、\(\lim_{x\to \infty}\frac{(n+1)!}{x} =0\)。はさみうちの原理から

\[\lim _{x\to \infty} \frac{x^b}{e^x}=0\]

が示せました。

 

最後に、対数関数\(\log _e x\)とべき関数\(x^a\)の比較をします。

\(y= \log _e x\)と置くと、\(x \to \infty\)のとき\(y \to \infty\)でもあります。また、べき関数の定義から、\(x^a =e^{a \log_e x}=e^{ay}\)です。\(z=ay\)と置けば、\(a>0\)から\(x\to \infty\)のとき\(z\to \infty\)でもあります。よって、べき関数と指数関数の結果を使うことができ、

\[\begin{eqnarray} \lim_{x\to \infty} \frac{x^a}{\log_e x} &=& \lim_{y \to \infty} \frac{y}{e^{ay}} \\ &=& \lim_ {z\to \infty}\frac{\frac{1}{a}z }{e^z}\\&=& 0\end{eqnarray}\]

と言えました。

 

収束のスピードを比較する結果

\[\lim_{x\to \infty} \frac{\log_e x}{x^a}= 0\]

\[\lim_{x\to \infty} \frac{x^a}{x^b}= 0\]

\[\lim_{x\to \infty} \frac{x^b}{e^x}= 0\]

は、ランダウの記号を使えば、

\[\log_e x = o(x^a)\quad(x\to \infty)\]

\[x^a = o(x^b)\quad(x\to \infty)\]

\[x^b = o(e^x)\quad(x\to \infty)\]

と表せます。対数関数はどんなべき関数よりも高次の無限小、べき関数同士はべきが小さい方が高次の無限小、どんなべき関数も指数関数より高次の無限小です。

発散のスピードの速さは、関数のオーダーとも呼ばれます。複雑な関数であっても、結局\(x\to \infty\)において、対数・べき関数・指数のどのオーダーで増大するのか判別するのは大事です。

コンピュータサイエンス・アルゴリズムの分野では、インプット数\(n\)に対する計算時間\(f(n)\)がどのオーダーなのか考えます。多項式時間で解ける問題はP問題、どうやっても多項式時間にならない問題はNP問題と呼ばれるものです。

 

今回は標準的な底として\(e\)を使いましたが、一般の底でも定数倍の差しかないので、結果は同じになります。\(c \neq 1, c>0\)として

\[\log_c x = \frac{\log _e x}{\log _e c}\]

\[c^x = e^{(\log_e c) x }\]

となるので。10を底とする対数関数(常用対数)は対数関数の仲間、2や10のべき乗\(2^x,10^x\)は指数関数の仲間で、それぞれがべき関数とは違う増大度を持っているわけです。

 

以上、多項式・指数・対数関数の極限での発散のスピード比較を紹介してきました。

1次関数の傾きがどんなに大きかったとしても、指数関数の増大に勝つことはできません。それはマルサスの法則と呼ばれるものです。

参考:人類は必ず食糧問題に直面する? マルサスの法則と微分方程式

対数、多項式、指数に関する増大度の違いの感覚を持つことは、教養として数学を理解する上でも大事なことだと思います。\(x\)が小さな値のときの変化に惑わされず、増大度の違いを見分けられるようになってみてください。

木村すらいむ(@kimu3_slime)でした。ではでは。

 

明解演習微分積分 (明解演習シリーズ)
小寺 平治(著)
共立出版 (1984-12-21T00:00:01Z)
5つ星のうち4.2
¥682 (中古品)

 

解析入門 原書第3版

解析入門 原書第3版

posted with AmaQuick at 2021.07.29
S.ラング(著), 松坂 和夫(翻訳), 片山 孝次(翻訳)
岩波書店 (1978-03-23T00:00:01Z)
5つ星のうち4.7
¥5,060

 

続 解析入門 (原書第2版)

続 解析入門 (原書第2版)

posted with AmaQuick at 2021.07.29
S.ラング(著), 松坂 和夫(翻訳), 片山 孝次(翻訳)
岩波書店 (1981-11-15T00:00:01Z)
5つ星のうち4.7
¥5,720

 

解析入門 Ⅰ(基礎数学2)

解析入門 Ⅰ(基礎数学2)

posted with AmaQuick at 2021.07.29
杉浦 光夫(著)
東京大学出版会 (1980-03-31T00:00:01Z)
5つ星のうち4.5
¥3,080

 

解析入門 Ⅱ(基礎数学3)

解析入門 Ⅱ(基礎数学3)

posted with AmaQuick at 2021.07.29
杉浦 光夫(著)
東京大学出版会 (1985-04-25T00:00:01Z)
5つ星のうち4.6
¥1,884 (中古品)

 

こちらもおすすめ

人類は必ず食糧問題に直面する? マルサスの法則と微分方程式

有名な極限の公式f(x)/xの覚え方:接線近似とテイラー展開

商f/gの微分公式の覚え方:合成関数・積の微分による導出・証明

なぜe(オイラー数)を学ぶ? 指数関数、対数関数の微分を単純化

微分方程式の解でなぜ指数関数(exp・ネイピア数)が現れるか