网站大量收购闲置独家精品文档,联系QQ:2885784924

实验次样条插值实验.docVIP

实验次样条插值实验.doc

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

数值分析实验报告 姓 名 忘川 学 号 1205025106 系 别 数学系 班级 12级 主讲教师 指导教师 实验日期 2014/6/25 专业 信息与计算科学专业 课程名称 数值分析 同组实验者 无 一、实验名称: 实验四、三次样条插值实验 实验目的: 1. 掌握三次样条插值的运用; 2. 了解拉格朗日插值在高次上的误差。 三、实验内容及要求: 给定函数节点 (1)编写三次样条程序求,取 (2)作原函数、Langrage插值函数和三次样条插值函数的图像,并比较它们的区别。 附: 算法描述: 三次样条插值(Cubic Spline Interpolation) PURPOSE: To find a piecewise cubic spline function . (,,? ). where , and ,?. INPUT: interpolated points; clamped boundary condition. OUTPUT: Step 1 For Step 2 By clamped boundary condition, Set ,, Step 3 Solve tri-diagonal system Step 4 Output . Stop 四、实验步骤(或记录) (1)编写三次样条程序求,取 程序如下: function [s,m]=selfspline(x0,y0,df,x,conds) n=length(x0); h=diff(x0); b=ones(1,n)*2; for j=2:n-1 a(j)=h(j-1)/(h(j-1)+h(j)); c(j)=h(j)/(h(j-1)+h(j)); d(j)=6*(h(j-1)*(y0(j+1)-y0(j))-h(j)*(y0(j)-y0(j-1)))/(h(j)*h(j-1)*(h(j)+h(j-1))); end a(1:n-2)=a(2:n-1); switch conds case 1 a(n-1)=1; c(1)=1; d(1)=6*((y0(2)-y0(1))/(x0(2)-x0(1))-df(1))/(x0(2)-x0(1)); d(n)=6*(df(2)-(y0(n)-y0(n-1))/(x0(n)-x0(n-1)))/(x0(n)-x0(n-1)); case 2 a(n-1)=0; c(1)=0; d(1)=2*df(1); d(n)=2*df(2); otherwise error(conds值错误, conds只能为1或2) end for i=2:n r=a(i-1)/b(i-1); b(i)=b(i)-r*c(i-1); d(i)=d(i)-r*d(i-1); end m(n)=d(n)/b(n); for i=n-1:-1:1 m(i)=(d(i)-c(i)*m(i+1))/b(i); end for j=1:length(x) for i=1:n-1 if x(j)=x0(i)x(j)=x0(i+1) s(j)=m(i)*(x0(i+1)-x(j))^3/(6*h(i))+m(i+1)*(x(j)-x0(i))^3/(6*h(i))+(y0(i)-m(i)*h(i)^2/6)*(x0(i+1)-x(j))/h(i)+(y0(i+1)-m(i+1)*h(i)^2/6)*(x(j)-x0(i))/h(i); end end end 在matlab的命令窗口输入: k=0:10; x0=-5+k; y0=1./(x.^2+1); x=-5:0.5:5; y=1./(x.^2+1); df=diff(y) 得到如下数据: df = 0.0086 0.0118 0.0166 0.0245 0.0379 0.0621 0.1077 0.1923 0.3000 0.2000 -0.2000 -0.3000 -0.1923 -0.1077 -0.0621 -0.0379 -0.0245 -0.0166 -0.0118 -0.

文档评论(0)

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

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

1亿VIP精品文档

相关文档