FAV-ZCU/KMA NM/Zkouška/08. okruh.md

6.3 KiB

Numerické derivování a integrování. Diference. Richardsonova extrapolace. Newtonovy-Cotesovy vzorce. Gaussovy kvadraturní vzorce. Jednoduché a složené kvadraturní vzorce.

Numerické derivování

  • existuje konečná \displaystyle\lim_{ h \to \infty } \frac{f(x+h) - f(x_{0})}{h} \implies f(x) má v bodě x_{0} derivaci
  • umíme zderivovat jakoukoliv funkci, ale musíme mít zadaný její předpis - co pokud máme jen některé hodnoty? (chceme zpočítat derivaci numericky)

Způsoby odvození

  1. pomocí interpolačního polynomu
    • pro funkci f zadanou tabulkou sestrojíme interpolační polynom a ten zderivujeme
    • stupeň polynomu musí být větší nebo roven řádu počítané derivace
  2. pomocí Taylorova rozvoje

Diference

Levá a pravá poměrná diference (dvoubodové)

  • vytvoříme Taylorův rozvoj v bodech (x_{0}+h) a (x_{0}-h) (musíme mít dostatečně hladkou funkci)
    • f(x_{0}+h) = f(x_{0}) + h\cdot f'(x_{0}) + \frac{h^2}{2}\cdot f''(\xi_{1}); \quad \xi_{1} \in (x_{0}, x_{0}+h)
    • f(x_{0}-h) = f(x_{0}) - h\cdot f'(x_{0}) + \frac{h^2}{2}\cdot f''(\xi_{2}); \quad \xi_{2} \in (x_{0}-h, x_{0})
  • z 1. rovnice získáme pravou poměrnou diferenci
    • \displaystyle f'(x_{0}) = D_{P} f(x_{0}) - \text{chyba} = \frac{f(x_{0}+h) - f(x_{0})}{h} - \frac{h}{2}\cdot f''(\xi_{1})
  • z 2. rovnice získáme levou poměrnou diferenci
    • \displaystyle f'(x_{0}) = D_{L}f(x_{0}) + \text{chyba} = \frac{f(x_{0}) - f(x_{0}-h)}{h} + \frac{h}{2}\cdot f''(\xi_{2})
  • O(h) ... chyba, řád desetin pro h < 1

Centrální poměrná diference (tříbodová)

  • vytvoříme Taylorův rozvoj 2. řádu
    • f(x_{0}+h) = f(x_{0}) + h\cdot f'(x_{0}) + \frac{h^2}{2} \cdot f''(x_{0}) + \frac{h^3}{6} \cdot f'''(\xi_{1}); \quad \xi_{1} \in (x_{0}, x_{0}+h)
    • f(x_{0}-h) = f(x_{0}) - h\cdot f'(x_{0}) + \frac{h^2}{2} \cdot f''(x_{0}) - \frac{h^3}{6} \cdot f'''(\xi_{2}); \quad \xi_{2} \in (x_{0}-h, x_{0})
  • rovnice od sebe odečteme
    • \displaystyle f(x_{0}+h) - f(x_{0}-h) = 2h\cdot f(x_{0}) + \frac{\frac{h^3}{6}(f'''(\xi_{1}) + f'''(\xi_{2}))}{\frac{h^2}{6} f'''(\xi)}
  • vyjádřením f' a získáme centrální poměrnou diferenci
    • \displaystyle f'(x_{0}) = D_{C} f(x_{0}, h) - \text{chyba} = \frac{f(x_{0}+h) - f(x_{0}-h)}{2h} - \text{chyba}
    • O(h^2) ... chyba, řád setin pro h < 1

Vždy je nejlepší použít centrální poměrnou diferenci. Na krajích ale nemáme k dispozici dva body, takže využijeme levou a pravou poměrnou diferenci.

Podmíněnost

  • úloha numerického derivování je špatně podmíněna
    • chyba klesá s rostoucím h (prvně klesá, poté začne strmě narůstat)
  • chceme najít optimální krok h_{opt} \to Richardsonova extrapolace

Richardsonova extrapolace

Využijeme 2 přibližných výsledků k získání třetího, který bude přesnější.

  • zvýšení přesnosti - numerická derivace je špatně podmíněná

Např. pro centrální diferenci

  • vyjádříme centrální diferenci pro krok h a 2h z Taylorova rozvoje 4. řádu
  • D_{C}(x_{0}, h) = f'(x_{0}) + \frac{h^2}{6}f'''(x_{0})+O(h^4)
  • D_{C}(x_{0}, 2h) = f'(x_{0}) + \frac{4h^2}{6}f'''(x_{0}) + O(h_{4})
  • rovnice od sebe odečteme, aby zmizel prostřední člen
    • 4D_{C}(x_{0},h)-D_{C}(x_{0},2h) = 3f'(x_{0}) + O(h^4)
  • vyjádříme derivaci
    • \displaystyle f'(x_{0}) = \frac{4D_{C}(x_{0},h)-D_{C}(x_{0},2h)}{3} - O(h^4)

Vycházet jsme mohli z hodnot, které měly řádově chybu O(h^2). Šikovnou kombinací jsme získali chybu pouze O(h^4). Je možné pokračovat a snížit chybu ještě více.

Numerické integrování

Použití

  • když nená možno integrál spočítat analyticky (nebo je to velmi pracné)
  • když máme funkci f zadanou tabulkou

Funkci f aproximuje funkce \displaystyle\varphi \to I(f) \approx I(\varphi) = \int_{a}^b \varphi(x) \, dx.

Jedná se o stabilní úlohu (narozdíl od derivování).

Princip

  • interval \langle a,b\rangle rozdělíme na N podintervalů \langle x_{k}, x_{k+1}\rangle (pro jednoduchost stejně velkých)
  • na podintervalech nahradíme funkci f polynomem a ten integrujeme
  • vzorce pro výpočet integrálů (kvadraturní vzorce)
    • základní - na intervalech \langle x_{k},x_{k+1}\rangle
    • složený - přes celý interval \langle a,b\rangle (součet základních kv. vzorců)
  • uzly
    • x_{k} = x_{0} + k\cdot h
    • k = 0,1,\dots,N-1
    • h = \frac{b-a}{N}

Newton-Cotesovy vzorce

Základní kvadraturní vzorce

  • obdélníkové pravidlo
    • f nahrazujeme konstantní funkcí \varphi
    • \displaystyle\int_{x_{k}}^{x_{k+1}} f(x) \, dx \approx h\cdot f\left( x_{k}+\frac{h}{2} \right) = R_{Z}(f,h)
  • lichoběžníkové pravidlo
    • f nahrazujeme lineární funkcí \varphi
    • \displaystyle\int_{x_{k}}^{x_{k+1}} f(x) \, dx \approx \frac{h}{2}[f(x_{k})+f(x_{k+1})] = T_{Z}(f,h)
  • Simpsonovo pravidlo
    • f nahrazujeme kvadratickou funkcí \varphi
    • \displaystyle\int_{x_{k}}^{x_{k+2}} f(x) \, dx \approx \frac{h}{3}[f(x_{k})+4f(x_{k+1})+f(x_{k+2})] = S_{Z}(f,h)

Chyby základních vzorců

  • nejmenší chyba je u Simpsonova pravidla
  • obdélníkové pravidlo je přesnější než lichoběžníkové

Složení N-C vzorců

  • získáme sečtením základních kvadraturních vzorců
    • \displaystyle\int_{a}^b f(x) \, dx = \sum_{0}^{N-1} \int_{x_{k}}^{x_{k+1}} f(x) \, dx \approx \sum_{0}^{N-1} \int_{x_{k}}^{x_{k+1}} \varphi(x) \, dx

Vlastnosti

  • N-C vzorce nejsou konvergentní
  • ke zvýšení přesnosti možno využít Richardsonovu extrapolaci
    • volit h a \frac{h}{2} nebo kombinovat dvě různá pravidla

Gaussovy kvadraturní vzorce

Snažíme se, aby kvadraturní vzorec integroval přesně polynomy co možná nejvyššího řádu.

Obecný tvar kvadraturního vzorce

  • \displaystyle K(f) = \sum_{i=0}^m w_{i}\cdot f(x_{i})
  • w_{i} ... váhy
  • x_{i} ... uzly (neekvidistantní)

Vlastnosti

  • máme-li m+1 bodů, tak vzorec integruje přesně až do 2m+1 stupně polynomu
  • vyšší přesnost, ale neekvidistantní uzly (nemají od sebe stejnou vzdálenost)
  • Gaussovy kv. vzorce vždy konvergují

Vzorce

  • jednobodový vzorec: K = w_{0}\cdot f(x_{0})
    • splyne s obdélníkovým pravidlem
  • dvoubodový vzorec: K = w_{0}f(x_{0}) + w_{1}f(x_{1})
    • pro 1 interval má dva obdélníky
  • tříbodový vzorec: K = w_{0}f(x_{0}) + w_{1}f(x_{1}) + w_{2}f(x_{2})