Numerická derivace

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Numerická derivace je numerická metoda odhadu derivace funkce na základě hodnoty této funkce v konečně mnoha bodech. Numerickou derivaci obvykle používáme v situaci, kdy nejsme schopni určit derivaci funkce analyticky.

Základní princip[editovat | editovat zdroj]

Máme odhadnout derivaci funkce f(x) v bodě x, tj. hodnotu f'(x), na základě znalosti funkčních hodnot v konečně mnoha bodech.

Při odhadu derivace funkce f můžeme vyjít z definice:

 f'(x) = \lim_{h \to 0} {\frac{f(x+h) - f(x)}{h}}

kde h je z prstencového okolí nuly.

Zvolíme-li „malé“ h různé od nuly, dostaneme odhad

d(x,h) = \frac{f(x+h) - f(x)}{h}.

Derivace znamená směrnici tečny ke grafu funkce v bodě, zde jí nahrazujeme sečnou vedenou body, které se od sebe „velmi málo liší“.

Řád metody a chyba metody[editovat | editovat zdroj]

Kvalitu tohoto odhadu můžeme posoudit pomocí Taylorova rozvoje funkce f v okolí nuly. První člen f'(x) je správný výsledek, ostatní členy znamenají Taylorův rozvoj chyby metody. Řád metody numerické derivace je exponent u prvního nenulového členu Taylorova rozvoje chyby. Samozřejmě platí, že čím větší je řád numerické derivace, tím „přesnější“ výsledek vypočteme.

Z praktického hlediska je problém přibližného výpočtu derivací funkce dané tabulkou delikátní a zaokrouhlovací chyby mohou být v některých případech zničující, zejména pokud se jedná o body získané empiricky (tj. sérii naměřených bodů). Proto je vhodné nejdříve data vhodně upravit (např. aproximací podle metody nejmenších čtverců).

Tři ekvidistantní body[editovat | editovat zdroj]

V případě, že tabulkové body jsou ekvidistantní, můžeme vzorec pro numerickou derivaci získat derivováním interpolačních vzorců vyjádřených pomocí diferencí. Například tři body f(x-h), f(x) a f(x+h) lze proložit parabolou a odvodit následující aproximaci první derivace f'(x).

f'(x) = \frac{f(x+h) - f(x-h)}{2h}

Pro stejné tři body lze také odvodit vzorec pro odhad druhé derivace f''(x).

f''(x) = \frac{f(x+h)-2f(x)+f(x-h)}{h^2}

Odvození vzorce pro první derivaci[editovat | editovat zdroj]

Předpokládejme trojici bodů x-h, x a x+h, které proložíme parabolou y = a x^2 + b x + c. Pro zjednodušení zápisu zavedeme značení x_{k-1} = x-h, x_k = x, y_k = f(x_k).

Při proložení tří bodů parabolou musí platit následující vztahy.

y_k = a x_k^2 + b x_k + c
y_{k-1} = a (x_k-h)^2 + b (x_k-h) + c = \ldots = y_k + ah^2 - 2ahx_k - bh
y_{k+1} = a (x_k+h)^2 + b (x_k+h) + c = \ldots = y_k + ah^2 + 2ahx_k + bh

Z rovnice pro y_{k-1} lze vyjádřit bh a dosadit jej do rovnice pro y_{k+1} a získat tak a.

bh = y_k + ah^2 - 2ahx_k - y_{k-1}
y_{k+1} = y_k + ah^2 + 2ahx_k + y_k + ah^2 - 2ahx_k - y_{k-1}
 = 2y_k + 2ah^2 - y_{k-1}
a = \frac{y_{k+1} - 2y_k + y_{k-1}}{2h^2}

Do derivace paraboly v bodě x_k dosadíme za b, které v podstatě známe z bh.

b = ah - 2ax_k + \frac{y_k - y_{k-1}}{h}
y_k' = 2ax_k + b = ah + \frac{y_k - y_{k-1}}{h}

Dosadíme za a, převedeme na společný jmenovatel a získáme tak finální vzorec pro aproximaci první derivace.

y_k' = \frac{y_{k+1} - 2y_k + y_{k-1}}{2h} + \frac{y_k - y_{k-1}}{h}
 = \frac{y_{k+1} - 2y_k + y_{k-1} + 2y_k - 2y_{k-1}}{2h}
y_k' = \frac{y_{k+1} - y_{k-1}}{2h}

Odvozený vzorec odpovídá „selské úvaze“, kdy směrnice tečny v bodě x_k je nahrazena směrnicí sečny mezi body x_{k-1} a x_{k+1}.

Odvození vzorce pro druhou derivaci[editovat | editovat zdroj]

Při uvažovaném proložení tří bodů parabolou je možné odvodit i vzorec pro aproximaci druhé derivace f''(x). Stačí pouze dvakrát derivovat rovnici paraboly a dosadit za a vypočtené v předchozí kapitole.

y = ax^2 + bx + c
y' = 2ax + b
y'' = 2a
y_k'' = \frac{y_{k+1} - 2y_k + y_{k-1}}{h^2}

Ke stejnému vzorci se lze opět dostat „selským rozumem“. Stačí si uvědomit, že druhá derivace je vlastně pouze derivací první derivace a použít jednoduchý vztah pro aproximaci první derivace.

f'(x) = \frac{f(x+h) - f(x)}{h}.
f''(x) = \frac{f'(x) - f'(x-h)}{h} = \frac{\frac{f(x+h) - f(x)}{h} - \frac{f(x) - f(x-h)}{h}}{h}