东南大学数值分析第四章三次样条插值.doc_第1页
东南大学数值分析第四章三次样条插值.doc_第2页
东南大学数值分析第四章三次样条插值.doc_第3页
东南大学数值分析第四章三次样条插值.doc_第4页
东南大学数值分析第四章三次样条插值.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章 多项式插值与函数最佳逼近曲线拟合之3次样条插值*(学号) *(姓名)上机题目要求见教材P195,37题。一、算法原理题目要求编写第一边界条件的3次样条插值函数的通用程序,同时根据汽车门曲线值点构造三次紧压样条曲线函数。其基本原理如下定义设有N+1个点,其中。如果存在N个三次多项式,系数为满足如下性质:则成为三次样条函数。现证明其存在:由于是分段三次多项式,其二阶导数是在区间内是分段线性的。根据线性拉格朗日插值可以表示为:用代入上式,得将上式积分两次,会引入两个积分常数,可得到如下形式:将代入上式,并利用可得两个方程:求解,并将所得的结果带入方程得求式(7)的导数,并化简得由上述方程可得如下方程重组上述方程,得三角线性方程组,表示为该式具有严格对角优势。算出系数后可由如下公式计算的样条系数。二、流程图开始输入数据及边界条件计算H,D,U利用端点约束计算求各段的样条系数结束用已知的N+1个点构造三次紧压样条曲线的问题。其通用程序流程图1所示。图1关于求解三阶样条曲线算法流程图具体步骤如下:1) 计算,2) 联系端点约束条件求解样条函数的系数。三、计算代码核心代码for k=2:N-1 temp=A(k-1)/B(k-1); B(k)=B(k)-temp*C(k-1); U(k)=U(k)-temp*U(k-1);endfor k=N-2:-1:1 M(k+1)=(U(k)-C(k)*M(k+2)/B(k);for k=0:N-1 S(k+1,1)=(M(k+2)-M(k+1)/(6*H(k+1); S(k+1,2)=M(k+1)/2; S(k+1,3)=D(k+1)-H(k+1)*(2*M(k+1)+M(k+2)/6; S(k+1,4)=Y(k+1);end完整代码function S=Three_fit(X,Y,dx0,dxn)%Input - X is a vector that contains a list of abscissas% - Y is a vector that contains a list of ordinates% - dx0=S(x0) first derivative boundary condition% - dxn=S(xn) first derivative boundary condition%Output - S rows of S are the coefficients , in descending order ,for% the cubic interpolantsN=length(X)-1;H=diff(X);D=diff(Y)./H;A=H(2:N-1);B=2*(H(1:N-1)+H(2:N);C=H(2:N);U=6*diff(D);%clamped spline endpoint constraintsB(1)=B(1)-H(1)/2;U(1)=U(1)-3*(D(1)-dx0);B(N-1)=B(N-1)-H(N)/2;U(N-1)=U(N-1)-3*(dxn-D(N);%Gauss elimination to solve mk for k=2:N-1 temp=A(k-1)/B(k-1); B(k)=B(k)-temp*C(k-1); U(k)=U(k)-temp*U(k-1);endM(N)=U(N-1)/B(N-1);for k=N-2:-1:1 M(k+1)=(U(k)-C(k)*M(k+2)/B(k);endM(1)=3*(D(1)-dx0)/H(1)-M(2)/2;M(N+1)=3*(dxn-D(N)/H(N)-M(N)/2; for k=0:N-1 S(k+1,1)=(M(k+2)-M(k+1)/(6*H(k+1); S(k+1,2)=M(k+1)/2; S(k+1,3)=D(k+1)-H(k+1)*(2*M(k+1)+M(k+2)/6; S(k+1,4)=Y(k+1);end四、计算结果及分析根据题目数据调用函数如下X=0:10;Y=2.51,3.30,4.04,4.70,5.22,5.54,5.78,5.40,5.57,5.70,5.80;dx0=0.8;dxn=0.2;S=Three_fit(X,Y,dx0,dxn)plot(X,Y,o),hold onyprint=;for ii=1:10 x=X(ii):0.1:X(ii+1); y=polyval(S(ii,:),x-X(ii);%分段拟合 yprint=yprint,polyval(S(ii,:),0.5);plot(x,y)endxlabel(x,FontSize,20),ylabel(y,FontSize,20)title(三次样条插值,FontSize,22)hold offdisp(-)disp( x(i) = 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5)disp(-)disp(S(i+0.5)= num2str(yprint(1) num2str(yprint(2) . num2str(yprint(3) num2str(yprint(4) num2str(yprint(5). num2str(yprint(6) num2str(yprint(7) num2str(yprint(8). num2str(yprint(9) num2str(yprint(10)disp(-)输出三次样条函数的系数S = -0.0085 -0.0015 0.8000 2.5100 -0.0045 -0.0270 0.7715 3.3000 -0.0037 -0.0404 0.7041 4.0400 -0.0409 -0.0514 0.6123 4.7000 0.1074 -0.1741 0.3868 5.2200 -0.2685 0.1479 0.3606 5.5400 0.4266 -0.6575 -0.1491 5.7800 -0.2679 0.6222 -0.1844 5.4000 0.0549 -0.1814 0.2565 5.5700 0.0584 -0.0168 0.0584 5.7000打印出的值- x(i) = 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5-S(i+0.5)= 2.9086 3.6784 4.3815 4.9882 5.3833 5.7237 5.5944 5.4299 5.6598 5.7323-输出拟合曲线:Fig2 三次样条曲线分析:由图形可以看出,三阶样条曲线非常光滑,用该法能获得很好的拟合效果。五、结论对数据进行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论