数値微分 その1

前回の数値積分からの流れで,今回は数値微分(Numerical differentiation)のお話です
数値微分は解析的に微分することが難しい問題を近似的に解くための大変便利な手法ですヽ( ´ー`)ノ
微分方程式の数値解法も広義の意味で数値微分に含まれます


今回は数値微分の基本となる差分公式を確認してみます
num_differential1.wxm

f(x) : 評価関数
h : 摂動(≠0)
今f(x)をx0点周りで2次の項までテイラー展開します
上式をx = x0 + hとしてまとめます
これをf'(x0)について解いた結果を%o3式に示します(ここでf'(x0)とはat('diff(f(x),x,1),x=x0)の意)
右辺の-h*f''(x0)/2の項を無視してまとめると,1回微分近似の算式を得ます(%o4)
h > 0 のとき,前進差分公式(forward difference formula)
h < 0 のとき,後退差分公式(backward difference formula)と呼びます


ちなみに%o4式中のhについて極限を取るとx0における微分係数の定義に一致します



%o5式に示す関数を対象に,まずは解析的に微分してみます(%o6)
x = 2における微分係数を%o7式に示します



では同じ問題を,今度は数値微分してみます
h = 0.1〜0.1^6の数値微分を%08〜%13式にそれぞれ示します


追記
%o3式の-h*f''(x0)/2の項はhを係数に持ちます
hを小さくすれば近似誤差も小さくなる様に思えますが,これがそうとも限らないので注意してください(´・ω・`)