interpolacja - galaxy.agh.edu.plgalaxy.agh.edu.pl/~chwiej/mn/interpolacja_2016.pdf · interpolacja...
TRANSCRIPT
Interpolacja
Plan wykładu:
1. Idea interpolacji wielomianowej
2. Interpolacja Lagrange'a
3. Dobór węzłów interpolacji - wielomiany Czebyszewa
4. Ilorazy różnicowe, różnice progresywne , różnice wsteczne
5. Interpolacja Newtona
6. Interpolacja funkcjami sklejanymi
2
W przedziale [a,b] danych jest n+1 różnych punktów x0,x1,x2,...,xn (węzły interpolacji) oraz wartości funkcji y=f(x) w tych punktach:
Interpolacja polega na wyznaczeniu przybliżonych wartości funkcji w punktach nie będących węzłami oraz na oszacowaniu błędu przybliżonych wartości. Problem interpolacji sprowadza się do znalezienia funkcji interpolującej F(x), która w węzłach przyjmuje wartości takie jak funkcja y=f(x) – funkcja interpolowana (jej postać funkcyjna może nie być nawet znana).
f(x0) = y0; f(x1) = y1; ¢ ¢ ¢ ; f(xn) = yn
Do czego służy interpolacja?
1) Dla stablicowanych wartości funkcji i określonych położeń węzłów szukamy przybliżenia funkcji pomiędzy węzłami a) zagęszczanie tablicb) efektywniejsze (szybsze) rozwiązywanie równań
nieliniowych2) Interpolacja wielomianowa pozwala lokalnie
przybliżyć dowolną funkcję (np. wyrażającą się skomplikowaną formułą) wielomianem – ułatwia to analizę rozwiązań w modelach fizycznych
3) wykorzystuje się w całkowaniu numerycznym4) w dwóch i trzech wymiarach do modelowania
powierzchnii
Interpolację najczęściej przeprowadza się przy pomocy:
a) wielomianów algebraicznych (nieortogonalne lub ortogonalne)
b) wielomianów trygonometrycznychc) funkcji sklejanych
Powyższe funkcje stanowią bazy funkcyjne – funkcja interpolująca jest kombinacją elementów bazowych.
3
Idea interpolacji wielomianowej(mało efektywna)
Tw.Istnieje dokładnie jeden wielomian interpolacyjny stopnia co najwyżej n (n ≥ 0 ), który w punktach x0,x1,x2,...,xn przyjmuje wartości y0,y1,y2,...,yn.
Dowód.n+1 węzłów rozmieszczonych jest w dowolny sposób w [a,b]. Szukamy wielomianu interpolacyjnego w postaci:
Podstawiając do Wn(x) kolejno x0,x1,x2,...,xn dostajemy układ n+1 równań na współczynniki ai:
Wn(x) = a0 + a1x + a2x2 + : : : + anx
n
a0 + a1x0 + a2x20 + ¢ ¢ ¢+ anx
n0 = y0
a0 + a1x1 + a2x21 + ¢ ¢ ¢+ anx
n1 = y1
¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ = ¢ ¢ ¢a0 + a1xn + a2x
2n + ¢ ¢ ¢+ anx
nn = yn
Macierz współczyników układu:
Wyznacznik:
jest wyznacznikiem Vandermode'a
więc układ ma dokładnie jedno rozwiązanie
Dij – wyznaczniki macierzy dopełnień algebraicznych
A =
2666664
1 x0 x20 x30 ¢ ¢ ¢ xn0
1 x1 x21 x31 ¢ ¢ ¢ xn1
¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢1 xn x2n x3n ¢ ¢ ¢ xnn
3777775
D =
¯̄¯̄¯̄¯̄¯̄¯
1 x0 x20 x30 ¢ ¢ ¢ xn0
1 x1 x21 x31 ¢ ¢ ¢ xn1
¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢1 xn x2n x3n ¢ ¢ ¢ xnn
¯̄¯̄¯̄¯̄¯̄¯
ai =1
D
nX
j=0
yjDij
D =Y
0·j<i·n(xi ¡ xj) 6= 0
4
Interpolacja Lagrange'a
Korzystamy z poprzedniego wyniku, tj. podstawiamy
do
i grupujemy składniki przy yi
funkcje i(x) są wielomianami co najwyżej stopnia n. Zauważmy, że dla dowolnego xi zachodzi zależność:
skąd wynika warunek
ai =1
D
nX
j=0
yjDij
Wn(x) = a0 + a1x + a2x2 + : : : + anx
n
Wn(x) = y0©0(x) + y1©1(x) + ¢ ¢ ¢+ yn©n(x)
Wn(xi) = y0©0(xi) + y1©1(xi) + : : : + yn©n(xi) = yi
©j(xi) =
½0 gdy j 6= i1 gdy j = i
5
Wniosek: aby okreslić funkcje j(x) należy znaleźć taki wielomian, który zeruje się w węzłach xi ≠ xj oraz przyjmuje wartość 1 w węźle xj. Taką funkcją mógłby być np. wielomian:
który w xj przyjmuje wartość 1:
©j(x) = ¸(x¡ x0)(x¡ x1) : : : : : : (x¡ xj¡1)(x¡ xj+1) : : : (x¡ xn)
©j(x) =(x ¡ x0)(x ¡ x1) ¢ ¢ ¢ (x¡ xj¡1)(x¡ xj+1) ¢ ¢ ¢ (x¡ xn)
(xj ¡ x0)(xj ¡ x1) ¢ ¢ ¢ (xj ¡ xj¡1)(xj ¡ xj+1) ¢ ¢ ¢ (xj ¡ xn)
1 = ¸(xj ¡ x0)(xj ¡ x1) ¢ ¢ ¢ (xj ¡ xj¡1)(xj ¡ xj+1) ¢ ¢ ¢ (xj ¡ xn)
6
Szukany wielomian przyjmuje postać:
lub krócej, oznaczając
Wzór interpolacyjny Lagrange'a ma postać
Wn(x) = y0(x¡ x1)(x¡ x2) ¢ ¢ ¢ (x ¡ xn)
(x0 ¡ x1) ¢ ¢ ¢ (x0 ¡ xn)
+ y1(x ¡ x0)(x¡ x2) ¢ ¢ ¢ (x¡ xn)
(x1 ¡ x0)(x1 ¡ x2) ¢ ¢ ¢ (x1 ¡ xn)
+ ¢ ¢ ¢+ yn(x¡ x0)(x¡ x2) ¢ ¢ ¢ (x¡ xn¡1)
(xn ¡ x0)(xn ¡ x) ¢ ¢ ¢ (xn ¡ xn¡1)
=
nX
j=0
yj(x¡ x0)(x¡ x1) ¢ ¢ ¢ (x ¡ xj¡1)(x¡ xj+1) ¢ ¢ ¢ (x¡ xn)
(xj ¡ x0)(xj ¡ x1) ¢ ¢ ¢ (xj ¡ xj¡1)(xj ¡ xj+1) ¢ ¢ ¢ (xj ¡ xn)
!n(x) = (x¡ x0)(x¡ x1) ¢ ¢ ¢ (x¡ xn)
Wn(x) =
nX
j=0
yj!n(x)
(x¡ xj)
½!n(x)
x¡xj
¾¯̄¯̄x=xj
=
nX
j=0
yj!n(x)
(x¡ xj)!0n(xj)
7
Przykład: dla węzłów x=-2,1,2,4 w których funkcja przyjmuje wartości3,1,-3,8 należy znaleźć wielomian interpolacyjny Lagrange'a.
W3(x) = 3(x¡ 1)(x¡ 2)(x¡ 4)
(¡2¡ 1)(¡2¡ 2)(¡2¡ 4)+ 1
(x + 2)(x¡ 2)(x¡ 4)
(1 + 2)(1¡ 2)(1¡ 4)
¡ 3(x + 2)(x¡ 1)(x¡ 4)
(2 + 2)(2¡ 1)(2¡ 4)+ 8
(x + 2)(x¡ 1)(x¡ 2)
(4 + 2)(4¡ 1)(4¡ 2)
=2
3x3 ¡ 3
2x2 ¡ 25
6x + 5
Oszacowanie błędu wzoru interpolacyjnegoInteresuje nas rożnica pomiędzy wartościami funkcji interpolowanej i interpolującej w pewnym punkcie x∈ [x
0,x
n] nie będącym węzłem:
Zakładamy, że funkcja f(x) jest n+1 krotnie różniczkowalna. Wprowadzamy funkcję pomocniczą (jeśli znajdziemy wartość K i zażądamy znikania to dodatkowy wyraz będzie opisywał błąd interpolacji):
(K -stała), która spełnia warunek interpolacji
'(x0) = '(x1) = ¢ ¢ ¢ = '(xn) = 0
"(x) = f(x)¡Wn(x)
'(u) = f(u)¡Wn(u)¡K(u¡ x0)(u¡ x1) ¢ ¢ ¢ (u¡ xn)
8
Wartość współczynnika K dobieramy tak aby pierwiastkiem funkcji (u) był punkt , wówczas możemy zapisać warunek na stałą K
Mianownik jest różny od 0 więc funkcja (u) jest n+2 krotnie różniczkowalna. Pochodna funkcji ma co najmniej jedno miejsce zerowe w przedziale ograniczonym jej miejscami zerowymi (tw. Rolle'a) więc ma ich conajmniej n+1. Każda kolejna pochodna ma o jedno miejsce zerowe mniej. Istnieje zatem taki punkt, że
i podobnie dla wielomianu interpolującego
n+1 pochodna funkcji pomocniczej ma postać
¹x
K =f(¹x)¡Wn(¹x)
(¹x¡ x0)(¹x¡ x1) : : : (¹x ¡ xn)
=f(¹x)¡Wn(x)
!n(¹x)
'(n+1)(») = 0
W (n+1)n (x) = 0
!(n+1)n (x) = (n + 1)!
'(n+1)(u) = f (n+1)(u)¡K(n + 1)!
Dla
można oszacować błąd interpolacji
Oznaczmy kres górny modułu n+1 pochodnej
Może posłużyć do oszacowania błędu bezwględnego wzoru interpolacyjnego pod warunkiem, że znamy maksymalną wartość n+1 pochodnej f(x) w zadanymprzedziale – możemy nie znać dokładnej postaci funkcji, ale z analizy problemu możemy wywnioskować jaka powinna to być zależność.
u = »
K =f (n+1)(»)
(n + 1)!
"(x) = f(x)¡Wn(x) =f (n+1)(»)
(n + 1)!!n(x)
Mn+1 = supx2[a;b]
jf (n+1)(x)j
jf(x)¡Wn(x)j · Mn+1
(n + 1)!j!n(x)j
9
Przykład. Oszacować błąd wzoru interpolacyjnego przy obliczaniu wartości ln100.5.Dane są wartości: ln100, ln101, ln102, ln103.
Dobór węzłów interpolacji.
Oszacowanie błędu interpolacji Lagrange'a zależy od:
1) postaci funkcji (n+1 pochodna)2) ilości węzłów (mianownik)3) położenia węzłów (n(x))
Wartośc oszcowania można ograniczyć jedynie zmieniając położenia węzłów (pkt. (3)).
Chcemy zatem aby
było jak najmniejsze.
f(x) = ln(x); n = 3;
a = 100; b = 103;
f (4)(x) = ¡ 6
x4
M4 = supx2[100;103]
jf4(x)j = 6
1004
jln100:5¡W (100:5)j · 2:344 ¢ 10¡9
supx2[a;b]
j!n(x)j
Optymalne położenia węzłów stanowią zera wielomianów Czebyszewa
Relacje rekurencyjne
Zera wielomianów
Szukamy funkcji n(x), która musi być wielomianem Czebyszewa (znormalizowanym do 1 – relacja rekurencyjna dla Tn(x))
Tn(x) = cos(n ¢ arc cos(x))
x 2 [¡1; 1]
T0(x) = 1
T1(x) = cos(arc cos(x)) = x
Tn(x) = 2xTn¡1(x) ¡ Tn¡2(x); n ¸ 2
!n(x) = T ¤n(x)
T ¤n(x) =1
2n¡1Tn(x)
= (x¡ x0)(x ¡ x1) ¢ ¢ ¢ (x¡ xn¡1)
xm = cos
µ2m + 1
2n + 2¼
¶; m = 0; 1; 2; : : : ; n
10
Skalowanie przedziału [-1,1] na [a,b]
Skalowanie z [a,b] na [-1,1]
Optymalne położenie węzłów można wyznaczyć wg wzoru:
Węzły nie są rozmieszczone równomiernie, ale są zagęszczone na krańcach przedziału. Przy takim wyborze węzłów oszacowanie błędu jest następujące:
Wielomian wyznaczony przy takim ułożeniu węzłów na ogół nie daje najmniejszego błędu tylko jego najmniejsze oszacowanie.
x =1
2[(b¡ a)z + (b + a)]; x 2 [a; b]
z =1
b¡ a(2x¡ b¡ a); z 2 [¡1; 1]
jf(x)¡Wn(x)j · Mn+1
(n + 1)!
(b¡ a)n+1
22n+1
m = 0; 1; : : : ; n
11
Ilorazy różnicowe.Funkcja f(x) przyjmuje w punktachwartości
Zakładamy że różnice
mogą nie być stałe
Ilorazy różnicowe definiujemy następująco:
a) pierwszego rzędu
b) drugiego rzędu
c) n-tego rzędu
xi; i = 0; 1; : : : ; n; xi 6= xj
f(x0); f(x1); : : : ; f(xn)
¢xi = xi+1 ¡ xi
f(xn¡1;xn) =f(xn)¡ f(xn¡1)
xn ¡ xn¡1
f(xn¡2;xn¡1;xn) =f(xn¡1;xn)¡ f(xn¡2;xn¡1)
xn ¡ xn¡2
f(xi; xi+1; : : : ;xi+n) =f(xi+1;xi+2; : : : ; xi+n)¡ f(xi;xi+1; : : : ;xi+n¡1)
xi+n ¡ xi
12
xi f(xi)Ilorazy różnicowe
1 rzędu 2 rzędu 3 rzędu 4 rzędu 5 rzędu
X0
x1
x2
x3
x4
x5
f(x0)
f(x1)
f(x2)
f(x3)
f(x4)
f(x5)
f(x0;x1)
f(x1;x2)
f(x2;x3)
f(x3;x4)
f(x4;x5)
f(x0;x1;x2)
f(x1;x2;x3)
f(x2;x3;x4)
f(x3;x4;x5)
f(x0;x1;x2;x3)
f(x1;x2;x3;x4)
f(x2;x3;x4;x5)
f(x0;...;x4)
f(x1;...;x5)f(x0;...;x5)
Przy założeniu i=0, iloraz różnicowy n-tego rzędu można zapisać:
Dowód przez indukcję: dla n=1
Zazwyczaj tworzy się tablicę z ilorazami różnicowymi (łatwe do zaprogramowania na komputerze)
f(x0;x1; : : : ;xn) =
nX
j=0
f(xj)
(xj ¡ x0)(xj ¡ x1) : : : (xj ¡ xj¡1)(xj ¡ xj+1) : : : (xj ¡ xn)
f(xi; xi+1) =f(xi+1)¡ f(xi)
xi+1 ¡ xi=
f(xi)
xi ¡ xi+1+
f(xi+1)
xi+1 ¡ xi
f(x0;x1; : : : ;xn) =
nX
j=0
f(xj)
!0n(xj)
13
Różnice progresywne (dla równoodległych węzłów)
Zakładamy że węzły interpolacji tworzą ciąg arytmetyczny i są równoodległe:
Różnice progresywne („w przód”) definiujemy następująco:
a) pierwszego rzędu
b) drugiego rzędu
c) n-tego rzędu
xn = x0 + nh
n = 0; 1; 2; 3; : : :
h = const
¢f = f(x + h)¡ f(x)
¢nf = ¢(¢n¡1f); n = 2; 3; : : :
¢2f = ¢(¢f) = ¢[f(x + h)¡ f(x)]
= [f(x + 2h)¡ f(x + h)]¡ [f(x + h)¡ f(x)]
= f(x + 2h)¡ 2f(x + h) + f(x)
14
Różnicę progresywną dowolnego rzędu funkcji f można przedstawić jako kombinacje liniową wartości tej funkcji
Dla funkcji stablicowanej (w interpolacji) wygodniej jest przyjąć oznaczenia
Własności różnic progresywnych:
1) Różnica progresywna wielomianu stopnia n jest wielomianem stopnia n-1
2) n-tą różnicę można wyznaczyć za pomocą wzoru
3) Dysponując wartościami różnic progresywnych można wyznaczyć wartość yi
¢0f(x) = f(x)
¢nf(x) = ¢n¡1f(x + h)¡¢n¡1f(x)
n = 1; 2; : : :
yi = f(xi)
¢0yi = yi
¢nyi = ¢n¡1yi+1 ¡¢n¡1yi
¢nyi =
nX
j=0
(¡1)jµ
n
j
¶yi+n¡j
yk = y0 +
µk
1
¶¢y0 +
µk
2
¶¢2y0 + ¢ ¢ ¢+
µk
k
¶¢ky0
15
Własności operatora
xi yiyi yi yi yi yi
x0
x1
x2
x3
x4
x5
y0
y1
y2
y3
y4
y5
y0
y1
y2
y3
y4
y0
y1
y2
y3
y0
y1
y2
y0
y1
y0
¢(gk § fk) = ¢gk §¢fk
¢(afk) = a¢fk
¢m(¢nfk) = ¢m+nfk
¢[f(xk) ¢ g(xk)] = f(xk+1)¢g(xk) + g(xk+1)¢f(xk)
¢f(xk)
g(xk)=
¢f(xk)g(xk)¡ f(xk)¢g(xk)
g(xk+1)g(xk); g(xk+1)g(xk) 6= 0
¢c = 0; c = const
16
xi yiyi yi yi yi yi
0
1
2
3
4
5
-1
0
7
26
63
124
1
7
19
37
61
6
12
18
24
6
6
6
0
00
Różnice wsteczne
Różnicę wsteczną pierwszego rzędu definiujemy następująco:
Różnica wsteczna k-tego rzędu:
ryi = f(xi)¡ f(xi¡1); i = 1; 2; ¢ ¢ ¢ ; n
rky = rk¡1yi ¡rk¡1yi¡1r0y0 = y0
k = 1; 2; : : : ; n
i = k; k + 1; : : : ; n
y = x3 ¡ 1
17
xi yi r1yi r2yi r3yi r4yi r5yi
x-6
x-5
x-4
x-3
x-2
x-1
x0
y-6
y-5
y-4
y-3
y-2
y-1
y0
ry-5
ry-4
ry-3
ry-2
ry-1
ry0
r2y-4
r2y-3
r2y-2
r2y-1
r2y0
r3y-3
r3y-2
r3y-1
r3y0
r4y-2
r4y-1
r4y0
r5y-1
r5y0
18
Interpolacja Newtona dla nierównoodległych węzłów
Zakładamy że odległości między węzłami mogą być różne
Szukamy wielomianu interpolacyjnego w postaci:
I musi on spełniać warunek w węzłach interpolacji
Szakany wieloman zapiszemy w równoważnej postaci
gdzie różnice
Są wielomianami zdefiniowanymi następująco
Wn(x) =
nX
j=0
yj(x ¡ x0)(x¡ x1) ¢ ¢ ¢ (x¡ xj¡1)(x¡ xj+1) ¢ ¢ ¢ (x¡ xn)
(xj ¡ x0)(xj ¡ x1) ¢ ¢ ¢ (xj ¡ xj¡1)(xj ¡ xj+1) ¢ ¢ ¢ (xj ¡ xn)
Wn(xi) = f(xi); i = 0; 1; 2; ¢ ¢ ¢ ; n
Wn(x) = W0(x) + [W1(x) ¡W0(x)] + [W2(x)¡W1(x)] + ¢ ¢ ¢+ [Wn(x)¡Wn¡1(x)]
Wk(x)¡Wk¡1(x)
¢xi = xi+1 ¡ xi; i = 0; 1; 2; : : :
Wk(x)¡Wk¡1(x) = Ak(x¡ x0)(x¡ x1) ¢ ¢ ¢ (x¡ xk¡1); Ak = const
19
Stałą A wyznaczamy dokonując podstawienia x=xk
Korzystamy z warunku
Wyrażenie w nawiasie jest ilorazem różnicowym k-tego rzędu.
Wk(xk) = f(xk)
!n(x) = (x¡ x0)(x¡ x1) ¢ ¢ ¢ (x¡ xn)
Wk(xk)¡Wk¡1(xk) = Ak(xk ¡ x0)(xk ¡ x1) ¢ ¢ ¢ (xk ¡ xk¡1)
Ak =f(xk)
(xk ¡ x0)(xk ¡ x1) ¢ ¢ ¢ (xk ¡ xk¡1)¡
Pk¡1i=0 f(xi)
!k¡1(xk)
(xk¡xi)!0k¡1
(xi)
(xk ¡ x0)(xk ¡ x1) ¢ ¢ ¢ (xk ¡ xk¡1)
Ak =f(xk)
!0k(xk)
¡k¡1X
i=0
f(xi)
(xk ¡ xi)!0k¡1(xi)
=
kX
i=0
f(xi)
!0k(xi)
Wk(x)¡Wk¡1(x) =
µ kX
i=0
f(xi)
!0k(xi)
¶!k¡1(x)
20
Wielomian interpolacyjny można zapisać przy użyciu formuły opisującej n-ty iloraz różnicowy:
Powyższa formuła nazywana jest wzorem interpolacyjnym Newtona dla nierównych odstępów argumentów.
Przykład. Znaleźć wielomian interpolujący funkcję f(x) dla stablicowanej funkcji:
f(0)=1, f(2)=3, f(3)=2, f(4)=5, f(6)=7
Wn(x) = f(x0) + f(x0;x1)!0(x) + f(x0; x1;x2)!1(x)
+ ¢ ¢ ¢+ f(x0;x1; ¢ ¢ ¢ ;xn)!n¡1(x)
xi f(xi) f(xi;xi+1) f(xi;...;xi+2) f(xi;...;xi+3) f(xi;...;xi+4)
02346
13457
1-131
-2/32
-2/3
2/3-2/3
-2/9
W4(x) = 1 + 1(x¡ 0)¡ 2
3(x¡ 0)(x¡ 2) +
2
3(x¡ 0)(x¡ 2)(x¡ 3)
¡ 2
9(x¡ 0)(x¡ 2)(x¡ 3)(x¡ 4)
= ¡2
9x4 +
8
3x3 ¡ 88
9x2 +
35
3x + 1
21
Wzory interpolacyjne Newtona dla równoodległych wartości argumentu
Dane są wartości funkcji f(x)
Dla siatki węzłów o stałym kroku h
Iloraz różnicowy n-tego rzędu dla równoodległych węzłów:
xi = x0 + ih
i = 0; 1; 2; ¢ ¢ ¢ ; nh = const
yi = f(xi); i = 0; 1; 2; : : : ; n
f(x0) = a0 = y0
f(x0;x1) = a1 =y1 ¡ y0
h
f(x0;x1;x2) = a2 =
y2¡y1h
¡ y1¡y0h
2h=
y2 ¡ 2y1 + y02h2
¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢
f(x0; ¢ ¢ ¢ ;xn) =yn ¡ nyn¡1 +
¡n2
¢yn¡2 ¡ ¢ ¢ ¢+ (¡1)ny0
n!hn
22
Wn(x) = y0 +¢y0h
(x¡ x0) +¢2y02!h2
(x¡ x0)(x¡ x1) + ¢ ¢ ¢
+¢ny0n!hn
(x¡ x0)(x¡ x1) ¢ ¢ ¢ (x¡ xn¡1)
a0 = y0
a1 = ¢y0=h
a2 = ¢2y0=2h2ak =
¢ky0k! ¢ hk ; k = 0; 1; 2; : : : ; n
Wykorzystujemy wzory na różnice progresywne:
Po podstawieniu ak do wzoru interpolacyjnego Newtona otrzymamy
powyższa formuła nosi nazwę pierwszego wzoru interpolacyjnego Newtona (wzór interpolacyjny Newtona na interpolację w przód).W praktyce wygodniej jest używać tego wzoru w nieco zmienionej postaci. Dokonajmy podstawienia:
q =x¡ x0
hx¡ x1
h=
x¡ (x0 + h)
h= q ¡ 1
x¡ x2h
=x¡ (x0 + 2h)
h= q ¡ 2
¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢x¡ xn¡1
h=
x¡ [x0 + (n¡ 1)h]
h= q ¡ (n¡ 1)
23
Powyższy wzór stosuje się w otoczeniu punktu x0 tj. q<1. Gdy q>1 wówczas zax0 należy wybrać najbliższy węzeł taki że xi<x, aby q znowu było mniejsze od 1.
Wzór interpolacyjny Newtona na interpolację wstecz(drugi wzór interpolacyjny Newtona)
Interesuje nas teraz interpolacja w pobliżu końca tablicy (w okolicy punktu xn).Szukamy więc wielomianu iterpolacyjnego w postaci:
punktom
odpowiadają teraz punkty
Wn(x) = y0 +ry0h
(x¡ x0) +r2y02!h2
(x¡ x0)(x¡ x¡1) + ¢ ¢ ¢
+rny0n!hn
(x¡ x0)(x¡ x¡1) ¢ ¢ ¢ (x¡ x¡n+1)
x¡n; x¡n+1; ¢ ¢ ¢ ; x¡1; x0
x0; x1; ¢ ¢ ¢ ; xn¡1; xn
Wn(x) = Wn(x0 + qh) = y0 +q
1!¢y0 +
q(q ¡ 1)
2!¢2y0 + : : :
+q(q ¡ 1) : : : (q ¡ n + 1)
n!¢ny0
24
Jeśli dokonamy podstawienia
to otrzymamy wzór interpolacyjnyNewtona na interpolację wstecz
Zbieżność procesów interpolacyjnych
1) Zwiększanie liczby węzłów interpolacji (przy stałych odległościach) nie zawsze prowadzi do mniejszego oszacowania błędu. Wpływ na to mają oscylacje wielomianów wyższych rzędów. Jest to efekt Rungego - zadanie jest źle uwarunkowane.
2) Interpolacja funkcji, której przebieg znacznie różni się od przebiegu wielomianu interpolacyjnego, może nie dawać dobrych wyników przy dużej liczbie węzłów. Wpływ na to mają pojawiające się ekstrema w funkcji interpolującej (np.: f(x)=1/x).
q =x0 ¡ x
h
Wn(x) = y0 ¡ qry0 +q(q ¡ 1)
2r2y0 ¡ : : :
+ (¡1)nq(q ¡ 1)(q ¡ 2) : : : (q ¡ n + 1)
n!rny0
26
Interpolacja funkcjami sklejanymi - sklejki
W przedziale [a,b] mamy n+1 punktów takich że:
Punkty te określają podział przedziału [a,b] na n podprzedziałów tj. [x i,xi+1].Funkcję s(x) określoną na przedziale [a,b] nazywamy funkcją sklejaną stopnia m (m≥1) jeżeli:
1) s(x) jest wielomianem stopnia conajwyżej m na każdym podprzedziale(xi; xi+1), i=0,1,...,n-1
2) s(x) ∈ Cm{1([a,b])
Punkty xj nazywamy węzłami funkcji sklejanej. W każdym przedziale (xi,xi+1) funkcja s(x) jest wielomianem stopnia conajwyżej m:
Funkcja interpolująca jest kombinacją liniową elementów bazy {s i(x)}
a = x0 < x1 < ¢ ¢ ¢ < xn¡1 < xn = b
si(x) = cimxm + cim¡1xm¡1 + ¢ ¢ ¢ + ci1x + ci0; x 2 (xi; xi+1)
s(x) =
n¡1X
i=0
cisi(x); x 2 [a; b]
27
W każdym z n podprzedziałów aby określić s(x) należałoby wyznaczyć m+1 stałych.Ale żądamy ciągłości pochodnych rzędu 0,1,2,..,m-1 w każdym z węzłów (sklejamy rozwiązania) co daje nam m(n-1) warunków. Ostatecznie funkcja s(x) zależy „jedynie” od: n(m+1)-m(n-1)=n+m parametrów które należy wyznaczyć.
m=0
m=1
m=2
← funkcje nie „sklejają się”
← funkcja ciągła, ale pochodne nie są ciągłe
← funkcja ciągła, pierwsza pochodna też ciągła
28
Funkcje sklejane trzeciego stopnia (m=3)(najczęściej stosowane).
Funkcję s(x) nazywamy interpolacyjną funkcją sklejaną stopnia trzeciego dla funkcji f(x), jeżeli
Do określenia funkcji s(x) stopnia trzeciego konieczne jest wyznaczenie (n+3) parametrów. Ponieważ ilość węzłów jest równa n+1 pozostają 2 stopnie swobody. Musimy nałożyć dwa dodatkowe warunki. Rodzaj tych warunkówzależy od funkcji f(x) lub od znajomości jej zachowania w pobliżu końców przedziału [a,b]:
1 rodzaj warunków 2 rodzaj warunków(1 pochodna) (2 pochodna)
gdzie: są ustalonymi liczbami
3 rodzaj warunków stosuje się dla funkcji okresowych (warunek na 1 i 2 pochodną):
s(2)(a + 0) = ®2
s(2)(b¡ 0) = ¯2
s(1)(a + 0) = ®1
s(1)(b¡ 0) = ¯1
®1; ®2; ¯1; ¯2
s(xi) = f(xi) = yi; i = 0; 1; : : : ; n; n ¸ 2
s(i)(a + 0) = s(i)(b¡ 0); i = 1; 2
Interpolacja funkcjami sklejanymi poprzez wyznaczenie wartości drugich pochodnych w węzłach.
Oznaczmy
Zgodnie z założeniem druga pochodna funkcji s(x) jest ciągła i liniowa w każdym z podprzedziałów [xi-1,xi]. Możemy więc zapisać:
Całkujemy dwukrotnie powyższe wyrażenie:
Mj = s(2)(xj); j = 0; 1; : : : ; n
s(2)i¡1(x) = Mi¡1
xi ¡ x
hi+ Mi
x¡ xi¡1hi
x 2 [xi¡1; xi]
hi = xi ¡ xi¡1
s(1)i¡1(x) = ¡Mi¡1
(xi ¡ x)2
2hi+ Mi
(x¡ xi¡1)2
hi+ Ai
si¡1(x) = Mi¡1(xi ¡ x)3
6hi+ Mi
(x¡ xi¡1)3
6hj
+ Ai(x¡ xi¡1) + Bi
29
Stałe Ai i Bi wyznaczamy korzystając z warunku interpolacji:
W punkcie xi pochodna musi być ciągła:
Porównując prawe strony dwóch powyższych równań dla każdego z węzłów uzyskamy (n-1) równań, które można zapisać w postaci:
si¡1(xi¡1) = Mi¡1h2i6
+ Bi = yi¡1
si¡1(xi) = Mi
h2i6
+ Aihi + Bi = yi Ai =yi ¡ yi¡1
hi¡ hi
6(Mi ¡Mi¡1)
Bi = yi¡1 ¡Mi¡1h2i6
s(1)i¡1(xi) = s
(1)i (xi); i = 1; 2; ¢ ¢ ¢ ; n
s(1)i¡1(xi ¡ 0) =
hi6
Mi¡1 +hi3
Mi +yi ¡ yi¡1
hi
s(1)i (xi + 0) = ¡hi+1
3Mi ¡
hi+16
Mi+1 +yi+1 ¡ yi
hi+1
¹iMi¡1 + 2Mi + ¸iMi+1 = di; i = 1; 2; : : : ; n¡ 1
¸i =hi+1
hi + hi+1; ¹i = 1¡ ¸i
30
Do układu równań należy dołączyć jeszcze 2 równania wynikające z dodatkowych warunków. Dla warunków z 1 pochodną:
Dla warunków z 2 pochodną
M0 = ®2 Mn = ¯2
di =6
hi + hi+1
µyi+1 ¡ yi
hi+1¡ yi ¡ yi¡1
hi
¶= 6f(xi¡1;xi;xi+1)
2M0 + M1 = d0 d0 =6
h1
µy1 ¡ y0
h1¡ ®1
¶
Mn¡1 + 2Mn = dn dn =6
h1
µ¯1 ¡
yn ¡ yn¡1hn
¶
31
Otrzymujemy układ równań który można przedstawićw postaci macierzowej:
Macierz współczynników układu, jest macierzą silnie diagonalnie dominująca.Moduły elementów na diagonali są większe od sumy modułów pozostałych elementów leżących w tym samym wierszu. Układy te mają więc jednoznaczne rozwiązanie – istnieje dokładnie jedna interpolacyjna funkcja sklejana stopnia trzeciego spełniająca przyjęte warunki dodatkowe.
Po rozwiązaniu układu równań - znalezieniu współczynników Mi – wyznaczamyfunkcję sklejaną wg wzoru:
si¡1(x) = Mi¡1(xi ¡ x)3
6hi+ Mi
(x¡ xi¡1)3
6hi+ Ai(x¡ xi¡1) + Bi
266666664
2 1 0 ¢ ¢ ¢ 0
¹1 2 ¸1 ¢ ¢ ¢ 0
0 ¹2 2 ¢ ¢ ¢ 0...
...
0 ¢ ¢ ¢ 2 ¸n¡10 ¢ ¢ ¢ 1 2
377777775
2666666664
M0
M1
...
...
Mn¡1Mn
3777777775
=
2666666664
d0d1......
dn¡1dn
3777777775
32
xj-2 xj-1 xj xj+1 xj+2
3j(x) 0 1 4 1 0
[3j(x)]' 0 3/h 0 -3/h 0
[3j(x)]'' 0 6/h2 -12/h2 6/h2 0
Interpolacja funkcjami sklejanymi w bazie
Zakładamy, że węzły są równoodległe
Bazę stanowią funkcje
Funkcję s(x) można przedstawić w postaci kombinacji liniowej:
©3i (x); i = ¡1; 0; 1; : : : ; n; n + 1
s(x) =
n+1X
i=¡1ci©
3i (x); a · x · b
xi = x0 + ih; h =b¡ a
n; i = 0; 1; 2; : : : ; n
©3i (x) =1
h3
8>>>><>>>>:
(x¡ xi¡2)3 x 2 [xi¡2; xi¡1)h3 + 3h2(x¡ xi¡1) + 3h(x¡ xi¡1)2 ¡ 3(x¡ xi¡1)3 x 2 [xi¡1; xi)h3 + 3h2(xi+1 ¡ x) + 3h(xi+1 ¡ x)2 ¡ 3(xi+1 ¡ x)3 x 2 [xi; xi+1)(xi+2 ¡ x)3 x 2 [xi+1; xi+2)0 x =2 [x¡3; xn+3]
33
Korzystając z warunku interpolacji można zapisać:
Jeśli rozważamy dodatkowo warunek z pierwszą pochodną to do powstałego układu równań należy dołączyć kolejne 2 równania:
Po wyeliminowaniu współczynników c-1 i cn+1 otrzymujemy układ równań:
ci¡1 + 4ci + ci+1 = yi; i = 0; 1; : : : ; n
¡c¡1 + c1 =h
3®1 ¡cn¡1 + cn+1 =
h
3¯1
266666664
4 2
1 4 1 0
1 4...
0 1 4 1
2 4
377777775¢
2666666664
c0c1......
cn¡1cn
3777777775
=
2666666664
y0 + h3®1
y1......
yn¡1yn ¡ h
3¯1
3777777775