数値微分 その2

前回の差分公式より精度が高い3点近似公式を確認してみます
num_differential2.wxm

f(x) : 評価関数
h : 摂動(≠0)
今f(x)をx0点周りで3次の項までテイラー展開します(%o1)
上式をx = x0 + hとして%o2式にまとめます
同様に,x = x0 + 2*hとして%o3式にまとめます



%o2式を4倍し%o3式を引いてまとめると%o4式を得ます
これをf'(x0)について解いた結果を%o5式に示します(ここでf'(x0)とはat('diff(f(x),x,1),x=x0)の意)
右辺のh^2*f'''(x0)/3の項を近似誤差Rとします(%o6)
Rを無視して%o5式右辺をまとめると,1回微分近似の算式を得ます(%o7)
これを3点近似公式(three-point formula)と呼びます



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



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


【数値微分の誤差】

x0 = 2,h = 0.1^xとした場合のRをR1として%o17式に示します
また3点近似公式から計算した微分係数と,解析的に求めた値との差を点列R2とします(%o18)
横軸にh,縦軸に誤差を対数軸として,R1を青線で,R2を赤点で合わせて%t19にプロットします
これよりhがある程度以下に小さくなるとR2はR1から乖離し,誤差が増加に転じることが解ります