Metody numeryczne fizyki/Interpolacja
Szablon:SkomplikowanaStronaStart
Zagadnienie interpolacji
Załóżmy, że mamy n+1 punktów xSzablon:Sub,xSzablon:Sub,...,xSzablon:Sub, co nazywamy węzłami interpolacji, w którym dla każdego xSzablon:Sub jest przyporządkowana pewna wartość, która jest pewną wartością funkcji, czyli ySzablon:Sub, co ogólnie możemy powiedzieć: Szablon:CentrujWzór Przeprowadźmy pewną krzywą przechodzącej przez punkty Szablon:LinkWzór, co nazywamy interpolacją, czyli znając te nasze punkty możemy policzyć wartość funkcji pomiędzy tymi punktami.
Zagadnienie interpolacji przy pomocy wielomianów
Będziemy szukali zagadnienia interpolacyjnego w postaci wielomianu przechodzącego poprzez te punkty, co ten wielomian jest stopnia n-tego, który to piszemy: Szablon:CentrujWzór Zakładamy, że węzły znajdują się w dowolnym miejscu w przedziale <a,b>. Jeśli wykorzystamy wzór Szablon:LinkWzór, wtedy możemy napisać n+1 równań, które to zapisane są w postaci układów równań, z którego będziemy wyznaczać parametry aSzablon:Sub,aSzablon:Sub,...,aSzablon:Sub. Szablon:CentrujWzór Możemy wyznaczyć wyznacznik główny układu równań Szablon:LinkWzór, który jest wyznacznikiem Vandermonde'a pisanych w postaci: Szablon:CentrujWzór Układ równań Szablon:LinkWzór nazywamy układem Cramera, których to współczynniki aSzablon:Sub wyliczamy ze wzoru Cramera w następującej postaci: Szablon:CentrujWzór Z twierdzenia Cramera istnieje taki wielomian Szablon:LinkWzór spełniający warunki Szablon:LinkWzór.
Interpolacja według Lagrange'a
Jeśli wzór na aSzablon:Sub Szablon:LinkWzór podstawimy do wzoru na wielomian n-tego stopnia, w których poszczególne wielomiany bazowe są co najwyżej n-tego stopnia Szablon:LinkWzór, otrzymujemy wtedy wzór na wielomian WSzablon:Sub(x): Szablon:CentrujWzór
- gdzie wielomiany ΦSzablon:Sub, ΦSzablon:Sub,...,ΦSzablon:Sub są wielomianami co najwyżej n-tego stopnia. Jeśli założymy, że węzły są rozłożone w dowolny sposób w danym ściśle określonym przedziale, to dla argumentu x=xSzablon:Sub funkcję Szablon:LinkWzór możemy napisać też w postaci zwartej i przy pomocy oznaczenia ySzablon:Sub=F(xSzablon:Sub), gdzie ta ostatnia jest funkcją interpolowaną w punktach xSzablon:Sub:
Szablon:CentrujWzór Z równania Szablon:LinkWzór wynika następująca własność, którą piszemy: Szablon:CentrujWzór Teraz skonstruujmy wielomian ΦSzablon:Sub(x), który w punktach xSzablon:Sub,xSzablon:Sub,...,xSzablon:Sub,xSzablon:Sub,..,xSzablon:Sub jest określony według Szablon:LinkWzór dla wspomnianych węzłów jako: Szablon:CentrujWzór Równość Szablon:LinkWzór, która przestawia funkcję ΦSzablon:Sub(x), w której możemy policzyć parametr λ, która zależy od węzłów przestawionych powyżej, z własności funkcji Φ(x) przestawionych w punkcie Szablon:LinkWzór możemy powiedzieć: Szablon:CentrujWzór Z wartości λ otrzymanego z tożsamości Szablon:LinkWzór jako odwrotności jedynki i wyrażenia zależnego od różnic pewnych węzłów i podstawieniu jego do równania Szablon:LinkWzór, wtedy otrzymujemy równość na funkcję ΦSzablon:Sub: Szablon:CentrujWzór Zatem całkowity wielomian interpolacyjny WSzablon:Sub(x) przestawionego w punkcie Szablon:LinkWzór, na podstawie wyliczonej funkcji ΦSzablon:Sub(x) napisaną w punkcie Szablon:LinkWzór, piszemy wedle schematu: Szablon:CentrujWzór Oznaczmy przez oznaczenie ω(x), który zależy od iloczynów różnic argumentu x i j-tego węzła w problemie interpolacyjnym: Szablon:CentrujWzór Zatem wielomian WSzablon:Sub(x) Szablon:LinkWzór według przestawienia ωSzablon:Sub Szablon:LinkWzór jako wielomianu n+1-tego stopnia przepisujemy w postaci: Szablon:CentrujWzór
- gdzie ω'Szablon:Sub jest wielomian pochodzący od ωSzablon:Sub(x) w punkcie x=xSzablon:Sub, który jest zapisany bez użycia czynnika (x-xSzablon:Sub), która jest miejscem zerowym funkcji ωSzablon:Sub.
Otrzymany wzór Szablon:LinkWzór spełnia wszystkie warunki interpolacji i nazywamy go wielomianem interpolacyjnym Lagrange'a.
Metoda interpolacyjna Aitkena
Zbudujmy teraz wielomian stopnia pierwszego w postaci wyznacznika, które w punktach xSzablon:Sub, xSzablon:Sub przyjmuje wartości ySzablon:Sub i ySzablon:Sub, którego definicja jest przestawiona dla dwóch węzłów interpolacyjnych: Szablon:CentrujWzór W oparciu o wielomian pierwszego stopnia Szablon:LinkWzór, który zbudujemy jako wielomian drugiego stopnia, który w punktach xSzablon:Sub, xSzablon:Sub,xSzablon:Sub przyjmuje wartości ySzablon:Sub, ySzablon:Sub, ySzablon:Sub, który jest w postaci: Szablon:CentrujWzór Ogólnie rzecz można powiedzieć, że wielomian n-tego stopnia przyjmujący dla argumentów xSzablon:Sub, xSzablon:Sub,...,xSzablon:Sub, określony koleino dla odpowiednich węzłów, której odpowiadają określone wartości ySzablon:Sub, ySzablon:Sub,...,,ySzablon:Sub, że jest to wielomian interpolacyjny przestawionych następującym wzorem interpolacyjnym dla wspomnianych węzłów: Szablon:CentrujWzór Wielomian otrzymany wychodząc od Szablon:LinkWzór i Szablon:LinkWzór piszemy jako wielomian Szablon:LinkWzór o stopniu n, który spełnia wszystkie warunki interpolacyjne dla węzłów interpolacyjnych oznaczonej ogólnie xSzablon:Sub.
Oszacowanie błędu dla problemu interpretacyjnego Lagrange'a
Zdefiniujmy sobie wielomian na przedziale <a,b>, który jest określony wzorem: Szablon:CentrujWzór Musimy dalej określić funkcję ε(x) mając na uwadze, że pochodna f(x) ma pochodne do rzędu n+1 włącznie, zatem teraz wprowadzamy funkcje pomocniczą z pewną stałą K: Szablon:CentrujWzór Z powodów oczywistych przy definicji φ(u) funkcja dla punktów xSzablon:Sub, xSzablon:Sub,..,xSzablon:Sub, które są węzłami w omawianym problemie interpolacyjnym, przyjmuje wartość zerową w tychże punktach. Współczynnik K bywa tak zwykle dobierany, by funkcja φ(u) miała również pierwiastek w punkcie , zatem tożsamość Szablon:LinkWzór, z której wyliczymy K, jest wyrażana: Szablon:CentrujWzór Mianownik w równości Szablon:LinkWzór jest zawsze nierówny zero, dla Szablon:Formuła, tzn. Szablon:Formuła. Funkcja φ(u) ma n+2 miejsc zerowych w przedziale <a,b> dla punktów Szablon:Formuła. Jeśli skorzystamy z twierdzenia Rolle'a możemy powiedzieć, że pierwsza pochodna funkcji Szablon:LinkWzór ma n+1 miejsc zerowych funkcji, każda pochodna pierwszego rzędu równa zero należy do odpowiednich przedziałów, w których każdy taki przedział posiada jedną pochodną równą zero. W każdym tak opisanej w przedziale, jeśli nań go na małe odcinki podzielimy między punktami interpolacyjnymi, w ten sposób otrzymujemy, że druga pochodna według naszego wcześniej wspomnianego wzoru przyjmuje wartość zerową w pewnym punkcie wewnątrz tego przedziału, a tych miejsc zerowych w całym omawianym przedziale jest n, wtedy dochodzimy do wniosku: Szablon:CentrujWzór Jeśli będziemy kontynuować nasze rozważania dochodzimy do wniosku, ze mamy conaj mniej jeden taki punkt, który mieści się w przedziale (min(x,xSzablon:Sub),max(x,xSzablon:Sub)), dla którego zachodzi Szablon:Formuła, natomiast jeśli mamy Szablon:Formuła, ale i też n+1 pochodna funkcji ω, którą to piszemy wzorem Szablon:Formuła, zatem n+1-ta pochodna funkcji Szablon:LinkWzór, która na tej podstawie i wcześniejszych rozważań, zapisujemy wedle schematu: Szablon:CentrujWzór I jeśli weźmiemy miejsce zerowe funkcji φ(u), które jest w punkcie ξ dla Szablon:Sup według wcześniejszych określeń jest równa zero, to wtedy z tożsamości Szablon:LinkWzór wynika wzór na parametr K dla ściśle określonych węzłów: Szablon:CentrujWzór Jako ostatni krok należy wykorzystać równość Szablon:LinkWzór i wyliczoną stałą K przestawioną w punkcie Szablon:LinkWzór, wtedy mamy następujący wzór na różnicę funkcji, z którego chcemy napisać interpolację WSzablon:Sub(x) i funkcji, którą chcemy interpolować, tzn.: f(x), wtedy możemy napisać tożsamość używając tutaj zamiast symbol x: Szablon:CentrujWzór Przyjmijmy teraz jako maksimum funkcji fSzablon:Sup w przedziale <a,b>, jeśli w ogóle w tym przedziale istnieje jego maksimum, które oznaczmy je przez MSzablon:Sub, tą wartość funkcji oznaczamy jako: Szablon:CentrujWzór Bezwzględny błąd opisywania funkcji f(x) w postaci wielomianów WSzablon:Sub(x) jest to wzór napisanych na podstawie Szablon:LinkWzór i Szablon:LinkWzór, który piszemy: Szablon:CentrujWzór
Problem najlepszego wyboru węzłów interpolacji
Problem najlepszego wyboru wezłów interpolacji po raz pierwszy przestawił Czybyszew, który to wielomiany Czybyszewa przestawiamy wedle wzoru na przedziale <-1,1>: Szablon:CentrujWzór Jak sie okazuje, że wielomiany Czybyszewa dla pierwszych jego wyrazów przestawiamy:
....
A jego kolejne wyrazy są przestawione wzorem na wielomian Czybyszewa, który to związek iteracyjny przestawiony jest w zależności od liczby naturalnej n jako wskaźnika i od argumentu x: Szablon:CentrujWzór Wielomian Czybyszewa Szablon:LinkWzór jak można wykazać ma pierwiastki w punktach xSzablon:Sub, które to są zależne od liczby naturalnej m i n, które to pierwiastki po podstawieniu wzoru poniższego do Szablon:LinkWzór daje nam wartość zerową funkcji TSzablon:Sub(x), zatem: Szablon:CentrujWzór A dowodem tego, że liczby Szablon:LinkWzór są pierwiastkami równania Szablon:LinkWzór jest dokonanie do niego podstawienia wspomnianych liczb, tzn. xSzablon:Sub, co po dokonaniu obliczeń otrzymujemy zero: Szablon:CentrujWzór Parząc na kolejne wyrazy przedstawione w punkcie Szablon:LinkWzór, to one mają przy najwyższej potędze wartość 2Szablon:Sup, zatem szukamy wielomianu, który przy najwyższej potędze będzie miał wartość jeden, zatem na podstawie tego możemy napisać wielomian, który to Szablon:LinkWzór ma pierwiastki w punktach Szablon:LinkWzór, zatem na podstawie tego możemy napisać równość po podzieleniu wielomianu TSzablon:Sub(x) przez liczbę 2Szablon:Sup, wtedy: Szablon:CentrujWzór zatem wielomian na podstawie obliczeń przeprowadzonych w punkcie Szablon:LinkWzór, który to w punktach Szablon:LinkWzór ma pierwiastki, możemy przestawić według następującego sposobu: Szablon:CentrujWzór co wówczas na podstawie, że wielomian Czybyszewa Szablon:LinkWzór, który ma ograniczoną wartość leżącą między wartościami <-1,1>, co możemy napisać: Szablon:CentrujWzór Ograniczenia przedziału błędów między szukanym wielomianem WSzablon:Sub(x), a funkcją interpolowaną f(x) Szablon:LinkWzór, możemy przedstawić wykorzystując fakt ograniczenia wielomianu ωSzablon:Sub(x), zatem ten nasz błąd bezwzględny przy liczeniu wartości funkcji przy pomocy funkcji interpolującej względem samej funkcji interpolowanej możemy przestawić według: Szablon:CentrujWzór
Wzór interpolacyjny Newtona dla dowolnych odstępu argumentu
Określmy teraz funkcję f(x), określone dla tablicy xSzablon:Sub, xSzablon:Sub,..,xSzablon:Sub, które są węzłami interpolacji, a natomiast punkty odpowiadająca tym węzłom są to wartości f(xSzablon:Sub), f(xSzablon:Sub), f(xSzablon:Sub),.. f(xSzablon:Sub), zatem zdefiniujmy teraz ilorazy różnicowe: Szablon:CentrujWzór Iloraz różnicowy drugiego rzędu, który to piszemy przy pomocy ilorazów różnicowych pierwszego rzędu, wygląda: Szablon:CentrujWzór Dla dowolnego ilorazu różnicowego n-tego rzędu, który to piszemy przy pomocy ilorazów różnicowych n-1 rzędu, mamy: Szablon:CentrujWzór Napiszmy teraz wielomian interpolacyjny WSzablon:Sub, który to spełnia następujący warunek interpolacyjny poniżej, czyli wartość funkcji f w punkcie xSzablon:Sub jest równa funkcji, której jest funkcją interpolacyjną WSzablon:Sub, też w tym samym punkcie, którą to piszemy wedle schematu ogólnie: Szablon:CentrujWzór Zapiszmy teraz wielomian interpolacyjny WSzablon:Sub(x) rozpisując ją jako tożsamość, która jest sumą różnic wielomianu WSzablon:Sub(x) i WSzablon:Sub(x), co do całego wielomianu dodamy funkcję WSzablon:Sub(x), wtedy taki przebieg rozważań sugeruje, że ona jest funkcją WSzablon:Sub(x), którą to możemy zapisać do postaci: Szablon:CentrujWzór Oczywiste jest, że wielomian WSzablon:Sub-WSzablon:Sub(x) jest różnicą rozważanych wielomianów, który jest iloczynem stałej A przez iloczyn różnić argumentu x i argumentu xSzablon:Sub dla całej gamy węzłów od i=0 do i=k-1, wtedy: Szablon:CentrujWzór
- gdzie A jest pewna stałą, aby je obliczyć należy wykorzystując wzór Szablon:LinkWzór i podstawić xSzablon:Sub do Szablon:LinkWzór wykorzystując fakt Szablon:LinkWzór na wielomian interpolacyjny Lagrange'a, wtedy na podstawie tego możemy powiedzieć:
Szablon:CentrujWzór Wzór Szablon:LinkWzór z oczywistych powodów na podstawie tożsamości na wielomian ωSzablon:Sub, według wzoru Szablon:LinkWzór, przyjmuje postać: Szablon:CentrujWzór Na podstawie obliczeń przeprowadzonych w punkcie Szablon:LinkWzór różnica wielomianów dla k i k-1, czyli według wzoru Szablon:LinkWzór, jest zapisana dla dowolnego argumentu x tejże funkcji: Szablon:CentrujWzór Jeśli chcemy zapisać Szablon:LinkWzór w postaci dogodnej używając ilorazów różnicowych, to iloraz różnicowy rzędu n przedstawiamy: Szablon:CentrujWzór Wzór Szablon:LinkWzór możemy udowodnić metodą indukcji zupełnej, którego dla n=1 ten etap dowodu piszemy w postaci poniżej, jak się przekonamy, że wspomniany wzór pokrywa się ze wzorem powyżej dla przypadku n=1, zatem na podstawionych tych wypowiedzeń mamy: Szablon:CentrujWzór Teraz dokonajmy następnej części dowodu i sprawdźmy, czy z części dowodu dla n=k-1 wynika dowód n=k, wtedy: Szablon:CentrujWzór W przeprowadzonych obliczeń w punkcie Szablon:LinkWzór możemy uzyskać taką prawidłowość, że wyrazy stojące przy f(xSzablon:Sub) oraz f(xSzablon:Sub) występują tylko jeden raz, Natomiast składniki zawierające czynnik f(xSzablon:Sub) dla j=i+1,i+2,..,i+k-1 występują parami, zatem rozpisując te pary, możemy powiedzieć: Szablon:CentrujWzór Na podstawie obliczeń przeprowadzonych w punkcie Szablon:LinkWzór i Szablon:LinkWzór udowodniliśmy za pomocą indukcji matematycznej, że wyrazy pod sumą w Szablon:LinkWzór możemy przestawić je jako ilorazy różnicowe do następującej postaci: Szablon:CentrujWzór Przy dalszych rozważaniach skorzystamy ze wzoru Szablon:LinkWzór, i Szablon:LinkWzór dla przypadku i=0 , a także z WSzablon:Sub(xSzablon:Sub)=f(xSzablon:Sub), co według przedstawienia Szablon:LinkWzór można zapisać wielomian WSzablon:Sub(x): Szablon:CentrujWzór Wzór interpolacyjny Szablon:LinkWzór możemy zapisać w postaci interpolacyjnej, który ma nazwę wzoru interpolacyjnego Netwona dla dowolnych odstępów dla węzłów lub wzoru interpolacyjnego Newtona z ilorazem różnicowym.
Różnice progresywne i wsteczne
Wezły w sieci w poprzednich rozważaniach mogły być całkowicie dowolne, tzn. węzły: xSzablon:Sub, xSzablon:Sub, ...,xSzablon:Sub. Tym razem wybierzemy węzły, które są napisane: Szablon:CentrujWzór
Różnice progresywne
Niech będą określone wartości funkcji f(x) w punktach xSzablon:Sub,xSzablon:Sub,...,xSzablon:Sub określone wzorami według punktu Szablon:LinkWzór, zatem różnica progresywną pierwszego rodzaju piszemy według schematu: Szablon:CentrujWzór Aby zdefiniować różnice progresywne wyższych rzędów należy określić tożsamość, która jest zdefiniowana przy pomocy kilku operatorów różnic: Szablon:CentrujWzór Przykładem różnicy drugiego rzędu nazywamy różnicę przy wykorzystaniu wzoru Szablon:LinkWzór określoną wzorem: Szablon:CentrujWzór Ogólnie rzecz biorąc możemy obrać wartości ySzablon:Sub, ySzablon:Sub,..,ySzablon:Sub, wtedy n-ta różnica elementu ciągu ySzablon:Sub określamy: Szablon:CentrujWzór Co wyrażenie Szablon:LinkWzór możemy napisać w formie bardzo uproszczonej, używając definicji sumy, w postaci: Szablon:CentrujWzór Teraz wzór Szablon:LinkWzór udowodnimy przy pomocy indukcji matematycznej, co dla n=1 powyższy wzór przechodzi w tożsamość: Szablon:CentrujWzór Co wzór Szablon:LinkWzór na podstawie jej szczególnego przypadku Szablon:LinkWzór, czyli dla n=1, czyli on się pokrywa ze wzorem Szablon:LinkWzór. Teraz udowodnijmy wzór Szablon:LinkWzór, ze jeśli ten nasz wzór jeśli jest prawdziwy dla n, to jest prawdziwy dla n+1, wtedy możemy powiedzieć: Szablon:CentrujWzór Co kończy dowód twierdzenia Szablon:LinkWzór na podstawie obliczeń przeprowadzonych w punkcie Szablon:LinkWzór i Szablon:LinkWzór. Następny bardzo ważnym twierdzeniem jest twierdzenie podane przy pomocy wzoru na element ySzablon:Sub przy pomocy k-tych rzędów różnic progresywnych: Szablon:CentrujWzór Aby udowodnić wzór Szablon:LinkWzór należy wykorzystać twierdzenie o indukcji matematycznej. Wedle twierdzenia od indukcji zupełnej sprawdźmy dla k=0, zatem dla tego nasz wzór wspomniany przechodzi w wzór, który jest zwykłą tożsamością. Sprawdźmy, czy jeśli nasz wzór Szablon:LinkWzór jest prawdziwy dla k, to czy z niego wynika prawdziwość dla k+1, w tym celu napiszmy do niego wyrażenie: Szablon:CentrujWzór
Pewne dowody ważnych twierdzeń na różnicach progresywnych
Najpierw podamy pewne trzy twierdzenia bez dowodu, których to dowody są trywialne, oto twierdzenia: Szablon:ElastycznyWiersz Teraz podamy następne twierdzenia, którego dowód w cale nie jest trywialny, zatem to pierwsze twierdzenie piszemy wedle schematu: Szablon:CentrujWzór A jego dowód przeprowadzamy w sposób następujący: Szablon:CentrujWzór Teraz podamy następne twierdzenia, którego dowód w cale nie jest trywialny, zatem to pierwsze twierdzenie piszemy wedle następującego schematu: Szablon:CentrujWzór A jego dowód, który przeprowadzamy w sposób następujący: Szablon:CentrujWzór
Różnice wsteczne
Różnice wsteczne przyjęło się oznaczać jako pierwszą różnice progresywną w punkcie xSzablon:Sub, którego zapis tejże rozważanej różnicy piszemy: Szablon:CentrujWzór Katą różnicę wsteczną przyjęło się rozważać jaką różnicę według Szablon:LinkWzór, którą piszemy: Szablon:CentrujWzór Twierdzenie, które będziemy podawać i udowodniać poniżej jest to twierdzenie: Szablon:CentrujWzór Twierdzenie Szablon:LinkWzór udowadniamy przy pomocy indukcji zupełnej, zatem dla k=0 wspomniane twierdzenie można udowodnić, co jest trywialne, zatem nasze twierdzenie dla tego k jest prawdziwe. Załóżmy teraz, że nasze twierdzenie Szablon:LinkWzór jest prawdziwe dla k i udowodnimy, że jest ono słuszne dla k+1, zatem wtedy możemy powiedzieć: Szablon:CentrujWzór
Równanie interpolacyjne Newtona dla jednakowych różnic argumentów
W punkcie Szablon:LinkWzór napisaliśmy wzór interpolacyjnego Newtona, w której występują pewne wielkości Szablon:LinkWzór, dla węzłów ogólnie o różnych odstępach, które tutaj będziemy pisali ten wzór dla jednakowych ostępów dla punktów xSzablon:Sub=xSzablon:Sub+ih, gdzie i=0,1,2,..,n. Na podstawie tego napiszemy teraz ilorazy różnicowe, które to są dla naszego przypadku: Szablon:Wzór Na podstawie obliczeń przeprowadzonych w punkcie Szablon:LinkWzór ilorazy różnicowe o numerze "k" definiujemy jako iloraz różnicy k-tej zmiennej ySzablon:Sub przez iloczyn k silni i k-tej potęgi stałej: Szablon:CentrujWzór Wzór Szablon:LinkWzór udowadniamy przy pomocy twierdzenia o indukcji zupełnej, zatem dla k=0 wzór Szablon:LinkWzór przyjmuje postać, którą jest wartość funkcji ySzablon:Sub, zatem wtedy . Następnym krokiem jest stwierdzenie, że wzór Szablon:LinkWzór jest prawdziwy, i udowodniamy tą równość dla k+1, zatem do dzieła. Szablon:CentrujWzór Jeśli podstawimy wzór Szablon:LinkWzór, który jest ilorazem różnicowym, do równości Szablon:LinkWzór. który jest ilorazem różnicowym, w ten sposób otrzymujemy następującą tożsamość na wzór interpolacyjny Newtona wykorzystując definicję różnicy dowolnego rzędu i wiedząc, że różnica między dowolnymi a sąsiednimi wyrazami jest równa h: Szablon:CentrujWzór Wprowadźmy teraz nową zmienną q, którą to definiujemy jako iloraz różnicy x i xSzablon:Sub przez liczbę h, który jest odległością między punktami sąsiednimi, to zmienną q piszemy: Szablon:CentrujWzór Ale też zachodzą następujące tożsamości Szablon:LinkWzór, które są ilorazami różnicy zmiennej x i węzła o numerze i-tym przez stałą odległość pomiędzy punktami, które to piszemy: Szablon:Wzór Wedle obliczeń przeprowadzonych w punkcie Szablon:LinkWzór, który to wynika z definicji zmiennej q zdefiniowanej w punkcie Szablon:LinkWzór, wtedy możemy napisać tożsamość Szablon:LinkWzór: Szablon:CentrujWzór Jeśli znów skorzystamy ze wzoru Szablon:LinkWzór i wzoru na różnice wsteczna w zależności od różnic progresywnych Szablon:LinkWzór i zmieniając numeracje z xSzablon:Sub na xSzablon:Sub bo interesuje nas zachowanie funkcji w końcowej części przedziału, tzn. że na pewno numerujemy argumenty w taki sposób by ich numeracja była od tyłu, możemy powiedzieć: Szablon:CentrujWzór Jeśli przyjmować będziemy xSzablon:Sub=xSzablon:Sub+ih, dla i=0,-1,-2,..-n, a także przyjmować będziemy, że zmienna q jest ilorazem różnicy węzła zerowego i zmiennej x przez stałą odległość pomiędzy punktami: Szablon:CentrujWzór To wtedy wykonując podobne obliczenia jak w punkcie Szablon:LinkWzór, to wtedy wzór Szablon:LinkWzór, na podstawie definicji zmiennej q Szablon:LinkWzór, piszemy w następującej postaci: Szablon:CentrujWzór Wzór Szablon:LinkWzór nazywamy drugim wzorem interpolacyjnym Newtona na interpolację wstecz.
Interpolacja przy pomocy funkcji sklejanych
Wstęp do funkcji sklejanych
Określmy sobie teraz n+1 punktów xSzablon:Sub, xSzablon:Sub, xSzablon:Sub,..xSzablon:Sub dla której zachodzi: Szablon:CentrujWzór Funkcję s(x) będziemy określać jako funkcję sklejaną stopnia (), jeżeli w każdym z tych przedziałów funkcja jest stopnia m, a także wartości tychże funkcji należą do wartości liczb zespolonych. Na każdym z tych przedziałów (xSzablon:Sub,xSzablon:Sub) i=0,1,2,..,n-1 określmy teraz funkcję sklejaną w postaci: Szablon:CentrujWzór Ponieważ współczynników cSzablon:Sub dla ściśle określonego jest m+1, a ponieważ tych naszych przedziałów jest n określonych według Szablon:LinkWzór, zatem liczba wszystkich współczynników cSzablon:Sub jest n(m+1). Jeśli teraz określimy pochodną funkcji s(x), to liczba współczynników określonej przez "i" jest ich m, bo stała cSzablon:Sub w tej pierwszej pochodnej znika, a w każdym węźle xSzablon:Sub dla i=1,2,..,n określamy według m(n-1) warunków brzegowych, zatem na podstawie tego możemy powiedzieć, że funkcja s(x) zależy od n(m+1)-m(n-1)=nm+n-mn+m=n+m zmiennych . Określmy teraz funkcję s(x) jako funkcję potęgową, dla której z oczywistych powodów zachodzi xSzablon:Sub=xSzablon:Sub+ih dla i=-1,0,1,..,n,n+1, określmy dodatkowo i=-3,-2,-1,n,n+1,n+2,n+3. Zatem na podstawie tego możemy zbudować pewną funkcję sklejaną, który to przepisujemy wzorami: Szablon:CentrujWzór Szablon:Rysunek Wykresem ogólnym funkcji Szablon:LinkWzór jest funkcja podana obok na prawej jego stronie tego modułu. Teraz określmy funkcję Szablon:Formuła w punktach xSzablon:Sub, xSzablon:Sub,xSzablon:Sub, xSzablon:Sub,xSzablon:Sub i wartości tej funkcji Szablon:LinkWzór w tymże punktach określamy przy pomocy tabelki poniżej. Szablon:Tabelka
Każdą funkcję s(x) należącej do pewnego zbioru możemy przestawić w bazie funkcji Szablon:Formuła, którą to wspomniana funkcja jest w postaci kombinacji liniowej funkcji bazy, co ten zapis piszemy w postaci wzoru: Szablon:CentrujWzór
Interpolacja funkcji interpolowanej przy pomocy funkcji sklejanej stopnia trzeciego
Obierzmy sobie teraz funkcję interpolacyjną należącej do zbioru funkcji sklejanych stopnia trzeciego, które dla węzłów sieci xSzablon:Sub wartość funkcji i funkcji interpolującej dla tego argumentu wynosi f(xSzablon:Sub) piszemy: Szablon:CentrujWzór Jak wiemy, że funkcja trzeciego stopnia, której to przestawiamy wzorem Szablon:LinkWzór dla m=3 ma n+3 niezależnych parametrów, w tym wliczając Szablon:LinkWzór, w ten sposób otrzymujemy dwa parametry swobodne, dodatkowe warunki jakie funkcja powinna spełniać są dwa warunki nałożone na pierwszą pochodną, którą to możemy określić jako: Szablon:ElastycznyWiersz Lub dwa warunki określone przez wzory na drugich pochodnych: Szablon:ElastycznyWiersz Na funkcję s(x) możemy określić też przez inne warunki, tzn. warunki określoności funkcji f(x), o okresie b-a, którą to tak składamy by za pomocą funkcji sklejanych tak by było można je sprowadzić na przedział jednowymiarowy nieskończony , tzn. warunki określoności możemy napisać dla i-tej pochodnej funkcji s(x) w postaci wzoru: Szablon:CentrujWzór Określmy teraz funkcję s''(x), która w punkcie xSzablon:Sub przyjmuje wartość stałą funkcji równą MSzablon:Sub: Szablon:CentrujWzór Zgodnie z określeniem drugiej pochodnej funkcji s(x) w punkcie xSzablon:Sub Szablon:LinkWzór, to określmy drugą pochodną funkcji x dla dowolnego argumentu należącego do <xSzablon:Sub,xSzablon:Sub> w postaci: Szablon:CentrujWzór Możemy z całkować funkcję Szablon:LinkWzór względem argumentu x, w ten sposób otrzymujemy tożsamość, którą to piszemy wzorem poniżej: Szablon:CentrujWzór Zatem na ostatnim wniosku możemy otrzymamy funkcje s(x), która wynika z całkowania funkcji Szablon:LinkWzór w naszym wyżej określonym przedziale: Szablon:CentrujWzór Na funkcję s(x) Szablon:LinkWzór możemy nałożyć warunki interpolacji Szablon:LinkWzór, w ten sposób wzór Szablon:LinkWzór dla tych węzłów możemy napisać: Szablon:ElastycznyWiersz Z warunku Szablon:LinkWzór wyznaczamy stałą BSzablon:Sub, którą schematycznie piszemy: Szablon:CentrujWzór Z warunku Szablon:LinkWzór możemy wyznaczyć wzór na stałą ASzablon:Sub, którą to piszemy po podstawieniu do niego wzoru na stałą BSzablon:Sub Szablon:LinkWzór, otrzymujemy: Szablon:CentrujWzór Piszemy teraz warunek, która mówi, że sSzablon:Sup(x) jest funkcja ciągłą na przedziale obustronnie zamkniętym <a,b>, zatem w tym celu należy obliczyć granicę jednostronne w punktach xSzablon:Sub+0, xSzablon:Sub-0. Możemy policzyć te pochodne przy wykorzystaniu tożsamości na pewne stałe, czyli stałe zdefiniowane według wzoru ASzablon:Sub Szablon:LinkWzór, ale najpierw przedstawmy pochodną s(x) w punkcie xSzablon:Sub-0: Szablon:CentrujWzór i pochodną funkcji s(x) w punkcie xSzablon:Sub+0: Szablon:CentrujWzór I zażądamy by funkcja sklejana s(x) była funkcją ciągłą w punkcie xSzablon:Sub, tzn, pochodna lewostronna Szablon:LinkWzór tej funkcji jest równa pochodnej prawostronnej tej samej funkcji Szablon:LinkWzór, tzn. by spełniała warunek: Szablon:CentrujWzór Dalej wykorzystamy warunek Szablon:LinkWzór, który przedstawia ciągłość funkcji s'(x) w punkcie xSzablon:Sub, następnie do tego wzoru podstawiamy formułę na pochodną lewostronną Szablon:LinkWzór i prawostronną Szablon:LinkWzór, zatem takim razie możemy otrzymać warunek, który będziemy dalej przekształcać w tym samym punkcie: Szablon:CentrujWzór Wzór Szablon:LinkWzór mnożymy obustronnie przez Szablon:Formuła, w ten sposób możemy dojść do następnego celu: Szablon:CentrujWzór Wprowadźmy teraz oznaczenia, które będą nam potrzebne do dalszego kroku obliczeń: Szablon:ElastycznyWiersz Szablon:CentrujWzór Na podstawie oznaczeń Szablon:LinkWzór, Szablon:LinkWzór, Szablon:LinkWzór równanie Szablon:LinkWzór piszemy wedle przepisu: Szablon:CentrujWzór Warunek Szablon:LinkWzór możemy przedstawić podstawiając w funcji s(x) Szablon:LinkWzór taki argument by było "x" dążące do xSzablon:Sub prawostronnie: Szablon:CentrujWzór Ze wzoru Szablon:LinkWzór otrzymujemy dwie bardzo ważne tożsamości na dSzablon:Sub, które zapisujemy w zależności od współczynników MSzablon:Sub i MSzablon:Sub dla pierwszej tożsamości i w zalezności od ySzablon:Sub, ySzablon:Sub i hSzablon:Sub w drugiej tożsamości: Szablon:ElastycznyWiersz Warunek Szablon:LinkWzór możemy przedstawić podstawiając za funkcję s(x) Szablon:LinkWzór dla i=n-1 i dla "x" dążącego lewostronnie do xSzablon:Sub:, Szablon:CentrujWzór Z tożsamości Szablon:LinkWzór otrzymujemy dwie bardzo ważne tozsamości na dSzablon:Sub, które zapisujemy w zależności od współczynników MSzablon:Sub i MSzablon:Sub dla pierwszej tożsamości i w zależności od ySzablon:Sub, ySzablon:Sub i hSzablon:Sub w drugiej tożsamości: Szablon:ElastycznyWiersz Na podstawie tożsamości Szablon:LinkWzór , Szablon:LinkWzór i Szablon:LinkWzór możemy napisać równanie macierzowe jako: Szablon:CentrujWzór Jeśli będziemy przyjmować funkcje okresową s(x) o okresie b-a, to wtedy na podstawie Szablon:LinkWzór możemy powiedzieć, że wielkość o wskaźniku n+1 jest to wielkość o wskaźniku 1, a wielkość o wskaźniku n jest to wielkość o wskaźniku 0. Zatem na podstawie tego i wcześniejszych rozważań tożsamość Szablon:LinkWzór możemy napisać: Szablon:CentrujWzór Wzory na λSzablon:Sub według Szablon:LinkWzór, μSzablon:Sub według Szablon:LinkWzór i Szablon:Formuła według Szablon:LinkWzór piszemy tutaj na podstawie określoności funkcji s(x) wedle schematów: Szablon:ElastycznyWiersz Na podstawie równania Szablon:LinkWzór i Szablon:LinkWzór możemy napisać tożsamość macierzową wynikającej z przyjęcia okresowości funkcji s(x) rugując stałą MSzablon:Sub (MSzablon:Sub=MSzablon:Sub): Szablon:CentrujWzór Można obliczyć stałe MSzablon:Sub z warunku macierzowego Szablon:LinkWzór dla funkcji nieokresowej s(x) lub dla funkcji okresowej s(x) według warunku macierzowego Szablon:LinkWzór, zatem przy pomocy obliczonych współczynników MSzablon:Sub możemy policzyć wartość s(x) w punkcie "x" ze wzoru Szablon:LinkWzór.