- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数值分析实验(..章).doc
试验2.1 多项式插值的振荡现象 实验目的: 观察多项式插值的振荡现象,了解多项式的次数与逼近效果的关系。 实验内容: 问题提出:考虑在一个固定的区间上用插值逼近一个函数。显然Lagrange 插值中使用的节点越多,插值多项式的次数就越高。我们自然关心插值多项式的次数增加时,Ln(x)是否也更加靠近被逼近的函数。Runge给出的一个例子是极著名并富有启发性的。设区间[-1,1]上的函数 , 考虑区间[-1,1]上的一个等距划分,分点为 ,i=0,1,2,…,n 则拉格朗日插值多项式为: , 其中的,i=0,1,2,…,n是n次拉格朗日插值基函数。 实验要求: 1、选择不断增大的分点数目n=2,3,………,画出原函数及插值多项式函数在[-1,1]上的图像,比较并分析试验结果。 2、选择其他的函数,例如定义在区间[-5,5]上的函数 ,, 重复上述的实验看其结果如何。 实验步骤及结果分析: 1、选择不断增大的分点数目n=2,3,4,5,6,7,8,9,10做的拉格朗日插值多项式,并与原函数值做比较,如下图所示。 观察图像可知: n=2,3时插值函数和原函数差别很大,n=4,5,6时插值函数与原函数的逼近程度相对较好,继续增加插值次数n,插值函数在插值区域的中间部分收敛,而在这区间外是发散的,此外,n=7,9时在插值中间区域逼近效果不好。 因此,适当提高插值多项式次数,可以提高逼近的精度,但是次数太高反而产生相反的效果。 2、选择其他的函数进行插值。 原函数,区间[-5,5],插值结果如下图: 观察图像可知: 低次插值时,插值效果不好。 n=7,8,9,10时,在区间[-2,2],插值函数与原函数逼近程度好,但在区间外插值函数发散。其中,n=8,10插值效果比n=7,9好。 原函数,区间[-5,5],插值结果如下图: 观察图像可知: n=5,6,7,8,9,10时,在区间[-3,3],插值函数与原函数逼近程度好,但在区间外插值函数发散。其中, n=7,9在插值区间两端发散的更剧烈。 分析在插值区间两端发散的原因: 次数越高,计算量就越大,积累误差也大,在整个区间上做高次多项式,当局部插值节点处的值有微小偏差时,可能引起整个区间上函数值的很大变化,使计算不稳定。 Matlab程序如下: function t_charpt2 %数值实验二 %输入:实验选择,函数式选择,插值节点数 %输出:拟合函数及原函数的图形 result=inputdlg({请选择实验,若选2.1,请输入1,否则输入2:},charpt_2,1,{1}); Nb=str2num(char(result)); if(Nb~=1)(Nb~=2) errordlg(实验选择错误!); return; end promps={请选择实验函数,若选f(x),请输入f,若选h(x),请输入h,若选g(x),请输入g:}; result=inputdlg(promps,charpt 2,1,{f}); Nb_f=char(result); if(Nb_f~=fNb_f~=hNb_f~=g) errordlg(实验选择错误!); return; end result=inputdlg({请输入插值点数N:},charpt_2,1,{10}); Nd=str2num(char(result)); if(Nd1) errordlg(结点输入错误!); return; end switch Nb_f case f f=inline(1./(1+25*x.^2));a=-1;b=1; case h f=inline(x./(1+x.^4));a=-5;b=5; case g f=inline(atan(x));a=-5;b=5; end if(Nb==1) x0=linspace(a,b,Nd+1);y0=feval(f,x0); x=a:0.1:b;y=lagrange(x0,y0,x); % clf;把曲线显示在一张图上 fplot(f,[a,b],co); hold on; plot(x,y,b--); xlabel(x) ;ylabel(y=f(x)o and y=ln(x)--); elseif(Nb==2) x0=linspace(a,b,Nd+1);y0=feval(f,x0); x=a:0.1:b; cs=spline(x0,y0);y=ppval(cs,x); % clf;把曲线显示在一张图上 fplot(f,[a,b],co); hold on; plot(x,y,k-);
文档评论(0)