Interpolacja sklejkami kubicznymi
Tomasz Chwiej 29 listopada 2010
Naszym zadaniem będzie interpolacja funkcji:
f (x) = 1 1 + x2 w przedziale x∈ [−5, 5] na siatce równoodległych węzłów.
Interpolację sklejkami kubicznymi powyższej funkcji należy wykonać przy użyciu procedur spline i splint z biblioteki Numerical Recipes.
Wywołanie procedury spline w C (wywoływana jest ona tylko 1 raz):
spline(x,y,n,yp1,ypn,y2) gdzie:
x jest tablicą: real*4 x(1:n) - zawierającą położenia węzłów funkcji interpolowanej y jest tablicą: real*4 y(1:n) - zawierającą wartości funkcji interpolowanej w węzłach xi n - ilość węzłów
yp1 - wartość pierwszej pochodnej funkcji interpolowanej w x1 ypn - wartość pierwszej pochodnej funkcji interpolowanej w xn
y2 jest tablicą: real*4 y2(1:2) - zawierającą drugie pochodne funkcji interpolowanej
Proszę przyjąć: yp1 > 1030 oraz ypn > 1030, wówczas druga pochodna dla skrajnych węzłów (1 i n) jest zerowana. Otrzymujemy wtedy tzw. sklejki normalne.
Wywołanie procedury splint w C (wywoływana jest ona dla każdego xa dla którego chcemy znać wartość ya - pomiędzy węzłami interpolacji):
splint(x,y,y2,n,xa,&ya) gdzie:
x, y, y2, n - identyczne jak dla procedury spline
xa - aktualna wartość argumentu funkcji (dana wejściowa)
ya - wartość funkcji dla argumentu xa leżącego pomiędzy węzłami interpolacji (dana wyjściowa)
Zadania do wykonania:
1. Stablicować funkcję f (x) =1+x12 w przedziale x∈ [−5, 5] w n równoodległych węzłach 2. Przeprowadzić interpolację sklejkami kubicznymi dla n=4,5,6,9
3. Sporządzić wykresy funkcji: interpolowanej i interpolującej na jednym rysunku dla x∈ [−5, 5] dla każdego n oddzielnie.
4. W sprawozdaniu przeanalizować wyniki nawiązując do
• interpolacji Newtona - grupa IS1
• interpolacji Lagrange’a - grupa IS2
dla tej samej funkcji interpolowanej na poprzednich zajęciach na siatce rónoodległych węzłów.
1