テイラー近似#

平均値の定理#

平均値の定理

関数 f(x)axb で連続で a<x<b で微分可能ならば、ある点 c(a<c<b) が存在して、

f(c)=f(b)f(a)ba(a<c<b)

が成り立つ。

この定理は 直線 AB と同じ傾きをもつ接線が弧 AB上に存在することを意味している。

平均値の定理から分母を払って

f(b)=f(a)+f(c)(ba)

としたものを一般化したのがテイラーの定理

テイラー展開#

テイラーの定理

関数 f(x)axbn 階まで連続な導関数をもち、 a<x<bn+1 階微分可能ならば、ある点 c(a<c<b) が存在して、

f(b)=f(a)+f(a)(ba)+12!f(a)(ba)2++1n!f(n)(a)(ba)n+1(n+1)!f(n+1)(c)(ba)n+1(a<c<b)

が成り立つ。

n=0(1階微分可能)のとき、平均値の定理と一致する。

テイラーの定理の最後の項

1(n+1)!f(n+1)(c)(ba)n+1(a<c<b)

はラグランジュの剰余項と呼ばれる代表的な剰余項である。

cc=a+θ(ba)(0<θ<1)と書き、b=xとおけば、テイラー展開と呼ばれる式になる

テイラー展開

f(x)=f(a)+f(a)(xa)+12!f(a)(xa)2++1n!f(n)(a)(xa)n+Rn+1Rn+1=1(n+1)!f(n+1)(a+θ(xa))(xa)n+1(0<θ<1)

これを関数f(x)の点aにおける テイラー展開(Taylor expansion) という。

テイラー級数#

関数f(x)の点aにおけるテイラー展開は有限個のベキ項と剰余Rn+1の和の形になる。

関数f(x)をより良く近似しようとすると、剰余Rn+1をより小さくする必要がある。

剰余Rnnの値を増やしていくと、数列R1,R2,,Rn,を作る。もし、数列{Rn}0に収束する、すなわち

limn{Rn}=0

ならば、nを増やしてより多くの項で近似するほど、よりよい近似になる。

このとき、

f(x)=f(a)+f(a)(xa)+f(a)(xa)22!++f(n)(a)(xa)nn!+

と書く。最後のは無限に和が続くことを意味している。これを テイラー級数 (Taylor series)と呼ぶ。

テイラー級数

f(x)=f(a)+f(a)(xa)+f(a)(xa)22!++f(n)(a)(xa)nn!+=n=0f(n)(a)n!(xa)n

例:対数変換による変化率の近似#

定理:時系列分析における、対数差分系列(対数系列logytの差分系列Δlogyt=logytlogyt1)が十分小さい変化率の近似になる

log(yt)log(yt1)ytyt1yt1

証明:対数の計算規則から

log(yt)log(yt1)=log(ytyt1)=log(1+ytyt1yt1)

となる。

またテイラー近似により

log(1+x)=xx22+x33x44+

となり、第2項以降は小さいxに対しては微小な値になるため

1次のテイラー近似

log(1+x)x

を利用して

log(1+ytyt1yt1)ytyt1yt1

となる

近似誤差について#

log(1+x)xの近似誤差はx=0.5くらいから0.1くらいになってくる

Hide code cell source
# log(1 + x) \approx x の実験
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 1, 20)
approx = np.log(1 + x)

fig, axes = plt.subplots(nrows=2)
axes[0].plot(x, x, color="gray", linestyle="--", label="x")
axes[0].plot(x, approx, label=r"$\log(1 + x)$")
axes[0].legend()
axes[0].set(
    title=r"Approximation of $\log(1 + x) \approx x$",
    xlabel="x",
    ylabel="log(1 + x)"
)
fig.subplots_adjust(hspace=.5)

errors = x - approx
axes[1].plot(x, errors)
axes[1].set(
    title=r"Approximation Error of $\log(1 + x) \approx x$",
    xlabel="x",
    ylabel="x - log(1 + x)"
)
axes[1].grid(True)

fig.show()
../../../_images/33e964b37b5a061d707f1122b6d9317c4d11b6ed74bab2e3b03991721406cf88.png

例:対数変換した変数の回帰係数の解釈#

これも同様に変化率の近似として解釈できる

マクローリン展開#

テイラー展開の特別の場合として、a=0のときの場合を マクローリン展開 という。

マクローリン展開

f(x)=f(0)+f(0)x+12!f(0)x2++1n!f(n)(0)xn+1(n+1)!f(n+1)(θx)xn+1(0<θ<1)

例:指数関数#

オイラーによる指数関数の定義

exp(x)=limn(1+xn)n

のマクローリン級数での表現は

exp(x)=n=0xnn!=1+x+x22!+x33!+x44!+

となる。こちらも指数関数の定義として扱われることがある。