2、j)=S'j+1(xj)(j=1,···,n-1)(3)S''j(xj)=S''j+1(xj)(j=1,···,n-1)则称S(x)为三次样条插值函数。三次样条插值函数满足的连续条件:(1)S(xj–)=S(xj+)(j=1,···,n-1)连续(2)S'(xj–)=S'(xj+)(j=1,···,n-1)导数连续(3)S''(xj–)=S''(xj+)(j=1,···,n-1)二阶导数连续回顾1:当x∈[xj,xj+1](j=0,1,…n-1)时Sj(x)=aj+bjx+cjx2+djx3插值条件:S(xj)=yj(j=0,1,···,n)连续
3、性条件: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个三次多项式,待定系数共4n个!方程数少于未知数个数??(1)自然边界条件:S''(x0)=0,S''(xn)=0(2)周期边界条件:S'(x0)=S'(xn),S''(x0)=S''(xn)(3)反射边界条件:S''(x0)=S''(x1),S''(xn-1)=S''(xn)(4)固定边界条件:S'(x0)=f'(x0)
4、,S'(xn)=f'(xn)例5.7已知f(–1)=1,f(0)=0,f(1)=1。构造分段三次多项式是满足自然边界的样条函数。证:显然求导数得显然分段Hermite插值公式导出的样条方法已知函数表xx0x1···xnf(x)y0y1···yn设f(x)在各插值节点xj处的一阶导数为mj取xj+1–xj=h,(j=0,1,2,···,n-1)。当x∈[xj,xj+1]时,分段三次Hermite插值品味取xj+1–xj=h,(j=0,1,2,···,n-1)。当x∈[xj,xj+1]时,分段Hermite插值当x∈[xj,xj+1](j=0,1,…
5、n-1)时Sj(x)=aj+bjx+cjx2+djx3未知数个数(n+1)!!由S''(x)连续,有等式S''(xj+0)=S''(xj–0)当x∈[xj,xj+1]时,S(x)由基函数组合而成同理有联立得(j=1,2,······,n-1)自然样条的导数值满足:设自然边界条件成立即(j=1,2,······,n-1)自然样条的导数值满足:(j=1,2,······,n-1)严格对角占优矩阵回顾:严格主对角占优矩阵一定是非奇异的。程序片段1:MatlabCode:三次样条插值functionv=splinetx(x,y,u)%Firstderi
6、vativesh=diff(x);delta=diff(y)./h;d=splineslopes(h,delta);%Piecewisepolynomialcoefficientsn=length(x);c=(3*delta-2*d(1:n-1)-d(2:n))./h;b=(d(1:n-1)-2*delta+d(2:n))./h.^2;%Findsubintervalindicesksothatx(k)<=u7、插值%Evaluatesplines=u-x(k);v=y(k)+s.*(d(k)+s.*(c(k)+s.*b(k)));%-------------------------------------------------------functiond=splineslopes(h,delta)%SPLINESLOPESSlopesforcubicsplineinterpolation.%splineslopes(h,delta)computesd(k)=S'(x(k)).%Usesnot-a-knotendconditions.%Diagona
8、lsoftridiagonalsystemn=length(h)+1;a=zeros(size(h));b=a;c=a;r=a;a(1: