Courses
関数の中には、そのまま扱うには複雑すぎるものがあります——そこで数学者たちは、多項式で「まねる」方法を考え出しました。
これがマクローリン展開の基本的な考え方です。関数を、多項式の項を無限に足し合わせた形で表します。各項は、0 における関数の導関数から作られます。こうして、元の関数がどれだけ複雑でも、計算可能な形が手に入ります。
マクローリン展開は、テイラー展開の特別な場合(中心を 0 に取ったもの)と考えられます。この制約により、導出が簡単になり、適用もしやすくなります。
本記事では、マクローリン展開の公式、よく使う展開の解説、そしてその読み解き方と使い方を紹介します。
マクローリン展開とは?
マクローリン展開は、関数を、0 における導関数から作られる項の無限和として表すものです。
各項は多項式、すなわち導関数の値でスケーリングされた x の冪です。十分な数の項を足し合わせれば、少なくとも 0 の近くでは、元の関数と同じように振る舞う多項式が得られます。
複雑な関数を多項式で近似する——これがマクローリン展開の核となる発想です。多項式は計算・微分・積分が容易ですが、ほとんどの他の関数はそうではありません。
マクローリン展開とテイラー展開の違い
テイラー展開は、任意の点 a を中心にとって、関数を無限多項式で近似します。点を選び、その点のまわりに級数を構成し、その点の近くでよく効く多項式を得ます。
マクローリン展開は、その a = 0 とした場合に過ぎません。違いはそれだけです。
中心を 0 にとると、(x - a) のずれがなくなり、単なる x の冪になるため、計算が簡単になります。その結果、微積・物理・機械学習で扱う標準的な多くの関数には、整った、よく知られたマクローリン展開があります。

テイラー展開とマクローリン展開の比較
まとめると、0 以外の特定の点の近くで関数を近似したいときはテイラー展開を、0 が出発点になるとき(多くの場合そうです)はマクローリン展開を使ってください。
マクローリン展開の公式
マクローリン展開の公式は、任意の関数 f(x) を無限和で表します:

マクローリン展開の公式
展開すると、次のようになります:

マクローリン展開の展開形
各項は 3 つの要素から成ります:
-
f⁽ⁿ⁾(0)——fの n 次導関数を 0 で評価したもの。この点での関数のふるまいを表します -
n!——nの階乗。nが大きくなるにつれて級数が良好に振る舞うよう、各項を適切にスケールします -
xⁿ——xの n 乗。各項が 0 からどれだけ離れたところまで影響するかを決めます
最初の項 f(0) は、多項式を 0 における関数の値に合わせます。続く各項は補正を加えます——傾き、曲率、さらには曲率の変化の速さなどを調整し、必要な精度まで元の関数に一致させていきます。
要するに、項を多く取れば取るほど、近似は良くなります。
マクローリン展開はどう機能するか
マクローリン展開の構成は 1 つの動作の繰り返しです。0 で導関数を評価し、その結果を多項式に積み上げていきます。
手順を順に示します。
- 関数を 0 で評価する:
x = 0をf(x)に代入します。これが最初の項、つまり多項式の初期値を決める定数です - 導関数を取る:
f'(x)、f''(x)、f'''(x)と順に計算します。各段階で 0 における値を求めます。各値は、傾き、曲率、曲率の変化の速さなど、その関数のふるまいを教えてくれます - 多項式を組み立てる: 各導関数の値を対応する階乗で割り、対応する
xの冪を掛けます
あとはすべての項を足し合わせます:

マクローリン展開の仕組み
各項が近似を改良します。最初の項で値を合わせ、2 番目の項で傾きを、3 番目の項で曲率を合わせます。以後も同様です。
必要な精度に達したらこの過程を止めればよく、より高い精度が必要なら続けます。
よく使うマクローリン展開
頻出の関数はいくつかあり、そのマクローリン展開は暗記しておく価値があります。特によく目にする 4 つを紹介します。
eˣ
指数関数は最も単純な例です。eˣ のすべての導関数は再び eˣ であり、0 で評価するとすべて 1 になります。

ex の展開
係数は単に 1/n! です。x の全ての値で収束するため、実用上最も有用な展開のひとつです。
sin(x)
正弦関数の級数では x の奇数乗のみが現れ、符号は正負が交互になります。

sin(x) の展開
sin(x) の 0 における偶数階導関数はすべて 0 なので、それらの項は消えます。残るのは奇数乗、階乗分母、交代符号です。eˣ と同様に、この級数はすべての x で収束します。
cos(x)
余弦の展開は正弦の鏡像で、x の偶数乗のみが現れ、同じ交代符号パターンになります。

cos(x) の展開
これは、cos(x) が sin(x) の導関数であり、sin(x) の展開を項ごとに微分して得られることからも納得できます。奇数乗の項が消えるのは、正弦で偶数乗の項が消えるのと同じ理由で、0 における導関数がそれらを打ち消すためです。すべての x で収束します。
1 / (1 − x)
この関数は 4 つの中で最も単純なパターンをもち、すべての係数が 1、階乗も交代符号もありません。

1/(1-x) の展開
等比級数なので、このようにすっきりしたパターンになります。ただし、上の 3 つと異なり、この級数が収束するのは |x| < 1 のときだけです。その範囲の外に x を取ると、項は 0 に近づくのではなく発散していきます。
最後に、視覚的にとらえたい方のために、複数の項を含めた 4 つの展開の比較チャートを示します:

代表的なマクローリン展開
マクローリン展開で関数を近似する
マクローリン展開は、実用上、無限に多くの項を必要とすることはほとんどありません。実務では部分和、つまり最初のいくつかの項だけを取り、近似として使います。
項を増やすほど、部分和は元の関数をより忠実に追従します。2 項で打ち切れば 0 の近くでの大まかな当てはめに。さらに数項を足せば、近似はより遠くまで有効になります。新しい各項が、それまでの項が取りこぼした部分を補正します。
sin(x) を具体例に取りましょう。完全な級数は次のとおりです:

sin(x) の近似式
sin(0.3) を部分和で近似し、それぞれが真値とどう違うかを見てみます。
-
1 項:
0.3—— 誤差 約 0.0045 -
2 項:
0.3 - (0.3³/6)=0.2955—— 誤差 約 0.0000196 -
3 項:
(0.3⁵/120)を追加 =0.29552—— 誤差 約 0.0000000239
3 項で小数点以下 6 桁の精度に到達します。たいていの場合、これ以上進める必要はありません。
同じ考え方を Python で示します:
import numpy as np
from math import factorial
def maclaurin_sin(x, n_terms):
return sum(((-1)**n * x**(2*n+1)) / factorial(2*n+1) for n in range(n_terms))
vec_sin = np.vectorize(maclaurin_sin)
x_val = 0.3
print(f"Approximating sin({x_val}):")
print(f" Exact value : {np.sin(x_val):.10f}")
for n in [1, 2, 3, 4]:
approx = maclaurin_sin(x_val, n)
error = abs(np.sin(x_val) - approx)
print(f" {n} term(s) : {approx:.10f} | error: {error:.2e}"
これを実行すると、x = 0.3 における部分和の値と誤差が表示されます:

sin(x) のマクローリン近似を Python で示した例
視覚的にも確認できます:

sin(x) のマクローリン近似のグラフ
sin(x) に対して各近似がどれほどよく追従しているかがわかります。
マクローリン展開の収束
マクローリン展開が、すべての x の値で常に有効とは限りません。関数によっては、0 の近くのある範囲内でのみ正しい値に収束します。その範囲の外では、部分和は 0 に近づく代わりに発散します。
この範囲は収束半径と呼ばれ、0 からどれだけ離れても級数が信頼できるかを示します。
関数ごとに挙動は異なります:
-
eˣ、sin(x)、cos(x)—— すべてのxに対して収束します。どんな数を代入しても級数は正しい答えを与えます -
1/(1-x)——|x| < 1のときにのみ収束します。x = 1では関数自体が発散し、その近くで収束しないという級数の挙動にも反映されます
収束半径は、0 を中心とする「信頼の円」と考えるとよいでしょう。級数が有効な近似になるのは、その内側だけです。
収束半径を毎回計算する必要はありません。標準的な関数については既知です。ただし、見慣れない関数を扱うときは、マクローリン近似に頼る前に収束性を確認する習慣をつけるとよいでしょう。
マクローリン展開が重要な理由
マクローリン展開は、数学、物理、機械学習にわたる実際の計算で広く登場します。
数値計算
コンピュータは多くの関数を記号的に評価できません。評価できるのは多項式です。ライブラリが sin(x) や eˣ を計算するとき、しばしば多項式近似——関数のマクローリンまたはテイラー展開に由来するもの——を使います。級数は、ハードウェアが実際に高速かつ無限ループなしで計算可能な形を与えてくれます。
物理における近似
物理では、厳密解が扱いにくいときにマクローリン展開が用いられます。最も一般的な例は小角近似で、小さな θ に対して sin(θ) ≈ θ とします。これは sin(x) のマクローリン展開の第一項に他なりません。これにより振り子、光学計算、波のモデルが簡潔になり、非線形問題を実際に解ける線形問題へと置き換えます。
機械学習と最適化
機械学習では、テイラー/マクローリン展開が日常的に触れる多くの数学の背後にあります。勾配降下法は損失関数の一次近似を用いて進むべき方向を決めます。ニュートン法のような二次の手法は曲率項を使います。研究者がモデルの損失地形の局所的なふるまいを解析するとき、しばしばある点のまわりのテイラー展開を念頭に置いています。
また、sigmoid や tanh のような活性化関数を理論解析で近似するのにもマクローリン展開が使われます。多項式に展開すると、勾配や飽和の挙動を考察しやすくなります。
まとめ
マクローリン展開がすることはひとつ、0 を中心として関数を多項式で近似することです。単純な発想ですが、応用範囲は広大です。
数値計算から物理、機械学習に至るまで、パターンは常に同じです。複雑な関数を、十分に近い多項式に置き換え、肝心の問題解決に集中する。勾配降下法、小角近似、ライブラリ関数の内部実装の数学は、すべてこの基本的なアイデアにさかのぼります。
eˣ、sin(x)、cos(x)、1/(1-x) の展開は覚えておく価値があります。頻出なので、見た瞬間に認識できれば実際に時間の節約になります。特に論文を読むときに役立ちます。
マクローリン展開 FAQ
マクローリン展開を簡単に言うと何ですか?
マクローリン展開は、0 で評価した導関数から作られる多項式の項を無限に足し合わせて、関数を表すものです。項を多く含めるほど、元の関数に近づきます。複雑なものを、コンピュータや人間が実際に計算できるものに置き換える方法だと言えます。
マクローリン展開とテイラー展開の違いは何ですか?
テイラー展開は、任意の点 a を中心とした多項式で関数を近似します。マクローリン展開は、その中心が 0 に固定されたテイラー展開に過ぎません。
マクローリン展開は実際どこで使われますか?
マクローリン展開は数値計算、物理、機械学習で使われます。プログラミングライブラリは、sin(x) や eˣ のような関数を効率的に評価するために多項式近似を用います。機械学習では、勾配降下法やニュートン法といった最適化手法の背後にテイラー展開があります。
マクローリン展開における収束半径とは何ですか?
収束半径は、マクローリン展開が 0 からどれだけ離れても正確さを保つかを定めます。その範囲内では部分和が真の関数に近づき、範囲外では項が小さくならず近似が破綻します。eˣ や sin(x) のようにどこでも収束するものもあれば、1/(1-x) のように限られた範囲でのみ収束するものもあります。
良いマクローリン近似には何項必要ですか?
必要な精度と、評価したい点が 0 からどれだけ離れているかによります。0 の近くなら、わずか数項で十分小さな誤差になります。離れるほど、精度を保つにはより多くの項が必要です——そして収束半径の外側では、何項取っても正しい結果にはなりません。