数値微分方程式が何であり、関数があるときにそれをどのように計算できるかを知りたい。数値差別化で "h"とは何ですか?
私はこの式について話しています:
f'(x0) = (f(x0 + h) - f(x0))/h
f'(x0) = (f(x0) - f(x0 - h))/h
f'(x0) = (f(x0 + h) - f(x0 - h))/2*h
私は本当に助けの任意の種類をいただければ幸いです!
数値微分方程式が何であり、関数があるときにそれをどのように計算できるかを知りたい。数値差別化で "h"とは何ですか?
私はこの式について話しています:
f'(x0) = (f(x0 + h) - f(x0))/h
f'(x0) = (f(x0) - f(x0 - h))/h
f'(x0) = (f(x0 + h) - f(x0 - h))/2*h
私は本当に助けの任意の種類をいただければ幸いです!
このような式において、は、通常、「非常に小さい数」であり、微積分のイプシロンに類似している。
例えば、a
でf
の誘導体を次のように定義される。h
は、例えば、プログラムするとき0
に近づくように定義される方法
注doing numerical gradient computationでは、通常、h
を非常に小さいものに設定します。多くのプログラミング環境では、「ε」の数があります。それがないと、非常に小さな浮動小数点数を使用できます。通常8つのバイトの浮動小数点数を使用し
、h
ための賢明な値は、第一および第二の式と第3の中心差分商のため1e-5
ため1e-8
あります。これは、中位の値がx
の場合に有効です。大きい場合は、x
となり、何らかの形でx
の位取りを含まなければなりません。一般に
は、エラー順序p
とk
番目階差分商のために、浮動小数点ノイズ及び数値誤差のバランスがh
約pow(2e-16, 1.0/(p+k))
ために達成されます。
私はプログラミングに特有の問題ではなく、数学的な質問をしているので、この質問を議論の対象外としています。 –
質問のプログラミング部分はどこですか? –
okこれはクリアされます。 –