2017-01-13 26 views
-3

我想知道數值微分公式中的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 

我真的很感激任何形式的幫助!

+6

我投票結束這個問題作爲題外話,因爲它提出了一個數學問題,而不是具體到編程。 –

+0

問題的編程部分在哪裏? –

+1

好吧,清除它。 –

回答

3

在這樣的公式中h通常是一個「非常小的數字」,類似於微積分中的epsilon。

例如,在fa衍生物被定義爲:

enter image description here

h是如何定義爲接近0。


編程時,例如doing numerical gradient computation,它通常用於將h設置爲非常小的值 - 許多編程環境具有「epsilon」數量;缺乏這一點,你可以使用一個非常小的浮點數。

+0

h總是一樣的數字? – zer0kai

+0

@ zer0kai:在一個給定的等式中,是的。但是在方程中,它是一個抽象量,意思是「非常接近0」 –

+0

例如,我有函數cos(x)並且想要計算x = 1處的微分。我應該分配哪個值h,例如,當我使用公式f'(x0)=(f(x0 + h)-f(x0))/ h – zer0kai

1

使用通常的8字節浮點數,h的敏感值分別爲1e-8(第一個和第二個公式)和1e-5(第三個中心差商)。這對於中等值x有效,對於更大的x,則必須以某種方式包括x的比例。

通常,用於錯誤順序p一個k階差商,達到用於hpow(2e-16, 1.0/(p+k))浮點噪聲和數值誤差之間的平衡。

相關問題