Tajniki interpolacji, część 4

W poprzednim odcinku cyklu poświęconego interpolacji wielomianowej obiecałem przedstawić stosowane w analizie numerycznej wzory służące do wyznaczenia wielomianu interpolacyjnego. Dziś o wzorze interpolacynym Lagrange’a. Zapraszam do lektury.

Interpolacja wielomianowa

Ustalmy $n+1$ wzajemnie różnych węzłów $x_0,x_1,\dots,x_n.$ Mając na uwadze dyskusję z poprzedniego odcinka dotyczącą istnienia wielomianu interpolacyjnego łatwo stwierdzić, że dla każdego $i\in\{0,1,\dots,n\}$ istnieje dokładnie jeden wielomian $L_i$ rzędu $n$ (a w tym przypadku nawet stopnia $n$) spełniający warunki\[L_i(x_j)=\begin{cases}1&\text{dla }j=i,\\0&\text{dla }j\ne i.\end{cases}\]Można go wyznaczyć według wzoru\[L_i(x)=\frac{p_n(x)}{p_n'(x_i)(x-x_i)}\,,\]gdzie $p_n(x)=(x-x_0)(x-x_1)\dots(x-x_n).$ Po wgłębieniu się w naturę powyższego wzoru można odczytać, że\[L_i(x)=\frac{(x-x_0)\cdot\dots\cdot(x-x_{i-1})(x-x_{i+1})\cdot\dots\cdot(x-x_n)}{(x_i-x_0)\cdot\dots\cdot(x_i-x_{i-1})(x_i-x_{i+1})\cdot\dots\cdot(x_i-x_n)}\,.\]Po prostu w iloczynie definiującym $p_n(x)$ opuszczamy czynnik $(x-x_i)$, a do mianownika przenosimy to wyrażenie z $x_i$ w roli $x$. Wszystko jest poprawnie określone, gdyż wszystkie węzły były wzajemnie różne i mianownik jest różny od zera.

Określone powyżej wielomiany $L_0,L_1,\dots,L_n$ nazywamy wielomianami podstawowymi Lagrange’a. Mając je, można bardzo łatwo wyznaczyć (jak już wiemy jedyny) wielomian $w$ rzędu $n$ spełniający warunki interpolacyjne\[w(x_0)=y_0,\;w(x_1)=y_1,\;\dots,\;w(x_n)=y_n.\]Mówi o tym wzór interpolacyjny Lagrange’a:\[w(x)=L_0(x)y_0+L_1(x)y_1+\dots+L_n(x)y_n.\]Niech $j\in\{0,1,\dots,n\}.$ Z konstrukcji wielomianów podstawowych wynika, że\[w(x_j)=L_0(x_j)y_0+L_1(x_j)y_1+\dots+L_j(x_j)y_j+\dots+L_n(x_j)y_n=y_j,\]gdyż w sumie po prawej stronie tylko $L_j(x_j)=1$, a pozostałe wartości $L_i(x_j)$ są zerowe.

Sposób określenia wzoru interpolacyjnego Lagrange’a wskazuje na pewną jego zaletę. Mając ustalone węzły, tylko jeden raz wyznacza się wielomiany podstawowe, a dysponując nimi można tworzyć wielomiany interpolujące w tych węzłach dowolną funkcję.

Życie jednak nie jest aż tak wesołe. Wzór Lagrange’a ma też wadę. Jeśli chcemy dodać kolejny węzeł, musimy na nowo obliczyć wielomiany podstawowe (już innego rzędu).

Tyle teorii, przejdźmy do przykładu. Dane są węzły $x_0=1,\;x_1=2,\;x_2=3.$ Wyznaczymy dwa wielomiany rzędu $2$. Wielomian $w$ będzie spełniał warunki $w(1)=4,\;w(2)=11,\;w(3)=22.$ Natomiast wielomian $q$ będzie interpolował funkcję $f(x)=2^x$ w zadanych węzłach.

Rozpoczynamy od wyznaczenia wielomianów podstawowych Lagrange’a. Mamy tu $n=2$, więc są trzy wielomiany $L_0,L_1,L_2.$
\begin{align}
L_0(x)&=\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}=\frac{(x-2)(x-3)}{(1-2)(1-3)}=\frac{x^2-5x+6}{2}\,,\\[2ex]
L_1(x)&=\frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)}=\frac{(x-1)(x-3)}{(2-1)(2-3)}=-x^2+4x-3\,,\\[2ex]
L_2(x)&=\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}=\frac{(x-1)(x-2)}{(3-1)(3-2)}=\frac{x^2-3x+2}{2}\,.
\end{align}

Wyznaczymy wielomian $w$. Oznaczmy $y_0=4,\;y_1=11,\;y_2=22.$ Stosując wzór interpolacyjny Lagrange’a otrzymujemy
\begin{align}
w(x)&=L_0(x)y_0+L_1(x)y_1+L_2(x)y_2=\\[2ex]
&=\frac{x^2-5x+6}{2}\cdot 4+(-x^2+4x-3)\cdot 11+\frac{x^2-3x+2}{2}\cdot 22=\\[2ex]
&=2x^2+x+1.
\end{align}Pominę łatwe sprawdzenie warunków interpolacyjnych. Przejdźmy do wyznaczenia wielomianu $q$. Przyjmujemy $y_i=2^{x_i}$, bo interpolujemy funkcję $f(x)=2^x$.
\begin{align}
q(x)&=L_0(x)\cdot 2^{x_0}+L_1(x)\cdot 2^{x_1}+L_2(x)\cdot 2^{x_2}=\\[2ex]
&=\frac{x^2-5x+6}{2}\cdot 2+(-x^2+4x-3)\cdot 4+\frac{x^2-3x+2}{2}\cdot 8=\\[2ex]
&=x^2-x+2.
\end{align}Kolejny odcinek poświęcę wprowadzeniu do kolejnego wzoru interpolacyjnego: wzoru Newtona. Już dziś zapraszam do czytania (oczywiście gdy się ukaże).

Dodaj komentarz