数值分析课程设计多项式插值的振荡现象matlab.doc
文本预览下载声明
数值分析 课程设计
多项式插值的振荡现象
(姓名)(学号)
指导教师
学院名称 专 业 名 称 提交日期 2012年6月
问题的提出
考虑在一个固定区间上用插值逼近一个函数。显然,Lagrange插值中使用的节点越多,插值多项式的次数就越高。我们自然关心插值多项式增加时,Ln(x)是否也更加靠近被逼近的函数。龙格(Runge)给出的一个例子是极著名并富有启发性的。设区间[-1,1]上的函数
考虑区间[-1,1]的一个等距划分,节点为
则拉格朗日插值多项式为
其中的ai(x),i=0,1,2,…,n是n次Lagrange插值基函数。
实验内容
研究以下三个函数在各自区间上运用不同的划分
1、
2、
3、
运用在区间[-p,p]上等距划分(p0),节点为
以x,x1,…,xn为插值节点构造上述各函数的Lagrange插值多项式。
运用区间[a,b]上切比雪夫(Chebychev)点的定义为
以x1,x2,…,xn+1Lagrange插值多项式,比较其结果。
并分别比较两种划分方法,增加节点数,最大误差的变化。
实验结果及分析
等距划分
对于函数来说,使用等距划分
其中绿色点线代表误差,红色划线代表Lagrange插值多项式,蓝色实线代表原函数。
可见对于等距划分来说节点数越多,最大误差越大,可是越靠近中间的误差越少。越接近两个端点的误差越大。当节点数很大时,最大误差的来源只与靠近两个端点的误差有关。
例如:n=20时
对于,使用等距划分
当n=25时
对于,使用等距划分
当n=30时,
从以上三个函数图像来看,可见节点越多,靠近端点处取得最大误差,并且最大误差越大。这就是龙格现象。
切比雪夫(Chebychev)点
首先研究
当n=20时
可是当n=30
同样的n=40,50也出现了两端误差增大现象。
然后研究
当n=25时
同样的n=30,50也会出现龙格现象。
最后研究
当n=25时
此函数也不例外。
由以上三个函数,通过不断改变n的值,可得运用切比雪夫点来划分,要使最大误差小于0.1,n一般取12到20间的数。
综述
对于Lagrange插值多项式,运用等距划分取节点时,n要不能取得太大,一般n=8或8左右。若要使n取得更大,那么需要使代入到函数的点尽量在区间的中间,这样才能使真值与计算出来的值的误差尽可能的小。
运用切比雪夫点来划分取节点时,n一般取12到20间的数。无论要代入到函数的点在区间的那个位置,都能使误差尽可能的小。若要使n取得更大,那么需要使代入到函数的点尽量在区间的中间,这样才能使真值与计算出来的值的误差尽可能的小。若n取的较小,同样误差也是很大的。
对于以上两种取节点的方法,都不能避免龙格现象的出现。对于不同的选取节点的方法,只要n取得合适,同时代人函数的点适合,那么就可以使误差尽可能的减少。
关于本设计的体会
为了完成本设计,接触了一个数学软件matlab,并能初步运用本软件,编写程序,方便了以后对数学的研究。
并且对于编写过程中遇到的错误,显示不正确等,通过网络搜索查询,能解决这些问题。例如运用fminbnd函数时,显示的并不是正确的答案,后来百度了一下,明白了此函数的运作原理,并最终能显示我想得到的结果。
当然对于我所编写的程序,我也就只能做到这一步,也是碍于时间关系,和对matlab不熟悉,并不能更好的完善下去。有时取值很大时,运行起来,运行得很慢,这是一大缺陷。主要是循环次数太多,和找不到更好的函数代替所造成的。其他的缺点也就不一一的列举了。
学习一个软件需要耐心,细心。多寻找,多发现,多创作才能深入了解一个软件。同样的道理,这也是做任何事所需要的素质。
参考文献
数值分析(第三版)——北京理工大学出版社
附录
所的运用软件及编号MATLAB 7.0
(图略)
所用电脑的版本、型号与系统
(图略)
用户界面设计
文件名:kcsjx.fig
用户界面程序,运行kcsjx.m来调用主要程序
文件名:kcsjx.m
function varargout = kcsjx(varargin)
% KCSJX M-file for kcsjx.fig
% KCSJX, by itself, creates a new KCSJX or raises the existing
% singleton*.
%
% H = KCSJX returns the handle to a new KCSJX or the handle to
% the existing singleton*.
%
% KCSJX(CALLBACK,hObject,eventData,handles,...) call
显示全部