我想知道數值微分公式中的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
我真的很感激任何形式的幫助!
我想知道數值微分公式中的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
我真的很感激任何形式的幫助!
在這樣的公式中h
通常是一個「非常小的數字」,類似於微積分中的epsilon。
例如,在f
的a
衍生物被定義爲:
注h
是如何定義爲接近0。
編程時,例如doing numerical gradient computation,它通常用於將h
設置爲非常小的值 - 許多編程環境具有「epsilon」數量;缺乏這一點,你可以使用一個非常小的浮點數。
使用通常的8字節浮點數,h
的敏感值分別爲1e-8
(第一個和第二個公式)和1e-5
(第三個中心差商)。這對於中等值x
有效,對於更大的x
,則必須以某種方式包括x
的比例。
通常,用於錯誤順序p
一個k
階差商,達到用於h
約pow(2e-16, 1.0/(p+k))
浮點噪聲和數值誤差之間的平衡。
我投票結束這個問題作爲題外話,因爲它提出了一個數學問題,而不是具體到編程。 –
問題的編程部分在哪裏? –
好吧,清除它。 –