スキップしてメイン コンテンツに移動

Taylor Expannsion

Introdction


Today, I introduce Taylor Expansion.
I write not only One dimensional Taylor Expansion but also Multi dimensional Taylor Expansion.

One dimensional Taylor Expansion

f(X) is continuously differentiable for n-times on (a,b)
f(x) is expressed following.
\[\exists c ~~s.t~~ f(b) = \sum_{k=0}^{n-1} f^{(k)}(a)\frac{(b-a)^k}{k!} + f^{(n)}(c) \frac{(b-a)^n}{n!}, c \in (a,b)\]
This is called Maclaurin Expansion.
The last item is called Remainder term.

Multi dimensional Taylor Expansion

Multi dimensional Taylor Expansion is complex.
f is n-variable function.
f is continuously differentiable for m-times.
\(f(x_1+h_1,x_2+h_2,.....,x_n+h_n)\) is expressed following.
\[\exists \theta ~~s.t~~\]
\[f(x_1+h_1,x_2+h_2,...,x_n+h_n)=f(x_1,x_2,...,x_n) + \]
\[\sum_{m=0}^{n-1} \frac{1}{m-1} \sum_{k_1=1}^{n} \sum{k_2=1}^{n} ... \sum{k_{m-1}=1}^{n} \frac{\partial^{m-1} f}{\partial x_{k_1} \partial x_{k_2} .... \partial x_{k_{m-1}} }(x_1,x_2,..,x_n)h_{k_1}h_{k_2} ..... h_{k_m-1} \]
\[+ \frac{1}{m} \sum_{k_1=1}^{n} \sum_{k_2=1}^{n} ... \sum_{k_m=1}^{n} \frac{\partial^{m} f}{\partial x_{k_1} \partial x_{k_2} ... \partial x_{k_m} }(x_1 + \theta h_1, x_2 + \theta h_2,...., x_n + \theta h_n) h_k{k_1}h_{k_2}....h_{k_n}\]
Last item is Remainder term in Multi Taylor Expansion.

Proof

I prove only one dimensional Taylor Expansion.
This proof is used by Rolle’s theorem.
Rolle's Theorem is this page
To assume f(x) is continuously differentiable for n-times on (a,b).
This thorem is proved by founding A such that
\[f(b) = \sum_{k=}^{n-1} f^{(k)} (a) \frac{(b-a)^k}{k!} + A \frac{(b-a)^n}{n!}\]
Now, I define following function such that
\[g(x) = f(b) - \sum_{k=0}^{n-1} f^{(k)}(x) \frac{(b-a)^k}{k!} - A \frac{(b-x)^n}{n!}\]
This g(x) fulfill following.
  • g(a) = 0
  • g(b) = 0
Thus, by Rolle’s theorem
\[\exists c \in (a,b) ~~s.t~~ g'(c) = 0\]
\[\begin{eqnarray*} g'(x) &=& - \sum_{k=0} ^{n-1} f^{(k+1)} (x) \frac{(b-x)^k}{k!} + \sum_{k=1}^{n-1} f^{(k)} (x) \frac{(b-x)^{k-1}}{(k-1)!} + A \frac{(b-x)^{n-1}}{(n-1)!} \\ &=& -\sum_{k=1}^{n} f^{(k)} (x) \frac{(b-x)^{n-1}}{(k-1)!} + \sum_{k=1}^{n-1} f^{(k)} (x) \frac{(b-x)^{k-1}}{(k-1)!} + A \frac{(b-x)^{n-1}}{(n-1)!}\\ &=& -f^n (x) \frac{(b-x)^{n-1}}{(n-1)!} + A \frac{(b-x)^{n-1}}{(n-1)!} \end{eqnarray*}\]
I substitiute c for x on this form.
\[g'(c) = \frac{(b-x)^{n-1}}{(n-1)!} (A - f^{(n)}(x))\]
\[A = f^{(n)}(x)\]
Q.E.D

Reference
https://mathtrain.jp/taylortheorem
http://www.ne.jp/asahi/search-center/internationalrelation/mathWeb/Differentiation/TheoremsDffrntlNvarFnctn/TaylorTheorem.htm




コメント

このブログの人気の投稿

ダイクストラ法

Introduction English ver 今日は、ダイクストラ法について書きます。ダイクストラ法とは最短距離を求めるアルゴリズムです。地図はグラフで表されます。もし、まだ this page を見ていない方は先にこちらをご覧ください。今回はこの記事を前提としています。このページでは、グラフの定義と、ヒープ構造について書いています。ダイクストラ法ではヒープ構造を使って、かなりの計算量を落とします。 この スライド はダイクストラ法を説明したスライドです。 Overview アルゴリズム 実装 アルゴリズム このアルゴリズムは スタート始点のノードを決める。そして、それをAと名付ける。 各ノードに$d=\infty$を割り当てる。ただし、スタート地点はd=0 Aの隣接ノードのリストをadj_listと名付ける。  For adj in adj_list:  If d of adj > d of A + weight to adj -> d = A + weight to adj. グラフnetworkからAを取り除く グラフnetworkの中で最初のdを持っているノードをAとし、4に戻る。 となっています。 このアルゴリズムを図を用いて説明します。  このグラフを使って説明します。  初めに、スタート地点を決めます。そして、各ノードに$d=\infty$を割り当てます。  Aから始まります。Aの隣接ノードであるBのdを更新します。もし、現在のBよりもAのdとA->Bへの重みを足したもののほうが小さいならdをその値に更新します。同じようにCnのdを更新します。 次にAを取り除きます。  次はBから始まります。Aと同じことをやります。 このダイクストラ法では今のような操作をグラフの全てのノードに×がつくまで続きます。 実装 このアルゴリズムでは$O(log(|V|^2))$という計算量を持っています。最小のdを持つノードを探すのに時間がかかります。 しかし、ヒープ構造を使えばO((E+V)log(V))に減らせます。ヒープ構造で現時点での...

線形SVMの実装

Introduction English ver 今日は線形SVMの実装をしました。 SVMはDeep learningが主流になる前、人気だったとどこかで拝見しました。 SVMの詳しい理論の説明は別の機会に必ず書きます。 # 第一弾書きました。 SVMの理論 part 1 computerはwindowsでOSはwindows10です。Python3で実装します。 このプログラムには内点法という最適化を使っています。 Dataset 次の二つのdastasetを使います。 一つは、完全に分離できるような分布のデータです・ もう一つは完全に分離できないような分布のデータです。 例えば、data1の分布はこのような形になります。 この分布ならきれいに二つのクラスを分けるような線が引けそうですね。 もう一つのデータは次のようなデータを使います。 このデータはきれいに分けるような線は引けなさそうです。 この二つのデータを用いて、線形SVMを使っていきましょう。 Implementation data1 この線が分離面になります。 きれいにいい感じのところに引けてます。 data2 このデータについては様々なCを用いて計算してみました。 Cの値が小さければ小さいほど、誤分類を認めてしまうことになります。 このデータではCの影響を確認しずらいかもしれませんが、\(C=1\) の時、よく見ると、赤色のデータが一つ境界面を飛び出しています。 線形でないSVMを使うとCの影響がもっとわかりやすいかもしれません。 非線形なSVMについては、別の記事で書こうと思います。 CODE コードはすべてgithubに乗せています。 My SVM code is here 今回使ったファイルはgit_SVM_check.pyとgit_SVM_def.pyです。 git_SVM_check.py には次のようなコードが入ったメインファイルです。 if __name__ == '__main__': git_SVM_def にはSVMのクラスと、内点法の実装が入っています。 次は非線形のSVMについても書きたいと思います。 もし、そちらの記事も見ていただけたらハッピーです。

Discrete Fourier transform

Introduction 日本語 ver I will write about Discrete Fourier transform. Discrete Fourier transform is Abbreviated DFT. I am making pdf about Audio Signal Processing. I publish pdf at  github . However, I write tex in Japanese. I take a lecture about the signal processing. There is lecture at  thie page . I update this pdf.