泰勒級数は、数学の中で非常に強力な関数の近似ツールです - 3Blue1Brown
最近、テイラー展開について再学習し、学習記録として記事を書くことにしました。
テイラーの定理の基本的な考え方は、ある関数が十分に滑らかであり、ある点での各階数の導関数が既知である場合、これらの導関数の値を係数として使用して、その点の近傍での関数の値を近似する多項式を構築できるというものです。
式は以下のように表されます。
g(x)=f(a)+1!f′(x)(x−a)+2!f2(x)(x−a)2+...+n!fn(x)(x−a)n+Rn(x)
上記の式は一旦置いておき、まずどのような関数が滑らかであると見なされるかを説明します。滑らかな関数は、無限階数の導関数を持つ関数であり、定義域内の各点で無限回微分可能であり、導関数がその点で連続であるとされます。例えば、y=xはその導関数がy′=1であり、その導関数をさらに微分しても常に 0 になるため、y=xは 1 階滑らかな関数と呼ばれます。また、y=sinxのような関数も無限階滑らかな関数であり、その導関数は常にcosx、−sinx、−cosx、sinxのように循環します。
近似とは何か#
関数の近似とは、別の関数を使用して元の関数を近似し、特定の範囲での誤差を小さくすることを指します。この説明からわかるように、近似は複雑な関数を計算する手段として使用されます。計算が難しい関数を計算しやすい関数に近似するだけで、言葉だけで理解すると少し奇妙に感じるかもしれませんが、例を挙げるとより直感的に理解できるでしょう。例えば、sin2を手計算で求める場合、通常は 0 で展開してΣn=0+∞(2n+1)!(−1)n(2)2n+1となります(これは単なる例ですが、後で展開方法について説明します)。いくつかの項を取るだけで、近似解を求めることができます。ただし、近似を行っても最終的には必ず誤差が存在することに注意してください(つまり、式中のRn(x))。もちろん、後でこれについても議論します。
関数を近似する方法#
関数の導関数は、その関数の変化率を示すものです(参考:https://www.bilibili.com/video/BV1Lx411m7Vj/?vd_source=087a5c011e05e20afe8b532203a38c3f)。したがって、導関数をさらに微分すると、その点の変化率の変化率に対応します。この関係をさらに推し進めると、無限に続くことになります。要するに、関数を近似するためには、任意の n 階導関数が同じであることさえ実現すれば十分です(変化率、変化率の変化率... などがすべて同じであれば、それらの関数のグラフは無限に近づくはずです)。したがって、関数 f (x) を近似するためには、$$g (x) = a_0 + a_1 (x) + a_2 (x^2) + ... + a_n (x^n)$$ と仮定することができます。ここで、n は任意の正の整数です。g (x) をこのように設定する理由は非常に単純です。この形式の表現は、任意の n 階導関数を計算するのに便利です。
展開点 0 で展開すると、以下の式が得られます。
⎩⎨⎧f(0)=g(0)f′(0)=g′(0)f2(0)=g2(0)..fn(0)=gn(0)
以下はanの導関数の解法です。
∵fn(0)=gn(0)∴fn(0)=ann!∴an=n!fn(0)
したがって、
⎩⎨⎧a0=f(0)a1=1!f′(0)a2=2!f2(0)..an=n!fn(0)
これにより、展開点 0 でのテイラー展開の式(マクローリン展開)が得られます。
g(x)=f(0)+1!f′(0)(x)+2!f2(0)(x)2+...+n!fn(0)(x)n+Rn(x)
この展開を一般化するために、例えば a 点で展開する場合、右に移動するだけです。
g(x)=f(a)+1!f′(a)(x−a)+2!f2(a)(x−a)2+...+n!fn(a)(x−a)n+Rn(x)
上記の式のRn(x)は余剰項と呼ばれ、後で個別に取り扱います。この項を削除すると、上記の等式はおおよそ等号になります。なぜなら、n が無限大であっても n+1 が存在するからです。
余剰項Rn(x)の処理#
推導が面倒なので、後で書きます。
過程も結果も、実際には言っていることは同じです - 目標点と展開点が離れれば離れるほど、誤差が大きくなります。例えば、sin x を零点で展開する場合、計算時に 2 を代入することができますが、なぜ零点で展開した後に 2 を代入してsin2を計算することが許されるのでしょうか?これは収束範囲と関係があります。sin の収束範囲は (−∞+∞) であるため、直接代入して計算することができます。後で書きます、後で書きます。