1. DEF
Zadanie interpolacji za pomocą funkcji sklejanych 3-go stopnia możemy sformułować następująco:
Dla danych n+1 punktów (xi,yi), gdzie a=x0<x1<⋯<xn=b, znaleźć funkcję s spełniającą warunki:
- s∈C2[x0;xn]
- s↾[xk−1;xk]≡pk∈Π3(1≤k≤n)
- s(xk)=yk(0≤k≤n)
Jeżeli funkcja s spełnia s′′(x0)=s′′(xn)=0,
to s jest naturalną funkcją sklejaną 3-go stopnia.
2. Twierdzenie#4
Dla dowolnych n,x0<x1<⋯<xn,y0,y1,…,yn istnieje dokładnie jedna funkcja sklejana 3-go stopnia spełniająca dodatkowe warunki s′′(x0)=s′′(xn)=0.
Wartości Mk=s′′(xk)(0≤ke≤n), (M0=Mn=0) spełniają układ n−1 równań liniowych λkMk−1+2Mk+(1−λk)Mk+1=6f[xk−1,xk,xk+1](1≤k≤n−1), gdzie λk=hk+hk+1hk,hk=xk−xk−1.
Ponadto s(x)=pk(x)=hk1(61Mk−1(xk−x)3+61Mk(x−xk−1)3+(yk−1−61Mk−1hk2)(xk−x)+(yk−61Mkhk2)(x−xk−1))xk∈[xk−1,xk].
3. Wyznaczanie funkcji sklejanej 3-go stopnia
- Obliczyć ilorazy różnicowe dk=6f[xk−1,xk,xk+1] dla k=1,…,n, gdzie f[xk−1,xk,xk+1]=xk+1−xk−1f[xk,xk+1]−f[xk−1,xk].
- Obliczyć λk=hk+hk+1hk dla k=1,…,(n−1).
- Wyznaczyć Mk dla k=1,…,(n−1) rozwiązując układ (metodą przegnania — TBA)
⎣⎢⎢⎢⎢⎢⎡2λ21−λ12⋱1−λ2⋱λn−2⋱2λn−11−λn−22⎦⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎡M1M2⋮Mn−2Mn−1⎦⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎡d1d2⋮dn−2dn−1⎦⎥⎥⎥⎥⎥⎥⎤
Macierz powyższego układu jest diagonalnie silnie dominująca (2>∣λk∣+∣1−λk∣). Stąd jest nieosobliwa.
3.1. Przykład
S′′(x) jest przedziałami liniowa, ponieważ s jest przedziałami Π3 (s′′↾[xk−1,xk]≡pk′′∈Π1).
- s′′(xk−1)=Mk−1
- s′′(xk)=Mk
Narazie załóżmy, że Mk−1 i Mk mamy dane. Chcemy zobaczyć, jaka jest postać drugiej pochodnej w przedziale [xk−1,xk] — musimy przeprowadzić interpolację. Wiemy, że jest to wielomian co najwyżej pierwszego stopnia.
Stosujemy wzór Lagrange’a na przedziale [xk−1,xk]. s′′(x)=Mk−1−hk(x−xk)+Mkhk(x−xk−1)=Mk−1hk(xk−x)+Mkhk(x−xk−1)
Teraz dwukrotnie całkujemy: s′(x)=Mk−1−2hk(xk−x)2+MK2hk(x−xk−1)2+A s(x)=Mk−16hk(xk−x)3+Mk6hk(x−xk−1)3+A(x−xk−1)+B
Musimy teraz jakoś wyznaczyć A i B. s(xk−1)=yk−1,s(xk)=yk s(xk−1)=Mk−16hk(xk−xk−1)3+B=yk−1⟹⟹B=yk−1−6hk2Mk−1
s(xk)=Mk6hk2+A⋅hk+yk−1−Mk−16hk2=yk∣∣∣∣∣∣/hk A=hkyk−yk−1−Mk6hk+Mk−16hk
Mamy już A i B. Wstawiamy je do wzoru na s(x): s(x)=hk1(61Mk−1(xk−x)3+61Mk−1(x−xk−1)3+(yk−yk−1−6Mkhk2+6Mk−1hk2)(x−xk−1)+yk−1hk−6hk3Mk−1)… s(x)=hk1(61Mk−1(xk−x)3+61Mk−1(x−xk−1)3+(yk−6Mkhk2)(x−xk−1)+(yk−1−6hk2Mk−1)(xk−x)) (tutaj trzeba pamiętać o sytuacjach typu xk=hk+xk−1)
Wymagamy ciągłość 1. pochodnej w [xk−1;xk]. s′(x)=Mk−1−2hk(xk−x)2+Mk2hk(x−xk−1)2+hkyk−yk−1−Mk6hk+Mk−16hk
itd.