数值分析课程设计--多项式插值的振荡现象

数值分析课程设计--多项式插值的振荡现象

ID:8782172

大小:687.00 KB

页数:18页

时间:2018-04-07

数值分析课程设计--多项式插值的振荡现象_第1页
数值分析课程设计--多项式插值的振荡现象_第2页
数值分析课程设计--多项式插值的振荡现象_第3页
数值分析课程设计--多项式插值的振荡现象_第4页
数值分析课程设计--多项式插值的振荡现象_第5页
资源描述:

《数值分析课程设计--多项式插值的振荡现象》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数值分析课程设计多项式插值的振荡现象林思辉9指导教师李娇娇讲师学院名称理学院专业名称信息与计算科学提交日期2008年5月17一、问题的提出考虑在一个固定区间上用插值逼近一个函数。显然,Lagrange插值中使用的节点越多,插值多项式的次数就越高。我们自然关心插值多项式增加时,Ln(x)是否也更加靠近被逼近的函数。龙格(Runge)给出的一个例子是极著名并富有启发性的。设区间[-1,1]上的函数二、实验内容考虑区间[-1,1]的一个等距划分,节点为则拉格朗日插值多项式为其中的ai(x),i=0,1,2,…,n是n次Lagrange插值

2、基函数。三、实验结果及分析当节点为,n=2,最大误差L=0.17分点数n=3,最大误差L=0.分点数n=4,最大误差L=0.17分点数n=5,最大误差L=0.分点数n=6,最大误差L=0.17分点数n=7,最大误差L=0.分点数n=8,最大误差L=1.17分点数n=9,最大误差L=0.分点数n=10,最大误差L=1.17分点数n=11,最大误差L=0.分点数n=12,最大误差L=3.17再选一定义在区间[-5,5]上的函数,重复上面的实验。结果为切比雪夫函数:考虑区间[-1,1]上的函数节点为分点数n=2,最大误差L=0.17分点数

3、n=3,最大误差L=0.分点数n=4,最大误差L=0.17分点数n=5,最大误差L=0.分点数n=6,最大误差L=0.17分点数n=7,最大误差L=0.分点数n=8,最大误差L=0.17分点数n=9,最大误差L=0.分点数n=10,最大误差L=0.17分点数n=11,最大误差L=0.分点数n=12,最大误差L=0.17误差分析:1)结果分析:普通的Lagrange插值与切比雪夫函数式中使用的节点越多,插值函数与原函数越逼近,因此结果有效。2)误差分析:本题是以Lagrange插值的振荡现象为代表来考察多项式的振荡现象,其误差是在插值

4、过程中原函数值与插值函数值的差造成的。一、关于本设计的体会程序比较简单易明,执行效率较高,但程序只能这对单一的插值公式,使用JAVA来解题,对画图造成影响,使画图难度加大,若使用MATLAB会跟方便解题。二、参考文献《JAVA程序设计教程》、《数值分析》三、附录(1)、程序代码:importjava.util.Scanner;classSF{publicstaticvoidmain(String[]args){intMAX=2000;double[]a=newdouble[MAX];double[]b=newdouble[MAX];

5、double[]c=newdouble[MAX];double[]d=newdouble[MAX];double[]t=newdouble[MAX];double[]q=newdouble[MAX];double[]m=newdouble[MAX];doublef,p,y;inti,j,r,n,g,v;Scannerscan=newScanner(System.in);System.out.println("1--f(x)"+"2--h(x)"+"3--切比雪夫");System.out.printf("输入v:");v=s

6、can.nextInt();System.out.printf("输入n:");n=scan.nextInt();if(v==1){for(g=2;g<=n;g++)//g为公式中的n{for(r=0;r<=1000;r++){t[r]=-1+2*(double)r/1000;//将X在区间内分成1000份q[r]=1/(1+25*t[r]*t[r]);//q[r]为该点真实函数值17for(i=0;i<=g;i++)a[i]=-1+(2*(double)i/g);//a[i]即x[i]for(j=0;j<=g;j++){b[j]=

7、1.0;for(i=0;i<=g;i++)if(i!=j)b[j]=b[j]*(t[r]-a[i])/(a[j]-a[i]);}//b[i]为公式里a[i]y=0.0;for(j=0;j<=g;j++)y=y+b[j]/(1+25*a[j]*a[j]);//y为n=2公式得出的函数值d[r]=Math.abs(y-q[r]);//d[r]为1000个节点的误差if(d[r]>m[g])m[g]=d[r];//得出误差的最大值}System.out.printf("n=%d",g);System.out.printf("m=%f

8、n",m[g]);}}if(v==2){for(g=2;g<=n;g++){for(r=0;r<=1000;r++){t[r]=-5+10*(double)r/1000;for(i=0;i<=g;i++){a[i]=-5+(10*(d

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。