数值分析2实验报告.docVIP

  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文档。上传文档
查看更多
航空大学 数学与信息科学学院 实 验 报 告 课程名称: 实验名称: 实验类型: 验证性■综合性□设计性□ 实验室名称: 班级学号: 姓名: 任课教师(教师签名): 成绩: 实验日期: 一、实验目的及题目 1、实验目的: (1) 了解插值方法和掌握插值的应用,能够编译相关的插值程序。 (2) 掌握matlab软件的使用。 (3) 加深插值的理论原理。 2、实验题目: 题目1 已知下列数据 0.30 0.42 0.50 0.58 0.66 0.72 1.04403 1.08462 1.11803 1.15603 1.19817 1.23223 作五次插值,并分别求x=0.46,0.55,0.60 时的近似值。 题目2 编写一个用于牛顿均差插值公式计算函数值的程序,要求先输出均差表, 再计算x点的函数值,并用于下面数据: 20 21 22 23 24 1.30103 1.32222 1.34242 1.36173 1.38021 求x=21.4时的三次插值多项式的值。 二、实验原理、程序框图、程序代码等 1. 实验原理: 题目1 运用的是构造拉格朗日(Lagrange)插值多项式来求解的。拉格朗日法构造的多项式形式如下: 其中称为插值基数,且满足条件 近似多项式的余项为: 其中。 当n=1时,称为线性插值n=2时,称为二次插值或抛物线插值,精度相对高些 题目2 运用的是构造牛顿插值多项式来求解的。在拉格朗日插值方法中,若增加一个节点数据,其插值的多项式需重新计算。现构造一个插值多项式,只需对作简单修正(如增加某项)即可得到,这样计算方便。利用牛顿插值公式,当增加一个节点时,只需在后面多计算一项,而前面的计算仍有用;另一方面的各项系数恰好又是各阶差商,而各阶差商可用差商公式来计算。 由线性代数知,对任何一个不高次的多项式 (幂基) 也可将其写成 其中为系数,为给定节点,可由求出 即可得到插值多项式。 function lag(x,y,xi) dxi=xi-x; n=length(x); %n为数组x的长度 L=zeros(size(y)); L(1)=prod(dxi(2:n))/prod(x(1)-x(2:n)); %构造拉格朗日多项式 L(n)=prod(dxi(1:n-1))/prod(x(n)-x(1:n-1)); for j=2:n-1 num=prod(dxi(1:j-1))*prod(dxi(j+1:n)); den=prod(x(j)-x(1:j-1))*prod(x(j)-x(j+1:n)); L(j)=num/den; end yi=sum(y.*L); fprintf(x=%f,y=%f,xi,yi); %打印结果 plot(x,y,’-’,x,L(n),’y’) 题目2的代码: function newton(x,y,m) %m为将要插入的数据 %以下可以输出差分表 n=length(x); fprintf(*****************差分表**************************\n); F=ones(n,n); F(:,1)=y; for i=2:n for j=i:n F(j,i)=(F(j,i-1)-F(j-1,i-1))/(x(j)-x(j-i+1)); end end for i=1:n fprintf(%4.2f,x(i)); for j=1:i fprintf(%10.5f,F(i,j)); end fprintf(\n); end % 以下代码为计算多项式函数P(x)的值 P=y(2); k=2; for i=1:3 % 插值次数 此处为3次插 d=F(i,i+1); for j=2:k d=d*(m-x(j)); end P=P+d; k=k+1; end fprintf(插值多项式P=%f\n,P); 三、实验过程中需要记录

文档评论(0)

企业资源 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档