01NM:Kapitola8: Porovnání verzí

Z WikiSkripta FJFI ČVUT v Praze
Přejít na: navigace, hledání
(odkaz na hlavičkovou stránku dokumentu)
m
 
Řádka 1: Řádka 1:
 +
%\wikiskriptum{01NM}
 +
 
\section{Numerický výpočet derivace}
 
\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
 
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
Řádka 166: Řádka 168:
 
f''(x_2)=\frac{1}{h^2}(f_0-2f_1+f_2)+hf'''(\xi_1)+\frac{h^2}{6}f^{(4)}(\xi_2).
 
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}
 
%\parentlatexpreamble{01NM:Preamble} .................................. odkaz na hlavičkovou stránku dokumentu, jehož vložení umožní překlad částečného pdf, tj. pdf, které vznikne pouze z této stránky
 

Aktuální verze z 1. 8. 2010, 10:25

PDF [ znovu generovat, výstup z překladu ] Kompletní WikiSkriptum včetně všech podkapitol.
PDF Této kapitoly [ znovu generovat, výstup z překladu ] Přeložení pouze této kaptioly.
ZIPKompletní zdrojový kód včetně obrázků.

Součásti dokumentu 01NM

součástakcepopisposlední editacesoubor
Hlavní dokument editovatHlavní stránka dokumentu 01NMAdmin 1. 8. 201010:22
Řídící stránka editovatDefiniční stránka dokumentu a vložených obrázkůAdmin 7. 9. 201513:47
Header editovatHlavičkový souborKlinkjak 1. 9. 201522:49 header.tex
Kapitola1 editovatFinitní metodyAdmin 1. 8. 201010:24 kapitola1.tex
Kapitola2 editovatIterační metody řešení soustav lineárních algebraických rovnicKlinkjak 3. 9. 201519:49 kapitola2.tex
Kapitola3 editovatČástečný problém vlastních číselAdmin 1. 8. 201010:25 kapitola3.tex
Kapitola4 editovatÚplný problém vlastních číselAdmin 1. 8. 201010:25 kapitola4.tex
Kapitola5 editovatIterační metody řešení rovnice tvaru f(x)=0Admin 1. 8. 201010:25 kapitola5.tex
Kapitola6 editovatIterační metody pro řešení systémů nelineárních algebraických a transcendentních rovnicAdmin 1. 8. 201010:25 kapitola6.tex
Kapitola7 editovatLagrangeova interpolaceAdmin 1. 8. 201010:25 kapitola7.tex
Kapitola8 editovatNumerický výpočet derivaceAdmin 1. 8. 201010:25 kapitola8.tex
Kapitola9 editovatNumerický výpočet integrálu Admin 1. 8. 201010:25 kapitola9.tex

Zdrojový kód

%\wikiskriptum{01NM}
 
\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).
\]