【数学】高校数学と図解で理解するテイラー展開・マクローリン展開

お久しぶりです、そのはです。

先日マクローリン展開に関する質問を受け付けたのですが、どうも上手く説明することができず困っていました。
というのも、私自身が理解したときは「マクローリン展開のメリット」に注目して習ってたので、項の意味づけや図形的な意味合いの理解を疎かにしていたからです。

この機会にと思いいろいろな解説を見て回ったのですが、いまいちメリット・導出・図解が簡潔にまとまったページや動画がなかったので、自分で記事を書くことにしました。

このページでは、テイラー展開およびマクローリン展開の式の意味と図形的な理解を高校数学で説明することを目標とします。

 

テイラー展開のゴール

あらゆる関数を多項式で表す

テイラー展開のゴールは、ズバリあらゆる関数を多項式で表すことです。

[math]\sin{x}[/math]や[math]e^{x}[/math]など、高校数学になってはじめて登場した関数たちがありますが、これらは文字式での計算をするときには大変便利です。
しかし、具体的な値を代入して計算するときには、どうしても正確な値を出すことは難しいです。

例えば、[math]\sin{0.001}[/math]や[math]e^{0.001}[/math]の具体的な値を考えようとしても、「・・・。」となってしまいます。

もしもこれを多項式で表せたら、(面倒くさくはあるものの)代入してゴリ押して値を計算できるようになるわけです。

ここでテイラー展開(マクローリン展開)を用いると、
$$\sin{x}=\frac{x}{1!}-\frac{x^3}{3!}+\frac{x^5}{5!}-\frac{x^7}{7!}+\cdots$$
と書くことができます。

[math]x^5=0.001^5[/math]や[math]x^7=0.001^7[/math]は非常に小さいので無視するとすれば、
$$\sin{0.001}≒\frac{0.001}{1!}-\frac{0.001^3}{3!}=0.00099999983$$
と求まります。

あるいは高校物理なんかでも実はよく使われていて、$|x|\ll1$のとき

$$\sqrt{1-x^2}≒1+\frac{1}{2}x\\(1+x)^n≒1+nx\\\sin(x)≒\tan(x)≒x\\\cos(x)≒1$$

なども全てテイラー展開から導かれた近似式です。

テイラー展開は、すべての関数を多項式に書き直すための展開公式なのです。

テイラー展開の公式

$$\begin{align}f(x)&=f(a)+\frac{f^{\prime}(a)}{1!}(x-a)+\frac{f^{\prime\prime}(a)}{2!}(x-a)^2+\cdots\\&=\sum_{k=0}^{\infty}\frac{f^{(k)}(a)}{k!}(x-a)^k\end{align}$$

ややこしい式に見えますがやっていることは単純で、第$n$項に注目すると

  1. もとの式を$n$回微分
  2. $a$を代入
  3. $n!$で割る
  4. $(x-a)^n$を掛ける

という式になっています。これを繰り返し足していくことで、三角関数や指数関数のような式も多項式で表せるのです。

$a$は「$x=a$付近を中心に考えたい」という位置を指定しています。無理やり多項式で書くということなので、どこを中心にするか(その中心から離れるほど精度が落ちます)を指定して考えていくのですね。

え?なんでそんな式の和で表せるの?ということについては、以下で解説していきます。

 

テイラー展開の図形的な意味

以下では簡単な例として、$f(x)=\sin{x}$を$x=0.5$まわりで多項式で表すことを考えます。考える多項式を$g(x)$とします。

まずは定数で雑に近似

$x=0.5$を中心に考えていくので、$g(x)$が$(0.5,f(0.5))$を通らないことには始まりません。

$$g(x)=f(0.5)=\sin(0.5)$$

と置いてみましょう。

とりあえず$(0.5,f(0.5))$を通ることはできました。

次に傾きで誤差を修正

しかし真っすぐ横に伸びる直線では、到底$f(x)=\sin(x)$を表せたとは言えません。

せめて$(0.5,f(0.5))$付近では、右上がりの直線になってほしいですよね(下の図みたいになってほしい)。

これは結局、$f(x)$の接線を求めているのと同様です。つまり、

$$\begin{align}g(x)&=f(0.5)+f'(0.5)(x-0.5)\\&=\sin(0.5)+\cos(0.5)(x-0.5)\end{align}$$

と置けば良さそうです。

おっ、意図したグラフが出来上がりました。

$(0.5,f(0.5))$付近はそれっぽくなってきた気がします。
が、少しでも$x=0.5$から離れると乖離してしまいますね…。

傾きの誤差をさらに傾きの傾きで修正

ここから更に$\sin(x)$に近づけようとすると、直線ではなく曲線、つまり$x$によって傾きが変化するようにしなければいけません

傾きに注目する必要がありそうなので、現状では傾き(導関数)がどうなっているか見てみましょう。

$$\begin{align}f'(x)&=\cos(x)\\g'(x)&=\cos(0.5)\end{align}$$

片方が曲線で、もう片方が真横に伸びる直線…、この関係はどこかで見ましたね。そうです、ふたつ前の節『まずは定数で雑に近似』で出てきた$f(x)$と$g(x)$の関係です。

傾き($g'(x)$)の傾きがもとの傾き($f'(x)$)からずれてしまっていますので、先ほどと同様に、接線となるように修正してみましょう。

$$\begin{align}g'(x)&=f'(0.5)+f^{\prime\prime}(0.5)(x-0.5)\\&=\cos(0.5)-\sin(0.5)(x-0.5)\end{align}$$

傾き($f'(x),g'(x)$)は少し近づきました。ではこのとき、もとの関数($f(x),g(x)$)はどうなっているでしょうか。

$$\begin{align}f(x)&=\sin(x)\\g(x)&=\int g'(x)dx\\&=\sin(0.5)+\cos(0.5)(x-0.5)-\frac{1}{2}\sin(0.5)(x-0.5)^2\end{align}$$
※積分定数は$C$ではありません。「$g(x)$は$(0.5,f(0.5))$を通る」という初期条件を適用しています。

傾き($g'(x)$)の傾きが修正されたことで、$g(x)$は曲線になり$f(x)$に近づいてきました。

 

傾きの傾き($g^{\prime\prime}(x)$)の傾きも修正してみましょう。現状では、

$$\begin{align}f^{\prime\prime}(x)&=-\sin(x)\\g^{\prime\prime}(x)&=-\sin(0.5)\end{align}$$

なので、$g^{\prime\prime}(x)$が$f^{\prime\prime}(x)$の接線になるように修正すると、

$$\begin{align}g^{\prime\prime}(x)=&-\sin(0.5)-\cos(0.5)(x-0.5)\\g'(x)=&\int g^{\prime\prime}(x)dx\\=&\cos(0.5)-\sin(0.5)(x-0.5)-\frac{1}{2}\cos(0.5)(x-0.5)^2\\g(x)=&\int g'(x)dx\\=&\sin(0.5)+\cos(0.5)(x-0.5)-\frac{1}{2}\sin(0.5)(x-0.5)^2\\&-\frac{1}{2\cdot 3}\cos(0.5)(x-0.5)^3\end{align}$$

 

さらに傾きの傾きの傾き($g^{\prime\prime\prime}(x)$)も修正すると、

$$\begin{align}g(x)=&\sin(0.5)+\cos(0.5)(x-0.5)-\frac{1}{2}\sin(0.5)(x-0.5)^2\\&-\frac{1}{2\cdot 3}\cos(0.5)(x-0.5)^3+\frac{1}{2\cdot 3\cdot 4}\sin(0.5)(x-0.5)^4\end{align}$$

段々と$f(x)=\sin(x)$に近づいていることが分かると思います。

これを無限回繰り返すと、完全にもとの曲線を表現できるわけですね。

 

もう一度テイラー展開の公式を見てみましょう。

$$\begin{align}f(x)&=f(a)+\frac{f^{\prime}(a)}{1!}(x-a)+\frac{f^{\prime\prime}(a)}{2!}(x-a)^2+\cdots\\&=\sum_{k=0}^{\infty}\frac{f^{(k)}(a)}{k!}(x-a)^k\end{align}$$

勘の良い皆さんなら気づいていたかもしれませんが、

  • 何度も微分しているのは傾きの傾きの…の傾きを修正しているから
  • 階乗で割られているのは積分のせい
  • $x$から$a$を引いているのは初期条件($g(x)$は$(0.5,f(0.5))$を通る)を満たすため

ということですね!

 

有限次数での展開

さて、関数を多項式で表せたのは良いものの、実際に使うとなると「無限回微分して足す」というのは非現実的です。

実用的には以下の方法で有限項に落とし込んで使ったりします。

$n$次テイラー多項式

冒頭で$\sin{0.001}$の近似値を求める際、無限項に代入するようなことはせずはじめの2項だけに代入しました。
これは、テイラー展開の特徴として「$|x-a|$が小さいとき、次数の大きい項ほど影響が小さい」ということが挙げられるので、はじめのいくつかの項だけ使えばある程度近似できるからです。

次数の大きい項ほど影響が小さいのは、

  • $|x-a|$が小さいから、それをべき乗するとさらに小さくなるから
  • 高次の項ほど大きな階乗で割られるから

という理由が挙げられます。

この特徴を使って、途中でテイラー展開を切り上げて使うことを$n$次近似、その式のことを$n$次テイラー多項式といいます。

$|x-a|$が小さいとき、
2次テイラー多項式
$$f(x)≒f(a)+\frac{f^{\prime}(a)}{1!}(x-a)+\frac{f^{\prime\prime}(a)}{2!}(x-a)^2$$
3次テイラー多項式
$$\begin{align}f(x)≒&f(a)+\frac{f^{\prime}(a)}{1!}(x-a)+\frac{f^{\prime\prime}(a)}{2!}(x-a)^2\\&+\frac{f^{\prime\prime\prime}(a)}{3!}(x-a)^3\end{align}$$
$n$次テイラー多項式
$$\begin{align}f(x)≒&f(a)+\frac{f^{\prime}(a)}{1!}(x-a)+\frac{f^{\prime\prime}(a)}{2!}(x-a)^2\\&+\cdots+\frac{f^{(n)}(a)}{n!}(x-a)^n\\=&\sum_{k=0}^{n}\frac{f^{(k)}(a)}{k!}(x-a)^k\end{align}$$

$n$次テイラー展開

ざっくりな計算であれば上記の$n$次テイラー多項式で事足ります。
が、ニアリーイコールであってイコールではないので、必ず誤差が発生します。

その誤差の見積もりも含めた有限項展開に$n$次テイラー展開というものがあります。

$n$次テイラー展開
$$\begin{align}f(x)=&f(a)+\frac{f^{\prime}(a)}{1!}(x-a)+\frac{f^{\prime\prime}(a)}{2!}(x-a)^2\\&+\cdots+\frac{f^{(n)}(a)}{(n)!}(x-a)^n\\&+\frac{f^{(n+1)}(c)}{(n+1)!}(x-a)^{n+1}\\=&\sum_{k=0}^{n}\frac{f^{(k)}(a)}{k!}(x-a)^k+\frac{f^{(n+1)}(c)}{(n+1)!}(x-a)^{n+1}\end{align}\\(x<c<a, a<c<x)$$

$\frac{f^{(n+1)}(c)}{(n+1)!}(x-a)^{n+1}$はもとの関数と展開後の関数の誤差を表すものでラグランジュの剰余項と呼ばれます。

$c$は定数で、$x<a$のときは$x<c<a$を満たすような値、$a<x$のときは$a<c<x$を満たすような値として存在します。このような$c$存在して上の式が成り立つことをテイラーの定理と呼びます。

この$n$次テイラー展開を用いれば、どの程度誤差があるのかも踏まえつつ、有限次数の多項式であらゆる関数を表現することができます。

ラグランジュの剰余項

「$a<c<x$を満たす$c$が存在する」と言われてもピンとこないと思うので、図解をしてみましょう。

いま、$n-1$次導関数が修正し終わったので$n$次導関数を修正しようとしている段階(⇔$n+1$次展開を求める段階)だとします。
式で表すと、

$$g(x)=\sum_{k=0}^{n}\frac{f^{(k)}(a)}{k!}(x-a)^k$$

までは求まった段階です。これの$n$次導関数は、

$$g^{(n)}(x)=f^{(n)}(a)=\rm const.$$

なので、現状では$x=a$の点でのみ値が一致していて、$x=x(任意の値)$の位置では誤差が$R$だけあります。

仮に今まで通り$x=a$での接線として修正すると、やはり$x=x$の位置では誤差が$R$だけ生じてしまいます。

そこで、$x=a$から$x=x$までの平均変化率を使ってしまえば、(少なくとも$x=a$と$x=x$の二点では)誤差無く元の関数($f^{(n)}(x)$)の値と一致させることができます。

元の関数は連続なので平均値の定理が使えます。すなわち、いま求めたい平均変化率と同値の傾き$f^{(n+1)}(c)$を得る実数$c(a<c<x)$が存在するはずです($c$の値は$x$をいくつにするかによって変わる)。

したがって、$g(x)$の$n$次導関数は

$$g^{(n)}(x)=f^{(n)}(a)+f^{(n+1)}(c)(x-a)$$

となり、$g(x)$は

$$\sum_{k=0}^{n}\frac{f^{(k)}(a)}{k!}(x-a)^k+\frac{f^{(n+1)}(c)}{(n+1)!}(x-a)^{n+1}$$

となります。強引に平均変化率で求めた最終項が剰余項と呼ばれるのです。

 

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

テイラー展開では、どこを中心に考えるかを$a$で指定していました。

マクローリン展開は$a$の値を$a=0$に固定したもので、$|x|\ll1$のときに適用できる近似としてよく用いられます。

マクローリン展開
$$\begin{align}f(x)&=f(0)+\frac{f^{\prime}(0)}{1!}x+\frac{f^{\prime\prime}(0)}{2!}x^2+\cdots\\&=\sum_{k=0}^{\infty}\frac{f^{(k)}(0)}{k!}x^k\end{align}$$
$n$次マクローリン多項式
$$\begin{align}f(x)≒&f(0)+\frac{f^{\prime}(0)}{1!}x+\frac{f^{\prime\prime}(0)}{2!}x^2\\&+\cdots+\frac{f^{(n)}(0)}{n!}x^n\\=&\sum_{k=0}^{n}\frac{f^{(k)}(0)}{k!}x^k\end{align}$$
$n$次マクローリン展開
$$\begin{align}f(x)=&f(0)+\frac{f^{\prime}(0)}{1!}x+\frac{f^{\prime\prime}(0)}{2!}x^2\\&+\cdots+\frac{f^{(n)}(0)}{(n)!}x^n\\&+\frac{f^{(n+1)}(c)}{(n+1)!}x^{n+1}\\=&\sum_{k=0}^{n}\frac{f^{(k)}(0)}{k!}x^k+\frac{f^{(n+1)}(c)}{(n+1)!}x^{n+1}\end{align}\\(x<c<0, 0<c<x)$$

基本的な考え方はテイラー展開と同様ですが、こちらの方がよりシンプルに見えますね!

 

まとめ

今回は、テイラー展開を図形的なアプローチで理解していきました。

基本的な方針は「傾きの傾きの…の傾きを修正する」ということでした。

その結果、あらゆる関数を多項式で表すことができるので、具体的な計算を行うときなどに大変便利な公式になります。

大学で物理や数学を扱う場合は必須になるので、しっかりと理解を深めておきましょう!
(大学入試でもたまに題材にされるとかされないとか…)

お疲れさまでした。それでは。