資源描述:
《樣條插值的算例》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、樣條插值的算例三次樣條的概念用一階導數(shù)表示的樣條三次樣條的極性《數(shù)值分析》16引例.sinx在區(qū)間[0,?]上的插值逼近1.二次插值2.兩點埃爾米特插值3.分段埃爾米特插值x0?/2?Sinx010Cosx10–1x0?Sinx00Cosx1–12/18x=-5:5;y=1./(1+x.^2);plot(x,y,x,y,'o')x=-5:5;y=1./(1+x.^2);xi=-5:.05:5;yi=spline(x,y,xi);plot(xi,yi,'b',x,y,'ro')被插值函數(shù):-5≤x≤53/18x=[0,0.0155,0.1485,0.3493,0.6480,1.054
2、7,2.0];y=[0,0.1242,0.3654,0.4975,0.5472,0.4781,0];n=length(x);t=0:n-1;tt=0:.25:n-1;xx=spline(t,x,tt);yy=spline(t,y,tt);plot(xx,yy,x,y,'o')4/18定義5.4給定區(qū)間[a,b]上的一個分劃:a=x03、18當x∈[xj,xj+1](j=0,1,…n-1)時Sj(x)=aj+bjx+cjx2+djx3插值條件:S(xj)=yj(j=0,1,···,n)連續(xù)性條件:S(xj+0)=S(xj-0)(j=1,···,n-1)S’(xj+0)=S’(xj-0)(j=1,···,n-1)S”(xj+0)=S”(xj-0)(j=1,···,n-1)由樣條定義,可建立方程(4n-2)個??!n個三次多項式,待定系數(shù)共4n個??!方程數(shù)少于未知數(shù)個數(shù)??6/18(1)自然邊界條件:S”(x0)=0,S”(xn)=0例5.7已知f(–1)=1,f(0)=0,f(1)=1.求[–1,1]上的三次自然樣條(
4、滿足自然邊界條件).解設(shè)則有:–a1+b1–c1+d1=1,d1=0,a2+b2+c2+d2=1d1=d2,c1=c2,b1=b2(2)周期邊界條件:S’(x0)=S’(xn),S”(x0)=S”(xn)(3)固定邊界條件:S’(x0)=f’(x0),S’(xn)=f’(xn)7/18由自然邊界條件:–6a1+2b1=0,6a2+2b2=0解方程組,得a1=-a2=1/2,b1=b2=3/2,c1=c2=d1=d2=0問題的解x=[-1,0,1];y=[1,0,1];f1=inline('0.5*x.^3+1.5*x.^2');f2=inline('-0.5*x.^3+1.5*x.
5、^2');t1=-1:.1:0;t2=0:.1:1;p1=f1(t1);p2=f2(t2);plot(x,y,'o',[t1,t2],[p1,p2],’r’)Holdon,plot([t1,t2],[t1,t2].^2)y=x28/18用分段Hermite兩點插值推導樣條已知函數(shù)表xx0x1······xnf(x)y0y1······yn設(shè)f(x)在各插值節(jié)點xj處的一階導數(shù)為mj取xj+1–xj=h,(j=0,1,2,···,n).當x∈[xj,xj+1]時,分段Hermite插值9/18由S”(x)連續(xù),有等式:S”(xj+0)=S”(xj–0)考慮S”(x)在區(qū)間[xj,xj
6、+1]和[xj-1,xj]上表達式.當x∈[xj,xj+1]時,S(x)由基函數(shù)組合而成10/1811/18同理,有聯(lián)立兩式,得(J=1,2,······,n-1)自然邊界條件:S”(x0)=0,S”(xn)=012/18例5.7已知函數(shù)表x–101f(x)101m0=-3/2m1=0m2=3/2x–101H(x)101H’(x)-3/203/2求[–1,1]上的三次自然樣條(滿足自然邊界條件).13/18x∈[-1,0]x∈[0,1]第1個小區(qū)間曲率計算公式第2個小區(qū)間14/18樣條插值函數(shù)的極性設(shè)f(x)∈C2[a,b],對于a=x07、=0,1,···,n).S(x)是滿足S(xj)=yj(j=0,1,···,n)的三次自然樣條.則有
8、
9、S”(x)
10、
11、≤
12、
13、f”(x)
14、
15、證明:15/18所以即樣條函數(shù)S(x)在[a,b]上的總曲率最小.16/18一維插值:yi=interp1(x,y,xi,‘method’)methodnearest最近點插值linear線性插值spline樣條插值cubic立方插值x=0:10;y=sin(x);xi=0:.25:10;yi=interp1(x,y,xi);plo