はじめに
数学や物理学、さらにはコンピュータサイエンスの世界において、 テイラー展開 (Taylor series)と マクローリン展開 (Maclaurin series)は非常に強力なツールです。これらは、指数関数や三角関数のような「計算が難しい複雑な関数」を、「足し算と掛け算だけで計算できる単純な多項式」の無限和として表現する手法です。
電卓やコンピュータが $\sin(37^\circ)$ や $e^{2.5}$ などの値を瞬時に計算できるのも、内部でこれらの展開式を応用した近似計算を行っているからです。本記事では、この魔法のような数学のテクニックについて、直感的な意味から厳密な公式、そして実際の応用例までを詳しく解説します。
なぜ関数を多項式で近似するのか?
そもそも、なぜ関数を多項式( $a + bx + cx^2 + \dots$ )で表す必要があるのでしょうか?
flowchart LR
A["複雑な関数"] -->|"テイラー展開"| B["多項式の無限和"]
B -->|"有限項で打ち切り"| C["多項式による近似"]
C -->|"四則演算のみ"| D["コンピュータでの高速計算"]
自然界の現象を表す関数の多くは非線形であり、手計算やコンピュータのCPU命令だけで直接計算することは困難です。しかし、多項式であれば 足し算 と 掛け算 だけで構成されているため、コンピュータにとって非常に扱いやすいというメリットがあります。
マクローリン展開の直感的な理解
まずは、特定の点 $x = 0$ の付近で関数を近似する マクローリン展開 から考えましょう。 ある未知の関数 $f(x)$ があるとします。この関数を $x = 0$ の近くで、次のような多項式 $P(x)$ で近似したいと考えます。
$$ P(x) = c_0 + c_1 x + c_2 x^2 + c_3 x^3 + \dots $$近似の精度を上げるための条件は以下の通りです。
- 0次近似 : $x=0$ での関数の値が一致する( $P(0) = f(0)$ )。 これにより、 $c_0 = f(0)$ となります。
- 1次近似 : $x=0$ での傾き(1階微分)が一致する( $P'(0) = f'(0)$ )。 これにより、 $c_1 = f'(0)$ となります。グラフ上では、関数 $f(x)$ の $x=0$ における接線となります。
- 2次近似 : $x=0$ での曲がり具合(2階微分)が一致する( $P''(0) = f''(0)$ )。 $P''(x) = 2 c_2$ なので、 $c_2 = \frac{f''(0)}{2}$ となります。
- $n$次近似 : 一般に、 $n$ 階微分まで一致させることで、 $x=0$ 付近での振る舞いをより正確に模倣できます。
マクローリン展開の公式と導出
上記の直感的な条件を無限回繰り返すと、関数の各階微分係数を用いた美しい級数が得られます。これを マクローリン展開 と呼びます。
$$ f(x) = f(0) + f'(0)x + \frac{f''(0)}{2!}x^2 + \frac{f^{(3)}(0)}{3!}x^3 + \dots $$シグマ記号を用いて書くと以下のようになります。
$$ f(x) = \sum_{n=0}^{\infty} \frac{f^{(n)}(0)}{n!} x^n $$ここで、 $f^{(n)}(0)$ は関数 $f(x)$ を $n$ 回微分して $x=0$ を代入した値、 $n!$ は $n$ の階乗( $n \times (n-1) \times \dots \times 1$ )を表します。
代表的な関数のマクローリン展開
ここでは、頻繁に登場する重要な関数のマクローリン展開を紹介します。
1. 指数関数 $e^x$
指数関数 $f(x) = e^x$ は、何回微分しても $e^x$ のままです。したがって、 $x=0$ を代入すると、すべての階数の微分係数が $1$ になります( $f^{(n)}(0) = 1$ )。
$$ e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \dots = \sum_{n=0}^{\infty} \frac{x^n}{n!} $$2. 三角関数 $\sin x$ と $\cos x$
$\sin x$ を繰り返し微分すると、 $\cos x, -\sin x, -\cos x, \sin x, \dots$ と周期的に変化します。 $x=0$ を代入すると、奇数階の微分係数だけが残り、偶数階は $0$ になります。
$$ \sin x = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \frac{x^7}{7!} + \dots = \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n+1)!} x^{2n+1} $$同様に、 $\cos x$ は偶数階の項だけが残ります。
$$ \cos x = 1 - \frac{x^2}{2!} + \frac{x^4}{4!} - \frac{x^6}{6!} + \dots = \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n)!} x^{2n} $$テイラー展開への拡張
マクローリン展開は $x=0$ の付近での近似でしたが、これを任意の点 $x=a$ の付近での近似に一般化したものが テイラー展開 です。
$$ f(x) = f(a) + f'(a)(x-a) + \frac{f''(a)}{2!}(x-a)^2 + \dots = \sum_{n=0}^{\infty} \frac{f^{(n)}(a)}{n!} (x-a)^n $$$x=a$ から少しだけ離れた場所( $x = a + \Delta x$ )の関数の値を予測したい場合に、この式が威力を発揮します。
テイラー展開の応用例
物理学における線形近似
物理学では、運動方程式を解きやすくするためにテイラー展開による近似が頻繁に使われます。例えば、振り子の運動において、振れ角 $\theta$ が十分に小さい場合、 $\sin \theta$ のマクローリン展開の1次の項だけを取り出し、以下のように近似します。
$$ \sin \theta \approx \theta \quad (\text{十分に小さい } \theta \text{ の場合}) $$これにより、複雑な非線形微分方程式が解きやすい線形微分方程式へと変わり、単振り子の等時性が導かれます。
プログラミングと数値計算
コンピュータの標準ライブラリ( math モジュールなど)の内部でも、関数を計算するためにテイラー展開(またはその改良版であるチェビシェフ近似など)が活用されています。以下は、Pythonで $\sin x$ を近似計算する簡単な例です。
| |
収束半径とテイラーの定理
すべての関数が、すべての $x$ においてテイラー展開で正確に表現できるわけではありません。無限級数が有限の値にまとまる範囲を 収束半径 と呼びます。例えば、 $\ln(1+x)$ のマクローリン展開は $-1 < x \le 1$ の範囲でのみ有効です。
また、有限項( $n$ 次まで)で打ち切った場合に、真の値と近似値との誤差がどの程度になるかを見積もるための定理が テイラーの定理 (剰余項の評価)です。これにより、「どのくらいの精度が必要なら、何次まで展開すればよいか」を数学的に保証することができます。
まとめ
テイラー展開とマクローリン展開は、複雑な世界を扱いやすい多項式という形に翻訳するための、いわば「数学の翻訳機」です。微分の概念から出発し、無限の足し合わせによって元の関数を完全に復元するそのプロセスは、数学の美しさを象徴しています。物理の近似からAIの最適化アルゴリズムに至るまで、その応用範囲は計り知れません。ぜひ、この強力なツールを活用して、数学やプログラミングの理解を深めてください。
