数值分析论文.doc

上传人:仙人指路1688 文档编号:3944056 上传时间:2023-03-28 格式:DOC 页数:13 大小:357.50KB
返回 下载 相关 举报
数值分析论文.doc_第1页
第1页 / 共13页
数值分析论文.doc_第2页
第2页 / 共13页
数值分析论文.doc_第3页
第3页 / 共13页
数值分析论文.doc_第4页
第4页 / 共13页
数值分析论文.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《数值分析论文.doc》由会员分享,可在线阅读,更多相关《数值分析论文.doc(13页珍藏版)》请在三一办公上搜索。

1、概述:样条(Spline)在英语中指的是富有弹性的细长木条.样条曲线是指工程师制图时,用压铁将样条固定在样点上,其他地方让它自由弯曲,然后画下的长条曲线.样条函数的数学是指是由一些按照某种光滑性条件分段拼接起来的多项式组成的函数.最常用的样条函数是三次样条.在这个情形下,将三次多项式拼接在一起使得所得的样条函数处处有二阶连续导数.对于有n+1个节点三次插值函数,可以由各个节点以及端点处的函数值 一阶导数值 二阶导数值相等而获得共计4n个条件,可以确定4n个待定参数.而S(x)在每一个子区间上都是三次多项式,有4个待定系数,n个子区间共有4n个待定系数,恰好等于S(x)满足条件的个数.关键词:三

2、次样条,插值函数、MARLAB一、引言 函数来表示变量间的数量关系广泛应用于各学科领域。但是在实际问题中,往往是通过实验、观测以及计算等方法,得到的是函数在一些点上的函数值。如何通过这些离散的点找出函数的一个满足精度要求且便于计算的近似表达式,是非常必要的。其中通过插值的方法求出函数的近似表达式是极常用的求解方法。分段低次样条插值虽然计算简单、稳定性好、收敛性有保证且易在电子计算机上实现,但只能保证各小段曲线在连接处的连续性,不能保证整件曲线的光滑性。利用样条插值,既可保持分段低次插值多项式,又可提高插值函数光滑性。故给出分段三次样条插值的构造过程、算法步骤,利用MATLAB软件编写三次样条插

3、值函数通用程序,并通过数值算例证明程序的正确性。二、问题重述对于,考虑的三次样条插值函数,使得,且满足第一类边界条件, 。验证在区间上满足其中, , , , ,而 可由递推公式所确定。三、三转角样条插值函数的推导考虑第i个三次函数,该函数的导数为二次函数并且过两定点,设二次函数过点,利用抛物线插值公式,可得:整理得利用条件得另一方面,对积分,整理得由连续性联立代入条件的微分和积分等式,可得从而代回积分等式则得三转角样条插值函数。五、计算机实现利用Matlab编程来拟合具体函数并进行图像拟合程度的比较。(1)令,取n个等距节点拟合函数,其中n=10,20,40,80,160,320,640,对下

4、列函数进行三转角样条插值:(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内这样可

5、以有效的将点列向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

6、)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

7、; 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; 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)end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号