• Nie Znaleziono Wyników

interpolacji

N/A
N/A
Protected

Academic year: 2021

Share "interpolacji"

Copied!
43
0
0

Pełen tekst

(1)

Wst ˛ep do metod numerycznych

7. Interpolacja

P. F. Góra

http://th-www.if.uj.edu.pl/zfs/gora/

(2)

Interpolacja

Dana jest funkcja w postaci stabelaryzowanej

xi x1 x2 x3 . . . xn

fi = f (xi) f1 f2 f3 . . . fn

Punkty xi nazywamy w ˛ezłami interpolacji. Problem: chcemy znale´z´c łatwy

sposób na wyliczanie warto´sci funkcji pomi ˛edzy w ˛ezłami (interpolacja) lub poza obszarem obejmuj ˛acym w ˛ezły (ekstrapolacja).

(3)

Interpolacja odcinkami liniowa -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -4 -3 -2 -1 0 1 2 3 4

Interpolacja odcinkami liniowa na 11 w ˛ezłach. “Prawdziwa” funkcja interpolowana zaznaczona jest lini ˛a

kropkowan ˛a. Istniejeniesko ´nczenie wiele funkcji ci ˛agłych, które s ˛a sobie równe w sko ´nczonej liczbie

w ˛ezłów!

Mo˙zna to zrobi´c prowadz ˛ac łaman ˛a pomi ˛edzy poszczególnymi punktami w ˛ezłowymi (xi, fi),

ale jest to nieeleganckie i w pewnych przypadkach mo˙ze powodowa´c problemy, gdy˙z

(4)

Interpolacja wielomianowa

Tabela taka, jak na pocz ˛atku wykładu, wyznacza jednoznacznie wielomian stopnia n−1. Istotnie, rozpatrzmy wielomian

an−1xn−1 + an−2xn−2 + · · · + a1x + a0 . (1) Je´sli do wielomianu (1) podstawimy za x kolejno x1, x2,. . . ,xn, przyjmuj ˛ac,

˙ze warto´s´c wielomianu w tych punktach wynosi odpowiednio f1, f2,. . . ,fn,

otrzymamy an−1xn−11 + an−2xn−21 + · · · + a1x1 + a0 = f1 an−1xn−12 + an−2xn−22 + · · · + a1x2 + a0 = f2 · · · · an−1xn−1n + an−2xn−2n + · · · + a1xn + a0 = fn (2)

(5)

Układ (2) zapisany w postaci macierzowej ma posta´c       xn−11 xn−21 · · · x1 1 xn−12 xn−22 · · · x2 1 · · · · xn−1n xn−2n · · · xn 1            an−1 an−2 ... a0      =      f1 f2 ... fn      (3)

Rozwi ˛azaniem układu równa ´n (3) s ˛a współczynniki wielomianu (1). Ma-cierz układu (3) nosi nazw ˛e maMa-cierzy Vandermonde’a.

Mo˙zna pokaza´c∗, ˙ze wyznacznik macierzy Vandermonde’a ma posta´c

Y

16i<j6n

(xi − xj) , (4)

Dzi ˛ekuj ˛e internetowemu komentatorowi juventusik plus za wskazanie bł ˛edu w

(6)

a zatem wyznacznik macierzy Vandermonde’a jest ró˙zny od zera, je˙zeli ˙zadne punkty x1, x2, . . . , xn nie pokrywaj ˛a si ˛e. Tym samym problem zna-lezienia współczynników wielomianu (1) ma jednoznaczne rozwi ˛azanie. Gdyby´smy chcieli rozwi ˛azywa´c układ równa ´n (3) za pomoc ˛a ju˙z pozna-nych metod, mogłoby si ˛e wydawa´c, ˙ze koszt interpolacji wielomianowej wynosi O(n3). W rzeczywisto´sci układ ten mo˙zna, korzystaj ˛ac z syme-trii macierzy Vandermode’a, rozwi ˛aza´c w czasie O(n2). Przekonany si ˛e o tym konstruuj ˛ac interpolacj ˛e wielomianow ˛a w całkiem inny sposób.

(7)

Wzór interpolacyjny Lagrange’a

Zamiast szuka´c rozwi ˛azania równania (3), postulujemy, ˙ze poszukiwany wzór interpolacyjny ma posta´c f (x) = n X j=1 lj(x) fj + E(x) , (5a) gdzie lj(x) = (x − x1) . . . (x − xj−1)(x − xj+1) . . . (x − xn) (xj − x1) . . . (xj − xj−1)(xj − xj+1) . . . (xj − xn) . (5b)

E(x) w (5a) jest nazwywane reszt ˛a lub bł ˛edem interpolacji. Zauwa˙zmy, ˙ze lj(x) jest wielomianem stopnia n−1 oraz

lj(xk) = δjk . (6)

Je˙zeli f (x) jest wielomianem stopnia co najwy˙zej n−1, E(x) znika to˙zsamo´sciowo. Mó-wimy, ˙ze interpolacja (5a) ma dokładno´s´c n−1.

(8)

Przykłady -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -4 -3 -2 -1 0 1 2 3 4 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -4 -3 -2 -1 0 1 2 3 4

Interpolacja pewnej funkcji (oznaczonej lini ˛a kropkowan ˛a) oparta na 7 (lewy panel) i 9 (prawy panel) w ˛ezłach. W tym wypadku zwi ˛ekszanie

(9)

Przykłady -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -4 -3 -2 -1 0 1 2 3 4 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -4 -3 -2 -1 0 1 2 3 4

Interpolacja tej samej funkcji, co poprzednio, oparta na 11 i 13 w ˛ezłach. Dalsze zwi ˛ekszanie liczby w ˛ezłów prowadzi do pogorszenia jako´sci interpolacji, zwłaszcza w pobli˙zu kra ´nców przedziału zawieraj ˛acego w ˛ezły.

(10)

Oscylacje Rungego -2 0 2 4 6 8 10 12 14 -4 -3 -2 -1 0 1 2 3 4 oscylacje Rugego

Wielomiany wysokiego stopnia s ˛a “sztywne”. Je˙zeli narzuci´c im warunek, ˙ze maj ˛a

prze-chodzi´c przez ustalone z góry punkty, mog ˛a to kompensowa´c znacznymi wahaniami

po-mi ˛edzy w ˛ezłapo-mi. Zjawisko to nazywa si ˛e oscylacjapo-mi Rungego i oznacza, ˙ze

(11)

Dalsze przykłady -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -4 -3 -2 -1 0 1 2 3 4 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -4 -3 -2 -1 0 1 2 3 4

Mo˙ze si ˛e zdarzy´c, ˙ze dalsze powi ˛ekszanie liczby w ˛ezłów poprawi jako´s´c interpolacji (interpolacja oparta na 31 w ˛ezłach, lewy panel), jednak w ko ´ncu zbyt du˙za liczba w ˛ezłów doprowadza do katastrofy (interpolacja

oparta na 41 w ˛ezłach, prawy panel — oscylacje Rungego osi ˛agaj ˛a amplitud ˛e ∼ 200).

(12)

Bł ˛ad interpolacji

Wielomian (5b) wygodnie jest niekiedy zapisywa´c w postaci lj(x) = pn(x) (x − xj)p0n(xj) (7a) gdzie pn(x) = n Y i=1 (x − xi) , p0n(xj) = dpn dx x=xj (7b) Oznaczmy y(x) = Pn j=1

lj(x) fj (jest to wielomianowa cz ˛e´s´c wzoru inter-polacyjnego Lagrange’a (5a), bez reszty).

(13)

Rozpatrzmy funkcj ˛e

F (z) = f (z) − y(z) − [f (x) − y(x)] pn(z)

pn(x) . (8)

F (z), jako funkcja zmiennej z, ma n+1 miejsc zerowych: x1, x2, . . . , xn oraz x. Zakładaj ˛ac, ˙ze funkcja f (·) jest dostatecznie gładka, stosujemy do funkcji F (z) n-krotnie twierdzenie Rolle’a i stwierdzamy, ˙ze pochodna

F(n)(z) = f(n)(z) − y(n)(z) − [f (x) − y(x)] n!

pn(x) (9)

ma co najmniej jedno miejsce zerowe w najmniejszym przedziale domkni ˛e-tym zawieraj ˛acym punkty x1, x2, . . . , xn oraz x. Oznaczmy to miejsce ze-rowe przez ξ. Zauwa˙zmy, ˙ze y(n)(z) = 0, gdy˙z y(z) jest wielomianem stopnia n−1. Ostatecznie otrzymujemy

(14)

0 = F(n)(ξ) = f(n)(ξ) − [f (x) − y(x)] | {z } E(x) n! pn(x) (10) czyli E(x) = pn(x) n! f (n)(ξ) . (11)

ξ jest pewnym punktem wewn ˛etrzmym przedziału zawieraj ˛acego w ˛ezły i x (to ostatnie jest wa˙zne w wypadku ekstrapolacji). Nie wiemy, którym punk-tem, zatem dla bezpiecze ´nstwa nale˙załoby bra´c najwi ˛eksz ˛a (co do mo-dułu) warto´s´c f(n)(ξ). Trudno´s´c w szacowaniu bł ˛edu interpolacji polega na trudno´sci w szacowaniu wysokich pochodnych interpolowanych funk-cji. Praktyka pokazuje, ˙ze wysokie pochodne nawet “porz ˛adnych” funkcji (niewielomianowych) mog ˛a przybiera´c znaczne warto´sci.

(15)

Interpolacja Hermite’a

Je˙zeli znamy nie tylko warto´sci funkcji interpolowanej w w ˛ezłach, ale tak˙ze

warto´sci pochodnej,

xi x1 x2 x3 . . . xn

fi = f (xi) f1 f2 f3 . . . fn fi0 = f0(xi) f10 f20 f30 . . . fn0

narzuca to 2n warunków na wielomian interpolacyjny†. Mo˙zna skonstru-owa´c wówczas interpolacj ˛e wielomianow ˛a rz ˛edu 2n − 1, postaci

Jest to zagadnienie o stosunkowo niewielkich zastosowaniach praktycznych, ale za to

(16)

y(x) = n X i=1 hi(x)fi + n X i=1 ¯hi(x)f0 i + E(x) , (12a) gdzie hi(x) = 1 − 2(x − xi)li0(xi) li2(x) , (12b) ¯h i(x) = (x − xi)l2i (x) . (12c)

lj(x) oznacza to samo, co w interpolacji Lagrange’a, natomiast

E(x) = p 2 n(x) (2n)!f (2n)(ξ) , (12d) gdzie ξ jest pewnym punktem wewn ˛etrzym przedziału rozpi ˛etego na w ˛e-złach i warto´sci x. Wielomian interpolacyjny (12a) zgadza si ˛e z interpolo-wan ˛a funkcj ˛a oraz jej pochodn ˛a w w ˛ezłach.

(17)

Interpolacja za pomoc ˛a funkcji sklejanych

Interpolacja wielomianowa jest koncepcyjnie najprostszym sposobem in-terpolacji, prowadzi´c jednak mo˙ze, jak to pokazali´smy, do niepo˙z ˛adanych zachowa ´n. Najbardziej popularnym sposobem unikni ˛ecia oscylacji Run-gego, zwi ˛azanych z trudno´sci ˛a szacowania bł ˛edu interpolacji wielomiano-wej, jest interpolacja za pomoc ˛a funkcji sklejanych.

Funkcj ˛a sklejan ˛a rz ˛edu k, czyli “splajnem” (ang. spline), nazywam funkcj ˛e, która

1. lokalnie jest wielomianem rz ˛edu k,

2. jest (k−1)-krotnie ró˙zniczkowalna w w ˛ezłach (z czego wynika, ˙ze jej pochodne rz ˛edu k−2 i ni˙zszych s ˛a ci ˛agłe).

Najcz ˛e´sciej u˙zywa sie funkcji sklejanych rz ˛edu 3, czyli “splajnów kubicz-nych” (ang. cubic splines).

(18)

Cubic splines

Załó˙zmy‡, ˙ze oprócz warto´sci funkcji w w ˛ezłach, znamy tak˙ze warto´sci

drugiej pochodnej interpolowanej funkcji w w ˛ezłach. Mamy wi ˛ec tabelk˛e postaci:

xi x1 x2 x3 . . . xn

fi = f (xi) f1 f2 f3 . . . fn fi00 = f00(xi) f100 f200 f300 . . . fn00

(19)

W ka˙zdym przedziale [xj, xj+1], j = 1, 2, . . . , n − 1, konstruujemy wielo-mian trzeciego stopnia

yj(x) = A fj + B fj+1 + C fj00 + D fj+100 , (13a) gdzie A = xj+1 − x xj+1 − xj, B = x − xj xj+1 − xj, (13b) C = 1 6(A 3−A)(x j+1−xj)2, D = 1 6(B 3−B)(x j+1−xj)2.(13c)

Łatwo sprawdzi´c, ˙ze yj(xj) = fj, yj(xj+1) = fj+1, a poniewa˙z, co mo˙zna wykaza´c prostym rachunkiem,

d2yj

dx2 = A f

00

j + B fj+100 , (14)

tak˙ze warto´sci drugiej pochodnej (13a) zgadzaj ˛a si ˛e z zadanymi warto-´sciami w w ˛ezłach.

(20)

Jest jednak pewien problem: w rzeczywisto´sci nie znamy warto´sci dru-gich pochodnych fj00. Nie skorzystali´smy jednak jeszcze z wymogu ci ˛ a-gło´sci pierwszej pochodnej (13a) w w ˛ezłach. W tym celu ˙z ˛adamy, aby pochodna yj(x) obliczana w prawym kra ´ncu przedziału równała si ˛e po-chodnej yj+1(x) obliczanej w lewym kra ´ncu odpowiedniego przedziału. Gdy to zrobimy, otrzymamy równanie

xj − xj−1 6 f 00 j−1 + xj+1 − xj−1 3 f 00 j + xj+1 − xj 6 f 00 j+1 = fj+1 − fj xj+1 − xj − fj − fj−1 xj − xj−1 . (15)

(21)

Naturalny splajn kubiczny

Je˙zeli mamy n w ˛ezłów interpolacji, mamy n−2 wewn ˛etrznych punktów zszycia, w których mo˙zemy ˙z ˛ada´c ci ˛agło´sci pochodnej. W takim wypadku (15) stanowi układ n−2 równa ´n z n niewiadomymi. Trzeba poda´c jakie´s dodatkowe warunki.

Najcz ˛e´sciej przyjmuje si ˛e, ˙ze f100 = fn00 = 0. Jest to wówczas tak zwany

naturalny splajn kubiczny. Je˙zeli sytuacja tego wymaga — lub je˙zeli mamy jakie´s przesłanki, aby tak zrobi´c — mo˙zemy narzuci´c inne warunki na dru-gie pochodne na brzegach lub na kombinacje liniowe drugich pochodnych.

(22)

Równoodległe w ˛ezły

Je˙zeli w ˛ezły interpolacji s ˛a równoodległe, xj+1 − xj = h, równanie (15) przybiera szczególnie prost ˛a posta´c:

       4 1 1 4 1 1 4 1 . . . . 1 4 1 1 4               f200 f300 f400 ... fn−200 fn−100        = 6 h2        f1 − 2f2 + f3 f2 − 2f3 + f4 f3 − 2f4 + f5 ... fn−3 − 2fn−2 + fn−1 fn−2 − 2fn−1 + fn        (16)

Macierz po lewej stronie tego równania posiada łatwy do znalezienia roz-kład Cholesky’ego. Z doroz-kładno´sci ˛a do czynników “6”, prawa strona zawiera drugie ilorazy ró˙znicowe interpolowanej funkcji.

(23)

Praktyczne zastosowanie naturalnych splajnów kubicznych przebiega dwu-etapowo:

1. Rozwi ˛azujemy układ równa ´n (15) (lub, je˙zeli mo˙zna, (16)) na n−2 nie-znanych wielko´sci nfj00on−1

j=2. Poniewa˙z układ ten jest trójdiagonalny,

koszt obliczeniowy wynosi O(n). Krok ten wykonujemy tylko raz na pocz ˛atku całej procedury.

2. W celu znalezienia warto´sci pomi ˛edzy w ˛ezłami, wykorzystujemy rów-nanie (13a) tyle razy, ile warto´sci chcemy znale´z´c. W ka˙zdym prze-dziale [xj, xj+1] u˙zywamy odpowiedniego wielomianu yj(x)!

(24)

Przykład -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -4 -3 -2 -1 0 1 2 3 4

Interpolacja za pomoc ˛a naturalnych splajnów kubicznych z 21 w ˛ezłami. Wynik

interpola-cji praktycznie pokrywa si ˛e z funkcj ˛a interpolowan ˛a (t ˛a sam ˛a, co w poprzednich

(25)

Interpolacja na płaszczy´znie — splajny bikubiczne

Przypu´s´cmy, ˙ze pewn ˛a funkcj ˛e dwu zmiennych, f (x, y), mamy stabelary-zowan ˛a w w ˛ezłach dwuwymiarowej siatki kwadratowej:

f11=f (x1, y1) f21=f (x2, y1) f31=f (x3, y1) · · · fn1=f (xn, y1) f12=f (x1, y2) f22=f (x2, y2) f32=f (x3, y2) · · · fn2=f (xn, y2) f13=f (x1, y3) f23=f (x2, y3) f31=f (x3, y3) · · · fn1=f (xn, y3) · · · · f1n=f (x1, yn) f2n=f (x2, yn) f3n=f (x3, yn) · · · fn1=f (xn, yn) (17) “Wiersze” tej siatki odpowiadaj ˛a ustalonym warto´sciom zmiennej y.

(26)

Przypu´s´cmy, ˙ze chcemy znale´z´c warto´s´c funkcji f (x∗, y∗), gdzie (x∗, y∗) jest wewn ˛etrznym punktem siatki. W tym celu post ˛epujemy jak nast ˛epuje:

1. Przeprowadzamy splajn wzdłu˙z ka˙zdego “wiersza”. W ka˙zdym wier-szu warto´s´c zmiennej y jest ustalona, wi ˛ec jest to za ka˙zdym razem zwykły splajn jednowymiarowy. Ka˙zdy splajn poci ˛aga koszt nume-ryczny rz ˛edu O(n), a zatem obliczenie splajnów wzdłu˙z wszystkich wierszy poci ˛aga koszt rz ˛edu O(n2).

2. Obliczamy warto´s´c ka˙zdego z powy˙zszych splajnów w punkcie x = x∗. W ten sposób dostajemy n warto´sci funkcji w punktach (x∗, y1), (x∗, y2), . . . , (x∗, yn).

3. Przez powy˙zsze punkty przeprowadzmy splajn w kierunku y (przy usta-lonej warto´sci x = x∗) i wyliczamy warto´s´c tego splajnu w punkcie (x∗, y∗). Wymaga to dodatkowych O(n) operacji, zatem cały koszt jest zdominowany przez O(n2).

(27)

Interpolacja za pomoc ˛a funkcji wymiernych

“Sztywno´sci” interpolacji wielomianowej mo˙zna unikn ˛a´c interpoluj ˛ac za po-moc ˛a funkcji wymiernych, to znaczy ilorazów wielomianów:

r(x) = Pµ(x)

Qν(x) . (18)

Funkcje wymierne z łatwo´sci ˛a modeluj ˛a wi ˛eksze bogactwo zachowa ´n, ni˙z wielomiany. Zagadnienie interpolacji wymiernej jest opracowane od strony teoretycznej gorzej ni˙z interpolacji wielomianowej, a poniewa˙z problem in-terpolacji wymiernej nie ma jednoznacznego rozwi ˛azania, istnieje szereg konkurencyjnych podej´s´c.

W tym wykładzie skorzystam z opublikowanego w 2007 algorytmu Floatera i Hormanna (zobacz tak˙ze tutaj).

(28)

Algorytm Floatera i Hormanna

Niech x0, x1, . . . , xn b ˛ed ˛a wzajemnie ró˙znymi punktami (w ˛ezłami inter-polacji) i niech fj = f (xj) b ˛ed ˛a stabelaryzowanymi warto´sciami pew-nej funkcji w w ˛ezłach. Wybieramy parametr interpolacji d, 0 6 d 6 n. Niech pi(x) b ˛edzie wielomianem interpoluj ˛acym rozpi ˛etym na punktach xi, . . . , xi+d. Wówczas r(x) = n−d P i=0 λi(x) pi(x) n−d P i=0 λi(x) , (19a) gdzie λi(x) = (−1) i (x − xi)· · · (x − xi+d) . (19b)

(29)

Mo˙zna pokaza´c, ˙ze r(x) nie ma biegunów na osi rzeczywistej oraz ˙ze mo˙zna go zapisa´c w nast ˛epuj ˛acej postaci barycentrycznej:

r(x) = n X k=0 wk x − xkfk n X k=0 wk x − xk (20a) wk = X i∈Jk (−1)i i+d Y j=i,j6=k 1 xk − xj (20b) gdzie Jk = {i ∈ I : k − d 6 i 6 k}, I = {0, 1, . . . , n − d}.

(30)

Zastanówmy si ˛e, czy (20) istotnie daje interpolacj ˛e, to znaczy czy zga-dza si ˛e z funkcj ˛a interpolowan ˛a w w ˛ezłach. Niech x → xl, gdzie xl jest którym´s w ˛ezłem, a wi ˛ec zerem mianownika którego´s z ułamków wyst ˛epu-j ˛acych w liczniku i mianowniku (20a). Wówczas w obu sumach dominowa´c b ˛edzie tylko człon z k = l, a zatem

r(x → xl) → wl x − xlfl wl x − xl = fl , (21)

(31)

Praktyczne zastosowanie algorytmu Floatera i Hormanna wygl ˛ada tak: • Sprawdzamy, czy x jest blisko (z dokładno´sci ˛a do bł ˛edu obci ˛ecia) w

˛e-zła xk; je´sli tak, wynikiem jest stabelaryzowana warto´s´c funkcji fk; • je˙zeli nie, obliczamy r(x) według wzoru (20a). Wagi wk obliczamy

tylko raz, na pocz ˛atku całej procedury.

Jak dobra´c parametr d? Praktyka pokazuje, ˙ze w wi ˛ekszo´sci typowych przypadków wystarcza bra´c d = 3, aczkolwiek niekiedy potrzebne jest na-wet d = 8. Je˙zeli interpolowana funkcja jest dostatecznie gładka, bł ˛ad interpolacji nie przekracza O hd+1max , gdzie hmax jest najwi ˛eksz ˛a

(32)

Je˙zeli w ˛ezły interpolacji s ˛a równoodległe, ∀i : xi − xi−1 = h, wyra˙zenia na wagi przyjmuj ˛a szczególnie prost ˛a posta´c:

wk = (−1) k−d hd X i∈Jk 1 (k − i)!(i + d − k)! (22)

Poniewa˙z ostateczny wynik nie zmieni si ˛e, je´sli wszystkie wagi przemno-˙zymy przez t ˛e sam ˛a stał ˛a (obliczamy stosunek dwóch wyra˙ze ´n!), dla rów-noodległych w ˛ezłów interpolacji mo˙zemy wybra´c wagi całkowite postaci

wk = (−1)k−d X i∈Jk  d k − i  . (23)

(33)

Przykład -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -4 -3 -2 -1 0 1 2 3 4

Interpolacja funkcjami wymiernymi wg algorytmu Floatera i Hormanna z 21 równoodle-głymi w ˛ezłami i parametrem d = 3. Dokładno´s´c interpolacji jest efektywnie taka sama,

(34)

Inne rodzaje interpolacji

W specyficznych sytuacjach, głównie w kontekscie analizy sygnałów, sto-suje si ˛e te˙z zupełnie inne rodzje interpolacji: Interpolacj ˛e trygonometrycz-n ˛a i falkow ˛a (waveletow ˛a). Mianowicie, “sygnał” (ci ˛ag zdyskretyzowanych warto´sci w w ˛ezłach) rozkłada si ˛e na ci ˛ag funkcji trygonometrycznych lub falek, a nast ˛epnie warto´sci pomi ˛edzy w ˛ezłami (lub brakuj ˛ace warto´sci w w ˛e-złach!) znajduje si ˛e korzystaj ˛ac ze znalezionego rozkładu. Ten zespół za-gadnie ´n wykracza poza ramy niniejszego wykładu.

(35)

Ró˙zniczkowanie numeryczne

Zdarza si ˛e, ˙ze maj ˛ac tylko stabelaryzowane warto´sci funcji z jakim´s sko ´n-czonym krokiem — tak, jak w wypadku interpolacji — chcemy numerycznie wyznaczy´c warto´s´c pochodnej funkcji w w ˛ezłach. Jest to zagadnienie bar-dzo podatne na bł ˛edy i nale˙zy go unika´c, ale czasami nie ma wyj´scia. . . Pochodna zdefiniowana jest jako granica ilorazu ró˙znicowego:

f0(x) = lim

h→0

f (x + h) − f (x)

h . (24)

Na potrzeby numeryczne, maj ˛ac do dyspozycji tylko zdyskretyzowane war-to´sci funkcji, granic ˛e mo˙zemy zast ˛api´c wyra˙zeniem sko ´nczonym na (co najmniej) trzy ró˙zne sposoby (dla uproszczenia zakładamy, ˙ze odległo´s´c mi ˛edzy w ˛ezłami jest stała):

(36)

Iloraz ró˙znicowy “do przodu”:

fj0 = fj+1 − fj

h (25a)

Wsteczny iloraz ró˙znicowy:

fj0 = fj − fj−1

h (25b)

Symetryczny iloraz ró˙znicowy:

fj0 = fj+1 − fj−1

(37)

Wszystkie te przybli˙zenia mog ˛a da´c ró˙zne wyniki. Co wi ˛ecej, niesyme-ryczne przybli˙zenia (25a),(25b) mog ˛a wprowadza´c pewien bł ˛ad systema-tyczny, zale˙zny od wypukło´sci (od drugiej pochodnej) analizowanej funkcji.

Przybli˙zenie symetryczne (25c) jest pod tym wzgl ˛edem najbezpieczniej-sze.

Jako´s´c uzyskanego przybli˙zenia pochodnej mocno zale˙zy od kroku inter-polacji: im wi ˛ekszy krok, tym przybli˙zenie pochodnej jest gorsze.

(38)

Przykład

Niech f (x) = 12x2. Wówczas poszczególne ilorazy ró˙znicowe daj ˛a

fdo przodu0 = x + 12h , (26a)

fwsteczny0 = x − 12h , (26b)

fsymetryczny0 = x . (26c)

Symteryczny iloraz ró˙znicowy daje w tym wypadku warto´s´c dokładn ˛a, ale jest to przypadek, wynikaj ˛acy ze szczególnie prostej postaci funkcji (z tego,

(39)

Przykłady -1.5 -1 -0.5 0 0.5 1 1.5 -4 -3 -2 -1 0 1 2 3 4 do przodu wsteczny symetryczny -1.5 -1 -0.5 0 0.5 1 1.5 -4 -3 -2 -1 0 1 2 3 4 do przodu wsteczny symetryczny

Wyniki ró˙zniczkowania numerycznego funkcji w 9 (lewy panel) i 21 w ˛ezłach (prawy

panel) za pomoc ˛a wzorów (25a)-(25c). Linia kropkowana oznacza dokładn ˛a warto´s´c

pochodnej. Widoczne s ˛a systematyczne ró˙znice pomi ˛edzy przybli˙zeniami “do przodu”

(40)

Ró˙zniczkowanie splajnów

Najlepszym, a zarazem numerycznie tanim, sposobem ró˙zniczkowania nu-merycznego jest przeprowadzenie splajnu, a nast ˛epnie zró˙zniczkowanie go w w ˛ezłach. Korzystamy przy tym z wszystkich własno´sci splajnów, a wi ˛ec z semi-analitycznych wzorów i z pewno´sci, ˙ze pochodna jest ci ˛ a-gła w w ˛ezłach, co pozwala nam unikn ˛a´c niejednoznaczno´sci zwi ˛azanej ze stosowaniem wzorów (25).

Dla uproszczenia w dalszym ci ˛agu b ˛edziemy zakłada´c, ˙ze mamy do czy-nienia z naturalnymi splajnami kubicznymi z równoodległymi w ˛ezłami.

Ró˙zniczkuj ˛ac wyra˙zenie (13a), wła´sciwe dla przedziału [xj, xj+1], i obli-czaj ˛ac pochodn ˛a w prawym kra ´ncu przedziału, otrzymujemy

yj+10 = 1 h(fj+1 − fj) + 1 6h(2f 00 j+1 + fj00) . (27)

(41)

Równie dobrze mogliby´smy jednak wzi ˛a´c wielomian dla przedziału [xj+1, xj+2], zró˙zniczkowa´c go i obliczy´c pochodn ˛a w lewym kra ´ncu prze-działu: yj+10 = 1 h(fj+2 − fj+1) − 1 6h(2f 00 j+1 + fj+200 ) . (28)

Wiemy, ˙ze wyra˙zenia (27), (28) s ˛a sobie równe. Istotnie, porównuj ˛ac ich prawe strony, dostajemy wyra˙zenie

fj00 + 4fj+100 + fj+200 = 6

h2(fj − 2fj+1 + fj+2) , (29) odpowiadaj ˛ace (j+1) wierszowi równania (16).

(42)

Wyra˙zenia (27), (28) s ˛a sobie równe w arytmetyce dokładnej. W prak-tycznych obliczeniach numerycznych mog ˛a wyst ˛api´c jakie´s ró˙znice. Aby je zminimalizowa´c, bierzemy ´sredni ˛a prawych stron(27), (28). Ostatecznie jako przybli˙zenie pochodnej dostajemy

y0(xj) = fj+1 − fj−1 2h − 1 12h  fj+100 − fj−100  , (30) j = 2, 3, . . . , n − 1

Wyra˙zenie (30) ma posta´c symetrycznego ilorazu ró˙znicowego z popraw-kami wynikaj ˛acymi ze znajomo´sci przybli˙zenia drugiej pochodnej. Wiel-ko´sci fk00 wyliczamy z równania (16).

(43)

Przykład -1.5 -1 -0.5 0 0.5 1 1.5 -4 -3 -2 -1 0 1 2 3 4 pochodna splajnu

Ró˙zniczkowanie numeryczne na podstawie naturalnego splajnu kubicznego z 21 równoodległymi w ˛ezłami. Linia kropkowana oznacza prawdziwy przebieg pochodnej

Cytaty

Powiązane dokumenty

Oblicz prawdopodobie´nstwo, ˙ze badany pacjent z wynikiem dodatnim jest

Celem większości badań obejmujących grupy zdrowych konsumentów jest głów- nie ocena korzyści wynikających ze stosowania probiotyków, natomiast w mniejszym zakresie są

plantarum Kor 1, które zawieszono w 10-procentowym roztworze inuliny, obniżyła się o 2,6 log jtk/ml, natomiast komórki tych samych bakterii bez dodatku czynnika ochronnego

Analizując wpływ czynników jakościowych na wybór sklepu dyskontowego jako miejsca zakupu produktów mleczarskich, można stwierdzić, że najsilniejszy sty- mulujący wpływ na

Changes in content of vitamin C in fruit of frozen (A) and freeze-dried (B) red pepper during storage.. Papryka w postaci mrożonek czy też liofilizatów może być przechowywana przez

Zastosowanie dodatku serwatki kwasowej wpływa na obniżenie wartości pH i aktywności wody kiełbas surowo dojrzewających z mięsa wołowego i mięsa da- niela oraz

Celem pracy było określenie wpływu implementacji znormalizowanych syste- mów zarządzania jakością i bezpieczeństwem żywności na doskonalenie wybranych procesów realizowanych

Warto tak˙ze zauwa˙zy´c, ˙ze warto´s´c TRUE jest zawsze konwertowana do liczby 1, za´s FALSE do 0.. Maj ˛ ac dany wektor logiczy sprawdzi´c, ile znajduje si˛e w nim