数值分析课程设计多项式插值的振荡现象matlabWord文档下载推荐.docx

上传人:b****2 文档编号:15076351 上传时间:2022-10-27 格式:DOCX 页数:26 大小:421.12KB
下载 相关 举报
数值分析课程设计多项式插值的振荡现象matlabWord文档下载推荐.docx_第1页
第1页 / 共26页
数值分析课程设计多项式插值的振荡现象matlabWord文档下载推荐.docx_第2页
第2页 / 共26页
数值分析课程设计多项式插值的振荡现象matlabWord文档下载推荐.docx_第3页
第3页 / 共26页
数值分析课程设计多项式插值的振荡现象matlabWord文档下载推荐.docx_第4页
第4页 / 共26页
数值分析课程设计多项式插值的振荡现象matlabWord文档下载推荐.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

数值分析课程设计多项式插值的振荡现象matlabWord文档下载推荐.docx

《数值分析课程设计多项式插值的振荡现象matlabWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数值分析课程设计多项式插值的振荡现象matlabWord文档下载推荐.docx(26页珍藏版)》请在冰豆网上搜索。

数值分析课程设计多项式插值的振荡现象matlabWord文档下载推荐.docx

考虑区间[-1,1]的一个等距划分,节点为

则拉格朗日插值多项式为

其中的ai(x),i=0,1,2,…,n是n次Lagrange插值基函数。

二、实验内容

研究以下三个函数在各自区间上运用不同的划分

1、

2、

3、

运用在区间[-p,p]上等距划分(p>

0),节点为

以x0,x1,…,xn为插值节点构造上述各函数的Lagrange插值多项式。

运用区间[a,b]上切比雪夫(Chebychev)点的定义为

以x1,x2,…,xn+1为插值节点构造上述各函数的Lagrange插值多项式,比较其结果。

并分别比较两种划分方法,增加节点数,最大误差的变化。

三、实验结果及分析

(一)等距划分

对于函数来说,使用等距划分

其中绿色点线代表误差,红色划线代表Lagrange插值多项式,蓝色实线代表原函数。

可见对于等距划分来说节点数越多,最大误差越大,可是越靠近中间的误差越少。

越接近两个端点的误差越大。

当节点数很大时,最大误差的来源只与靠近两个端点的误差有关。

例如:

n=20时

对于,使用等距划分

当n=25时

当n=30时,

从以上三个函数图像来看,可见节点越多,靠近端点处取得最大误差,并且最大误差越大。

这就是龙格现象。

(二)切比雪夫(Chebychev)点

首先研究

当n=20时

可是当n=30

同样的n=40,50也出现了两端误差增大现象。

然后研究

当n=25时

同样的n=30,50也会出现龙格现象。

最后研究

此函数也不例外。

由以上三个函数,通过不断改变n的值,可得运用切比雪夫点来划分,要使最大误差小于0.1,n一般取12到20间的数。

(三)综述

对于Lagrange插值多项式,运用等距划分取节点时,n要不能取得太大,一般n=8或8左右。

若要使n取得更大,那么需要使代入到函数的点尽量在区间的中间,这样才能使真值与计算出来的值的误差尽可能的小。

运用切比雪夫点来划分取节点时,n一般取12到20间的数。

无论要代入到函数的点在区间的那个位置,都能使误差尽可能的小。

若n取的较小,同样误差也是很大的。

对于以上两种取节点的方法,都不能避免龙格现象的出现。

对于不同的选取节点的方法,只要n取得合适,同时代人函数的点适合,那么就可以使误差尽可能的减少。

四、关于本设计的体会

为了完成本设计,接触了一个数学软件matlab,并能初步运用本软件,编写程序,方便了以后对数学的研究。

并且对于编写过程中遇到的错误,显示不正确等,通过网络搜索查询,能解决这些问题。

例如运用fminbnd函数时,显示的并不是正确的答案,后来XX了一下,明白了此函数的运作原理,并最终能显示我想得到的结果。

当然对于我所编写的程序,我也就只能做到这一步,也是碍于时间关系,和对matlab不熟悉,并不能更好的完善下去。

有时取值很大时,运行起来,运行得很慢,这是一大缺陷。

主要是循环次数太多,和找不到更好的函数代替所造成的。

其他的缺点也就不一一的列举了。

学习一个软件需要耐心,细心。

多寻找,多发现,多创作才能深入了解一个软件。

同样的道理,这也是做任何事所需要的素质。

五、参考文献

数值分析(第三版)——北京理工大学出版社

六、附录

所的运用软件及编号MATLAB7.0

(图略)

所用电脑的版本、型号与系统

用户界面设计

文件名:

kcsjx.fig

用户界面程序,运行kcsjx.m来调用主要程序

kcsjx.m

functionvarargout=kcsjx(varargin)

%KCSJXM-fileforkcsjx.fig

%KCSJX,byitself,createsanewKCSJXorraisestheexisting

%singleton*.

%

%H=KCSJXreturnsthehandletoanewKCSJXorthehandleto

%theexistingsingleton*.

%KCSJX('

CALLBACK'

hObject,eventData,handles,...)callsthelocal

%functionnamedCALLBACKinKCSJX.Mwiththegiveninputarguments.

Property'

'

Value'

...)createsanewKCSJXorraisesthe

%existingsingleton*.Startingfromtheleft,propertyvaluepairsare

%appliedtotheGUIbeforekcsjx_OpeningFunctiongetscalled.An

%unrecognizedpropertynameorinvalidvaluemakespropertyapplication

%stop.Allinputsarepassedtokcsjx_OpeningFcnviavarargin.

%*SeeGUIOptionsonGUIDE'

sToolsmenu.Choose"

GUIallowsonlyone

%instancetorun(singleton)"

.

%Seealso:

GUIDE,GUIDATA,GUIHANDLES

%Copyright2002-2003TheMathWorks,Inc.

%Edittheabovetexttomodifytheresponsetohelpkcsjx

%LastModifiedbyGUIDEv2.504-Jun-201216:

03:

46

%Begininitializationcode-DONOTEDIT

gui_Singleton=1;

gui_State=struct('

gui_Name'

mfilename,...

'

gui_Singleton'

gui_Singleton,...

gui_OpeningFcn'

@kcsjx_OpeningFcn,...

gui_OutputFcn'

@kcsjx_OutputFcn,...

gui_LayoutFcn'

[],...

gui_Callback'

[]);

ifnargin&

&

ischar(varargin{1})

gui_State.gui_Callback=str2func(varargin{1});

end

ifnargout

[varargout{1:

nargout}]=gui_mainfcn(gui_State,varargin{:

});

else

gui_mainfcn(gui_State,varargin{:

%Endinitializationcode-DONOTEDIT

%---Executesjustbeforekcsjxismadevisible.

functionkcsjx_OpeningFcn(hObject,eventdata,handles,varargin)

%Thisfunctionhasnooutputargs,seeOutputFcn.

%hObjecthandletofigure

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%varargincommandlineargumentstokcsjx(seeVARARGIN)

%Choosedefaultcommandlineoutputforkcsjx

handles.output=hObject;

%Updatehandlesstructure

guidata(hObject,handles);

%UIWAITmakeskcsjxwaitforuserresponse(seeUIRESUME)

%uiwait(handles.figure1);

%---Outputsfromthisfunctionarereturnedtothecommandline.

functionvarargout=kcsjx_OutputFcn(hObject,eventdata,handles)

%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);

%Getdefaultcommandlineoutputfromhandlesstructure

varargout{1}=handles.output;

functionedit1_Callback(hObject,eventdata,handles)

%hObjecthandletoedit1(seeGCBO)

%Hints:

get(hObject,'

String'

)returnscontentsofedit1astext

%str2double(get(hObject,'

))returnscontentsofedit1asadouble

input=str2num(get(hObject,'

));

if(isempty(input))

set(hObject,'

0'

guidat

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1