多项式插值的震荡现象52140_第1页
多项式插值的震荡现象52140_第2页
多项式插值的震荡现象52140_第3页
多项式插值的震荡现象52140_第4页
多项式插值的震荡现象52140_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数值分析 课程设计多项式插值的震荡现象指导教师 学院名称 专 业 名 称提交日期一、 问题的提出在一个固定区间上用插值逼近一个函数。显然,拉格朗日插值中使用的节点越多,插值多项式的次数就越高。而插值多项式增加时,Ln(x)是否也更加靠近被逼近的函数。下面就这个问题展开实验。二、 实验内容1. 设区间-1,1上的函数fx=11+25x2,对其等距划分,写出其拉格朗日插值多项式为Lnx=i=0n11+25xi2ai(x)。通过不断增加分点数n=2,3,。并:I.画出原函数f(x)及插值多项式函数Ln(x)在-1,1上的图像;II.给出每一次逼近的最大误差;III.比较并分析实验结果。2. 选择其他

2、函数,如定义在区间-5,5上的函数hx=x1+x4和gx=arctanx,重复上述I、II、III三个步骤看其结果如何。3. 区间a,b上切比雪夫点的定义为xk=a+b2+b-a2cos(2k-12n+1),k=1,2,n+1。以x1, x2, xn+1为插值节点构造上述各函数的Lagrange插值多项式,比较其结果。三、 实验结果及分析1. I.画出函数f(x)及其插值多项式函数Ln(x)在-1,1上的图像,如下图,(程序代码1.1.1)II.由于fminbnd函数的不可靠性,先通过编程绘出每次逼近在定义区间上的误差如下图,(程序代码1.1.2)观察图像可知每次逼近的最大误差在哪个区间,再通

3、过编程缩小区间,得到其每次逼近最大误差为(截图如下),III.比较并分析实验结果:(1)在同一个坐标系中绘制f(x)及5次、7次等多次插值后的图像。从图中可以很清楚的看出,在-0.4,0.4的区间内,随着插值次数的增加插值图像越来越逼近f(x),然而当|x|>0.8以后,插值曲线围绕原函数曲线发生剧烈震荡现象,尤其是插值次数越多时震荡越强烈。(2)在同一个坐标系中绘制每次插值后的误差图像。从图中可以看出较大误差主要出现在中心及两段,而就每次逼近的最大误差分析。可以观察到:1.当插值次数在一定区间上增多时,其最大误差变小,即吻合度增高(5次插值最大误差是0.437,7次插值最大误差是0.2

4、474);2.而超过一定区间,随着插值次数增加其最大误差越大,而且其最大误差x的取值越趋向于两端,于是发生了震荡现象。2. h(x):I.画出函数h(x)及其插值多项式函数Ln(x)在-1,1上的图像,如下图(程序代码2.1.1): II. 同理先通过编程绘出每次逼近在定义区间上的误差如下图(程序代码2.1.2),再通过缩小区间,编程计算每次逼近最大误差如下(截图如下,程序代码):III.比较并分析实验结果:(1)在同一个坐标系中绘制h(x)及5次、10次等多次插值后的图像。与第一个实验相似,从图中可以看出,在-3,3的区间内,随着插值次数的增加插值图像越来越逼近h(x),然而当|x|>

5、4以后,插值曲线围绕原函数曲线发生剧烈震荡现象,而无论插值次数多少,震荡都很强烈。不过插值次数越多偏离越远,误差越大。(2)就每次逼近的最大误差分析。可以观察到:随着插值次数的增加,在区间-4,4,插值函数的吻合度越大,甚至可以忽略误差。而在两端却误差增大许多,而且越趋向于两端点。g(x):I.画出函数g(x)及其插值多项式函数Ln(x)在-1,1上的图像,如下图(程序代码2.2.1), II. 同理先通过编程绘出每次逼近在定义区间上的误差如下图(程序代码2.2.2),再通过缩小区间,编程计算每次逼近最大误差如下(截图):III.比较并分析实验结果:(1)在同一个坐标系中绘制g(x)及5次、1

6、0次等多次插值后的图像。从图中可以看出:与第1、2个函数不同,这里的10次插值函数整体拟合程度最好,在两端并没有发生较剧烈的震荡现象;而插值次数到了15或20次时,震荡非常强烈。(2)就每次逼近的最大误差分析。其结果与上两个函数大致一样,就不做详细说明了。3. 以切比雪夫点为插值点构造上述3个函数的拉格朗日插值公式,并画图,f(x)(程序代码3.1.1):h(x) (程序代码3.2.1):g(x) (程序代码3.3.1):先通过画图并观察,缩小区间得到每次逼近的最大误差:f(x) (程序代码3.1.2):(程序代码3.1.3)h(x) (程序代码3.2.2):(程序代码3.2.3)g(x) (

7、程序代码3.3.2):(程序代码3.3.3)通过观察3个原函数及插值函数图象,可以看出随着插值次数的增加插值图象越来越逼近原函数,围绕着原函数图像来回波动,并且在两端并没有出现震荡现象;而分析其3个函数的每次插值函数的误差图像及每次插值的最大误差。可知:较大的误差主要出现在区间的中心附近,越靠近两段,误差反而越小,而且插值次数越多,其最大误差越小,即拟合度更高。由此很明显,以切比雪夫点为插值点的插值函数,比等距划分插值点的插值函数有更好的拟合性和估计性。四、 关于本设计的体会做了两个星期的课程设计,首先的感触就是很烦,然后感觉收获了很多,包括对Matlab的熟悉程度有很大的提升、对Matlab

8、一些内置函数也有了很好的理解和运用、锻炼了自己自习找资料的能力。而做这个课程设计的主要的困难就是做出第一个函数的绘图、误差分析等等,因为后面无论是其它两个函数或者用切比雪夫点构造的三个函数的插值函数,都是万变不离其宗。而这次设计的过程和结果,也存在较多不足之处。对Matlab一些函数的不了解,导致花大量的时间走了弯路,并得到不太理想的结果,例如:无法通过一个循环语句;还有就是在分析结果时,不能很透彻的分析到位,尚且有待提高。五、 参考文献1任玉杰,数值分析及其MATLAB实现M,北京,高等教育出版社,20072史万明 吴裕树,数值分析M,北京,北京理工大学出版社,2010-4六、 附录I.运行

9、环境(计算机型号DELL N4030):II.运行时间:2012年5月30日星期三20:00III.程序代码:1. 定义两个m函数:f.m:function z=f(x)z=1/(1+25*(x2)Lf.m:function Ln=Lf(x,n)Ln=0 %初始化Lnfor i=1:n+1 X(i)=-1+2*(i-1)/n; %平均划分节点,并存储在X矩阵内endfor i=1:n+1 %该循环得出各项ai(x)f(xi)想加之和 q=f(X(i) for j=1:n+1 %该循环得出每一项的ai(x)f(xi) if i=j q=q*(x-X(j)/(X(i)-X(j) end end L

10、n=Ln+qend(程序代码1.1.1)【绘图】运行窗口主程序:fplot('f(x)',-1 1,'r') %画出原函数图像hold on %保留图像color='g','b','m','k','c','y' %定义颜色字符组fplot('Lf(x,5)',-1 1,color(1) %分别画出5,7,9,11,13,15次fplot('Lf(x,7)',-1 1,color(2) %插值的图像fplot('Lf(x,9)&#

11、39;,-1 1,color(3)fplot('Lf(x,11)',-1 1,color(4)fplot('Lf(x,13)',-1 1,color(5)fplot('Lf(x,15)',-1 1,color(6)legend('原函数','5次','7次','9次','11次','13次','15次')title('多项式插值的震荡现象') %表明图像名称axis(-1,1,-1,1) %缩小观察范围grid on %

12、图像中显示网格,易于观察(程序代码1.1.2)【绘图表示误差】运行窗口主程序:hold on %保留图像color='g','b','m','k','c','y' %定义颜色字符组fplot('-abs(f(x)-Lf(x,5)',-1 1,color(1) %分别画出每次插值fplot('-abs(f(x)-Lf(x,7)',-1 1,color(2) %在定义区间上的误差fplot('-abs(f(x)-Lf(x,9)',-1 1,color(3)

13、fplot('-abs(f(x)-Lf(x,11)',-1 1,color(4)fplot('-abs(f(x)-Lf(x,13)',-1 1,color(5)fplot('-abs(f(x)-Lf(x,15)',-1 1,color(6)legend('5次','7次','9次','11次','13次','15次')title('逼近函数与原函数在区间上的误差') %表明图像名称grid on %图像中显示网格,易于观察axis(-1

14、,1,-2.2,0) %缩小观察范围(程序代码1.1.3)【计算误差】运行窗口主程序:xmin(1),ymin(1)=fminbnd('-abs(f(x)-Lf(x,5)',-0.2,0.2)%计算5次插值多项式与原函数之间差的最大值,下面同理xmin(2),ymin(2)=fminbnd('-abs(f(x)-Lf(x,7)',-0.2,0.2)xmin(3),ymin(3)=fminbnd('-abs(f(x)-Lf(x,9)',-1,-0.8)xmin(4),ymin(4)=fminbnd('-abs(f(x)-Lf(x,11)&#

15、39;,-1,-0.8)xmin(5),ymin(5)=fminbnd('-abs(f(x)-Lf(x,13)',-1,-0.8)xmin(6),ymin(6)=fminbnd('-abs(f(x)-Lf(x,15)',-1,-0.8)2. hx=x1+x4函数:定义两个m函数:h.m:function y=h(x)y=x/(1+x4)Lh.m:function Ln=Lh(x,n)Ln=0 %初始化Lnfor i=1:n+1 %平均划分节点,并存储在X矩阵内 X(i)=-5+10*(i-1)/n;endfor i=1:n+1 %该循环得出各项ai(x)f(xi

16、)想加之和 q=h(X(i) for j=1:n+1 %该循环得出每一项的 if i=j q=q*(x-X(j)/(X(i)-X(j) end end Ln=Ln+qend(程序代码2.1.1)【绘图】运行窗口主程序:fplot('h(x)',-5 5,'r') %画出原函数图像hold on %保留图像color='g','b','m','k' %定义颜色字符组fplot('Lh(x,5)',-5 5,color(1) %分别画出5,7,9,11,13,15次fplot('

17、Lh(x,10)',-5 5,color(2) %插值的图像fplot('Lh(x,15)',-5 5,color(3)fplot('Lh(x,20)',-5 5,color(4)legend('原函数','5次','10次','15次','20次')title('多项式插值的震荡现象') %表明图像名称axis(-5,5,-1,1) %缩小观察范围grid on %图像中显示网格,易于观察(程序代码2.1.2)【绘图表示误差】运行窗口主程序:hold onc

18、olor='g','b','m','k'fplot('-abs(h(x)-Lh(x,5)',-5 5,color(1)fplot('-abs(h(x)-Lh(x,10)',-5 5,color(2)fplot('-abs(h(x)-Lh(x,15)',-5 5,color(3)fplot('-abs(h(x)-Lh(x,20)',-5 5,color(4)legend('5次','10次','15次','20次&

19、#39;)title('逼近函数与原函数在区间上的误差')grid on(程序代码2.1.3)【计算误差】运行窗口主程序:xmin(1),ymin(1)=fminbnd('-abs(h(x)-Lh(x,5)',-5,-4)xmin(2),ymin(2)=fminbnd('-abs(h(x)-Lh(x,10)',-5,-4)xmin(3),ymin(3)=fminbnd('-abs(h(x)-Lh(x,15)',-5,-4)xmin(4),ymin(4)=fminbnd('-abs(h(x)-Lh(x,20)',-5

20、,-4)gx=arctanx函数:定义两个m函数:g.m:function y=g(x)y=atan(x)Lg.m:function Ln=Lg(x,n)Ln=0 %初始化Ln for i=1:n+1 %平均划分节点,并存储在X矩阵内 X(i)=-5+10*(i-1)/n;endfor i=1:n+1 %该循环得出各项ai(x)f(xi)想加之和 q=g(X(i) for j=1:n+1 %该循环得出每一项的 if i=j q=q*(x-X(j)/(X(i)-X(j) end end Ln=Ln+qend(程序代码2.2.1)【绘图】运行窗口主程序:fplot('g(x)',-

21、5 5,'r') %画出原函数图像hold on %保留图像color='g','b','m','k' %定义颜色字符组fplot('Lg(x,5)',-5 5,color(1) %分别画出5,7,9,11,13,15次fplot('Lg(x,10)',-5 5,color(2) %插值的图像fplot('Lg(x,15)',-5 5,color(3)fplot('Lg(x,20)',-5 5,color(4)legend('原函数',

22、'5次','10次','15次','20次')title('多项式插值的震荡现象') %表明图像名称axis(-5,5,-4,4) %缩小观察范围grid on %图像中显示网格,易于观察(程序代码2.2.2)【绘图表示误差】运行窗口主程序:hold on color='g','b','m','k'fplot('-abs(g(x)-Lg(x,5)',-5 5,color(1)fplot('-abs(g(x)-Lg(x,10)&#

23、39;,-5 5,color(2)fplot('-abs(g(x)-Lg(x,15)',-5 5,color(3)fplot('-abs(g(x)-Lg(x,20)',-5 5,color(4)legend('5次','10次','15次','20次')title('逼近函数与原函数在区间上的误差')grid on(程序代码2.2.3)【计算误差】运行窗口主程序:xmin(1),ymin(1)=fminbnd('-abs(g(x)-Lg(x,5)',-5,-4)xmi

24、n(2),ymin(2)=fminbnd('-abs(g(x)-Lg(x,10)',-5,-4.5)xmin(3),ymin(3)=fminbnd('-abs(g(x)-Lg(x,15)',-5,-4.5)xmin(4),ymin(4)=fminbnd('-abs(g(x)-Lg(x,20)',-5,-4.5)3. 切比雪夫点为插值节点构造f(x)插值多项式:定义m函数:Lf0(x,n).m:function Ln=Lf0(x,n)Ln=0for i=1:n+1 X(i)=cos(2*i-1)*pi/2/(n+1);endfor i=1:n+1

25、q=f(X(i) for j=1:n+1 if i=j q=q*(x-X(j)/(X(i)-X(j) end end Ln=Ln+qend(程序代码3.1.1)【绘图】运行窗口主程序:fplot('f(x)',-1 1,'r') %画出原函数图像hold on %保留图像color='g','b','m','k','c','y' %定义颜色字符组fplot('Lf0(x,5)',-1 1,color(1) %分别画出5,7,9,11,13,15次fpl

26、ot('Lf0(x,7)',-1 1,color(2) %插值的图像fplot('Lf0(x,9)',-1 1,color(3)fplot('Lf0(x,11)',-1 1,color(4)fplot('Lf0(x,13)',-1 1,color(5)fplot('Lf0(x,15)',-1 1,color(6)legend('原函数','5次','7次','9次','11次','13次','15次')t

27、itle('多项式插值的震荡现象') %表明图像名称axis(-1,1,0,1) %缩小观察范围grid on %图像中显示网格,易于观察(程序代码3.1.2)【绘图表示误差】运行窗口主程序:hold on %保留图像color='g','b','m','k','c','y' %定义颜色字符组fplot('-abs(f(x)-Lf0(x,5)',-1 1,color(1)fplot('-abs(f(x)-Lf0(x,7)',-1 1,color(2)f

28、plot('-abs(f(x)-Lf0(x,9)',-1 1,color(3)fplot('-abs(f(x)-Lf0(x,11)',-1 1,color(4)fplot('-abs(f(x)-Lf0(x,13)',-1 1,color(5)fplot('-abs(f(x)-Lf0(x,15)',-1 1,color(6)legend('5次','7次','9次','11次','13次','15次')title('逼近函数与原函

29、数在区间上的误差') %表明图像名称grid onaxis(-1,1,-0.6,0)(程序代码3.1.3)【计算误差】运行窗口主程序:xmin(1),ymin(1)=fminbnd('-abs(f(x)-Lf0(x,5)',-0.2,0.2)xmin(2),ymin(2)=fminbnd('-abs(f(x)-Lf0(x,7)',-0.2,0.2)xmin(3),ymin(3)=fminbnd('-abs(f(x)-Lf0(x,9)',-0.2,0.2)xmin(4),ymin(4)=fminbnd('-abs(f(x)-Lf0(

30、x,11)',-0.2,0.2)xmin(5),ymin(5)=fminbnd('-abs(f(x)-Lf0(x,13)',-0.2,0.2)xmin(6),ymin(6)=fminbnd('-abs(f(x)-Lf0(x,15)',-0.2,0.2)切比雪夫点为插值节点构造h(x)插值多项式:定义m函数:Lh0(x,n).m:function Ln=Lh0(x,n)Ln=0for i=1:n+1 X(i)=5*cos(2*i-1)*pi/2/(n+1);endfor i=1:n+1 q=h(X(i) for j=1:n+1 if i=j q=q*(x-

31、X(j)/(X(i)-X(j) end end Ln=Ln+qend(程序代码3.2.1)【绘图】运行窗口主程序:fplot('h(x)',-5 5,'r') %画出原函数图像hold on %保留图像color='g','b','m','k' %定义颜色字符组fplot('Lh0(x,5)',-5 5,color(1) %分别画出5,7,9,11,13,15次fplot('Lh0(x,10)',-5 5,color(2) %插值的图像fplot('Lh0(x

32、,15)',-5 5,color(3)fplot('Lh0(x,20)',-5 5,color(4)legend('原函数','5次','10次','15次','20次')title('多项式插值的震荡现象') %表明图像名称axis(-5,5,-0.6,0.6) %缩小观察范围grid on %图像中显示网格,易于观察(程序代码3.2.2)【绘图表示误差】运行窗口主程序:hold oncolor='g','b','m',

33、9;k'fplot('-abs(h(x)-Lh0(x,5)',-5 5,color(1)fplot('-abs(h(x)-Lh0(x,10)',-5 5,color(2)fplot('-abs(h(x)-Lh0(x,15)',-5 5,color(3)fplot('-abs(h(x)-Lh0(x,20)',-5 5,color(4)legend('5次','10次','15次','20次')title('逼近函数与原函数在区间上的误差')gri

34、d on(程序代码3.2.3)【计算误差】运行窗口主程序:xmin(1),ymin(1)=fminbnd('-abs(h(x)-Lh0(x,5)',-1,0)xmin(2),ymin(2)=fminbnd('-abs(h(x)-Lh0(x,10)',-1,0)xmin(3),ymin(3)=fminbnd('-abs(h(x)-Lh0(x,15)',-2.5,-1.5)xmin(4),ymin(4)=fminbnd('-abs(h(x)-Lh0(x,20)',-1,0)切比雪夫点为插值节点构造g(x)插值多项式:定义m函数:Lg0(x,n).m:function Ln=Lg0(x,n)Ln=0for i=1:n+1 X(i)=5*cos(2*i-1)*pi/2/(n+1);endfor i=1:n+1 q=g(X(i) for j=1:n+1 if i=j q=q*(x-X(j)/(X(i)-X(j) end end Ln=L

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论