数值分析报告Lagrange差值和牛顿插值.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  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文档。上传文档
查看更多
数值分析报告Lagrange差值和牛顿插值.doc

实验一 一、实验名称 Lagrange插值多项式和牛顿插值多项式 二、实验目的与要求: 实验目的:掌握Lagrange插值多项式和牛顿插值多项式的算法。 实验要求:1. 给出Lagrange插值和牛顿插值算法思路, 2. 用C语言实现算法,运行环境为Microsoft Visual C++, 3. 计算误差(这里只要求给出(-5,5)内101个点的误差)。 三、实验内容: 1. 对Lagrange插值多项式算法作编程练习和上机运算, 2. 对牛顿插值多项式算法作编程练习和上机运算, 3. 比较两种方法。 算法思路: 1. Lagrange算法是把多项式p写成如下形式: , 其中称为Lagrange基函数。 计算Lagrange基函数的方法: fx=0.0; for(i=0;i=n;i++){ tmp=1.0; for(j=0;ji;j++) tmp=tmp*(x-x[j])/(x[i]-x[j]); for(j=i+1;jn;j++) tmp=tmp*(x-x[j])/(x[i]-x[j]); fx=fx+tmp*y[i]; } return(fx); 2. 牛顿算法是把多项式p写成如下形式: 其中是插值点,是待定系数。可以通过插值点和插值点处的函数值算出待定系数,方法如下: (1) (2) 将(1) - (2)并利用,得 算法: c[0]=y1[0]; for( k=1; k = N; k++) { d=x1[k]-x1[k-1]; u=c[k-1]; for( i =k-2 ; i = 0 ; i --) { u=u*(x1[k]-x1[i])+c[i]; d=d*(x1[k]-x1[i]); } c[k]=(y1[k]-u)/d; } 3. 这里,我们先编写两个函数px1和px2,分别用来计算插值节点取和Chebyshev point ,i=0,1,…,N时的Lagrange多项式函数或牛顿多项式函数,然后在main函数中,主要目的是计算误差|f(x) - p(x)|在(-5,5)内101个点处的最大值,其中当然要引用前面编写的两个函数px1和px2,最后将N=5,10,20,40时两种情况下的最大误差输出,并分析结果。 四、实验题目: 对函数,构造Lagrange插值多项式和牛顿插值多项式,插值节点取为,i=0,1,…,N和,i=0,1,…,N (Chebyshev point), 并计算如下误差 对N=5,10,20,40比较以上两组节点的结果。 编写程序(程序见后面附录),输出结果如下: 1.Lagrange插值法结果: 可以看出: (1)对于该函数而言,N值越大,即插值点数越多,相对误差(大概地)越小,但是要求得严格的误差,应该取|f(x)-p(x)|在区间(-5,5)上的最大值。这里认为该区间上101个点足够密集,而且f(x)- p(x)在(-5,5)上是一致连续的,所以将其看作所求误差是合理的。 (2) Max Error of grid(1)总是小于Max Error of grid(2),而且Max Error of grid(1)迅速收敛到零,然而Max Error of grid(2)则很缓慢地向零靠拢,这说明该函数f(x)用(-5,5)上平均分布的N个点得到的Lagrange函数比用(-5,5)上N个Chebyshev point更靠近原函数f(x)。 2. 牛顿插值法得到的结果: 可以看出: (1)单独地观察这组数据,会得到和Lagrange插值法一样的结论,对于该函数而言,N值越大,即插值点数越多,相对误差(大概地)越小,Max Error of grid(1)总是小于Max Error of grid(2),且Max Error of grid(1)更迅速地收敛到零。 (2)和Lagrange插值法数据比较,我们会发现当取相同的插值点时,两种方法得到的误差结果是一样的。追究其原因知,这是多项式插值定理决定两组数据必定是相同的,多项式插值定理是这样阐述的,若是不同的实数,则对任意数值,存在唯一的次数至多是n次的多项式P(x),使得,所以两种方法算得的Lagrange多项式和牛顿多项式实质上是同一个函数P(x),故 当然是相同的了。 五、附录: 实验编程,运行环境为Microsoft Visual C++ A.Lagrange插值多项式法: #includestdio.h #includemath.h double px1(float w,int N) /*构造变量为w的Lagrange函数,

文档评论(0)

整理王 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档