Interpolacja
Marcin Orchel
1 Wstęp
Mamy daną funkcję φ (x; a 0 , . . . , a n ) zależną od n + 1 parametrów a 0 , . . . , a n . Zadanie interpolacji funkcji φ polega na określeniu parametrów a i tak aby dla n + 1 danych par (x i , f i ) dla i = 0, 1, . . . , n liczb rzeczywistych lub zespolonych (x i 6= x k dla i 6= k) zachodziło φ(x i ; a 0 , . . . , a n ) = f i dla i = 0, . . . , n. Pary (x i , f i ) nazywamy punktami węzłowymi, a x i nazywamy węzłem.
Zadanie interpolacji liniowej, gdy φ zależy liniowo od parametrów a i
φ (x; a 0 , . . . , a n ) ≡ a 0 φ 0 (x) + a 1 φ 1 (x) + . . . + a n φ n (x) (1) Przypadek szczególny interpolacja wielomianowa, gdy
φ (x; a 0 , . . . , a n ) ≡ a 0 + a 1 x + a 2 x 2 + . . . + a n x n (2) Drugi przypadek szczególny to interpolacja trygonometryczna
φ (x; a 0 , . . . , a n ) ≡ a 0 + a 1 e xi + a 2 e 2xi + . . . + a n e nxi (3) Przykład interpolacji nieliniowej, interpolacja funkcjami wymiernymi
φ (x; a 0 , . . . , a n , b 0 , . . . , b m ) ≡ a 0 + a 1 x + . . . + a n x n
b 0 + b 1 x + . . . + b m x m (4) Inny przykład interpolacji nieliniowej to interpolacja wielomianami wykładniczymi
φ (x; a 0 , . . . , a n , λ 0 , . . . , λ n ) ≡ a 0 e λ
0x + a 1 e λ
1x + . . . + a n e λ
nx (5)
Mamy dany zbiór punktów na płaszczyźnie, interpolacja polega na znalezieniu funk-
cji, która przechodzi przez zadane punkty. Zamiast zbioru punktów na płaszczyźnie może
być dana skomplikowana funkcja. Wtedy interpolacja polega na wyborze określonej licz-
by punktów tej funkcji i znalezieniu prostszej funkcji interpolującej przechodzącej przez
te punkty.
1.1 Interpolacja wielomianowa
Znajdujemy wielomian stopnia maksymalnie n−1, gdzie n to liczba punktów, taki, który przechodzi przez punkty węzłowe. Stopień wielomianu jest maksymalnie równy n − 1, a więc może być mniejszy w przypadku szczególnego ułożenia punktów, np. w przypadku 3 punktów stopień może być równy 1, jeśli wszystkie 3 punkty są współliniowe.
Przykład interpolacja liniowa: Dane dwa punkty A i B, A (x 0 , y 0 ), B (x 1 , y 1 ). Wielo- mian stopnia pierwszego przechodzący przez te punkty: W (x) = ax + b. Zadanie polega na znalezieniu wartości współczynników a i b. Jako, że wielomian powinien przechodzić przez punkty A i B otrzymujemy następujący układ równań:
y 0 = ax 0 + b (6)
y 1 = ax 1 + b (7)
Rozwiązanie to:
a = y 1 − y 0
x 1 − x 0 (8)
b = y 0 x 1 − y 1 x 0
x 1 − x 0 (9)
A więc wielomian interpolujący to
W (x) = y 1 − y 0
x 1 − x 0 x + y 0 x 1 − y 1 x 0
x 1 − x 0 (10)
Możemy to zapisać jako
= y 1 − y 0
x 1 − x 0 x + y 0 (x 1 − x 0 ) − x 0 y 1 + x 0 y 0
x 1 − x 0 = y 0 + (x − x 0 ) y 1 − y 0
x 1 − x 0 = (11) y 0
1 − x − x 0 x 1 − x 0
+ y 1
x − x 0 x 1 − x 0
= y 0
1 − x − x 0 x 1 − x 0
+ y 1
1 − x 1 − x x 1 − x 0
(12) Zauważmy, że jest to średnia ważona, wyrażenia w nawiasach sumują się do 1. Wagami są odległości odciętej x od odciętej x 0 w stosunku do odległości między odciętymi x 0 i x 1 odjęta od 1, oraz podobnie druga waga to odległość odciętej x od x 1 w stosunku do odległości między odciętymi x 0 i x 1 odjęta od 1. Zauważmy, że gdy x jest bliższe x 0 , to wtedy waga przy y 0 jest większa.
Możemy także zapisać powyższe jako y 0
x 1 − x x 1 − x 0
+ y 1
x − x 0 x 1 − x 0
(13) Możemy oznaczyć drugi ułamek jako t i otrzymujemy
y 0 (1 − t) + y 1 t (14)
Zauważmy, że
x = (x 1 − x 0 ) t + x 0 (15)
Interpolacja liniowa polega na tym, że szukamy funkcji liniowej przechodzącej przez dwa punkty. Jesli mamy dwa punkty w większej liczbie wymiarów, możemy również znaleźć linię przechodzącą przez te punkty. Możemy ją znaleźć następująco. Linia prosta przechodząca przez punkt R 1 w kierunku ~a może być zapisana jako
R = R 1 + t~a (16)
gdzie R jest punktem, który należy do tej linii. Jest to postać parametryczna. Jeśli mamy drugi punkt R 2 to możemy wyznaczyć ~a jako
~a = R 2 − R 1 (17)
Równanie możemy zapisać wtedy w postaci
R = R 1 + t (R 2 − R 1 ) (18)
R = (1 − t) R 1 + tR 2 (19)
Jest to równanie w postaci parametrycznej linii przechodzącej przez punkty R 1 i R 2 , a więc jest to wielomian interpolujący W (t) w postaci parametrycznej.
Uogólniając na n punktów, możemy za pomocą układu równań liniowych wyznaczyć współczynniki wielomianu w postaci ogólnej
W (x) = a n x n + a n−1 x n−1 + . . . + a 0 . (20) Twierdzenie 1. Dla dowolnych n + 1 punktów węzłowych (x i , f i ) dla i = 0, . . . , n, x i 6= x k dla i 6= k istnieje dokładnie jeden wielomian P ∈ Π n taki, że W (x i ) = f i dla i = 0, . . . , n.
Zbiór Π n oznacza zbiór wszystkich rzeczywistych lub zespolonych wielomianów P stopnia ≤ n.
1.1.1 Wzór interpolacyjny Newtona
Dane dwa punkty A (x 0 , y 0 ) i B (x 1 , y 1 ). Przykład wielomianu liniowego. Postać ogólna wielomianu liniowego:
W (x) = a 1 x + a 0 (21)
Wielomian Newtona
W (x) = a 0 1 x + a 0 0 − a 0 1 x 0 = a 0 0 + a 0 1 (x − x 0 ) (22) Zauważmy, że możemy dobrać
a 0 0 = a 0 + a 1 x 0 (23)
a 0 1 = a 1 (24)
i otrzymamy postać ogólną. Jak znaleźć wielomian Newtona? Konieczne jest znalezienie współczynników a 0 0 oraz a 0 1 .
W (x 0 ) = y 0 (25)
a 0 0 = y 0 (26)
W (x 1 ) = y 1 (27)
a 0 0 + a 0 1 (x 1 − x 0 ) = y 1 (28) a 0 1 = y 1 − a 0 0
x 1 − x 0 = y 1 − y 0
x 1 − x 0 (29)
Jeśli chcemy uzyskać postać ogólną, to musimy skorzystać ze wzoru (23) i (24), aby obliczyć a 0 i a 1 , lub z (22).
Dla wielomianu n-tego stopnia. Dane n + 1 punktów: (x 0 , y 0 ) , (x 1 , y 1 ) . . . (x n , y n ).
Postać Newtona wygląda następująco:
W (x) = a 0 0 + a 0 1 (x − x 0 ) + a 0 2 (x − x 0 ) (x − x 1 ) + . . . + a 0 n (x − x 0 ) (x − x 1 ) . . . (x − x n−1 ) (30) lub
W (x) =
n
X
i=0
a 0 i
i−1
Y
j=0
x − x j . (31)
Wartość tego wielomianu dla x = ξ możemy wyznaczyć ze schematu Hornera
W (ξ) = . . . a 0 n (ξ − x n−1 ) + a 0 n−1 (ξ − x n−2 ) + . . . + a 0 1 (ξ − x 0 ) + a 0 0 (32) Podstawiając do (30) dane punkty otrzymujemy następujący układ równań:
y 0 = W (x 0 ) = a 0 0 (33)
y 1 = W (x 1 ) = a 0 0 + a 0 1 (x 1 − x 0 ) (34) y 2 = W (x 2 ) = a 0 0 + a 0 1 (x 2 − x 0 ) + a 0 2 (x 2 − x 0 ) (x 2 − x 1 ) (35)
. . . (36)
Z powyższego układu łatwo wyznaczymy współczynniki wielomianu Newtona,
a 0 0 = y 0 (37)
a 0 1 = y 1 − y 0
x 1 − x 0 (38)
. . . (39)
Jak otrzymać współczynniki postaci ogólnej? Jeśli sprowadzimy wzór (30) do postaci ogólnej wyrażenia przy kolejnych potęgach zmiennej x będą szukanymi współczynnikami:
a 0 = a 0 0 − a 0 1 x 0 + a 0 2 x 0 x 1 − a 0 3 x 0 x 1 x 2 + . . . ± a n x 0 x 1 x 2 . . . x n−1 (40)
a 1 = . . . (41)
Możemy zdefiniować wielomian obcięty:
Q k (x) :≡ a 0 0 + a 0 1 (x − x 0 ) + . . . + a 0 k (x − x 0 ) . . . (x − x k−1 ) (42)
dla k = 0, 1, . . . , n. Zdefiniujmy również W 01...k (x) jako
W 01...k (x) ∈ Π k (43)
taki, że
W 01...k (x i ) = f i (44)
dla i = 0, 1 . . . , k dla punktów węzłowych (x i , f i ).
Zachodzą 1.
Q k (x) ≡ W 01...k (x) (45)
Wynika, to z tego, że wielomian obcięty Q k (x) jest tak naprawdę wielomianem w postaci Newtona, oraz z tego, że wielomian w postaci Newtona ma tak dobrane współczynniki aby przechodził przez punkty węzłowe oraz z unikalności wielomianu danego stopnia.
2.
W 01...k+1 (x) ≡ W 01...k (x) + a 0 k+1 (x − x 0 ) . . . (x − x k ) (46) Dodanie nowego punktu węzłowego sprowadza się do obliczenia jednego dodatko- wego współczynnika.
3. a 0 k jest współczynnikiem przy x k w wielomianie W 01...k (x).
Przykład 1. Przykład: znaleźć wielomian stopnia co najwyżej trzeciego, który w punk- tach -1, 1, 3, 5 przyjmuje odpowiednio wartości 3, -1, 19, 111. Odpowiedź: x 3 − 3x + 1.
Wielomian interpolacyjny Newtona:
3 + (−2) (x + 1) + 3 (x + 1) (x − 1) + 1 (x + 1) (x − 1) (x − 3) . (47) Uogólnijmy definicję W 01...k (x) na wielomian W i
0i
1...i
k(x), który jest zdefiniowany jako wielomian, dla którego zachodzi
W i
0i
1...i
kx i
j= f i
j(48)
dla j = 0, 1, . . . , k dla punktów węzłowych (x i , f i ). Inny sposób wyznaczania współczyn- ników. Można zauważyć, że współczynniki a 0 k zależą tylko od punktów i = 0 do i = k.
Współczynniki a 0 i wyznaczamy za pomocą ilorazów różnicowych zdefiniowanych jako
f [x i ] := y i (49)
f [x i , x i+1 , . . . , x i+j ] := f [x i+1 , x i+2 , . . . , x i+j ] − f [x i , x i+1 , . . . , x i+j−1 ]
x i+j − x i (50)
f [x i , x i+1 , . . . , x i+j ] nazywamy j-tym ilorazem różnicowym. Przykładowo f [x 0 , x 1 ] = f [x 1 ] − f [x 0 ]
x 1 − x 0 (51)
f [x 1 , x 2 ] = f [x 2 ] − f [x 1 ]
x 2 − x 1 (52)
f [x 0 , x 1 , x 2 ] = f [x 1 , x 2 ] − f [x 0 , x 1 ]
x 2 − x 0 (53)
Zauważmy przypadek szczególny
f [x 0 , x 1 , . . . , x k ] = f [x 1 , x 2 , . . . , x k ] − f [x 0 , x 1 , . . . , x k−1 ]
x k − x 0 (54)
Twierdzenie 2. Iloraz różnicowy f [x 0 , . . . , x k ] jest funkcją symetryczną zmiennych x i . Jeśli x i
0, . . . , x i
kjest dowolną permutacją liczb x 0 , . . . , x k , to
f [x i
0, . . . , x i
k] = f [x 0 , . . . , x k ] (55) Twierdzenie 3. Jeśli f (x) jest wielomianem stopnia n i y i = f (x i ) dla i = 0, 1, . . . , n to
f [x 0 , . . . , x k ] = 0 (56)
dla k > n.
Twierdzenie 4. Zachodzi równość
W i,i+1,...,i+k (x) = f [x i ] + f [x i , x i+1 ] (x − x i ) + . . . (57) + f [x i , x i+1 , . . . , x i+k ] (x − x i ) (x − x i+1 ) . . . (x − x i+k−1 ) (58) A zatem widzimy, że współczynniki Newtona mogą być wyznaczone za pomocą ilo- razów różnicowych. Możemy zweryfikować przykładowo
a 0 0 = f [x 0 ] = y 0 (59)
a 0 1 = f [x 0 , x 1 ] = y 1 − y 0
x 1 − x 0 (60)
Możemy utworzyć tablicę ilorazów. Pierwsza kolumna to wartości x i punktów, druga kolumna to wartości y i punktów, kolejne kolumny to wartości ilorazów różnicowych. Dla poprzedniego przykładu
x 0 f [x 0 ] f [x 0 , x 1 ] f [x 0 , x 1 , x 2 ] f [x 0 , x 1 , x 2 , x 3 ] (61)
x 1 f [x 1 ] f [x 1 , x 2 ] f [x 1 , x 2 , x 3 ] (62)
x 2 f [x 2 ] f [x 2 , x 3 ] (63)
x 3 f [x 3 ] (64)
Zauważmy, że wartości w pierwszym wierszu będą szukanymi współczynnikami.
f [x 0 , x 1 , x 2 , x 3 ] = f [x 1 , x 2 , x 3 ] − f [x 0 , x 1 , x 2 ]
x 3 − x 0 (65)
f [x 0 , x 1 , x 2 ] = f [x 1 , x 2 ] − f [x 0 , x 1 ]
x 2 − x 0 (66)
f [x 1 , x 2 , x 3 ] = f [x 2 , x 3 ] − f [x 1 , x 2 ]
x 3 − x 1 (67)
Przykład 2. Dla poprzedniego przykładu
−1 3 −2 3 1
1 −1 10 9
3 19 46
5 111
(68)
1.1.2 Wzór interpolacyjny Lagrange’a
Chcemy wyrazić wielomian w postaci sumy iloczynów wartości y i w węzłach i funkcji niezależnej od wartości y i , a więc wielomian ma zależeć liniowo of wartości y i w węzłach.
Możemy to zrobić następująco
W (x) =
n
X
i=0
y i L i (x) (69)
gdzie L i (x) - wielomiany Lagrange’a. Każdy wielomian Lagrange’a jest stopnia n.
L i (x) = Q n
k=0 i6=k
x − x k
Q n k=0 i6=k
x i − x k =
n
Y
k=0 i6=k
x − x k
x i − x k . (70)
Możemy zauważyć, że zachodzi
L i (x k ) = δ ik =
( 1 dla i = k
0 dla i 6= k . (71)
Przykład: Dla dwóch punktów: A (x 0 , y 0 ), B (x 1 , y 1 ) wielomian stopnia maksymalnie pierwszego:
W (x) = y 0 L 0 (x) + y 1 L 1 (x) (72)
W (x) = y 0
x − x 1
x 0 − x 1 + y 1 x − x 0
x 1 − x 0 . (73)
Można sprawdzić, że rzeczywiście W (x 0 ) = y 0 oraz W (x 1 ) = y 1 .
Przykład 3. Dla przykładu z wielomianem Newtona znaleźć wielomian Lagrange’a oraz na jego podstawie wartość wielomianu dla x = 1.
W 3 (x) = 3 (x − 1) (x − 3) (x − 5)
(−1 − 1) (−1 − 3) (−1 − 5) + (−1) (x + 1) (x − 3) (x − 5)
(1 + 1) (1 − 3) (1 − 5) (74) + 19 (x + 1) (x − 1) (x − 5)
(3 + 1) (3 − 1) (3 − 5) + 111 (x + 1) (x − 1) (x − 3)
(5 + 1) (5 − 1) (5 − 3) (75) Oszacowanie błędu dla punktów, które nie są punktami węzłowymi.
Twierdzenie 5. Jeśli funkcja f jest (n + 1) − krotnie różniczkowalna, to dla każdego x istnieje ξ z najmniejszego przedziału I [x ¯ 0 , . . . , x n , ¯ x], który zawiera wszystkie x i i ¯ x, taka, że
f (¯ x) − W 01...n (¯ x) = ω (¯ x) f (n+1) (ξ)
(n + 1)! (76)
przy czym ω (x) = (x − x 0 ) (x − x 1 ) . . . (x − x n ).
Zauważmy, że jeśli ¯ x jest węzłem, to otrzymujemy ograniczenie równe 0, czyli do- kładną wartość.
Przykład 4.
f (x) = sin x (77)
x i = π
10 i (78)
gdzie i = 0, 1, 2, 3, 4, 5, n = 5.
sin x − W (x) = (x − x 0 ) (x − x 1 ) . . . (x − x 5 ) − sin ξ
720 (79)
gdzie ξ = ξ(x),
=⇒ |sin x − W (x)| ≤ 1
720 |(x − x 0 ) (x − x 1 ) . . . (x − x 5 )| = |ω (x)|
720 (80)
co wynika z ograniczenia wartości dla funkcji sin do 1. Zauważmy, że |ω(x)| wzrasta bardzo szybko poza przedziałem I[x 0 , . . . , x n ]. Możemy sprawdzić jak będzie dobrane ξ np. gdy x = π/20. Najmniejszy przedział zawierający wszystkie węzły i π/20 to jest [0, π/2], w tym przedziale funkcja sin maksymalną wartość przyjmuje dla x = π/2, gdzie wartość funkcji wynosi 1, a więc błąd względny będzie ograniczony przez
|ω (x)|
720 1 = 0.0142
720 = 0.0000197 . (81)
Zbieżność. Mamy funkcję f określoną na przedziale [a, b] i dowolnie wiele razy róż-
niczkowalną. Dla każdego podziału przedziału ∆ = {a = x 0 < x 1 < . . . < x n = b}
istnieje wielomian interpolacyjny P ∆ ∈ Π n taki, że P ∆ (x i ) = f i dla x i ∈ ∆. Ciąg ∆ m podziałów przedziału
∆ m = n a = x (m) 0 < x (m) 1 < . . . < x (m) n
mo (82) implikuje ciąg wielomianów interpolacyjnych P ∆
m. Zbieżność maksymalnej odległości między węzłami nie wystarcza do tego aby wielomiany P ∆
mbyły zbieżne do funkcji f . Twierdzenie 6. Dla każdego ciągu podziałów ∆ m przedziału [a, b] można znaleźć funkcję f ciągłą na [a, b], taką, że wielomiany P ∆
mdla m → ∞ nie są zbieżne jednostajnie do f (x).
Dla przypomnienia zbieżność jednostajna ciągu funkcji {f n } do f jest zdefiniowana jako
n→∞ lim sup {|f n (x) − f (x)| : x ∈ D} = 0 (83) Zbieżność punktowa ciągu funkcji {f n } do f jest zdefiniowana jako
n→∞ lim f n (x) = f (x) (84)
dla każdego x ∈ D. Zachodzi, że każdy ciąg zbieżny jednostajnie jest zbieżny punktowo do tej samej funkcji.
Dla niecałkowitych funkcji równoodległy podział przedziału x (m) i = a + i b − a
m (85)
dla i = 0, . . . , m nie gwarantuje punktowej zbieżności dla niecałkowitych funkcji. Przy- kład:
Przykład 5.
f (x) = 1
1 + x 2 (86)
na przedziale [a, b] = [−5, 5], lub
f (x) = √
x (87)
na przedziale [a, b] = [0, 1].
1.1.3 Zjawisko Rungego
Czasami zwiększenie liczbę węzłów prowadzi do pogorszenia wyników interpolacji. Do- konać interpolacji funkcji
y = |x| (88)
na przedziale h−1, 1i, dla n = 2, 4, 10 dla węzłów równoodległych, pierwszy punkt x 0 = −1.
Odpowiedź: dla n = 2, krok h = 1
W 2 (x) = x 2 (89)
Dla n = 4, krok h = 1/2
W 4 (x) = − 4 3 x 4 + 7
3 x 2 (90)
Dla n = 10, krok h = 1/5 W 10 (x) = 390625
5184 x 10 − 1015625
6048 x 8 + 221875
1728 x 6 − 6835
162 x 4 + 11527
1792 x 2 (91) Sprawdzić wartość wielomianu dla 0.9, prawidłowa wartość 0.9, W 2 (x) = 0.81, błąd bezwzględny 0.09, W 4 (x) = 1.0152, błąd bezwględny 0.1152, W 10 (x) = −0.24.
Można poprawić wyniki interpolacji wybierając optymalnie węzły do interpolacji.
Można np. wybrać węzły Czebyszewa, które dla przedziału [−1, 1] są zdefiniowane na- stępująco. Mamy wielomiany Czebyszewa
T 0 (x) = 1 (92)
T 1 (x) = x (93)
T n (x) = 2xT n−1 (x) − T n−2 (x) (94) dla n ≥ 2. Przykładowo
T 2 (x) = 2x 2 − 1 (95)
Pierwiastki: −1/ √ 2, 1/ √
2.
T 3 (x) = 4x 3 − 3x (96)
Pierwiastki: 0, − √ 3/2, √
3/2.
T 4 (x) = 8x 4 − 8x 2 + 1 (97)
T 5 (x) = 16x 5 − 20x 3 + 5x (98)
T 6 (x) = 32x 6 − 48x 4 + 18x 2 − 1 (99) Wybieramy węzły, które są zerami wielomianu Czebyszewa T n+1 . Węzły mogą być obli- czone ze wzoru
x i = cos (2i + 1) π
2n + 2 (100)
dla i = 0, . . . , n, i przedziału [−1, 1].
Dla węzłów Czebyszewa otrzymamy dla poprzedniego przykładu W 2 (x) = 2x 2
√ 3 (101)
Obliczenie interpolacji na wolframalpha, http://www.wolframalpha.com/input/?i=
interpolating+polynomial+{0%2C0}%2C{-sqrt%283%29%2F2%2Csqrt%283%29%2F2}%2C{sqrt%
283%29%2F2%2Csqrt%283%29%2F2}. Wartość dla 0.9 wynosi 0.94, błąd bezwzględny 0.04.
1.2 Interpolacja przedziałowa (interpolacja za pomocą funkcji skleja- jących)
Interpoluje się części funkcji, najczęściej wielomianem stopnia trzeciego. Jeśli kawałki interpolujemy funkcjami liniowymi, to funkcja interpolująca ma "kanty".Przykład: inter- polacja kawałków wielomianami drugiego stopnia.
Wariant pierwszy. Funkcję dzielimy na kawałki w ten sposób, że do każdego kawałka należą dokładnie 3 punkty, w tym 2 punkty na końcach. Wtenczas funkcja sklejająca w każdym kawałku może być wyznaczona z układu równań:
W i (x 1 ) = y 1 (102)
W i (x 2 ) = y 2 (103)
W i (x 3 ) = y 3 (104)
Wadą tego wariantu jest to, że na łączeniach funkcji sklejających pojawiają się "kanty".
Wariant drugi. Funkcję dzielimy na kawałki w ten sposób, że do kawałka należą dokładnie 2 punkty leżące na końcach przedziału. Zakładamy, że mamy dany kawałek po lewej stronie określony następująco:
W 0 (x) = a 0 x 2 + b 0 x + c 0 (105) Mamy znaleźć kawałek:
W 1 (x) = a 1 x 2 + b 1 x + c 1 (106) A zatem a 0 , b 0 , c 0 są znane, szukane a 1 , b 1 , c 1 .
Dwa pierwsze warunki wynikają z warunku interpolacji.
W 1 (x 1 ) = y 1 (107)
W 1 (x 2 ) = y 2 (108)
Konieczny jest jeszcze jeden warunek, ponieważ liczba zmiennych wynosi 3. Zapewnienie gładkiego przejścia pomiędzy przedziałami => pochodna lewa i prawa w każdym punkcie powinny być równe
W 0 0 (x 1 ) = W 1 0 (x 1 ) (109) A zatem mamy 3 równania oraz 3 niewiadome. Rozwiązując układ równań wyznaczy- my niewiadome. Warunki na przedziałach krańcowych: Na przedziale ostatnim mamy 3 warunki wynikające z powyższego algorytmu, więc nie ma konieczności osobnego roz- patrywania tego przedziału, natomiast na przedziale pierwszym nie możemy zastosować warunku (109), bo nie ma lewego przedziału, dlatego stosujemy np. warunek: S 0 (x 0 ) = 0, oznaczający ’łagodne’ rozpoczęcie funkcji interpolującej w tym punkcie lub możemy ob- liczyć pierwszą funkcję dla pierwszych 3 punktów.
Dla sześciennych funkcji sklejających możemy rozważać wariant, w którym w każdym
przedziale znajdują się 3 punkty, w tym 2 punkty na końcach przedziału. Wtedy wyzna-
czanie funkcji sklejających przebiega podobnie jak w wariancie drugim dla kwadratowych
funkcji sklejających.
Dokonać interpolacji funkcjami kwadratowymi z gładkimi przejściami dla wcześniej- szego przykładu. Odpowiedź:
W 0 (x) = −x 2 − 2x + 2 , (110)
W 1 (x) = 7x 2 − 18x + 10 . (111)
1.3 Interpolacja dla liczb zespolonych
Interpolacja w liczbach zespolonych. Mamy węzły rzeczywiste x 0 , x 1 . Definiujemy war- tości zespolone np. wg funkcji v(x) = 5x + x 2 i. Wyświetlić część rzeczywistą i urojoną na wykresie. Jak wykonać interpolację? Możemy wziąść pod uwagę dwie osobne inter- polacje, dla każdego węzła obliczamy część rzeczywistą wartości zespolonej, następnie wykonujemy interpolację dla punktów (x 0 , <v(x 0 )), (x 1 , <v(x 1 )). Następnie dla każdego węzła obliczamy część urojoną wartości zespolonej i wykonujemy interpolację dla punk- tów (x 0 , =v(x 0 )), (x 1 , =v(x 1 )).
1.4 Ekstrapolacja
Przewidywanie wartości poza wyznaczonym przedziałem I[x 0 , x 1 , . . . , x n ]. Jak zamienić problem ekstrapolacji na problem interpolacji w wyznaczonym przedziale? Gdy mamy dany problem ekstrapolacji gdy węzły są liczbami zespolonymi, to to zamiast wykonywać interpolację dla węzła zespolonego z, wykonujemy interpolację dla węzła 1/z. Gdy
z = a + bi (112)
to 1
z = a
a 2 + b 2 − ib
a 2 + b 2 (113)
Operacja ta wymienia część poza okręgiem jednostkowym z częścią wewnątrz okręgu jednostkowego. Zauważmy, że gdy a 2 + b 2 = 1, to transformacja ta nic nie zmienia. Przy- kład. Wykonać ekstrapolację dla dwóch podanych punktów (−1 − 2i, 4), (2 + 3i, 1), dla wartości 3+4i. Wartość 3+4i wykracza poza prostokąt wyznaczony przez dwa dane punk- ty, więc mamy do czynienia z ekstrapolacją. Konstruujemy punkty 1/z, (−1/5 + 2/5i), (2/13 − 3/13i). Dla poszukiwanego punktu mamy 3/25 − 4/25i. Uzyskaliśmy problem interpolacji, po interpolacji dla części rzeczywistej i urojonej należy obliczyć z powro- tem 1/z 0 . Zauważmy, że punkty początkowe są tak dobrane, że w jednym z nich mamy wartości ujemne, gdyby nie były ujemne mógłby być problem z uzyskaniem interpolacji.
2 Dodatki
2.1 Interpolacja wielomianowa
2.1.1 Wyprowadzenie wzoru na interpolację liniową dla dwóch punktów Układ równań
y 0 = ax 0 + b (114)
y 1 = ax 1 + b (115) Rozwiązanie tego układu równań:
a = y 0 − b x 0
(116) y 1 = x 1 (y 0 − b)
x 0 + b (117)
y 1 = y 0 x 1
x 0 − bx 1
x 0 + b (118)
b
1 − x 1
x 0
= y 1 − y 0 x 1 x 0
(119)
b = y 1 − y
0x x
10
1 − x x
10
(120)
b =
y
1x
0−y
0x
1x
0x
0−x
1x
0(121)
b = y 1 x 0 − y 0 x 1
x 0 − x 1 (122)
a = y 0 − y
1x x
0−y
0x
10