三次样条函数的自动求法(学院+专业+学号).docVIP

三次样条函数的自动求法(学院+专业+学号).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
三次样条函数的自动求法(学院专业学号)

三次样条函数的自动求法 摘要:在MATLAB的The Spline Toolbox 中,没有给出三次样条函数表达的求法,可在教学过程中,或在实际问题中,我们需要知道样条插值函数的分段表达式。在现行数值分析教材中,一般都是通过解方程确定三次样条插值函数的表达式,但这种方法的工作量很大。在本文中,我们用MATLAB语言编制了三个程序,给出在三种边界条件下,三次样条插值函数表达式的自动求法。 关键词:三次样条函数;边界条件;插值 0 引言 分段低次插值多项式具有计算简单、收敛性有保证、数值稳定等优点,但它不能保证整条曲线的光滑性甚至连续性,从而不能满足一些工程技术的要求。从20 世纪60 年代开始,由航空、造船等工程设计的需要而发展起来的样条插值方法,既保留了分段低次插值多项式的各种优点,又保证了插值函数的光滑性,已在许多领域里得到越来越广泛的应用。在教学过程中,或在实际问题中,我们需要知道样条插值函数的分段表达式。可在MATLAB的The Spline Toolbox 中,没有直接给出三次样条函数表达式的求法,在现行数值分析教材中,一般都是在给定条件下,通过解方程而确定三次样条插值函数的表达式,尽管在计算过程中可借助数学软件来完成,但这种方法的工作量仍然很大。本文中,利用数学软件MATLAB,我们给出了三次样条插值函数表达式的自动求法,这样不但解决了上述问题,而且给出了用数学软件解决实际问题的一个范例。 1 计算方法 定义对于给定的函数值 其中,如果函数满足条件: (1)在每个子区间[](k=1,2,)上都是不高于三次的多项式; (2)、、在[a,b]上都连续; (3)。 则称为函数关于节点的三次样条插值函数。 要求三次样条插值函数,只需在每个子区间[]上确定一个三次多项式 共有4个系数,确定它们需要4个条件,因此要完全确定共需4n个条件。由所满足的条件(1)、(2)、(3),可确定4n-2个条件,还缺少两个条件。这两个条件通常由实际问题对三次样条插值函数在端点的状态要求给出,称之为边界条件,常用的边界条件有以下三类。 第一类边界条件:给定端点处的一阶导数值 , 第二类边界条件:给定端点处的二阶导数值 , 当, 时,在端点处不受力,呈自然状态,故称之为自然边界条件。 第三类边界条件是周期性条件:如果是以b-a为周期的函数,也应是以b-a为周期的函数,于是在端点处满足条件 设,记,则可用表示: (1) 若记 (2) 在第一类边界条件下,可得确定、、……、的线性方程 (3) 其中 在第二类边界条件下,可得确定、、……、的线性方程组 (4) 其中:,。在第三类边界条件下,可得确定、……、的线性方程组 (5) 其中 2 主要结果 在MATLAB的The Spline Toolbox 中,没有直接给出三次样条函数表达式的求法,只给出其向量表示形式。根据(1)~(5)式,我们用MATLAB 语言编制了三个小程序,给出了在常用的三种边界条件下的三次样条插值函数表达式的自动求法。 命题 三种边界条件下的三次样条插值函数可分别由以下程序自动求得。 源程序 1 function S=spf1(x,y,xx,m) %1 此函数为三次样条插值函数,计算满足边界条件一时的插值函数(此时需要定义一个系统变量’xx’,即 syms xx),函数的系数输出形式为分数,如果系数要以小数形式输出,请给出精度m。 %2 如果给出的变量xx 不是系统变量,而是一组数值,则计算满足边界条件一时在xx 处的插值。 %3 输入时请将边界条件(即插值函数在两端点的一阶导数)%放在向量y 的第一个分量和最后一个分量。 %4 如果不输入边界条件,默认插值函数在两端点的一阶导数均为零。 n=length(x); If n2,error(There should be at least two data points.),end If any(diff(x)0),[x,ind]=sort(x);else,ind=1:n;end x=x(:);dx=diff(x); If all(dx)==0,error(The data abscissae should be distinct.),end [yd yn]=size(y);%if Y happen to be a column % matrix,change it to the expected row matrix. If yn==1,yn=yd;y=reshape(y,1,yn)

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档