• Nie Znaleziono Wyników

Interpolacja kawałkami wielomianowa

7.3 Interpolacja kawałkami wielomiano-wa

W praktyce interesuje nas konstrukcja nie jednej, a raczej ciągu aprok-symacji, które przybliżałyby daną funkcję f z coraz większą dokładno-ścią. Cel ten można spróbować osiągnąc przez wzięcie jako n-tej aprok-symacji wielomianu interpolacyjnego wf,n ∈ Πn opartego na pewnych węzłach xj, 0 ≤ j ≤ n. Rzeczywiście, jeśli f jest na [a, b] nieskończenie wiele razy różniczkowalna to n-ty błąd dla dowolnego układu węzłów jest ograniczony przez

kf − wf,nkC([a,b]) kf(n+1)kC([a,b])

(n + 1)! (b − a)n+1, (7.4) a więc szybko dąży zera wraz z n → ∞, gdy np. wszystkie pochodne funkcji f są wspólnie ograniczone przez pewną stałą. Tak jest np. dla f(x) = ex. Jeszcze lepsze oszacowanie dostaniemy, gdy wybierzemy węzły Czebyszewa.

Podejście to ma jednak pewne wady. Zwiększając stopień wielo-mianu interpolacyjnego sprawiamy, że aproksymacja, a także obliczenie współczynników wielomianu interpolacyjnego, stają się coraz bardziej skomplikowane, a tego chcielibyśmy uniknąć. Poza tym, założenie o istnieniu i wspólnej ograniczoności wszystkich pochodnych funkcji nie zawsze jest spełnione (np. w rozpatrywanej już klasie FMr ([a, b])), co po-woduje, że oszacowanie (7.4) nie zawsze jest prawdziwe, a nawet błąd kf − wf,nkC([a,b]) może nie maleć do zera, zob. U. 7.1.

Podamy teraz inny sposób konstrukcji ciągu aproksymacji, który zapewnia zbieżność w klasie FMr ([a, b]), ale nie wymaga nadmiernego zwiększania stopnia wielomianu interpolacyjnego.

Postąpimy zgodnie ze znaną zasadą “dziel i rządź”. Podzielimy przedział [a, b] na k równych podprzedziałów [ti−1, ti], 1 ≤ i ≤ k, i zastosujemy na każdym z nich interpolację wielomianową stopnia r.

Dokładniej, dla każdego i wybieramy (być może wielokrotne) węzły xi,j ∈ [ti−1.ti], 0 ≤ j ≤ r, po czym aproksymujemy f na [ti−1, ti] jej wielomianem interpolacyjnym opartym na tych węzłach. Tak skonstru-owaną kawałkami wielomianową aproksymację funkcji f : [a, b] → R

84ROZDZIAŁ 7. INTERPOLACJA A APROKSYMACJA FUNKCJI oznaczymy przez ¯wf. Zauważmy, że ¯wf wykorzystuje na całym [a, b]

węzły o łącznej krotności n spełniającej nierówność

n ≤ k(r + 1). (7.5)

Twierdzenie 7.3 Błąd aproksymacji kawałkami wielomianowej w kla-sie funkcji FMr([a, b]) jest ograniczony przez

f ∈FmaxMr([a,b])kf − ¯wfkC([a,b]) M węzłami Czebyszewa, to dla odpowiedniej aproksymacji ¯wf mamy

f ∈FmaxMr ([a,b])kf − ¯wfkC([a,b]) = 2M

Ta nierówność wraz z (7.5) dowodzi pierwszą część twierdzenia.

Dla dowodu drugiej części wystarczy wykorzystać Twierdzenie 7.2, aby zauważyć, że

7.3. INTERPOLACJA KAWAŁKAMI WIELOMIANOWA 85 oraz, że dla f(x) = Mxr+1/(r + 1)! mamy powyżej równość. 2

Otrzymaliśmy, że interplacja kawałkami wielomianami stopnia r ko-rzystająca z n wartości funkcji daje w klasie funkcji FMr ([a, b]) błąd rzędu n−(r+1). Błąd ten zbiega więc do zera, gdy liczba n wartości funk-cji rośnie do nieskończoności, przy czym charakter zbieżności (tzn. przy zaniedbaniu stałej przy n−(r+1)) nie zależy ani od długości przedziału [a, b], ani od doboru “wewnętrznyh” węzłów xi,j, 0 ≤ j ≤ r.

Można pokazać, że powyższa aproksymacja jest w klasie FMr ([a, b]) optymalna, tzn. błąd dowolnej innej metody aproksymacji korzystającej z wartości funkcji w n punktach dąży do zera nie szybciej niż n−(r+1); zob. U.7.2.

Uwagi i uzupełnienia

U. 7.1 Niech f(x) = (1 + x2)−1. Okazuje się, że jeśli wf,n jest wielomia-nem interpolacyjnym dla f opartym na węzłach równoodległych przedziału [−5, 5], tzn. xj = −5 + 10j/n, 0 ≤ j ≤ n, to ciąg wf,n(x) jest zbieżny do f (x) dla |x| < 3.63... i rozbieżny dla |x| > 3.63.... To znaczy, błąd interpo-lacji funkcji f na całym przedziale [−5, 5] nie maleje do zera, gdy stopień wielomianu interpolacyjnego rośnie do ∞.

U. 7.2 Pokażemy teraz, że aproksymacja funkcjami kawałkami wielomia-nowymi jest optymalna w FMr ([a, b]) ze względu na rząd zbieżności błędu.

Dokładniej pokażemy, że dla dowolnej aproksymacji A(f) funkcji f wykorzy-stującej wartości f lub jej pochodnych w co najwyżej n różnych punktach, tzn. dla A postaci

A(f ) = φ(f (x1), . . . , f(r+1)(x1), . . . , f(xn), . . . , f(r+1)(xn)) mamy

sup

f ∈FMr ([a,b])kf − A(f)kC([a,b]) ≥ C1M n−(r+1), (7.6) gdzie C1> 0 jest pewną stałą niezależną od A, M i n.

W tym celu wybierzmy dowolną niezerową funkcję ψ : R → R spełnia-jącą warunki:

1. ψ ∈ F1r(R),

86ROZDZIAŁ 7. INTERPOLACJA A APROKSYMACJA FUNKCJI 2. ψ(x) = 0 dla x 6∈ [0, 1].

Niech s będzie takim indeksem, że hs= xs+1− xs≥ (b − a)/(n + 1). Wtedy dla funkcji ψi, i = 1, 2, zdefiniowanych jako

ψ1(x) = −ψ2(x) = Mhr+1s ψx− xs

hs



mamy ψi ∈ FMr ([a, b]) oraz informacja o ψi jest zerowa, ψi(p)(xj) = 0 dla 0 ≤ p ≤ r + 1, 1 ≤ j ≤ n. Stąd φ0 = φ(0, . . . , 0

| {z }

n(r+2)

) jest aproksymacją dla obu funkcji ψi i z nierówności trójkąta dla norm dostajemy

max{kψ1− φ0kC([a,b]),kψ2− φ0kC([a,b])}

≥ kψ1− ψ2kC([a,b])/2 = 1kC([a,b])

= Mhr+1s kψkC([0,1]) ≥ Mb− a n + 1

r+1

kψkC([0.1]).

Nierówność (7.6) zachodzi więc z C1 = (2(b − a))r+1kψkC([0.1]). (Zob. też Ćw. 8.3.)

U. 7.3 Załóżmy, że funkcje z klasy FMr ([a, b]) chcemy aproksymować z do-kładnością ε > 0 w normie Czebyszewa używając możliwie mało obliczeń wartości funkcji. Z Twierdzenia 7.3 i U. 7.2 wynika, że musimy wtedy obli-czać co najmniej rzędu (1/ε)r+1 wartości funkcji. Co więcej, aproksymacja kawałkami wielomianowa daje błąd ε obliczając właśnie tyle wartości funkcji.

Mówimy, że złożoność informacyjna zadania jest rzędu (1/ε)r+1.

Ćwiczenia

Ćw. 7.1 Niech dane będą ε > 0 i funkcja f : [a, b] → R, która jest nieskoń-czenie wiele razy różniczkowalna i wszystkie jej pochodne są na [a, b] ograni-czone przez M. Napisać program znajdujący stopień n oraz współczynniki w bazie Newtona wielomianu wf,n ∈ Πn interpolacyjnego f z błędem

kf − wf,nkC([a,b]) ≤ ε.

Rozpatrzyć dwa przypadki: gdy węzły interpolacji są równoodległe, oraz gdy węzły są czebyszewowskie.

7.3. INTERPOLACJA KAWAŁKAMI WIELOMIANOWA 87

gdzie Tk jest k-tym wielomianem Czebyszewa.

Ćw. 7.3 Pokazać, że wielomiany Czebyszewa tworzą układ ortogonalny w przestrzeni L2ρ(−1, 1), gdzie waga ρ(x) = (1 − x2)−1/2, tzn. iloczyn skalarny

Ćw. 7.4 Wielomiany Czebyszewa Tk, 0 ≤ k ≤ n, tworzą bazę w przestrzeni Πn. Podać algorytm obliczający współczynniki danego wielomianu w bazie Czebyszewa na podstawie jesgo współczynników w bazie potęgowej, albo w bazie Newtona.

Ćw. 7.5 Podać algorytm typu algorytmu Hornera oblicząjący wartość wie-lomianu w(x) danego przez jego współczynniki w bazie Czebyszewa {Tk}k≥0. Ćw. 7.6 Niech w będzie wielomianem, którego rozwinięciem w bazie Cze-byszewa jest w(x) =Pnk=0akTk(x). Pokazać, że wielomian

w1(x) =

n−1X

k=0

akTk(x)

najlepiej przybliża w w normie Czebyszewa na przedziale [−1, 1] spośród wszystkich wielomianów stopnia co najwyżej n − 1, oraz

kw − w1kC([−1,1]) = |an|.

Kiedy w tej nierówności mamy równość?

88ROZDZIAŁ 7. INTERPOLACJA A APROKSYMACJA FUNKCJI Ćw. 7.8 Niech dany będzie przedział skończony [a, b] nie zawierający zera, oraz liczba c. Niech

Π˜k = { w ∈ Πk: w(0) = c }.

Pokazać, że w klasie ˜Πk najmniejszą normę Czebyszewa na [a, b] ma wielo-mian

w(x) = c·Tk2x−(a+b)b−a  Tka+ba−b i wynosi ona

kwkC([a,b]) =

c Tka+ba−b

. Jakie jest rozwiązanie, gdy 0 ∈ [a, b]?

Rozdział 8

Interpolacja funkcjami sklejanymi

Interpolacja kawałkami wielomianami interpolacyjnymi daje mały błąd aproksymacji, ma jednak również pewne wady. Zauważmy, że w punk-tach tj podziału przedziału [a, b] na podprzedziały funkcja aproksymu-jąca ¯wf nie jest w ogólności ciągła. W najlepszym wypadku, nawet gdy węzły xi,jna przedziale [ti−1, ti] wybierzemy tak, że xi,0 = ti−1i xi,r = ti,

∀i, to ¯wf(x) co prawda będzie ciągła, ale nie będzie różniczkowalna w xi. Ta własność jest niepożądana w przypadku gdy wiemy, że funk-cja którą aproksymujemy jest “gładka”. Wtedy lepiej jest zastosować innego rodzaju interpolację, np. posługując się funkcjami sklejanymi.

8.1 Co to są funkcje sklejane?

W ogólności przez funkcję sklejaną rozumie się każdą funkcję przedzia-łami wielomianową. Nas będą jednak interesować szczególne funkcje tego typu i dlatego termin funkcje sklejane zarezerwujemy dla funk-cji przedziałami wielomianowych i posiadających dodatkowe własności, które teraz określimy.

Niech dany będzie przedział skończony [a, b] i węzły a = x0 < x1 < · · · < xn = b, przy czym n ≥ 1.

89

90 ROZDZIAŁ 8. INTERPOLACJA FUNKCJAMI SKLEJANYMI Definicja 8.1 Funkcję s : R → R nazywamy funkcją sklejaną rzędu r (r ≥ 1) odpowiadającą węzłom xj, 0 ≤ j ≤ n, jeśli spełnione są następujące dwa warunki:

(i) s jest wielomianem stopnia co najwyżej 2r− 1 na każdym z prze-działów [xj−1, xj], tzn. s|[xj−1,xj]∈ Π2r−1, 1≤ j ≤ n,

(ii) s jest (2r − 2)-krotnie różniczkowalna w sposób ciągły na całej prostej, tzn. s∈ C(2r−2)(R).

Jeśli ponadto

(iii) s jest wielomianem stopnia co najwyżej r − 1 poza (a, b), tzn.

s|(−∞,a], s|[b,+∞)∈ Πr−1,

to s jest naturalną funkcją sklejaną.

Klasę naturalnych funkcji sklejanych rzędu r opartych na węzłach xj

będziemy oznaczać przez Sr(x0, . . . , xn), albo po prostu Sr, jeśli węzły są ustalone.

Na przykład, funkcją sklejaną rzędu pierwszego (r = 1) jest funkcja ciągła i liniowa na poszczególnych przedziałach [xj−1, xj]. Jest ona na-turalna, gdy poza (a, b) jest funkcją stała. Tego typu funkcje nazywamy liniowymi funkcjami sklejanymi.

Najważniejszymi a praktycznego punktu widzenia są jednak funkcje sklejane rzędu drugiego odpowiadające r = 2. Są to funkcje, które są na R dwa razy różniczkowalne w sposób ciągły, a na każdym z pod-przedziałów są wielomianami stopnia co najwyżej trzeciego. W tym przypadku mówimy o kubicznych funkcjach sklejanych. Funkcja skle-jana kubiczna jest naturalna, gdy poza (a, b) jest wielomianem linio-wym.