01NM:Kapitola8: Porovnání verzí

Z WikiSkripta FJFI ČVUT v Praze
Přejít na: navigace, hledání
(Založena nová stránka: \section{Numerický výpočet derivace} Jsou dány hodnoty funkce $f$ ve vzájemně různých uzlech $x_0\, x_1\, \hdots\, x_n$. Hledáme $k$-tou derivaci funkce $f$, a to …)
 
m
Řádka 19: Řádka 19:
 
S použitím (\ref{katanaksi}) dostáváme
 
S použitím (\ref{katanaksi}) dostáváme
 
\[
 
\[
f(x_0\, x_0)=\lim_{x_0^{(1)}\rightarrow x_0} f(x_0\, x_0^{(1)})=\lim_{x_0^{(1)}\rightarrow x_0} \frac{f(x_0^{(1)})-f(x_0)}{x_0^{(1)}-x_0}=f'(x),
+
f(x_0\, x_0)=\lim_{x_0^{(1)}\rightarrow x_0} f(x_0\, x_0^{(1)})=\lim_{x_0^{(1)}\rightarrow x_0} \frac{f(x_0^{(1)})-f(x_0)}{x_0^{(1)}-x_0}=f'(x_0),
 
\]
 
\]
 
\[
 
\[

Verze z 21. 12. 2009, 19:38

\section{Numerický výpočet derivace} Jsou dány hodnoty funkce $f$ ve vzájemně různých uzlech $x_0\, x_1\, \hdots\, x_n$. Hledáme $k$-tou derivaci funkce $f$, a to především v bodech $x_0\, x_1\, \hdots\, x_n$. Principiálně se tato úloha řeší strašně snadno: stačí $k$-krát zderivovat vztah $f(x)=L_n(x)+R_n(x)$ a dostaneme \[ f^{(k)}(x)=L_n^{(k)}(x)+R_n^{(k)}(x). \] Zřejmě musí $k\le n$, jinak je to nanic (zůstane $f^{(k)}(x)=R_n^{(k)}(x)$). Našim cílem je elegantně vyjádřit $L_n^{(k)}$ a $R_n^{(k)}$. K tomu je potřeba zobecnit poměrné diference i pro opakující se argumenty. \begin{define} Nechť $\forall i\in\hat n_0$ v okolí bodu $x_i$ existuje $f^{(k_i)}$. Potom definujeme \[ f(\underbrace{x_0\, \hdots\, x_0}_{k_0\text{-krát}}\, \underbrace{x_1\, \hdots\, x_1}_{k_1\text{-krát}}\, \hdots\, \underbrace{x_n\, \hdots\, x_n}_{k_n\text{-krát}})= \] \[ =\lim_{x_i^{(j)}\rightarrow x_i} f(x_0\, x_0^{(1)}\, \hdots\, x_0^{(k_0-1)}\, x_1\, x_1^{(1)}\, \hdots\, x_1^{(k_1-1)}\, \hdots\, x_n\, x_n^{(1)}\, \hdots\, x_n^{(k_n-1)}) \] za předpokladu, že $x_i^{(j_1)}\ne x_i^{(j_2)}$ pro $j_1\ne j_2$. \end{define} \begin{remark} S použitím (\ref{katanaksi}) dostáváme \[ f(x_0\, x_0)=\lim_{x_0^{(1)}\rightarrow x_0} f(x_0\, x_0^{(1)})=\lim_{x_0^{(1)}\rightarrow x_0} \frac{f(x_0^{(1)})-f(x_0)}{x_0^{(1)}-x_0}=f'(x_0), \] \[ f(\underbrace{x_0\, \hdots\, x_0}_{k_0\text{-krát}})=\lim_{x_0^{(j)}\rightarrow x_0} f(x_0\, x_0^{(1)}\, \hdots\, x_0^{(k_0-1)})=\lim_{x_0^{(j)}\rightarrow x_0} \frac{f^{(k_0-1)}(\xi)}{(k_0-1)!}=\frac{f^{(k_0-1)}(x_0)}{(k_0-1)!}. \] \end{remark} Dále budeme předpokládat ekvidistantní rozmístění uzlů a omezíme se na \begin{itemize} \item 1. a 2. derivaci, \item nejnižší počty uzlů (tj. 2, resp. 3 u 1. derivace a 3 u 2. derivace), \item derivace pouze v uzlech. \end{itemize}

Vyjděme ze vztahu \[ f(x)=\sum_{i=0}^n f(x_i)\;\frac{(x-x_0)\hdots(x-x_{i-1})(x-x_{i+1})\hdots(x-x_n)}{(x_i-x_0)\hdots(x_i-x_{i-1})(x_i-x_{i+1})\hdots(x_i-x_n)}+ \] \[ +(x-x_0)\hdots(x-x_n)f(x\, x_0\, \hdots\, x_n) \] a zaveďme do něj substituci $t=\frac{x-x_0}{h}$: \[ \left. \begin{matrix} x=x_0+th\\ x_i=x_0+ih \end{matrix} \right \} x-x_i=h(t-i)\Rightarrow x_i-x_j=h(i-j). \] Označíme-li opět $f_i=f(x_i)$, potom \[ f(x_0+th)=\sum_{i=0}^n \frac{f_i}{h^n i! (i-(i+1))\hdots(i-n)} \frac{h^n t(t-1)\hdots(t-n)}{t-i}+ \] \[ +h^{n+1}t(t-1)\hdots(t-n) f(x\, x_0\, \hdots\, x_n)= \] \[ =\sum_{i=0}^n (-1)^{n-i} \frac{f_i}{i!(n-i)!}\frac{t(t-1)\hdots(t-n)}{t-i}+h^{n+1}t(t-1)\hdots(t-n) f(x\, x_0\, \hdots\, x_n), \] \[ f'(x_0+th)=\sum_{i=0}^n (-1)^{n-i} \frac{f_i}{i!(n-i)!}\frac{\text{d}}{\text{d}t}\left[\frac{t(t-1)\hdots(t-n)}{t-i}\right] \frac{\text{d}t}{\text{d}x}+ \] \[ +h^{n+1} f(x\, x_0\, \hdots\, x_n)\frac{\text{d}}{\text{d}t}[t(t-1)\hdots(t-n)] \frac{\text{d}t}{\text{d}x}+ \] \[ +h^{n+1}t(t-1)\hdots(t-n) \frac{\text{d}}{\text{d}x} f(x\, x_0\, \hdots\, x_n). \] Protože \[ \frac{\text{d}}{\text{d}x} f(x\, x_0\, \hdots\, x_n)=\lim_{x'\rightarrow x}\frac{f(x'\, x_0\, \hdots\, x_n)-f(x\, x_0\, \hdots\, x_n)}{x'-x}= \] \[ =\lim_{x'\rightarrow x} f(x\, x'\, x_0\, \hdots\, x_n)=f(x\, x\, x_0\, \hdots\, x_n) \] a $\frac{\text{d}t}{\text{d}x}=\frac{1}{h}$, má $f'$ po dosazení podle (\ref{katanaksi}) tvar \[ f'(x_0+th)=\frac{1}{h}\sum_{i=0}^n (-1)^{n-i}\frac{f_i}{i!(n-i)!}\frac{\text{d}}{\text{d}t}\left[\frac{t(t-1)\hdots(t-n)}{t-i}\right]+ \] \[ +h^n \cdot\frac{\text{d}}{\text{d}t}[t(t-1)\hdots(t-n)]\cdot\frac{f^{(n+1)}(\xi_1)}{(n+1)!}+h^{n+1}\cdot t(t-1)\hdots(t-n) \cdot\frac{f^{(n+2)}(\xi_2)}{(n+2)!}. \] Pro druhou derivaci dostáváme \[ f(x_0+th)=\frac{1}{h^2}\sum_{i=0}^n (-1)^{n-i} \frac{f_i}{i!(n-i)!} \frac{\text{d}^2}{\text{d}t^2}\left[\frac{t(t-1)\hdots(t-n)}{t-i}\right]+ \] \[ +h^{n-1} f(x\, x_0\, \hdots\, x_n)\frac{\text{d}^2}{\text{d}t^2}[t(t-1)\hdots(t-n)]+ \] \[ +2h^n\frac{\text{d}}{\text{d}t}[t(t-1)\hdots(t-n)]f(x\, x\, x_0\, \hdots\, x_n)+h^{n+1} t(t-1)\hdots(t-n) \frac{\text{d}}{\text{d}x} f(x\, x\, x_0\, \hdots\, x_n). \] Pro derivaci $f(x\, x\, x_0\, \hdots\, x_n)$ podle definice platí \[ \frac{\text{d}}{\text{d}x} f(x\, x\, x_0\, \hdots\, x_n)=\lim_{x'\rightarrow x} \frac{f(x'\, x'\, x_0\, \hdots\, x_n)-f(x\, x\, x_0\, \hdots\, x_n)}{x'-x}. \] V čitateli přičteme a odečteme výraz $f(x\, x'\, x_0\, \hdots\, x_n)$ a limitu roztrhneme na dvě: \[ \frac{\text{d}}{\text{d}x} f(x\, x\, x_0\, \hdots\, x_n)=\lim_{x'\rightarrow x} \frac{f(x'\, x_0\, \hdots\, x_n\, x')-f(x\, x'\, x_0\, \hdots\, x_n)}{x'-x}+ \] \[ +\lim_{x'\rightarrow x} \frac{f(x\, x_0\, \hdots\, x_n\, x')-f(x\, x\, x_0\, \hdots\, x_n)}{x'-x}= \] \[ =\lim_{x'\rightarrow x} f(x\, x'\, x_0\, \hdots\, x_n\, x')+\lim_{x'\rightarrow x} f(x\, x\, x_0\, \hdots\, x_n\, x')=2f(x\, x\, x\, x_0\, \hdots\, x_n). \] Nyní už můžeme psát vzorec pro chybu $f$: \[ R_n(x_0+th)=h^{n-1} \frac{\text{d}^2}{\text{d}t^2}[t(t-1)\hdots(t-n)]\frac{f^{(n+1)}(\xi_1)}{(n+1)!}+ \] \[ +2h^n\frac{\text{d}}{\text{d}t}[t(t-1)\hdots(t-n)]\frac{f^{(n+2)}(\xi_2)}{(n+2)!}+2h^{n+1} t(t-1)\hdots(t-n)\frac{f^{(n+3)}(\xi_3)}{(n+3)!}. \] \begin{remark} Bez důkazu uveďme, že platí \begin{equation} \label{derdif} \frac{\text{d}^m}{\text{d}x^m}f(x\, x_0\, \hdots\, x_n)=m! f(\underbrace{x\, \hdots\, x,}_{(m+1)\text{-krát}}\: x_0\, \hdots\, x_n). \end{equation} \end{remark} Dosadíme-li $n=1$ do vzorečku pro $f'$, dostaneme \[ f'(x_0+th)=\frac{1}{h}(f_1-f_0)+h(2t-1)\frac{f(\xi_1)}{2!}+h^2t(t-1)\frac{f'(\xi_2)}{3!}. \] Značme dále $(\forall i\in\hat n_0)(f_i'=f'(x_i))$. Po dosazení $t=0$, resp. $t=1$ do předchozího vztahu máme \begin{equation} \label{pddu} f_0'=\frac{f_1-f_0}{h}-\frac{h}{2}f(\xi)\, f_1'=\frac{f_1-f_0}{h}+\frac{h}{2}f(\xi). \end{equation}

Stejný postup nyní uplatníme pro $n=2$ a dostaneme \[ f'(x_0+th)=\frac{1}{2h}[f_0(2t-3)-2f_1(2t-2)+f_2(2t-1)]+ \] \[ +h^2(3t^2-6t+2)\frac{f(\xi_1)}{3!}+h^3t(t-1)(t-2)\frac{f(\xi_2)}{4!}, \] \[ f_0'=\frac{1}{2h}(-3f_0+4f_1-f_2)+\frac{h^2}{3}f(\xi), \] \begin{equation} \label{pdtu} f_1'=\frac{1}{2h}(f_2-f_0)+\frac{h^2}{6}f(\xi), \end{equation} \[ f_2'=\frac{1}{2h}(f_0-4f_1+3f_2)+\frac{h^2}{3}f(\xi). \] \begin{remark} Porovnáním vzorců (\ref{pddu}) a (\ref{pdtu}) zjistíme, že v případě $n=2$ je chyba o řád menší. \end{remark} Nyní do vzorce pro $f$ dosadíme $n=2$ a vyjádříme $f(x_0)\, f(x_1)\, f(x_2)$: \[ f(x_0+th)=\frac{1}{h^2}(f_0-2f_1+f_2)+h(6t-6)\frac{f'(\xi_1)}{3!}+ \] \[ +2h^2(3t^2-6t+2)\frac{f^{(4)}(\xi_2)}{4!}+2h^3t(t-1)(t-2)\frac{f^{(5)}(\xi_3)}{5!}, \] \[ f(x_0)=\frac{1}{h^2}(f_0-2f_1+f_2)-hf'(\xi_1)+\frac{h^2}{6}f^{(4)}(\xi_2), \] \[ f(x_1)=\frac{1}{h^2}(f_0-2f_1+f_2)-\frac{h^2}{12}f^{(4)}(\xi), \] \[ f(x_2)=\frac{1}{h^2}(f_0-2f_1+f_2)+hf'(\xi_1)+\frac{h^2}{6}f^{(4)}(\xi_2). \]


% následující řádky upravují pouze zobrazení stránky na wiki na obsah dokumentu nemají vliv - prosím neměnit ! %\parentlatexfile{01NMskriptum} %\usewikiobsah{01NM:Obsah}