Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

テイラー近似

平均値の定理

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

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

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

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

テイラー展開

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

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

1(n+1)!f(n+1)(c)(ba)n+1(a<c<b)\frac{1}{(n+1) !} f^{(n+1)}(c)(b-a)^{n+1} \quad(a<c<b)

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

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

テイラー級数

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

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

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

limn{Rn}=0\lim_{n\to \infty} \{R_n\} = 0

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

このとき、

f(x)=f(a)+f(a)(xa)+f(a)(xa)22!++f(n)(a)(xa)nn!+f(x)=f(a)+f^{\prime}(a)(x-a)+f^{\prime \prime}(a) \frac{(x-a)^2}{2 !}+\cdots+f^{(n)}(a) \frac{(x-a)^n}{n !}+\cdots

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

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

定理:時系列分析における、対数差分系列(対数系列logyt\log y_tの差分系列Δlogyt=logytlogyt1\Delta \log y_t = \log y_t - \log y_{t-1})が十分小さい変化率の近似になる

log(yt)log(yt1)ytyt1yt1\log \left(y_t\right) - \log \left(y_{t-1}\right) \approx \frac{y_t-y_{t-1}}{y_{t-1}}

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

log(yt)log(yt1)=log(ytyt1)=log(1+ytyt1yt1)\log \left(y_t\right) - \log \left(y_{t-1}\right) =\log \left(\frac{y_t}{y_{t-1}}\right) =\log \left(1+\frac{y_t-y_{t-1}}{y_{t-1}}\right)

となる。

またテイラー近似により

log(1+x)=xx22+x33x44+\log(1 + x) = x - \frac{x^2}{2} + \frac{x^3}{3} - \frac{x^4}{4} + \cdots

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

1次のテイラー近似

log(1+x)x\log(1 + x) \approx x

を利用して

log(1+ytyt1yt1)ytyt1yt1\log \left(1+\frac{y_t-y_{t-1}}{y_{t-1}}\right) \approx \frac{y_t-y_{t-1}}{y_{t-1}}

となる

近似誤差について

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

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()
<Figure size 640x480 with 2 Axes>

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

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

マクローリン展開

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

例:指数関数

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

exp(x)=limn(1+xn)n\exp (x)=\lim _{n \rightarrow \infty}\left(1+\frac{x}{n}\right)^n

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

exp(x)=n=0xnn!=1+x+x22!+x33!+x44!+\exp (x)=\sum_{n=0}^{\infty} \frac{x^n}{n !}=1+x+\frac{x^2}{2 !}+\frac{x^3}{3 !}+\frac{x^4}{4 !}+\cdots

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