研一上学期学校开了数值分析这门课而且要求用matlab进行上机.DOC

研一上学期学校开了数值分析这门课而且要求用matlab进行上机.DOC

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
研一上学期学校开了数值分析这门课而且要求用matlab进行上机

研一上学期,学校开了数值分析这门课,而且要求用matlab进行上机试验,经过一段时间的学习,对matlab有了最初步的了解,结合所学课程,废了好大的劲才编了几个小程序,希望对后来学习的人有点帮助。 1.题目/要求: 对Runge函数R(x)=1/1+x2, x∈[-5,5]分别用下列方法做插值函数,并与R(x)的图形进行比较。 (1)取等距节点xi=-5+i (i=0,1,……,10), 绘其10次Newton插值多项式。 (2)取节点(i=0,1,……,20) 绘其20次langrange插值多项式。 (3)取等距节点xi=-5+i (i=0,1,……,10), 绘其分段线性插值函数。 (4)取等距节点xi=-5+i (i=0,1,……,10), 绘其3次自然样条插值函数。 ? 2.算法程序 ① 牛顿插值 function yy=newton(x,y,xx) % yy=newton(x,y,xx)是求牛顿插值,其中x是插值节点,y是对应的向量,xx %是插值点,也可以是向量 disp(牛顿插值); x=-5:0.2:5 y=1./(1+x.^2) plot(x,y,r); hold on; xx=-5+[0:1:10] n=length(x); m=length(y); if m~=n error(向量x和向量y的长度必须一致) end w=ones(1,length(xx)); a(1)=y(1); yy=y(1); for k=2:n; a(k)=y(k); w=w.*(xx-x(k-1)); for i=1:k-1; a(k)=(a(i)-a(k))/(x(i)-x(k)); end yy=yy+w*a(k); end yy plot(xx,yy,k); title(龙格现象); ② 拉格朗日插值 function yy=lagr(x,y,xx) % yy=nalagr(x,y,xx)是求拉格朗日插值,其中x是插值节点,y是对应的向量,%xx是插值点,也可以是向量 disp(拉格朗日插值); x=-5:1:5 y=1./(1+x.^2) plot(x,y,r); hold on; xx=5.*cos((2.*[0:1:20]+1)*pi./42) m=length(x); n=length(y); if m~=n error(向量x和向量y的长度必须一致) end s=0; for i=1:n t=ones(1,length(xx)); for j=1:n if j~=i t=t.*((xx-x(j))/(x(i)-x(j))) end end s=s+t*y(i); end yy=s; yy plot(xx,yy,k); title(龙格现象); ③ 分段线性插值 function yy=interpline(x,y,xx) % yy=cutline(x,y,xx)是求分段线性插值,其中x是插值节点,y是对应的向量,xx是插值点,也可以是向量 disp(分段线性插值); x=-5:0.2:5 y=1./(1+x.^2) plot(x,y,r); hold on; xx=-5:5; t=ones(1,length(xx)); n=length(x); for j=0:10 xx=-5+j; for i=2:n if xxx(i) t=y(i-1)*(xx-x(i))/(x(i-1)-x(i))+y(i)*(xx-x(i-1))/(x(i)-x(i-1)); break end end yy(j+1)=t; end xx=-5:5 yy plot(xx,yy,k); ④ 三次样条插值 function m=naspline(x,y,dy0,dyn,xx) %针对龙格函数,本题的输入格式为:naspline(-5:1.2:5,1./(1+[-5:1.2:5].^2),5/338,-5/338,-5:1:5),其中 %dy0=5/338,dyn=-5/338可由龙格函数计算端点的导数得到 %用途:三阶样条插值(一阶导数边界条件) %格式:m=naspline(x,y,dy0,dyn,xx) %x为节点向量,y为与x对应的数据,dyo,dyn为左右两端点的一阶导数值,如果xx缺省, % 则输出各节点的一阶导数值,m为xx的三阶样条插值 n=length(x)-1;%计算小区间的个数 x=-5:1.2:5 y=1./(1+[-5:1.2:5].^2) h=diff(x); lemda=h(2:n)./(

您可能关注的文档

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档