数值计算.docx
- 文档编号:24241434
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:15
- 大小:392.47KB
数值计算.docx
《数值计算.docx》由会员分享,可在线阅读,更多相关《数值计算.docx(15页珍藏版)》请在冰豆网上搜索。
数值计算
数值计算课程设计
课题:
学校:
学院:
专业:
姓名:
学号:
指导教师:
组员:
日期:
目录
一、课程设计的目的和意义及问题的提出……………………………3
二、理论分析……………………………………………………………3
三、问题结果与分析……………………………………………………4
四、心得体会……………………………………………………………10
五、参考文献……………………………………………………………11
六、代码附录……………………………………………………………11
一、课程设计的目的和意义及问题的提出
课程设计的目的和意义:
⏹通过对多项式插值现象的观察,了解多项式的次数与逼近效果的关系,提高对分析实验结果的能力。
⏹通过设计,可以提高我们运用数学软件matlab编程解决问题的能力,为今后从事科学计算和软件开发打下良好的基础。
⏹通过课程设计作课程设计,学习揣摩这些算法的思想和构造,评价算法的优劣性。
问题的提出:
考虑在一个固定区间上用插值逼近一个函数。
显然,Lagrange插值中使用的节点越多,插值多项式的次数就越高。
我们自然关心插值多项式增加时,Ln(x)是否也更加靠近被逼近的函数。
龙格(Runge)给出的一个例子是极著名并富有启发性的。
设区间[-1,1]上的函数
区间[-1,1]的一个等距划分,节点为
则拉格朗日插值多项式为
其中的
是n次Lagrange插值基函数。
二、理论分析
问题分析:
1.选择不断增大的分点数n=2,3,…
*画出原函数f(x)及插值多项式函数Ln(x)在[-1,1]上的图像;
*给出每一次逼近的最大误差;
*比较并分析实验结果。
2.选择其它函数,例如定义在区间[-5,5]上的函数。
g(x)=arctanx
重复上述实验看其结果如何。
3、区间[a,b]上切比雪夫(Chebychev)点的定义为
以x1,x2,…,xn+1为插值节点构造上述各函数的Lagrange插值多项式,比较其结果。
理论依据:
已知函数f(x)在n+1个点x0,x1,…,xn处的函数值为y0,y1,…,yn。
求一n次多项式函数
,使其满足:
解决此问题的拉格朗日插值多项式公式如下
其中
为n次多项式:
三、问题结果与分析
(1).在MATLAB6.5中输入函数
当取不同的分点数n时,所得图象与原函数图象对比如下:
n=2时;最大误差为:
Max[L(x)-f(x)]=0.6462
n=3时,max[L(X)-f(X)]=0.7070;
n=6时,max[L(X)-f(X)]=0.6169;
n=8时,max[L(X)-f(X)]=1.0452;
n=10时;最大误差为:
max[L(X)-f(X)]=1.9156;
n=20时,最大误差为:
max[L(X)-f(X)]=58.5855。
图象分析:
从图中可以看出当插值节点很少时,插值的误差很大,插值图象与原图象没有很好重叠在一起,而当随着插值的节点增加,中间能很好的重叠,但是两边出现很大误差,随着n值的增多,总体上分散的越厉害,最大误差也逐渐增加,在n=3时,最大误差为0.6462,但到了n=20时,已经变成了58.5855,这种随着节点数增多依然不能很好的接近被插值函数的现象称为“龙格现象”,亦称为多项式插值的振荡现象。
因此通过增加节点数从而提高插值多项式的次数来逼近被插函数是不可取的。
(2)对定义在(-5,5)上的函数g(x)=arctanx
在matlab里输入相应的lagrange插值公式
当n取不同的值时,取节点数n=4,8,10,得到相应图象如下:
n=4时,max[L(X)-g(X)]=0.4458;
n=8时,max[L(X)-g(X)]=0.3240;
n=10时,max[L(X)-g(X)]=0.8066。
图象分析:
从图象可以看出随着插值节点数的增加出现异常的摆动,中间能较好的接近原函数,随着插值节点增加有较好的插值重叠,但两边却出现很大的误差。
(3)以上实验是从对区间的等距划分而作出的拉格朗日多项式,也因此产生了龙格振荡现象,现在我们通过用切比雪夫点来对上述各函数的区间进行划分,以此来建立拉格朗日多项式,看这样建立的拉格朗日多项式是否还会出现龙格振荡现象。
同样还是考虑函数,为了与等距节点进行比较,我们仍然选取节点数不断增多的拉格朗日多项式。
得到不同图象:
n=3时;
n=6时;
n=11时;
n=21时。
图象分析:
可见利用切比雪夫点来构造的拉格朗日多项式比等距节点下的拉格朗日多项式更为有效,随着节点数的增加,逼近程度就越好,它能很好的消除了“龙格现象”。
四、心得体会
五、参考文献
《数值方法》机械出版社金一庆、陈越、王冬梅编著
《matlab从入门到精通》人民邮电出版社求是科技编著
《数值分析》北京理工大学出版社史万明、孙新编著
六、代码附录
程序代码1:
functiont_charpt
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:
'};
%选择所要运算的函数
titles='charpt_2';
result=inputdlg(promps,'charpt2',1,{'f'});
Nb_f=char(result);
if(Nb_f~='f'&Nb_f~='h'&Nb_f~='g')errordlg('实验选择错误!
');
return;end
result=inputdlg({'请输入插值点数N:
'},'charpt_2',1,{'10'});
Nd=str2num(char(result));
if(Nd<1)errordlg('结点输入错误!
');return;end
switchNb_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);
fplot(f,[a,b],'co');
holdon;
plot(x,y,'b--');
xlabel('x');ylabel('y=f(x)oandy=ln(x)--');
holdon;
f1=1./(1+25*x.^2);
err=max(abs(y-f1));
result=inputdlg({'请输入插值点数N:
'},'charpt_2',1,{'10'});
xc=-cos(pi*[0:
4]/4);
x=(a+b)*0.5+(b-a)*xc*0.5;
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);
plot(x0,y0,'o');holdon;plot(x,y,'k-');
xlabel('x');ylabel('y=f(x)oandy=spline(x)-');
end
functiony=lagrange(x0,y0,x)
n=length(x0);m=length(x);
fori=1:
m
z=x(i);
s=0.0;
fork=1:
n
p=1.0;
forj=1:
n
ifj~=k
p=p*(z-x0(j))/(x0(k)-x0(j));
end
end
s=p*y0(k)+s;
end
y(i)=s;
end
t1=clock%获得系统时间
程序代码2:
x=[-1:
0.2:
1];
y=1./(1+25.*x.^2);
x0=[-1:
0.01:
1];
y0=lagrange(x,y,x0);
y1=1./(1+25.*x0.^2);
plot(x0,y0,'--r');
holdon;
plot(x0,y1,'-b');
x2=abs(y0-y1);
max(x2);
程序代码3:
n=3;
fori=1:
n
x(i)=cos(((2.*i-1).*pi)./(2.*(n+1)));
y(i)=1./(1+25.*x(i).*x(i));
end
x0=-1:
0.01:
1;
y0=lagrange(x,y,x0);
y1=1./(1+25.*x0.^2);
plot(x0,y0,'--r')
holdon
plot(x0,y1,'-b')
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 计算