まだロピタルの定理で消耗してるの?

メモを整理していたら, 大昔に友人に $$\lim _ {x\to0}\frac{x-\sin{x}}{x ^ 3}$$ を l’Hôpital の定理を使わずに教えてくれと聞かれたことをふと思い出しました. 当時の自分は次の画像を作って送ったようです.

f:id:all_for_nothing:20201216144555j:plain

こんなパズルみたいな計算は嫌なので l’Hôpital の定理を使うべきな気がしてきます……しかし適用条件は限定的であり, かつそう簡単には求まらないケースも多く存在しています. どうすればよいのでしょうか? この疑問に東京大学大学院数理科学研究科の岡本和夫教授は「数学の素朴な疑問(受験編)」という記事で次のように答えています.

Q. ……極限値の計算で, ロピタルの定理の使い方です. $f(a)=g(a)=0$ のとき, ロピタルの定理より, 求める値は $$\lim_{x\to a}\frac{f(x)}{g(x)}=\frac{f'(a)}{g'(a)}$$ とだけ書いたら説明不足でしょうか.

A. ロピタルの定理は, 正確には de l’Hôpital の定理です. この定理は意味を良く理解していないで使うと, 間違える危険性があります. 試験で誤って利用したら, バッサリと減点されるでしょうね. そもそも私はこの定理は嫌いです……ロピタルの定理は, コーシーの平均値の定理 $$\frac{f(b)-f(a)}{g(b)-g(a)}=\frac{f'(c)}{g'(c)}\quad a < c < b$$ から導くことができます. 関数 $f(x)$, $g(x)$ に関する仮定, 定理の証明などについては, 教科書「数学Ⅲ」に書きました. 「発展」を参照してください.

Q. $b\to a$ とすればロピタルの定理ですね. 「発展」には, テーラー展開等の公式もこれを利用して導いてあります.

A. テーラー展開は関数の多項式近似でもありますから, これを知っていればロピタルの定理をわざわざ使う必要はありません. 正しい極限値が計算できていれば, その根拠としては, 「ロピタルの定理」というより「テーラー展開」と書いてある方が, 答案の書き手の, 数学に対する理解の深さがよりよく伝わって来ると思います.

なんと l’Hôpital の定理より Taylor 展開の方が本質的だということです. 関数において極限に寄与する主要な項を多項式で近似できるということは, 全体としてどのような挙動を示しながら極限に近づくかを調べられるということです.

しかしながら, そのまま Taylor 展開を用いると極限に寄与しない部分の説明をある程度する必要があり煩雑です. これを解消するのが Landau の記号であり, その定義は『岩波数学辞典 第4版』によると次のようになされています.

複素数値関数 $f$ ($X-\lbrace a\rbrace\to\bm{C}$ の写像) が $x\to a$ のとき $f(x)\to\infty$, または $f(x)\to 0$ の場合, それぞれ $f$ を単に $a$ における無限大 (infinity), または無限小 (infinitesimal) という. 2つの無限大 $f$, $g$ に対して, $f/g$ が無限小のとき, $f$ を $g$ より低位の (lower order) 無限大, $g$ を $f$ より高位の (higher order) 無限大という. $f/g$, $g/f$ がともに有界であるとき, $f$, $g$ は同位の (same order) 無限大といい, 仮に $f\sim g$ と表す. この関係は同値関係である. $f\sim g ^ n$ のとき, $f$ は $g$ に関して $\bm{n}$ 位の無限大という. $f$, $g$ が無限小のとき, $f/g$ が無限小なら, $f$ は $g$ より高位の無限小, $g$ は $f$ より低位の無限小という. 同位の無限小, $\bm{n}$ 位の無限小は, 無限大のときと同様に定義する. 特に, $X=\bm{C}$ で $a=\infty$ のとき, 無限大については $g(z)=z$, 無限小については $g(z)=z ^ {-1}$ のとき, ‘$g$ に関して’ を省略して, $f\sim z ^ n$ または $f\sim z ^ {-n}$ のときを無限大の位数または無限小の位数というのが普通である.

無限大 (無限小) の位数の記述を簡単にするため, E. Landau [9] 以来次の慣用記号がある. $f$, $g$ を関数とする. $x\to a$ のとき $|f(x)/g(x)|$ が有界ならば, $f(x)$ は (たかだか) $g(x)$ の位数 (英 order 独 Ordnung) にあるといい, $x\to a$ のとき $f(x)=O(g(x))$ と書き, $f(x)/g(x)$ が $a$ における無限小のとき, $f(x)$ は $g(x)$ より小さい位数にあるといい, $x\to a$ のとき $f(x)=o(g(x))$ と書く. $O$, $o$ は Ordnung の頭字にちなむもので, これを Landau の記号 (Landau’s symbol) という. $f(x)=h(x)+O(g(x))$ とは $f(x)-h(x)=O(g(x))$ の意味である. $O$, $o$ を使用する場合は ‘$x\to a$ のとき’ と明示しなければならないが, 誤解のおそれのないとき, 特に複素変数関数で $a=\infty$ のときはしばしば省略される. 数列 $\lbrace a _ n\rbrace$ の場合も同様の記号が使われる. もちろん $n\to\infty$ としたときである.

注. これが「オミクロン記法」と呼ばれることがあるのは Knuth, D. (April–June 1976). Big Omicron and Big Omega and Big Theta. SIGACT News. 18–24. に由来しており, あくまでもラテン文字として扱うのが由緒正しいことに注意してください.

この記法を用いると連続性は

$$f(x+h) = f(x) + o(1)\; (h\to 0)$$

微分可能性は

$$f(x+h) = f(x) + f'(x)h + o(h)\; (h\to 0)$$

と書けます. たとえば積の微分法は次のように導出できます.

$$\begin{aligned} &f(x+h)g(x+h)\\ &=(f(x)+f'(x)h+o(h))(g(x)+g'(x)h+o(h))\\ &=f(x)g(x)+(\boxed{f'(x)g(x)+f(x)g'(x)})h+o(h) \end{aligned}$$

合成関数の微分法も次のようにできます.

$$\begin{aligned} &f(g(x+h))\\ &=f(g(x)+g'(x)h+o(h))\\ &=f(g(x))+f'(g(x))(g'(x)h+o(h))+o(h)\\ &=f(g(x))+\boxed{f'(g(x))g'(x)}h+o(h) \end{aligned}$$

誤差項をどのように評価するかを考えるときは $O$ の方が有用ですが, 今回のように極限値を計算するというときにおいては「極限に飛ばして消える」ということさえ分かればよいので $o$ だけを使えばよいです. もちろん $O$ を使っても計算としては正当ですが, 計算においては些か遠回りでしょう.

ここで一つ重要な注意をしておくと, Landau の記号における ‘$=$’ は非常に特殊な略記であるということです. そのことを紹介するために Landau の記号を運用する上で (Taylor 展開の次に) 最も基本的な次の定理を述べておきましょう.

定理. $f(x)=\sum_{i=k}^{n} a_ix^i$, $g(x)=\sum_{i=l}^{m} b_ix^i$ (ただし $a_k,b_l\neq0$) に対して, $$f(x)=o(g(x))\;(x\to0)\iff k>l.$$

証明は高校の教科書レベルですが, これによって $x\to0$ でたとえば $$f(x)=o(x ^ 2)\implies f(x)=o(x)$$ が成り立ちます. なんとこれを $\boxed{o(x ^ 2)=o(x)}$ と略記する習慣があるのです. したがって $o(x)\neq o(x ^ 2)$ も成り立ちます. ところが $x\to\infty$ では如上の議論はすべて逆転します ($X=x ^ {-1}$ とすれば帰着します). とにかく「どこに飛ばすのか」「大文字か小文字か」に深く注意しなければ Landau の記号はどうしても曖昧模糊なものになってしまいます.

ここで Taylor 展開から得られる重要な公式を紹介します. $x\to0$ として, だいたい $3$ 次の項まで覚えておけば十分でしょう. それ以上欲しくなることはほぼないと思いますが, その場合はちゃんと計算してあげてください.

  • $e ^ x=1+x+\dfrac{x ^ 2}{2}+\dfrac{x ^ 3}{6}+o(x ^ 3)$
  • $\log(1+x)=x-\dfrac{x ^ 2}{2}+\dfrac{x ^ 3}{3}+o(x ^ 3)$
  • $\cos x=1-\dfrac{x ^ 2}{2}+o(x ^ 3)$
  • $\sin x=x-\dfrac{x ^ 3}{6}+o(x ^ 4)$
  • $(1+x) ^ {\alpha}=1+\alpha x+\dfrac{\alpha(\alpha-1)}{2}x ^ 2+\dfrac{\alpha(\alpha-1)(\alpha-2)}{6}x ^ 3+o(x ^ 3)$

この結果と先の定理をさっそく用いて $\tan x$ を見積もってみましょう.

$$\begin{aligned} &\tan x \\ &=\left(x-\frac{x ^ 3}{6}+o(x ^ 4)\right)\left(1-\frac{x ^ 2}{2}+o(x ^ 3)\right) ^ {-1}\\ &=\left(x-\frac{x ^ 3}{6}+o(x ^ 4)\right)\left(1+\frac{x ^ 2}{2}+o(x ^ 3)\right)\\ &=x+\frac{x ^ 3}{2}-\frac{x ^ 3}{6}+o(x ^ 4)\\ &=x+\frac{x ^ 3}{3}+o(x ^ 4) \end{aligned}$$

実際これは正しい結果です. 冒頭の問題も解いてみましょう.

$$\begin{aligned} \lim _ {x\to0}\frac{x-\sin{x}}{x ^ 3} &=\lim _ {x\to0}\frac{x-(x-\frac{x ^ 3}{6}+o(x ^ 3))}{x ^ 3}\\ &=\lim _ {x\to0}\left(\frac{1}{6}+\frac{o(x ^ 3)}{x ^ 3}\right)\\ &=\frac{1}{6} \end{aligned}$$

極限の公式としてよく出てくる $$\lim _ {x\to0}\frac{1-\cos{x}}{x ^ 2}=\frac{1}{2}$$ なども全く覚える必要なく導出できます.

修正. 自然対数の底 $$e=\lim _ {x\to0} (1+x)^{\frac{1}{x}}$$ さえ忘れても簡単に思い出すことができます.

$$e ^ 1=1+1+\dfrac{1}{2}+\dfrac{1}{6}+\cdots$$

であることに注意して,

$$\begin{aligned} \lim _ {x\to0} (1+x)^{\frac{1}{x}} &= \lim _ {x\to0} \left(1+\dfrac{1}{x}x+\dfrac{\frac{1}{x}\left(\frac{1}{x}-1\right)}{2}x ^ 2+\cdots\right) \\ &= 1+1+\frac{1}{2}+\cdots \end{aligned}$$

となるので思い出せます. もし逆にしてしまっても

$$\begin{aligned} \lim _ {x\to0} \left(1+\frac{1}{x}\right) ^ x &= \lim _ {x\to0} e ^ {\log\left(1+\frac{1}{x}\right) ^ x} \\ &= \lim _ {x\to0} e ^ {x\log\left(1+\frac{1}{x}\right)} \\ &= \lim _ {t\to\infty} e ^ {\frac{\log(1+t)}{t}} \\ &= 1. \end{aligned}$$

となるので間違っていたことに気付きます. 漸近展開が上手く行かない場合はこういうふうにオーダーの比較をする必要があることが多いので気をつけてください. ちなみに「$\infty ^ 0 = 1$ だから」は嘘です. 反例: $(2 ^ {1/x}) ^ {x}=2$.

追記. 別の友人が

$$\lim_{x\to0}\frac{\log\frac{e ^ x-1}{x}}{x}$$

という極限を計算するのに困っていたので, 早速この記事のテクニックを使ってみましょう. $x\to0$ のオーダーで考えます.

$$\log\frac{e ^ x-1}{x}=\log\left(1+\frac{x}{2}+o(x)\right)=\frac{x}{2}+o(x)$$ なので $$\lim _ {x\to0}\frac{\log\frac{e ^ x-1}{x}}{x}=\lim _ {x\to0}\left(\frac{1}{2}+\frac{o(x)}{x}\right)=\frac{1}{2}.$$

追々記. 後輩が「高校数学の極限って割とパズル感強くない?」と呟いていたので本稿を紹介してみたところ, 次の式を満たすような実数 $a$ を求める問題(数検準一級らしい)には使えないのではないかと訊かれました.

$$\lim_{x\to\infty}\left(\cos\frac{1}{x}\right) ^ {x ^ 2}=e ^ a$$

$\log$ の連続性に注意して,

$$\begin{aligned} a&=\log e ^ a\\ &=\log\lim _ {x\to\infty}\left(\cos\frac{1}{x}\right) ^ {x ^ 2}\\ &=\lim _ {x\to\infty}\log\left(\cos\frac{1}{x}\right) ^ {x ^ 2}\\ &=\lim _ {x\to\infty}x ^ 2\log\cos\frac{1}{x}\\ &=\lim _ {t\to0}\frac{\log\cos t}{t ^ 2}\\ &=\lim _ {t\to0}\frac{\log(1-\frac{t ^ 2}{2}+o(t ^ 2))}{t ^ 2}\\ &=\lim _ {t\to0}\frac{-\frac{t ^ 2}{2}+o(t ^ 2)}{t ^ 2}\\ &=\lim _ {t\to0}\left(-\frac{1}{2}+\frac{o(t ^ 2)}{t ^ 2}\right)\\ &=-\frac{1}{2}. \end{aligned}$$