Interpolacja wielomianowa

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania

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 przyjmującym w n+1 punktach, zwanych węzłami interpolacji, wartości takie same jak przybliżana funkcjaSzablon:R.

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), ciągłą na przedziale domkniętym [x0,xn]R1 można dowolnie przybliżyć za pomocą wielomianu odpowiednio wysokiego stopniaSzablon:R.

Interpolacja liniowa

Interpolacja liniowa

Szablon:Osobny artykuł Taka interpolacja jest szczególnym, najprostszym przypadkiem interpolacji wielomianowej dla dwóch punktów pomiarowych x0 i x1, 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 polega na:

  1. wybraniu n+1 punktów (węzłów interpolacji) x0,x1,,xn należących do dziedziny f, dla których znane są wartości y0=f(x0),y1=f(x1),,yn=f(xn);
  2. zbudowaniu wielomianu φ(x) stopnia co najwyżej n takiego, że φ(x0)=y0,φ(x1)=y1,,φ(xn)=yn.

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

  • Uogólniony wielomian interpolacyjny

Skorzystamy z wielomianu o postaci ogólnej Szablon:Wzór

utworzonej z pewnego zbioru funkcji φi(x), które są liniowo niezależne i tworzą bazę interpolacji Szablon:Wzór

Współczynniki ai dobierzemy w taki sposób, aby spełnione były warunki Szablon:Wzór

w których xi oznaczają współrzędne danych węzłów interpolacji funkcji f(x). Po uwzględnieniu (1) otrzymujemy układ równań Szablon:Wzór

lub w zapisie macierzowymSzablon:R Szablon:Wzór

Na podstawie (1) i (5) otrzymujemy Szablon:Wzór

O jakości interpolacji decydują:

  • wybór bazy 𝐁(x) oraz
  • wybór położenia węzłów xi.
  • Interpolacja Lagrange’a

Najprostszą bazę interpolacji można utworzyć z jednomianów Szablon:Wzór

W tym przypadku otrzymuje się macierz Szablon:Wzór

o strukturze VandermondaSzablon:R i dzięki temu zawsze istnieje rozwiązanie problemu jeżeli tylko xixj gdy ij.

Korzystając ze wzoru (6) i bazy (7), możemy utworzyć taką funkcję ϕk(x), która spełnia warunki ϕk(xi)=δik,i=0,1,,n. Wystarczy obliczyć współczynniki ai(k), rozwiązując układ równań (4) z prawą stroną

Fk=[f(x1)=0,f(x2)=0,,f(xk)=1,,f(xn)=0]T.

Wielomian taki zaproponował Lagrange w postaci

Lk(x)=Π(xxi)Π(xkxi),

gdzie Π jest iloczynem, w którym i=0,1,,n i ik.

Wielomian Lagrange’a

Wielomian Lagrange’a to szczególna postać wielomianu, wykorzystywana często w zagadnieniach interpolacji. Dla wielomianu stopnia n wybiera się n+1 punktów – x0,x1,,xn i wielomian ma postać:

w(x)=i=0nyij=0jinxxjxixj.

Ponieważ j=0jinxxjxixj={1gdyx=xi,0gdyx=xj.

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

Lf(x)=i=0nf(xi)j=0jinxxjxixj,

który spełnia warunki

Lf(xi)=f(xi),i=0,1,,n.

Dowód istnienia wielomianu interpolującego

Niech x0,x1,,xn będą węzłami interpolacji funkcji f takimi, że znane są wartości: f(x0)=y0,f(x1)=y1,,f(xn)=yn.
Można zdefiniować funkcję:

Li(x)=j=0jinxxjxixj,i0,1,n

taką, że dla x{x0,x1,,xn} Li(x) jest wielomianem stopnia n (mianownik jest liczbą, a licznik iloczynem n wyrazów postaci (xxj)).

Gdy xk{x0,x1,,xn} i k=i:

Li(xk)=Li(xi)=j=0jin(xixjxixj)=j=0jin(1)=1.

Gdy xk{x0,x1,,xn} i ki:

Li(xk)=j=0jinxkxjxixj=(xkx0)(xkx1)(xkxk)(xkxn)(xix0)(xix1)(xixi1)(xixi+1)(xixn)=0

(licznik = 0, ponieważ występuje element (xkxk)).

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

W(x)=y0L0(x)+y1L1(x)+y2L2(x)++ynLn(x).

Dla xi{x0,x1,,xn}:

W(xi)=y0L0(xi)+y1L1(xi)++yiLi(xi)++ynLn(xi).

Wszystkie składniki sumy o indeksach różnych od i są równe zeru (ponieważ dla ji  Li(xj)=0), składnik o indeksie i jest równy:

Li(xi)yi=1yi=yi,

a więc

W(xi)=yi,

z czego wynika, że W(x) jest wielomianem interpolującym funkcję f(x) na zbiorze punktów x0,x1,,xn.

Jednoznaczność interpolacji wielomianowej

Dowód

Zakłada się, że istnieją dwa różne wielomiany W1(x) i W2(x) stopnia n, przyjmujące w węzłach x0,x1,,xn takie same wartości.

Niech

W3(x)=W1(x)W2(x).

W3(x) jest wielomianem stopnia co najwyżej n (co wynika z własności odejmowania wielomianów).

Ponieważ W1(x) i W2(x) w węzłach xi,i0,1,,n interpolują tę samą funkcję, to W1(xi)=W2(xi), a więc W3(xi)=0 (węzły interpolacji są pierwiastkami W3(x)).(*)

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

W3(x)=W1(x)W2(x)=0

to

W1(x)=W2(x),

co jest sprzeczne z założeniem, że W1(x) i W2(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) wielomianem Ln(x). Idealna byłaby zależność:

limnLn(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, przybliżającego funkcję f(x) w przedziale [a,b] na podstawie n+1 węzłów, istnieje taka liczba ξ zależna od x, że dla reszty interpolacji r(x):

f(n+1)(ξ)(n+1)!pn(x)=r(x),

gdzie pn(x)=(xx0)(xx1)(xxn), a ξ(a;b) jest liczbą zależną od x.

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

Funkcje sklejane

Interpolacje funkcji f(x),x[x0,xn]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 wielomianów, które to fragmenty wraz ze wzrostem liczby 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ł [x0,xn].

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 Szablon:Wzór

W każdym przedziale międzywęzłowym [xi,xi+1],i=0,1,,n1 funkcja f(x) jest interpolowana przez dwie funkcje

ψi(x)=xi+1xxi+1xiiψi+1(x)=xxixi+1xi,x[xi,xi+1],i=0,1,,n1.

Funkcje te przez odwzorowanie x=(1ξ)xi+ξxi+1 przedziału [xi,xi+1] na przedział [0,1], przyjmują postać standardową

ψ¯i(ξ)=1ξ,ψ¯i+1(ξ)=ξ,ξ[0,1],i=0,1,,n1.

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

φ0(x)={0gdyxx0,1ξ2(32ξ)+β0ξ(1ξ)2,ξ=xx0x1x0,x[x0,x1],

β0=f(x1)f(x0)x1x0,

φi(x)={ξ2(32ξ)βiξ2(1ξ),ξ=xxi1xixi1,x[xi1,xi],1ξ2(32ξ)+βiξ(1ξ)2,ξ=xxixi+1xi,x[xi,xi+1],

βi=f(xi+1)f(xi1)xi+1xi1,i=1,2,,n1,

φn(x)={ξ2(32ξ)βnξ2(1ξ),ξ=xxn1xnxn1,x[xn1,xn],0gdyxxn,

βn=f(xn)f(xn1)xnxn1.

Dzięki wprowadzeniu dodatkowych członów z mnożnikami βi wielomian interpolujący

φ(x)=a0φ0(x)+a1φ1(x)++anφn(x)

nie tylko spełnia warunki

φ(xi)=f(xi),i=0,1,,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) daje interpolację co prawda różniczkowalną, ale taką, że φ'(xi)=0,i=0,1,,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ńczonychSzablon:R.

Zobacz też

Przypisy

Błąd rozszerzenia cite: Znacznik <ref> o nazwie „Leg”, zdefiniowany w <references>, nie był użyty wcześniej w treści.
Błąd rozszerzenia cite: Znacznik <ref> o nazwie „Dem”, zdefiniowany w <references>, nie był użyty wcześniej w treści.
Błąd rozszerzenia cite: Znacznik <ref> o nazwie „Mag”, zdefiniowany w <references>, nie był użyty wcześniej w treści.

Szablon:Kontrola autorytatywna