Interpolacja wielomianowa

Interpolacja wielomianowa, nazywana też interpolacją Lagrange’a, od nazwiska pioniera badań nad interpolacją Josepha Lagrange’a lub po prostu interpolacją – metoda numeryczna przybliżania funkcji tzw. wielomianem Lagrange’a stopnia n {\displaystyle n} przyjmującym w n + 1 {\displaystyle n+1} punktach, zwanych węzłami interpolacji, wartości takie same jak przybliżana funkcja[1].

Interpolacja jest często stosowana w naukach doświadczalnych, gdzie dysponuje się zazwyczaj skończoną liczbą danych określających badane zależności.

Zgodnie z twierdzeniem Weierstrassa dowolną funkcję y = f ( x ) , {\displaystyle y=f(x),} ciągłą na przedziale domkniętym [ x 0 , x n ] R 1 {\displaystyle [x_{0},\,x_{n}]\in R^{1}} można dowolnie przybliżyć za pomocą wielomianu odpowiednio wysokiego stopnia[2].

Interpolacja liniowa

Interpolacja liniowa
 Osobny artykuł: Interpolacja liniowa.

Taka interpolacja jest szczególnym, najprostszym przypadkiem interpolacji wielomianowej dla dwóch punktów pomiarowych x 0 {\displaystyle x_{0}} i x 1 , {\displaystyle x_{1},} dla których można utworzyć funkcję liniową, której wykres przechodzi przez te punkty (rys. obok).

Ogólne sformułowanie metody

Przykład interpolacji wielomianowej.

Metoda interpolacji funkcji f {\displaystyle f} polega na:

  1. wybraniu n + 1 {\displaystyle n+1} punktów (węzłów interpolacji) x 0 , x 1 , , x n {\displaystyle x_{0},x_{1},\dots ,x_{n}} należących do dziedziny f , {\displaystyle f,} dla których znane są wartości y 0 = f ( x 0 ) , y 1 = f ( x 1 ) , , y n = f ( x n ) ; {\displaystyle y_{0}=f(x_{0}),\,y_{1}=f(x_{1}),\dots ,\,y_{n}=f(x_{n});}
  2. zbudowaniu wielomianu φ ( x ) {\displaystyle \varphi (x)} stopnia co najwyżej n {\displaystyle n} takiego, że φ ( x 0 ) = y 0 , φ ( x 1 ) = y 1 , , φ ( x n ) = y n . {\displaystyle \varphi (x_{0})=y_{0},\,\varphi (x_{1})=y_{1},\dots ,\,\varphi (x_{n})=y_{n}.}

Interpretacja geometryczna – dla danych n + 1 {\displaystyle n+1} rzędnych funkcji f {\displaystyle f} szuka się wielomianu stopnia co najwyżej n , {\displaystyle n,} którego wykres przechodzi przez te rzędne (rys. obok).

  • Uogólniony wielomian interpolacyjny

Skorzystamy z wielomianu o postaci ogólnej

φ ( x ) = a 0 φ 0 ( x ) + a 1 φ 1 ( x ) + + a n φ n ( x ) = B ( x ) A , x [ x 0 , x n ] {\displaystyle \varphi (x)=a_{0}\varphi _{0}(x)+a_{1}\varphi _{1}(x)+\ldots +\,a_{n}\varphi _{n}(x)=\mathbf {B} (x)\mathbf {A} ,\quad x\in [x_{0},\,x_{n}]}
(1)

utworzonej z pewnego zbioru funkcji φ i ( x ) , {\displaystyle \varphi _{i}(x),} które są liniowo niezależne i tworzą bazę interpolacji

B ( x ) = [ φ 0 ( x ) , φ 1 ( x ) , , φ n ( x ) ] , A = ( a 0 , a 1 , , a n ) T . {\displaystyle \mathbf {B} (x)=[\varphi _{0}(x),\,\varphi _{1}(x),\dots ,\,\varphi _{n}(x)],\quad \mathbf {A} =(a_{0},\,a_{1},\dots ,\,a_{n})^{T}.}
(2)

Współczynniki a i {\displaystyle a_{i}} dobierzemy w taki sposób, aby spełnione były warunki

φ ( x i ) = f ( x i ) , i = 0 , 1 , , n , {\displaystyle \varphi (x_{i})=f(x_{i}),\quad i=0,\,1,\dots ,\,n,}
(3)

w których x i {\displaystyle x_{i}} oznaczają współrzędne danych węzłów interpolacji funkcji f ( x ) . {\displaystyle f(x).} Po uwzględnieniu (1) otrzymujemy układ równań

[ φ 0 ( x 0 ) φ 1 ( x 0 ) φ n ( x 0 ) φ 0 ( x 1 ) φ 1 ( x 1 ) φ n ( x 1 ) φ 0 ( x n ) φ 1 ( x n ) φ n ( x n ) ] [ a 0 a 1 a n ] = [ f ( x 0 ) f ( x 1 ) f ( x n ) ] {\displaystyle {\begin{bmatrix}\varphi _{0}(x_{0})&\varphi _{1}(x_{0})&\ldots &\varphi _{n}(x_{0})\\\varphi _{0}(x_{1})&\varphi _{1}(x_{1})&\ldots &\varphi _{n}(x_{1})\\\ldots &\ldots &\ldots &\ldots \\\varphi _{0}(x_{n})&\varphi _{1}(x_{n})&\ldots &\varphi _{n}(x_{n})\end{bmatrix}}{\begin{bmatrix}a_{0}\\a_{1}\\\vdots \\a_{n}\end{bmatrix}}={\begin{bmatrix}f(x_{0})\\f(x_{1})\\\vdots \\f(x_{n})\end{bmatrix}}}
(4)

lub w zapisie macierzowym[1]

V A = F A = V 1 F = L F . {\displaystyle \mathbf {VA} =\mathbf {F} \quad \to \quad \mathbf {A} =\mathbf {V^{-1}F} =\mathbf {LF} .}
(5)

Na podstawie (1) i (5) otrzymujemy

φ ( x ) = B ( x ) L F . {\displaystyle \varphi (x)=\mathbf {B} (x)\mathbf {LF} .}
(6)

O jakości interpolacji decydują:

  • wybór bazy B ( x ) {\displaystyle \mathbf {B} (x)\quad {}} oraz
  • wybór położenia węzłów x i . {\displaystyle x_{i}.}
  • Interpolacja Lagrange’a

Najprostszą bazę interpolacji można utworzyć z jednomianów

B ( x ) = ( 1 , x , x 2 , , x n ) . {\displaystyle \mathbf {B} (x)=(1,\,x,\,x^{2},\dots ,\,x^{n}).}
(7)

W tym przypadku otrzymuje się macierz

V = [ 1 x 0 x 0 2 x 0 n 1 x 1 x 1 2 x 1 n 1 x n x n 2 x n n ] {\displaystyle \mathbf {V} ={\begin{bmatrix}1&x_{0}&x_{0}^{2}&\ldots &x_{0}^{n}\\1&x_{1}&x_{1}^{2}&\ldots &x_{1}^{n}\\\ldots &\ldots &\ldots &\ldots \\1&x_{n}&x_{n}^{2}&\ldots &x_{n}^{n}\end{bmatrix}}}
(8)

o strukturze Vandermonda[1] i dzięki temu zawsze istnieje rozwiązanie problemu jeżeli tylko x i x j {\displaystyle x_{i}\neq x_{j}\;{}} gdy i j . {\displaystyle {}\;i\neq j.}

Korzystając ze wzoru (6) i bazy (7), możemy utworzyć taką funkcję ϕ k ( x ) , {\displaystyle \phi _{k}(x),} która spełnia warunki ϕ k ( x i ) = δ i k , i = 0 , 1 , , n . {\displaystyle \phi _{k}(x_{i})=\delta _{ik},\;i=0,\,1,\dots ,\,n.} Wystarczy obliczyć współczynniki a i ( k ) , {\displaystyle a_{i}^{(k)},} rozwiązując układ równań (4) z prawą stroną

F k = [ f ( x 1 ) = 0 , f ( x 2 ) = 0 , , f ( x k ) = 1 , , f ( x n ) = 0 ] T . {\displaystyle F_{k}=[f(x_{1})=0,\,f(x_{2})=0,\dots ,\,f(x_{k})=1,\dots ,\,f(x_{n})=0]^{T}.}

Wielomian taki zaproponował Lagrange w postaci

L k ( x ) = Π ( x x i ) Π ( x k x i ) , {\displaystyle L_{k}(x)={\frac {\Pi (x-x_{i})}{\Pi (x_{k}-x_{i})}},}

gdzie Π {\displaystyle \Pi } jest iloczynem, w którym i = 0 , 1 , , n {\displaystyle i=0,\,1,\dots ,\,n\quad {}} i i k . {\displaystyle {}\quad i\neq k.}

Wielomian Lagrange’a

Wielomian Lagrange’a to szczególna postać wielomianu, wykorzystywana często w zagadnieniach interpolacji. Dla wielomianu stopnia n {\displaystyle n} wybiera się n + 1 {\displaystyle n+1} punktów – x 0 , x 1 , , x n {\displaystyle x_{0},\,x_{1},\dots ,\,x_{n}} i wielomian ma postać:

w ( x ) = i = 0 n y i j = 0 j i n x x j x i x j . {\displaystyle w(x)=\sum _{i=0}^{n}y_{i}\!\cdot \!\prod _{j=0\land j\neq i}^{n}{\frac {x-x_{j}}{x_{i}-x_{j}}}.}

Ponieważ j = 0 j i n x x j x i x j = { 1 gdy x = x i , 0 gdy x = x j . {\displaystyle \prod _{j=0\land j\neq i}^{n}{\frac {x-x_{j}}{x_{i}-x_{j}}}={\begin{cases}\;1\quad {\text{gdy}}\;x=x_{i},\\\;0\quad {\text{gdy}}\;x=x_{j}.\end{cases}}}

Dzięki temu interpolowaną funkcję f ( x ) {\displaystyle f(x)} można przedstawić w postaci wielomianu

L f ( x ) = i = 0 n f ( x i ) j = 0 j i n x x j x i x j , {\displaystyle L_{f}(x)=\sum _{i=0}^{n}f(x_{i})\cdot \prod _{j=0\land j\neq i}^{n}{\frac {x-x_{j}}{x_{i}-x_{j}}},}

który spełnia warunki

L f ( x i ) = f ( x i ) , i = 0 , 1 , , n . {\displaystyle L_{f}(x_{i})=f(x_{i}),\quad i=0,\,1,\dots ,\,n.}

Dowód istnienia wielomianu interpolującego

Niech x 0 , x 1 , , x n {\displaystyle x_{0},x_{1},\dots ,x_{n}} będą węzłami interpolacji funkcji f {\displaystyle f} takimi, że znane są wartości: f ( x 0 ) = y 0 , f ( x 1 ) = y 1 , , f ( x n ) = y n . {\displaystyle f(x_{0})=y_{0},\,f(x_{1})=y_{1},\dots ,\,f(x_{n})=y_{n}.}
Można zdefiniować funkcję:

L i ( x ) = j = 0 j i n x x j x i x j , i 0 , 1 , n {\displaystyle L_{i}(x)=\prod _{j=0\land j\neq i}^{n}{\frac {x-x_{j}}{x_{i}-x_{j}}},\quad i\in {0,1\dots ,n}}

taką, że dla x { x 0 , x 1 , , x n } {\displaystyle x\notin \{x_{0},x_{1},\dots ,x_{n}\}} L i ( x ) {\displaystyle L_{i}(x)} jest wielomianem stopnia n {\displaystyle n} (mianownik jest liczbą, a licznik iloczynem n {\displaystyle n} wyrazów postaci ( x x j ) {\displaystyle (x-x_{j})} ).

Gdy x k { x 0 , x 1 , , x n } {\displaystyle x_{k}\in \{x_{0},x_{1},\dots ,x_{n}\}} i k = i : {\displaystyle k=i{:}}

L i ( x k ) = L i ( x i ) = j = 0 j i n ( x i x j x i x j ) = j = 0 j i n ( 1 ) = 1. {\displaystyle L_{i}(x_{k})=L_{i}(x_{i})=\prod _{j=0\land j\neq i}^{n}\left({\frac {x_{i}-x_{j}}{x_{i}-x_{j}}}\right)=\prod _{j=0\land j\neq i}^{n}(1)=1.}

Gdy x k { x 0 , x 1 , , x n } {\displaystyle x_{k}\in \{x_{0},x_{1},\dots ,x_{n}\}} i k i : {\displaystyle k\neq i{:}}

L i ( x k ) = j = 0 j i n x k x j x i x j = ( x k x 0 ) ( x k x 1 ) ( x k x k ) ( x k x n ) ( x i x 0 ) ( x i x 1 ) ( x i x i 1 ) ( x i x i + 1 ) ( x i x n ) = 0 {\displaystyle L_{i}(x_{k})=\prod _{j=0\land j\neq i}^{n}{\frac {x_{k}-x_{j}}{x_{i}-x_{j}}}={\frac {(x_{k}-x_{0})\cdot (x_{k}-x_{1})\cdot \ldots \cdot (x_{k}-x_{k})\cdot \ldots \cdot (x_{k}-x_{n})}{(x_{i}-x_{0})\cdot (x_{i}-x_{1})\cdot \ldots \cdot (x_{i}-x_{i-1})\cdot (x_{i}-x_{i+1})\cdot \ldots \cdot (x_{i}-x_{n})}}=0}

(licznik = 0, ponieważ występuje element ( x k x k ) {\displaystyle (x_{k}-x_{k})} ).

Niech W ( x ) {\displaystyle W(x)} będzie wielomianem stopnia co najwyżej n , {\displaystyle n,} określonym jako:

W ( x ) = y 0 L 0 ( x ) + y 1 L 1 ( x ) + y 2 L 2 ( x ) + + y n L n ( x ) . {\displaystyle W(x)=y_{0}L_{0}(x)+y_{1}L_{1}(x)+y_{2}L_{2}(x)+\ldots +y_{n}L_{n}(x).}

Dla x i { x 0 , x 1 , , x n } : {\displaystyle x_{i}\in \{x_{0},x_{1},\dots ,x_{n}\}{:}}

W ( x i ) = y 0 L 0 ( x i ) + y 1 L 1 ( x i ) + + y i L i ( x i ) + + y n L n ( x i ) . {\displaystyle W(x_{i})=y_{0}L_{0}(x_{i})+y_{1}L_{1}(x_{i})+\ldots +y_{i}L_{i}(x_{i})+\ldots +y_{n}L_{n}(x_{i}).}

Wszystkie składniki sumy o indeksach różnych od i {\displaystyle i} są równe zeru (ponieważ dla j i     L i ( x j ) = 0 {\displaystyle j\neq i\ \ L_{i}(x_{j})=0} ), składnik o indeksie i {\displaystyle i} jest równy:

L i ( x i ) y i = 1 y i = y i , {\displaystyle L_{i}(x_{i})y_{i}=1\cdot y_{i}=y_{i},}

a więc

W ( x i ) = y i , {\displaystyle W(x_{i})=y_{i},}

z czego wynika, że W ( x ) {\displaystyle W(x)} jest wielomianem interpolującym funkcję f ( x ) {\displaystyle f(x)} na zbiorze punktów x 0 , x 1 , , x n . {\displaystyle x_{0},\,x_{1},\dots ,\,x_{n}.}

Jednoznaczność interpolacji wielomianowej

Dowód

Zakłada się, że istnieją dwa różne wielomiany W 1 ( x ) {\displaystyle W_{1}(x)} i W 2 ( x ) {\displaystyle W_{2}(x)} stopnia n , {\displaystyle n,} przyjmujące w węzłach x 0 , x 1 , , x n {\displaystyle x_{0},x\,_{1},\dots ,\,x_{n}} takie same wartości.

Niech

W 3 ( x ) = W 1 ( x ) W 2 ( x ) . {\displaystyle W_{3}(x)=W_{1}(x)-W_{2}(x).}

W 3 ( x ) {\displaystyle W_{3}(x)} jest wielomianem stopnia co najwyżej n {\displaystyle n} (co wynika z własności odejmowania wielomianów).

Ponieważ W 1 ( x ) {\displaystyle W_{1}(x)} i W 2 ( x ) {\displaystyle W_{2}(x)} w węzłach x i , i 0 , 1 , , n {\displaystyle x_{i},\;i\in 0,1,\dots ,n} interpolują tę samą funkcję, to W 1 ( x i ) = W 2 ( x i ) , {\displaystyle W_{1}(x_{i})=W_{2}(x_{i}),} a więc W 3 ( x i ) = 0 {\displaystyle W_{3}(x_{i})=0} (węzły interpolacji są pierwiastkami W 3 ( x ) ) . {\displaystyle W_{3}(x)).\qquad {}} (*)

Ale każdy niezerowy wielomian stopnia n {\displaystyle n} ma co najwyżej n {\displaystyle n} pierwiastków rzeczywistych, a ponieważ z (*) wiadomo, że W 3 ( x ) {\displaystyle W_{3}(x)} ma n + 1 {\displaystyle n+1} pierwiastków, to W 3 ( x ) {\displaystyle W_{3}(x)} musi być wielomianem tożsamościowo równym zeru, a ponieważ:

W 3 ( x ) = W 1 ( x ) W 2 ( x ) = 0 {\displaystyle W_{3}(x)=W_{1}(x)-W_{2}(x)=0}

to

W 1 ( x ) = W 2 ( x ) , {\displaystyle W_{1}(x)=W_{2}(x),}

co jest sprzeczne z założeniem, że W 1 ( x ) {\displaystyle W_{1}(x)} i W 2 ( x ) {\displaystyle W_{2}(x)} są różne.

Błąd interpolacji

Dość naturalne wydaje się przyjęcie, że zwiększenie liczby węzłów interpolacji (lub stopnia wielomianu interpolacyjnego) pociąga za sobą coraz lepsze przybliżenie funkcji f ( x ) {\displaystyle f(x)} wielomianem L n ( x ) . {\displaystyle L_{n}(x).} Idealna byłaby zależność:

lim n L n ( x ) = f ( x ) , {\displaystyle \lim _{n\to \infty }L_{n}(x)=f(x),}

tj. dla coraz większej liczby węzłów wielomian interpolacyjny staje się „coraz bardziej podobny” do interpolowanej funkcji.

Dla węzłów równo odległych tak być nie musi → efekt Rungego.

Można dowieść, że dla każdego wielomianu interpolacyjnego stopnia n , {\displaystyle n,} przybliżającego funkcję f ( x ) {\displaystyle f(x)} w przedziale [ a , b ] {\displaystyle [a,b]} na podstawie n + 1 {\displaystyle n+1} węzłów, istnieje taka liczba ξ {\displaystyle \xi } zależna od x , {\displaystyle x,} że dla reszty interpolacji r ( x ) : {\displaystyle r(x){:}}

f ( n + 1 ) ( ξ ) ( n + 1 ) ! p n ( x ) = r ( x ) , {\displaystyle {\frac {f^{(n+1)}(\xi )}{(n+1)!}}\cdot p_{n}(x)=r(x),}

gdzie p n ( x ) = ( x x 0 ) ( x x 1 ) ( x x n ) , {\displaystyle p_{n}(x)=(x-x_{0})(x-x_{1})\ldots (x-x_{n}),} a ξ ( a ; b ) {\displaystyle \xi \in (a;b)} jest liczbą zależną od x . {\displaystyle x.}

Do oszacowania z góry wartości r ( x ) {\displaystyle r(x)} można posłużyć się wielomianami Czebyszewa stopnia n + 1 {\displaystyle n+1} do oszacowania wartości p n ( x ) {\displaystyle p_{n}(x)} dla x [ 1 , 1 ] . {\displaystyle x\in [-1,1].} Dla przedziału [ a , b ] {\displaystyle [a,b]} wystarczy dokonać przeskalowania wielomianu p n ( x ) . {\displaystyle p_{n}(x).}

Funkcje sklejane

Interpolacje funkcji f ( x ) , x [ x 0 , x n ] R {\displaystyle f(x),\;x\in [x_{0},\,x_{n}]\subset R} za pomocą wielomianów n-tego stopnia, w tym również wielomianów Lagrange’a, mają istotną wadę. Polega ona na tym, że ze wzrostem liczby węzłów interpolacji, przybliżanie wartości funkcji, pomiędzy jej kolejnymi węzłami, odbywa się przez tworzenie kombinacji liniowej z fragmentów kolejnych n {\displaystyle n} wielomianów, które to fragmenty wraz ze wzrostem liczby n , {\displaystyle n,} upodabniają się do siebie i niewiele się różnią. Sytuację pogarsza złożoność obliczania wartości tych wielomianów. W sumie powoduje to wzrost niestabilności algorytmów obliczeniowych. Można generalnie stwierdzić, że przyczyną tego stanu rzeczy jest fakt, że nośnikiem funkcji aproksymujących jest cały przedział [ x 0 , x n ] . {\displaystyle [x_{0},\,x_{n}].}

Złożoności obliczeniowej można uniknąć w bardzo prosty sposób, budując sklejane funkcje aproksymujące o jak najkrótszych nośnikach. Przy czym nie ma potrzeby posługiwania się wielomianami wysokich stopni.

W przypadku, gdy funkcja interpolująca nie musi być różniczkowalna, można ją zbudować przez „sklejenie” odcinków prostoliniowych. W tym przypadku baza interpolacji składa się z prostych funkcji

φ 0 ( x ) = { 0 gdy x x 0 , x 1 x x 1 x 0 gdy x ( x 0 , x 1 ) , {\displaystyle \varphi _{0}(x)={\begin{cases}\;0\quad {\text{gdy}}\quad x\leqslant x_{0},\\\;{\frac {x_{1}-x}{x_{1}-x_{0}}}\quad {\text{gdy}}\quad x\in (x_{0},\,x_{1}),\end{cases}}}
φ i ( x ) = { x x i 1 x i x i 1 gdy x ( x i 1 , x i ) x i + 1 x x i + 1 x i gdy x ( x i , x i + 1 ) } i = 1 , 2 , , n 1 , {\displaystyle \left.\varphi _{i}(x)={\begin{cases}\;{\frac {x-x_{i-1}}{x_{i}-x_{i-1}}}\quad {\text{gdy}}\quad x\in (x_{i-1},\,x_{i})\\\;{\frac {x_{i+1}-x}{x_{i+1}-x_{i}}}\quad {\text{gdy}}\quad x\in (x_{i},\,x_{i+1})\end{cases}}\right\}\quad i=1,\,2,\dots ,\,n-1,}
φ n ( x ) = { x x n 1 x n x i 1 gdy x ( x n 1 , x n ) , 0 gdy x x n . {\displaystyle \varphi _{n}(x)={\begin{cases}\;{\frac {x-x_{n-1}}{x_{n}-x_{i-1}}}\quad {\text{gdy}}\quad x\in (x_{n-1},\,x_{n}),\\\;0\quad {\text{gdy}}\quad x\geqslant x_{n}.\end{cases}}}
(a)

W każdym przedziale międzywęzłowym [ x i , x i + 1 ] , i = 0 , 1 , , n 1 {\displaystyle [x_{i},\,x_{i+1}],\;\;i=0,\,1,\dots ,\,n-1} funkcja f ( x ) {\displaystyle f(x)} jest interpolowana przez dwie funkcje

ψ i ( x ) = x i + 1 x x i + 1 x i i ψ i + 1 ( x ) = x x i x i + 1 x i , x [ x i , x i + 1 ] , i = 0 , 1 , , n 1. {\displaystyle \psi _{i}(x)={\frac {x_{i+1}-x}{x_{i+1}-x_{i}}}\quad \mathrm {i} \quad \psi _{i+1}(x)={\frac {x-x_{i}}{x_{i+1}-x_{i}}},\quad x\in [x_{i},\,x_{i+1}],\quad i=0,\,1,\dots ,\,n-1.}

Funkcje te przez odwzorowanie x = ( 1 ξ ) x i + ξ x i + 1 {\displaystyle x=(1-\xi )x_{i}+\xi x_{i+1}} przedziału [ x i , x i + 1 ] {\displaystyle [x_{i},\,x_{i+1}]} na przedział [ 0 , 1 ] , {\displaystyle [0,\,1],} przyjmują postać standardową

ψ ¯ i ( ξ ) = 1 ξ , ψ ¯ i + 1 ( ξ ) = ξ , ξ [ 0 , 1 ] , i = 0 , 1 , , n 1. {\displaystyle {\bar {\psi }}_{i}(\xi )=1-\xi ,\quad {\bar {\psi }}_{i+1}(\xi )=\xi ,\quad \xi \in [0,\,1],\quad i=0,\,1,\dots ,\,n-1.}

Różniczkowalność funkcji interpolującej φ ( x ) {\displaystyle \varphi (x)} można uzyskać budując przykładowo bazę sklejoną z wielomianów 3-go stopnia

φ 0 ( x ) = { 0 gdy x x 0 , 1 ξ 2 ( 3 2 ξ ) + β 0 ξ ( 1 ξ ) 2 , ξ = x x 0 x 1 x 0 , x [ x 0 , x 1 ] , {\displaystyle \varphi _{0}(x)={\begin{cases}\;0\quad {\text{gdy}}\quad x\leqslant x_{0},\\\;1-\xi ^{2}(3-2\xi )+\beta _{0}\xi (1-\xi )^{2},\quad \xi ={\frac {x-x_{0}}{x_{1}-x_{0}}},\quad x\in [x_{0},\,x_{1}],\end{cases}}}

β 0 = f ( x 1 ) f ( x 0 ) x 1 x 0 , {\displaystyle {}\qquad \qquad \qquad \beta _{0}={\frac {f(x_{1})-f(x_{0})}{x_{1}-x_{0}}},}

φ i ( x ) = { ξ 2 ( 3 2 ξ ) β i ξ 2 ( 1 ξ ) , ξ = x x i 1 x i x i 1 , x [ x i 1 , x i ] , 1 ξ 2 ( 3 2 ξ ) + β i ξ ( 1 ξ ) 2 , ξ = x x i x i + 1 x i , x [ x i , x i + 1 ] , {\displaystyle \varphi _{i}(x)={\begin{cases}\;\xi ^{2}(3-2\xi )-\beta _{i}\xi ^{2}(1-\xi ),\quad \xi ={\frac {x-x_{i-1}}{x_{i}-x_{i-1}}},\quad x\in [x_{i-1},\,x_{i}],\\\;1-\xi ^{2}(3-2\xi )+\beta _{i}\xi (1-\xi )^{2},\quad \xi ={\frac {x-x_{i}}{x_{i+1}-x_{i}}},\quad x\in [x_{i},\,x_{i+1}],\end{cases}}}

β i = f ( x i + 1 ) f ( x i 1 ) x i + 1 x i 1 , i = 1 , 2 , , n 1 , {\displaystyle {}\qquad \qquad \qquad \beta _{i}={\frac {f(x_{i+1})-f(x_{i-1})}{x_{i+1}-x_{i-1}}},\quad i=1,\,2,\dots ,\,n-1,}

φ n ( x ) = { ξ 2 ( 3 2 ξ ) β n ξ 2 ( 1 ξ ) , ξ = x x n 1 x n x n 1 , x [ x n 1 , x n ] , 0 gdy x x n , {\displaystyle \varphi _{n}(x)={\begin{cases}\;\xi ^{2}(3-2\xi )-\beta _{n}\xi ^{2}(1-\xi ),\quad \xi ={\frac {x-x_{n-1}}{x_{n}-x_{n-1}}},\quad x\in [x_{n-1},\,x_{n}],\\\;0\quad {\text{gdy}}\quad x\geqslant x_{n},\end{cases}}}

β n = f ( x n ) f ( x n 1 ) x n x n 1 . {\displaystyle {}\qquad \qquad \qquad \beta _{n}={\frac {f(x_{n})-f(x_{n-1})}{x_{n}-x_{n-1}}}.}

Dzięki wprowadzeniu dodatkowych członów z mnożnikami β i {\displaystyle \beta _{i}} wielomian interpolujący

φ ( x ) = a 0 φ 0 ( x ) + a 1 φ 1 ( x ) + + a n φ n ( x ) {\displaystyle \varphi (x)=a_{0}\varphi _{0}(x)+a_{1}\varphi _{1}(x)+\ldots +a_{n}\varphi _{n}(x)}

nie tylko spełnia warunki

φ ( x i ) = f ( x i ) , i = 0 , 1 , , n , {\displaystyle \varphi (x_{i})=f(x_{i}),\quad i=0,\,1,\dots ,\,n,}

ale również przybliża średnie wartości pochodnych we wszystkich węzłach interpolacji. Pominięcie tych członów ( β i = 0 , i = 0 , 1 , , n ) {\displaystyle (\beta _{i}=0,\;\;i=0,\,1,\dots ,\,n)} daje interpolację co prawda różniczkowalną, ale taką, że φ ( x i ) = 0 , i = 0 , 1 , , n . {\displaystyle \varphi ^{'}(x_{i})=0,\;\;i=0,\,1,\dots ,\,n.}

Stosowanie baz zbudowanych z uogólnionych wielomianów sklejanych o krótkich nośnikach, złożonych tylko z dwu sąsiednich przedziałów, w sposób zdecydowany poprawia stabilność obliczeń interpolacyjnych.

Opisana koncepcja tworzenia baz sklejanych daje się bez trudu uogólnić na interpolację dwu- i trójwymiarową co stanowi podstawę metody elementów skończonych[3].

Zobacz też

Przypisy

  1. a b c J. Legras, Praktyczne metody analizy numerycznej, WNT, Warszawa 1974.
  2. B.P. Demidowicz, I.A. Maron, Metody numeryczne, cz. 2, PWN, Warszawa 1965.
  3. M.J. Ciałkowski, K. Magnucki, Zarys metody elementów skończonych, Wyd. Politechniki Poznańskiej, Poznań 1982.
Encyklopedia internetowa (Interpolacja):