三次样条拟合典型实例_第1页
三次样条拟合典型实例_第2页
三次样条拟合典型实例_第3页
三次样条拟合典型实例_第4页
三次样条拟合典型实例_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上1设计目的、要求 对龙格函数在区间-1,1上取的等距节点,分别作多项式插值、三次样条插值和三次曲线拟合,画出及各逼近函数的图形,比较各结果。2设计原理(1) 多项式插值:利用拉格朗日多项式插值的方法,其主要原理是拉格朗日多项式,即:表示待插值函数的个节点,其中;(2) 三次样条插值:三次样条插值有三种方法,在本例中,我们选择第一边界条件下的样条插值,即两端一阶导数已知的插值方法: (3)三次曲线拟合:本题中采用最小二乘法的三次多项式拟合。最小二乘拟合是利用已知的数据得出一条直线或者曲线,使之在坐标系上与已知数据之间的距离的平方和最小。在本题中,n= 10,故有11个点

2、,以这11个点的和值为已知数据,进行三次多项式拟合,设该多项式为,该拟合曲线只需的值最小即可。3采用软件、设备 计算机、matlab软件4设计内容1、 多项式插值:在区间上取的等距节点,带入拉格朗日插值多项式中,求出各个节点的插值,并利用matlab软件建立m函数,画出其图形。在matlab中建立一个lagrange.m文件,里面代码如下:%lagrange 函数function y=lagrange(x0,y0,x)n=length(x0);m=length(x);for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j=k p=p*(

3、z-x0(j)/(x0(k)-x0(j); end end s=p*y0(k)+s; end y(i)=s;end建立一个polynomial.m文件,用于多项式插值的实现,代码如下:%lagrange插值x=-1:0.2:1;y=1./(1+25*x.2);x0=-1:0.02:1;y0=lagrange(x,y,x0);y1=1./(1+25*x0.2);plot(x0,y0,'-r')%插值曲线hold on%原曲线plot(x0,y1,'-b')运行duoxiangshi.m文件,得到如下图形:2、 三次样条插值:所谓三次样条插值多项式是一种分段函数,它

4、在节点分成的每个小区间上是3次多项式,其在此区间上的表达式如下:因此,只要确定了的值,就确定了整个表达式,的计算方法如下:令:则满足如下个方程:对于第一种边界条件下有如果令那么解就可以为 求函数的二阶导数:>> syms x>> f=sym(1/(1+25*x2) f =1/(1+25*x2) >> diff(f) ans = -(50*x)/(25*x2 + 1)2将函数的两个端点,代入上面的式子中:f(-1)= 0.0740f(1)=-0.0740 求出从-1到1的n=10的等距节点,对应的x,y值 对应m文件代码如下:for x=-1:0.2:1 y=

5、1/(1+25*x2)endy =得出x=-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1y=0.0385 0.0588 0.1 0.2 0.5 1 0.5 0.2 0.1 0.0588 0.0385 编写m文件Three_Spline.mx=linspace(-1,1,11);y=1./(1+25*x.2);m,p=scyt1(x,y,0.0740,-0.0740);hold onx0=-1:0.01:1;y0=1./(1+25*x0.2);plot(x0,y0,'-b')得到如下图像:.其中蓝色曲线为原图,红色曲线为拟合后的图像。3、 三

6、次曲线拟合:这里我们使用最小二乘法的3次拟合建立一个Three_fitting .m文件,代码如下:%主要代码x=-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1;y=0.0385 0.0588 0.1 0.2 0.5 1 0.5 0.2 0.1 0.0588 0.0385;a=polyfit(x,y,3);x1=-1:0.01:1;y1=a(4)+a(3)*x1+a(2)*x1.2+a(1)*x1.3;x0=-1:0.01:1;y0=1./(1+25*x0.2)%原曲线plot(x0,y0,'-r')hold on%三次拟合曲线plot(x

7、1,y1,'-b')上图中,蓝色部分为三次拟合曲线,红色部分为原曲线6结果分析拉格朗日插值的优点是对于某一区域,不限于被估计点周围,公式简单易实施。一般认为n的次数越高,逼近的精度就越好,但在本题中,对龙格函数,中间部分插值效果比较好,而对于两端,插值结果是非常不理想的,即龙格现象。样条函数可以给出光滑的插值曲线,从本题中就能体现出来。从以上图形可以看出,三次样条插值的图形是比较逼近于原图的,收敛性相对而言是非常好的,但在本题中,仅将原区间分成10个等距区间,因此,逼近效果还不是特别理想,当我们将n增大时,插值后的曲线越逼近于原曲线。总的来说,三次样条插值的稳定性比较好,收敛性

8、比较强。在这三种方法中,三次曲线拟合的效果是最差的,所得的图形与原曲线差距甚远。最小二乘法中,并不要求拟合后的曲线经过所有已知的点,只需要拟合多项式上的点在某种标准上与定点之间的差距最小即可,因此与原曲线的逼近程度是最差的。最小二乘法的多项式拟合只适用于多项式,而本题中的函数并不是一个多项式,因此,不建议使用最小二乘法拟合。参考文献:1 李庆扬 王能超等.数值分析M.清华大学出版社2 吴振远.科学计算实验指导书 基于MATLAB数值分析M. 中国地质大学出版社3 宋叶志. MATLAB数值分析与应用M. 机械工业出版社 , 2009.07附录三次样条插值主要代码:function m,p=sc

9、yt1(x,y,df0,dfn)n=length(x);r=ones(n-1,1);u=ones(n-1,1);d=ones(n,1);r(1)=1;d(1)=6*(y(2)-y(1)/(x(2)-x(1)-df0)/(x(2)-x(1);u(n-1)=1;d(n)=6*(dfn-(y(n)-y(n-1)/(x(n)-x(n-1)/(x(n)-x(n-1);for k=2:n-1 u(k-1)=(x(k)-x(k-1)/(x(k+1)-x(k-1); r(k)=(x(k+1)-x(k)/(x(k+1)-x(k-1); d(k)=6*(y(k+1)-y(k)/(x(k+1)-x(k)-(y(k)

10、-y(k-1)/(x(k)-x(k-1)/(x(k+1)-x(k-1);endA=eye(n,n)*2;for k=1:n-1 A(k,k+1)=r(k); A(k+1,k)=u(k);endm=Ad;ft=d(1);syms tfor k=1:n-1 %求s(x)即插值多项式 p(k,1)=m(k)/(6*(x(k+1)-x(k); p(k,2)=m(k+1)/(6*(x(k+1)-x(k); p(k,3)=(y(k)-m(k)*(x(k+1)-x(k)2/6)/(x(k+1)-x(k); p(k,4)=(y(k+1)-m(k+1)*(x(k+1)-x(k)2/6)/(x(k+1)-x(k); sx(k)=p(k,1)*(x(k+1)-t)3+p(k,2)*(t-x(k)3+p(k,3)*(x(k+1)-t)+p(k,4)*(t-x(k);endkmax=1000;xt=linspace(x(1),x(n),kmax);for i=1:n-1 %出点xt对应的y值 for k=1:kmax if x(i)<=xt(k)&xt(k)<=x(i+1) fx(k)=subs(sx(i),xt(k); endendendp

温馨提示

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

评论

0/150

提交评论