Math World Lab

テイラー展開・マクローリン展開

複雑な関数を「多項式のはしご」で近似する解析学の万能ツール

この単元の発見をシェア
3行要約(Key Takeaways / AIOサマリー)
1
テイラー展開とは、何回でも微分可能な関数を、ある点における微分係数を使った「多項式の無限級数」として表す手法
2
展開の中心が x=0x=0 の特別な場合を「マクローリン展開」と呼び、sin⁡x,cos⁡x,ex\sin x, \cos x, e^x などの初等関数がよく知られた級数を持つ
3
コンピュータのCPUや数学ライブラリは sin⁡,cos⁡,exp⁡\sin, \cos, \exp などの超越関数を直接計算できないため、内部的にはテイラー展開を有限項で打ち切った多項式近似で数値計算している

なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値

Purpose & Motivation

なぜ生まれたのか?

テイラー展開とは、何回でも微分可能な関数を、ある点における微分係数を使った「多項式の無限級数」として表す手法

身につく武器・思考力

展開の中心が $x=0$ の特別な場合を「マクローリン展開」と呼び、$\sin x, \cos x, e^x$ などの初等関数がよく知られた級数を持つ

実社会・ITでの活躍現場

  • •数学ライブラリにおける三角関数・指数関数の数値近似
  • •ITシステム・アルゴリズム実装における論理設計
  • •データ分析やシミュレーションにおける数理モデリング

Layer 1 — 直感・シミュレーター

近似したい関数を sin⁡x\sin x または exe^x から選び、スライダーで多項式の項数 NN を増やしてみよう。青い線が真の関数、オレンジの線がN項までのテイラー多項式近似を表し、Nを大きくするほどオレンジの線が青い線にぴったり重なっていく範囲が広がっていく様子をグラフで確認できる。

━ 青: 真の関数 sin(x)
━ オレンジ: N=3項のテイラー多項式近似

sin⁡x≈∑k=0N−1(−1)kx2k+1(2k+1)!\sin x \approx \sum_{k=0}^{N-1} \frac{(-1)^k x^{2k+1}}{(2k+1)!}

↑ 項数 N を増やすほど、オレンジの近似曲線が青い真の関数曲線に重なる範囲(収束する区間)が広がっていく。中心(x=0)から離れるほど、同じNでも近似の誤差が大きくなる様子も確認できる。

直感チェック!ミニクイズ

exe^x のマクローリン展開を3次の項まで求めるとどうなるか?

Layer 2 — 定義・受験・証明

定義

点 x=ax=a の近傍で nn 回微分可能な関数 f(x)f(x) に対し、次のべき級数を「x=ax=a を中心とするテイラー展開」と呼ぶ。

f(x)=∑k=0∞f(k)(a)k!(x−a)k=f(a)+f′(a)(x−a)+f′′(a)2!(x−a)2+⋯f(x) = \sum_{k=0}^{\infty} \frac{f^{(k)}(a)}{k!}(x-a)^k = f(a) + f'(a)(x-a) + \frac{f''(a)}{2!}(x-a)^2 + \cdots

特に a=0a=0 の場合を「マクローリン展開」と呼ぶ。有限の NN 項で打ち切ったものを「NN次テイラー多項式 TN(x)T_N(x)」と呼び、f(x)f(x) の近似として利用する。

公式・数理モデル

f(x)=∑k=0Nf(k)(a)k!(x−a)k+RN(x),RN(x)=f(N+1)(ξ)(N+1)!(x−a)N+1 (ξはaとxの間のある値)f(x) = \sum_{k=0}^{N} \frac{f^{(k)}(a)}{k!}(x-a)^k + R_N(x), \qquad R_N(x) = \frac{f^{(N+1)}(\xi)}{(N+1)!}(x-a)^{N+1}\ (\xi は a と x の間のある値)

証明・導出

剰余項付きテイラーの定理の導出(積分による剰余表示): 微積分の基本定理より f(x)=f(a)+∫axf′(t) dtf(x) = f(a) + \displaystyle\int_a^x f'(t)\,dt である。 右辺の積分に部分積分を繰り返し適用する。∫axf′(t) dt\displaystyle\int_a^x f'(t)\,dt に対し u=f′(t)u=f'(t)、dv=dtdv=dt を dv=−d(x−t)dv = -d(x-t) と見て部分積分すると、

∫axf′(t) dt=f′(a)(x−a)+∫axf′′(t)(x−t) dt\int_a^x f'(t)\,dt = f'(a)(x-a) + \int_a^x f''(t)(x-t)\,dt

この操作を NN 回繰り返すことで、

f(x)=∑k=0Nf(k)(a)k!(x−a)k+1N!∫axf(N+1)(t)(x−t)N dtf(x) = \sum_{k=0}^{N} \frac{f^{(k)}(a)}{k!}(x-a)^k + \frac{1}{N!}\int_a^x f^{(N+1)}(t)(x-t)^N\,dt

が得られる。最後の積分に積分の平均値の定理を適用すると、ある ξ∈(a,x)\xi \in (a,x) が存在して積分項は f(N+1)(ξ)(N+1)!(x−a)N+1\dfrac{f^{(N+1)}(\xi)}{(N+1)!}(x-a)^{N+1} と書ける(ラグランジュの剰余項)。 この剰余項 RN(x)R_N(x) が N→∞N\to\infty で 00 に収束する範囲(収束半径内)では、テイラー級数は元の関数 f(x)f(x) に完全に一致する。

押さえておきたいポイント

  • sin⁡x=x−x33!+x55!−⋯\sin x = x - \dfrac{x^3}{3!} + \dfrac{x^5}{5!} - \cdots、cos⁡x=1−x22!+x44!−⋯\cos x = 1 - \dfrac{x^2}{2!} + \dfrac{x^4}{4!} - \cdots、ex=1+x+x22!+x33!+⋯e^x = 1+x+\dfrac{x^2}{2!}+\dfrac{x^3}{3!}+\cdots はすべての実数 xx で収束する
  • 剰余項 RN(x)R_N(x) の大きさを評価することで、有限項近似がどれだけ真の値に近いか(誤差の上限)を数学的に保証できる
  • テイラー展開の中心 aa から離れるほど、同じ次数 NN でも近似精度は一般に悪化する(収束半径の制約)
  • オイラーの公式 eiθ=cos⁡θ+isin⁡θe^{i\theta} = \cos\theta + i\sin\theta は、ex,sin⁡x,cos⁡xe^x, \sin x, \cos x のマクローリン展開を比較することで証明できる
参照基準・学習指導要領との対応

本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。

Layer 3 — 工学応用・現場実装

数学ライブラリにおける三角関数・指数関数の数値近似

CPUや標準ライブラリの sin⁡,cos⁡,exp⁡\sin, \cos, \exp 関数は、テイラー展開(や、より収束の速いチェビシェフ近似・ミニマックス近似)を有限次数で打ち切った多項式を、ハードウェアの乗算・加算命令だけで高速に評価することで計算されている。ここでは最も基本的なテイラー展開による近似の実装を示す。

1// N項までのテイラー多項式で sin(x) を近似(マクローリン展開)
2function sinApprox(x: number, terms: number): number {
3 let result = 0;
4 let sign = 1;
5 let power = x; // x^(2k+1)
6 let factorial = 1; // (2k+1)!
7
8 for (let k = 0; k < terms; k++) {
9 result += sign * (power / factorial);
10
11 // 次の項の準備: 指数を2つ増やし、階乗も更新
12 power *= x * x;
13 const n = 2 * k + 2;
14 factorial *= n * (n + 1);
15 sign *= -1;
16 }
17 return result;
18}
19
20// N項までのテイラー多項式で exp(x) を近似
21function expApprox(x: number, terms: number): number {
22 let result = 0;
23 let term = 1; // x^k / k! の第k項
24 for (let k = 0; k < terms; k++) {
25 result += term;
26 term *= x / (k + 1); // 次の項を漸化式で更新(毎回階乗を計算し直さない)
27 }
28 return result;
29}
30
31// 精度検証: 項数を増やすほど Math.sin / Math.exp の真値に近づく
32console.log("sin(1) 真値:", Math.sin(1));
33console.log("sin(1) 3項近似:", sinApprox(1, 3));
34console.log("sin(1) 6項近似:", sinApprox(1, 6));
35
36console.log("exp(1) 真値:", Math.exp(1));
37console.log("exp(1) 10項近似:", expApprox(1, 10));

次に学ぶならコレ!おすすめトピック

この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元

数理モデル・概念が近い関連トピック

関連度高大学数学

多変数関数の偏微分・全微分

複数の変数が絡み合う関数を「1変数ずつ」切り取って理解する微分の拡張

関連度高大学数学

フーリエ変換と周波数分解

どんなに複雑な波も、単純なサイン波の重ね合わせに分解できる

関連度高大学数学

複素関数論入門とオイラーの公式

オイラーの公式 e^(ix) = cos x + i sin x が示す複素平面上の回転運動と、信号処理・交流回路への応用

同じレベルで次に挑戦したいトピック

同レベル推薦大学数学

固有値・固有ベクトル

行列で変換しても「向きが変わらない」特別な方向

同レベル推薦大学数学

ベイズの定理(条件付き確率と事前・事後確率)

新たな情報や証拠(エビデンス)を得て「確信度」を更新する確率論

同レベル推薦大学数学

正規分布と中心極限定理

あらゆるランダムなばらつきが最終的に収束する「釣鐘型の山」

工学・実社会での応用先でつながるトピック

工学・実践連携工学応用

勾配降下法

谷底を探すAIの基本アルゴリズム

工学・実践連携工学応用

ニューラルネットワークの数学(順伝播と活性化関数)

入力に重みを掛けて足し合わせ、非線形関数で発火させるAIの基本素子

工学・実践連携工学応用

レコメンドの仕組み(コサイン類似度とベクトル検索)

ユーザーの好みと商品の近さを「ベクトルのなす角」で判定するアルゴリズム

あなたの数学力をさらに伸ばす

数学の弱点診断や算数パズルに挑戦してみませんか?

簡単な質問に答えてあなたにぴったりの学習ロードマップを発見したり、直感を試すパズルで数の面白さを体験できます。