龙格现象matlab算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称:___计算方法____________指导老师:___程晓良________成绩:__________________
实验名称:___观察龙格现象________________实验类型:________________同组学生姓名:__________
一、实验目的和要求(必填) 二、实验内容和原理(必填)
三、主要仪器设备(必填) 四、操作方法和实验步骤
五、实验数据记录和处理 六、实验结果与分析(必填)
七、讨论、心得
一、问题描述
在计算方法中,有利用多项式对某一函数的近似逼近,这样,利用多项式就可以计算相应的函数值。例如,在事先不知道某一函数的具体形式的情况下,只能测量得知某一些分散的函数值。例如我们不知道气温随日期变化的具体函数关系,但是我们可以测量一些孤立的日期的气温值,并假定此气温随日期变化的函数满足某一多项式。这样,利用已经测的数据,应用待定系数法便可以求得一个多项式函数f (x )。应用此函数就可以计算或者说预测其他日期的气温值。一般情况下,多项式的次数越多,需要的数据就越多,而预测也就越准确。
例外发生了:龙格在研究多项式插值的时候,发现有的情况下,并非取节点(日期数)越多多项式就越精确。著名的例子是f (x )=1/(1+25x^2).它的插值函数在两个端点处发生剧烈的波动,造成较大的误差。
二、相关公式
三、MATLAB 程序
一、取等距节点,n=5,10,15,20
for n = 5:5:20
subplot(2,2,n/5)
syms x ;
专业:___机械工程____
姓名:___林炜奕_______
学号:_3130102509____ 日期:________________ 地点:_______桌号
f = 1/(1+25*x^2);
x1=sym(zeros(n+1));
W=sym(ones(n+1));
L=sym(0);
for i=0:n
x1(i+1)=-1+2*i/n;
end
for i=0:n
for j=0:n
if j~=i
w=(x-x1(j+1))/(x1(i+1)-x1(j+1));
W(i+1)=W(i+1)*w;
end
end
L=L+W(i+1)*(1/(1+25*x1(i+1)^2));
end
LL(n)=simplify(L);
x=-1:0.01:1;
y1=subs(f,x);
y2=subs(L,x);
plot(x,y1,'b');hold on;
plot(x,y2,'r');hold off;
title(['Ô-º¯Êýf(x)=1/(1+25*x^2)Óë',num2str(n),'´Î²åÖµº¯Êý']); xlabel('x');ylabel('y');
legend('Ô-º¯Êý','²åÖµº¯Êý');
grid on
end
二、取节点X j=cosjπ/n,j=0,1,…,n.n分别取5,10,15,20,…,50
for n = 5:5:50
subplot(2,5,n/5)
syms x;
f = 1/(1+25*x^2);
x1=sym(zeros(n+1));
W=sym(ones(n+1));
L=sym(0);
for i=0:n
x1(i+1)=cos(i*pi/n);
end
for i=0:n
for j=0:n
if j~=i
w=(x-x1(j+1))/(x1(i+1)-x1(j+1));
W(i+1)=W(i+1)*w;
end
end
L=L+W(i+1)*(1/(1+25*x1(i+1)^2));
end
LL(n)=simplify(L);
x=-1:0.01:1;
y1=subs(f,x);
y2=subs(L,x);
plot(x,y1,'b');hold on;
plot(x,y2,'r');hold off;
title(['Ô-º¯Êýf(x)=1/(1+25*x^2)Óë',num2str(n),'´Î²åÖµº¯Êý']); xlabel('x');ylabel('y');
legend('Ô-º¯Êý','²åÖµº¯Êý');
grid on
end
四、实验分析
当采用等距节点时,随着节点数量的增多,插值函数的误差越大。当以x=cos为节点时,
随着n的增大,插值函数的图像越来越靠近原函数图像。这是由于采用等距节点时,存在较大的舍入误差。后者由于此处的插值节点不是等距分布的(事实上,此处采用的插值节点正是Chebyshev多项式的零点),而是中间疏两边密,因此两侧较密的节点很好地抑制了Runge 现象。
五、心得与体会
通过这次实验,我更加熟悉了MATLAB的使用,同时对课本上关于多项式插值以及龙格现象的理论知识有了更深入的理解。有助于对后续课程的学习。收获很大。