数值分析论文.doc_第1页
数值分析论文.doc_第2页
数值分析论文.doc_第3页
数值分析论文.doc_第4页
数值分析论文.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

概述:样条(spline)在英语中指的是富有弹性的细长木条.样条曲线是指工程师制图时,用压铁将样条固定在样点上,其他地方让它自由弯曲,然后画下的长条曲线.样条函数的数学是指是由一些按照某种光滑性条件分段拼接起来的多项式组成的函数.最常用的样条函数是三次样条.在这个情形下,将三次多项式拼接在一起使得所得的样条函数处处有二阶连续导数.对于有n+1个节点三次插值函数,可以由各个节点以及端点处的函数值 一阶导数值 二阶导数值相等而获得共计4n个条件,可以确定4n个待定参数.而s(x)在每一个子区间上都是三次多项式,有4个待定系数,n个子区间共有4n个待定系数,恰好等于s(x)满足条件的个数.关键词:三次样条,插值函数、marlab一、引言 函数来表示变量间的数量关系广泛应用于各学科领域。但是在实际问题中,往往是通过实验、观测以及计算等方法,得到的是函数在一些点上的函数值。如何通过这些离散的点找出函数的一个满足精度要求且便于计算的近似表达式,是非常必要的。其中通过插值的方法求出函数的近似表达式是极常用的求解方法。分段低次样条插值虽然计算简单、稳定性好、收敛性有保证且易在电子计算机上实现,但只能保证各小段曲线在连接处的连续性,不能保证整件曲线的光滑性。利用样条插值,既可保持分段低次插值多项式,又可提高插值函数光滑性。故给出分段三次样条插值的构造过程、算法步骤,利用matlab软件编写三次样条插值函数通用程序,并通过数值算例证明程序的正确性。二、问题重述对于,考虑的三次样条插值函数,使得,且满足第一类边界条件, 。验证在区间上满足其中, , , , ,而 可由递推公式所确定。三、三转角样条插值函数的推导考虑第i个三次函数,该函数的导数为二次函数并且过两定点,设二次函数过点,利用抛物线插值公式,可得:整理得利用条件得另一方面,对积分,整理得由连续性联立代入条件的微分和积分等式,可得从而代回积分等式则得三转角样条插值函数。五、计算机实现利用matlab编程来拟合具体函数并进行图像拟合程度的比较。(1)令,取n个等距节点拟合函数,其中n=10,20,40,80,160,320,640,对下列函数进行三转角样条插值:(a)当n=20,160,640时的拟合图像如下:n=20n=160n=640(b), 分别在在matlab中执行splinef_b;输入不同的n值得到拟合图像n=20n=80n=640从图像可见,利用三转角样条插值拟合时在函数不连续点处会出现一定误差。下文会采用不用插值点的选择来减少误差。(c) 分别在,其中是一个小量。在matlab中执行splinef_c;输入不同的n值得到拟合图像,取小量值为1e-6n=20n=80n=640(2)取不均等间隔点拟合(b)由观察发现,在t=0附近误差较大,为了减小误差应尽量使0附近插值点多一些,因此采用的点列,在-1,1内这样可以有效的将点列向0收缩。在matlab中执行splinef_b2;输入不同的n值得到拟合图像n=20n=80n=640六、利用三转角插值函数画出一个手写字母。参考文献现代数值数学和计算,同济大学出版社;matlab 6.0数学手册,浦东电子出版社。附录1、 splinef.mfunction s=splinef(t0,f0,b0,bn,t)n=length(t0)-1;km=length(t);for j=1:n h(j)=t0(j+1)-t0(j);endfor j=1:(n-1) z(j)=3*f0(j+1)*(1/(h(j)2-1/(h(j+1)2)+. 3*(f0(j+2)/h(j+1)2-f0(j)/h(j)2);endz(1)=z(1)-b0/h(1);z(n-1)=z(n-1)-bn/h(n);z=z;for j=2:(n-2) a(j,j)=2*(1/h(j)+1/h(j+1); a(j,j-1)=1/h(j); a(j,j+1)=1/h(j+1);enda(1,1)=2*(1/h(1)+1/h(2);a(1,2)=1/h(2);a(n-1,n-1)=2*(1/h(n-1)+1/h(n);a(n-1,n-2)=1/h(n);b=az;b=b;b=b0 b bn;%-for k=1:km for j=1:n if (t(k)=t0(j)&(t(k)0) f0(j)=1; if (t0(j)=0) f0(j)=1/2; if (t0(j)0) f0(j)=0; end end endendt=-1:0.01:1;ss=splinef(t0,f0,0,0,t);plot(t,ss)endfunction splinef_cn=input(enter n: );e=input(enter e(e) f0(j)=1; if (t0(j)-e)&(t0(j)e) f0(j)=(t0(j)+e)/(2*e); if (t0(j)0) f0(j)=1; i

温馨提示

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

评论

0/150

提交评论