- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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函数,
您可能关注的文档
最近下载
- 标准的个人简历表格[空白].doc VIP
- 开放系统11879《小学语文教学研究》期末机考真题及答案(第102套).docx VIP
- 2025年新教科版科学四年级下册全册知识点(超全版).pdf
- 《sm-3酶标仪说明书》.doc VIP
- 3篇《严禁违规操办“升学宴廉政承诺书》谈话记录.docx VIP
- 2025中国工商银行软件开发中心社会招聘笔试备考题库及答案解析.docx VIP
- 老年常见病的预防与照护教学大纲.docx
- 六年级科学上册(教科版)全册同步练习(含答案).pdf VIP
- 2025年新人教版七年级下册历史全册知识点(新教材).pdf VIP
- 基于项目式学习的初中生物综合实践活动案例论文.docx
文档评论(0)