Przejdź do treści

Tajniki interpolacji, część 2

Poprzedni artykuł cyklu zakończyłem obietnicą zanalizowania błędu interpolacji liniowej. O dobrej interpolacji możemy mówić wtedy, gdy potrafimy oszacować jej błąd. Interpolujemy bowiem po to, aby poznać przybliżoną wartość funkcji pomiędzy węzłami. W zagadnieniach praktycznych musimy wiedzieć, jak dobre jest takie przybliżenie. Zapraszam do lektury.

Dane są węzły $a,b$ oraz funkcja $f$ określona przynajmniej w przedziale $[a,b]$. Wtedy funkcja liniowa\[g(x)=f(a)+\frac{f(b)-f(a)}{b-a}(x-a)\]interpoluje funkcję $f$ w węzłach $a,b$. Geometrycznie wykres funkcji $g$ jest sieczną przechodzącą przez dwa punkty $\bigl(a,f(a)\bigr)$ oraz $\bigl(b,f(b)\bigr)$ (przypomnijmy sobie rysunki z poprzedniej części cyklu).

Aby oszacować błąd interpolacji, potrzebne są jakieś założenia o funkcji $f$. Tu, tak jak klasycznie zakłada się w analizie numerycznej, przyjmiemy, że funkcja $f$ jest różniczkowalna w przedziale $[a,b]$, a pochodna $f’$ jest funkcją ciągłą w $[a,b]$. Założymy też, funkcja $f$ jest dwukrotnie różniczkowalna w przedziale $(a,b)$. Ustalmy $x\in(a,b)$. Będziemy zmierzać do oszacowania różnicy $f(x)-g(x)$, czyli właśnie błędu przybliżenia funkcji $f$ za pomocą funkcji liniowej $g$.

W rozumowaniach analizy numerycznej związanych z szacowaniem błędów często korzysta się z twierdzenia Rolle’a. Aby móc to zrobić, przyjmuje się jakąś funkcję pomocniczą. Niekoniecznie bowiem $f(a)=f(b)$. U nas taką funkcją będzie\[F(t)=f(t)-g(t)-\bigl(f(x)-g(x)\bigr)\frac{(t-a)(t-b)}{(x-a)(x-b)}.\]Zauważmy, że funkcja $F$ jest poprawnie określona. Istotnie, przyjęliśmy $a<x<b$, więc w mianowniku nie ma zer.

Co wiemy o funkcji $F$? Do błędu $f(t)-g(t)$ dodaliśmy jeszcze trójmian kwadratowy, więc spełnione są takie same założenia regularnościowe, jakie przyjęliśmy o funkcji $f$ (ciągłość i różniczkowalność w odpowiednich przedziałach). Ponadto łatwo spostrzec, że $F(a)=F(x)=F(b)$. Korzystamy z twierdzenia Rolle’a na przedziałach $[a,x]$ oraz $[x,b]$. Istnieją więc $c_1\in (a,x)$ oraz $c_2\in(x,b)$ spełniające warunek $F'(c_1)=F'(c_2)=0$. Ale funkcja $F’$ też spełnia założenia twierdzenia Rolle’a (w szczególności przypomnę, że każda funkcja różniczkowalna jest ciągła). Korzystając z niego po raz kolejny stwierdzamy, że istnieje $c\in(c_1,c_2)$ spełniające warunek $F^{\prime\prime}(c)=0$. Ale\[F^{\prime\prime}(t)=f^{\prime\prime}(t)-\bigl(f(x)-g(x)\bigr)\frac{2}{(x-a)(x-b)}.\]Stąd dla $t=c$ otrzymujemy\[f^{\prime\prime}(c)-\bigl(f(x)-g(x)\bigr)\frac{2}{(x-a)(x-b)}=0\]i po prostych przekształceniach dochodzimy do poszukiwanego błędu interpolacji liniowej:\[f(x)-g(x)=\frac{f^{\prime\prime}(c)}{2}(x-a)(x-b)\]dla pewnego $c\in(a,b)$. Oczywiście nie wiemy, jaki konkretnie jest punkt $c$. Wiemy tylko, że zależy on od $x$. Dlatego ze względów praktycznych oszacujemy różnicę $|f(x)-g(x)|$ przy dodatkowym założeniu, że $f^{\prime\prime}$ jest ciągła w $[a,b]$:\[|f(x)-g(x)|=\frac{|f^{\prime\prime}(c)|}{2}\bigl|(x-a)(x-b)\bigr|.\]Występujący tu trójmian kwadratowy $(x-a)(x-b)$ jest ujemny w przedziale $(a,b)$, więc jego wartość bezwzględna ma maksimum w punkcie $\frac{a+b}{2}$ o wartości $\frac{(b-a)^2}{4}$. Oznaczając\[\|f^{\prime\prime}\|_{\infty}=\max\bigl\{|f^{\prime\prime}(t)|:t\in[a,b]\bigr\}\]dochodzimy więc do nierówności\[\bigl|f(x)-g(x)\bigr|\xle\frac{\|f^{\prime\prime}\|_{\infty}}{2}\frac{(b-a)^2}{4}=\frac{\|f^{\prime\prime}\|_{\infty}}{8}(b-a)^2.\]Dysponując tym oszacowaniem błędu wrócimy do przykładów z poprzedniego artykułu. Rozpocznę od drugiego.

Tajniki interpolacji liniowej funkcji kwadratowej

Funkcja liniowa $g(x)=1$ interpoluje funkcję kwadratową $f(x)=x^2$ w węzłach $a=-1$ oraz $b=1$. Ponieważ $f^{\prime\prime}(t)=2$, to\[\bigl|f(x)-g(x)\bigr|\xle\frac{\|f^{\prime\prime}\|_{\infty}}{8}(b-a)^2=\frac{2}{8}\cdot 4=1.\]Widzimy, że tego oszacowania nie można poprawić, bo maksymalny błąd o wartości $1$ popełniamy dla $x=0$.

W pierwszym przykładzie interpolowaliśmy liniowo funkcję $f(x)=\sqrt{x}$ w węzłach $a=1$ oraz $b=1{,}96$ funkcją liniową $g(x)=\frac{5x+7}{12}$.

Tajniki interpolacji liniowej funkcji pierwiastkowej

Skoro $1\xle x\xle 1{,}96$, to\[|f^{\prime\prime}(x)|=\frac{1}{4\sqrt{x^3}}\xle\frac{1}{4},\]więc $\|f^{\prime\prime}\|_{\infty}=\frac{1}{4}$ oraz\[\bigl|f(x)-g(x)\bigr|\xle\frac{\|f^{\prime\prime}\|_{\infty}}{8}(b-a)^2=\frac{1}{32}\cdot 0{,}96^2=0{,}0288\]co pokazuje, że przybliżenie jest dobre. W tym przypadku oszacowanie nie jest jednak optymalne — można je poprawić. Niech bowiem $h(t)=\sqrt{t}-\frac{5t+7}{12}$ dla $t\in[1, 1{,}96]$. Klasycznym rachunkiem różniczkowym możemy łatwo zbadać, że $h\xge 0$ oraz\[\max\{h(t): t\in[1, 1{,}96]\}=h(1{,}44)=0{,}01(6).\]To optymalne już oszacowanie jest niemal dwukrotnie lepsze niż uzyskane metodą ogólną. Dla $x=1{,}48$ interpolując liniowo oszacowaliśmy w poprzednim odcinku $\sqrt{1{,}48}\approx 1{,}2$, zaś dokładniejszym przybliżeniem jest $\sqrt{1{,}48}\approx 1{,}21655250606$. Różnica\[1{,}21655250606-1{,}2=0{,}01655250606\] bardzo dobrze mieści się w granicach tego optymalnego błędu.

4 komentarze do “Tajniki interpolacji, część 2”

  1. Pół wieku i ciut temu zdawałem egzamin z pierwszej matematyki a na części ustnej tego egzaminu zdawanego w grupie kilku studentów przesympatyczny Egzaminator podchodząc kolejno do każdego egzaminowanego zadawał kolejne pytanie. W ten sposób dwukrotnie udowadniałem twierdzenie Rolle’a o wartości średniej funkcji. Za trzecim okrążeniem otrzymałem to samo zadanie ale po zwróceniu uwagi, że już dwa razy przeprowadzałem ten dowód, w drodze wyrozumiałości udowadniałem twierdzenie innego autora, tym razem Lagrange’a i też o wartości średniej. Stąd ilekroć mowa o Rolle’u tylekroć przypomina mi się ten egzamin.

    1. Dziękuję za uznanie. Tak, przewiduję, ten cykl będzie długi. Chcę pokazać jak interpoluje się w przypadku węzłów wielokrotnych, a do tego dochodzi się przez dość długie tłumaczenie. Temat jest stosunkowo mało znany, warto go spopularyzować.

Napisz komentarz