三次参数样条曲线问题提出有空间的n个点,p1,p2,p3,……,pn要用一条曲线光滑连接p1p2p3pnp4解决问题的思路插值三次样条曲线三次参数样条曲线三次样条曲线-定义对于给定的n个型值点Pi(xi,yi),且hi=xi+1-xi0,i=1,2,…,n,若y=S(x)满足下列条件:(1)在Pi(xi,yi)点上有yi=S(xi);(2)S(x)在[x1,xn]上二阶连续可导;(3)在每个子区间[xi,xi+1]上,S(x)是x的三次多项式;则称S(x)为过型值点的三次样条函数,由三次样条函数构成的曲线称为三次样条曲线。三次样函数的形式推导由定义可知在[xi,xi+1]上,Si(x)可写成:Si(x)=ai+bi(x-xi)+ci(x-xi)2+di(x-xi)3ai,bi,ci,di为待定系数(1)由于yi=Si(xi),Si(xi+1)=Si+1(xi+1)=yi+1,有yi=aiai+bihi+cihi2+dihi3=yi+1(用于求bi)(2)由Si'(x)=bi+2ci(x-xi)+3di(x-xi)2有Si'(xi)=bi由Si(x)=2ci+6di(x-xi)有Si(xi)=2ci三次样函数的形式推导(3)要求曲线在二阶连续可导,则有Si'(xi+1)=Si+1'(xi+1)Si(xi+1)=Si+1(xi+1)从而有bi+2cihi+3dihi2=bi+12ci+6dihi=2ci+1(求di)(4)令Mi=2ci;则有:ai=yici=Mi/2di=(Mi+1-Mi)/6hibi=(yi+1-yi)/hi-hi(Mi/3+Mi+1/6)三次样函数的形式推导从而有:ai-1=yi-1ci-1=Mi-1/2di-1=(Mi-Mi-1)/6hi-1bi-1=(yi-yi-1)/hi-1-hi-1(Mi-1/3+Mi/6)(5)由Si-1'(xi)=Si'(xi)有bi-1+2ci-1hi-1+3di-1hi-12=bi令:λi=hi-1/(hi-1+hi),μi=hi/(hi-1+hi)Di=6/(hi-1+hi)*[(yi+1-yi)/hi-(yi-yi-1)/hi-1]可得:λiMi-1+2Mi+μiMi+1=Di,其中:λi+μi=1,i=2,3,…,n-1三次样函数的端点条件(1)夹持端:端点处一阶导数已知,即S1'(x1)=y1'亦即y1'=b1=(y2-y1)/h1-h1(M1/3+M2/6)2M1+M2=6[(y2-y1)/h1-y1']/h1Sn-1'(xn)=yn'亦即yn-1'=bn-1=(yn-yn-1)/hn-1-hn-1(Mn-1/3+Mn/6)Mn-1+2Mn=6[yn'-(yn-yn-1)/hn-1]/hn-1得方程组为:2M1+M2=6[(y2-y1)/h1-y1']/h1;λiMi-1+2Mi+μiMi+1=Di,i=2,3,…,n-1;Mn-1+2Mn=6[yn'-(yn-yn-1)/hn-1]/hn-1;三次样函数的端点条件(2)自由端:端点处曲线二阶导数为零即S1(x1)=y1=0,Sn-1(xn)=yn=0亦即S1(x1)=2c1=0;=M1=0Sn-1(xn)=2cn-1+6dn-1hn-1=0;=Mn=0得方程组:M1=0;λiMi-1+2Mi+μiMi+1=Di,i=2,3,…,n-1;Mn=0;三次样函数的端点条件(3)抛物端:曲线的首尾两段S1(x)和Sn-1(x)为抛物线。即曲线在首尾两段曲线上二阶导数为常数。y1=y2,yn-1=ynS1(x1)=2c1=S2(x2)=2c2=M1=M2Sn-2(xn-1)=2cn-2+6dn-2hn-2=Sn-1(xn)=2cn-1+6dn-1hn-1=Mn-1=Mn得方程组:M1-M2=0;λiMi-1+2Mi+μiMi+1=Di,i=2,3,…,n-1;Mn-1-Mn=0;三次样条曲线-程序程序演示三次参数样条曲线有空间的n个点,p1,p2,p3,……,pn要用一条三次参数样条曲线插值p1p2p3pnp4三次参数样条曲线定义三次参数样条曲线的表达式p(t)=B1+B2t+B3t2+B4t30=t=tm在两点p1,p2之间定义一条该曲线(参数形式)令p1t=0;p2t=t2;已知:p’1,p’2代入方程可得方程系数B1\B2\B3\B4p1p2三次参数样条曲线推导32222213221222212212112222213221422212212322423222324223221222111])(2[]2)(3[)()(22)(332)()()0()0(ttptptppttptptpptpptp:tptptppBtptptppBtBtBBtpptBtBtBBptpBppBpp从而有三次参数样条曲线推导1321121311211121110])(2[]2)(3[)(,iiiiiiiiiiiiiiiiiiiittttptptppttptptpptpptppp段有对连续的三次参数样条曲线2,,1))()((3])(2[26211212212111|22131431nippttppttpppttttBtBBp,iiiiiiiiiiiiiiiiiiii即有应达到二阶连续曲线在由条件连续的三次参数样条曲线2,,1])(2[))()((3:2111|221121221niBpppttttppttppttBiiiiiiiiiiiiiiiii有令式中:p’i第i点的切矢量为未知数,(i=1,…,n)求解n个未知数,要n个方程连续的三次参数样条曲线端点条件2,,1])(2[:)1(2111|221niBpppttttppiiiiiiiin方程为已知夹持端三次参数样条曲线端点条件nnnnnnnnnnnnnnnnnnnntpppptptptpptptptppnitpppptptptppipp)(320))(2(6)2)(3(21)(3202)(3:100:)2(112213112121221222122121时时已知自由端三次参数样条曲线求三次参数样条曲线的表达式p(t)=B1+B2t+B3t2+B4t30=t=tm(1)给点pi(i=1,…,n)(2)给端点条件(3)解方程求各点切矢量;(4)计算各段系数(取ti+1为第i段直线段长)(5)根据参数给各段曲线p1p2p3p5p4