LAB02多项式插值计算及其收敛性实验.docx
- 文档编号:26224604
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:14
- 大小:74.31KB
LAB02多项式插值计算及其收敛性实验.docx
《LAB02多项式插值计算及其收敛性实验.docx》由会员分享,可在线阅读,更多相关《LAB02多项式插值计算及其收敛性实验.docx(14页珍藏版)》请在冰豆网上搜索。
LAB02多项式插值计算及其收敛性实验
Lab02.多项式插值计算及其收敛性实验
【实验目的和要求】
1.使学生深入理解Langrage插值法和Newton插值法以两者之间的异同,能用Matlab语言编写按Langrage插值法和Newton插值法计算插值的程序;
2.用所编写的程序进行插值计算、验证Runge现象、分析插值多项式的收敛性;
3.使学生深入理解教材介绍的两种分段低次插值法,熟悉掌握函数interp1的使用;
4.使用函数interp1用不同方法进行插值计算,对教材介绍的几种分段低次插值法进行分析比较。
【实验内容】
1.根据Matlab语言特点,描述Langrage插值法和Newton插值法。
2.用Matlab语言编写按Langrage插值法和Newton插值法计算插值的程序。
3.对
,分别取3个,5个、9个、11个等距节点,用所编写的程序进行插值计算并画图,以验证Runge现象、分析插值多项式的收敛性。
4.用函数interp1,对
,用n=11个节点(等分)作分段线性插值、分段Hermit插值和三次样条插值,用m=101个插值点(等分)作图,比较结果。
【实验仪器与软件】
1.CPU主频在1GHz以上,内存在128Mb以上的PC;
2.Matlab6.0及以上版本。
实验讲评:
实验成绩:
评阅教师:
200年月日
Lab02.多项式插值计算及其收敛性实验
一、算法描述
1题。
langrage插值描述:
首先由插值条件
知插值函数的节点的函数值,定义基函数
根据插值基函数可以确定
。
由此可以求出Langrage插值函数
。
Newton插值描述:
由插值条件
插值函数为
,通过线性插值、均差可确定
。
即:
由此递推下去可得
。
最后得到newton插值公式为
其中根据均差表可以把均差表示为:
,
表示第i行第j列的均差值。
例、
二、算法程序
lagrange:
functiony=lagrange(x0,y0,x)
if(length(x0)==length(y0))
n=length(x0);
else
disp('x0y0维数不相等!
');
return;
end
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
newton
functionf=newton(x,y,x0)
symst;
if(length(x)==length(y))
n=length(x);
c(1:
n)=0.0;
else
disp('xyµ维数不相等!
');
return;
end
f=y
(1);
y1=0;
p=1;
fori=1:
n-1
forj=i+1:
n
y1(j)=(y(j)-y(i))./(x(j)-x(i));
end
c(i)=y1(i+1);
p=p*(t-x(i));
f=f+c(i)*p;
simplify(f);
y=y1;
end
if(i==n-1)
if(nargin==3)
f=subs(f,'t',x0);
else
f=collect(f);
f=vpa(f,6);
end
end
end
三、插值计算
2、lagrange插值取3个等距节点进行插值计算
clearall
clc
x0=linspace(-5,5,3);
y0=1./(1+x0.^2);
x=-5:
0.1:
5;
y=1./(1+x.^2);
y1=lagrange(x0,y0,x);
plot(x,y,'r',x,y1,'b')
newton插值取3个等距节点进行插值计算
clearall
clc
x0=linspace(-5,5,3);
y0=1./(1+x0.^2);
x=-5:
0.1:
5;
y=1./(1+x.^2);
y1=newton(x0,y0,x);
plot(x,y,'r',x,y1,'b')
lagrange插值取5个等距节点进行插值计算
clearall
clc
x0=linspace(-5,5,5);
y0=1./(1+x0.^2);
x=-5:
0.1:
5;
y=1./(1+x.^2);
y1=lagrange(x0,y0,x);
plot(x,y,'r',x,y1,'b')
newton插值取5个等距节点进行插值计算
clearall
clc
x0=linspace(-5,5,5);
y0=1./(1+x0.^2);
x=-5:
0.1:
5;
y=1./(1+x.^2);
y1=newton(x0,y0,x);
plot(x,y,'r',x,y1,'b')
lagrange插值取9个等距节点进行插值计算
clearall
clc
x0=linspace(-5,5,9);
y0=1./(1+x0.^2);
x=-5:
0.1:
5;
y=1./(1+x.^2);
y1=lagrange(x0,y0,x);
plot(x,y,'r',x,y1,'b')
newton插值取9个等距节点进行插值计算
clearall
clc
x0=linspace(-5,5,9);
y0=1./(1+x0.^2);
x=-5:
0.1:
5;
y=1./(1+x.^2);
y1=newton(x0,y0,x);
plot(x,y,'r',x,y1,'b')
lagrange插值取11个等距节点进行插值计算
clearall
clc
x0=linspace(-5,5,11);
y0=1./(1+x0.^2);
x=-5:
0.1:
5;
y=1./(1+x.^2);
y1=lagrange(x0,y0,x);
plot(x,y,'r',x,y1,'b')
newton插值取11个等距节点进行插值计算
clearall
clc
x0=linspace(-5,5,11);
y0=1./(1+x0.^2);
x=-5:
0.1:
5;
y=1./(1+x.^2);
y1=newton(x0,y0,x);
plot(x,y,'r',x,y1,'b')
从图中,在区间[-3,3]上,插值的误差比较小,在两端的振荡更为明显,称之为Runge现象。
4.用函数interp1,对
,用n=11个节点(等分)作分段线性插值、分段Hermit插值和三次样条插值,用m=101个插值点(等分)作图,比较结果。
clearall
clc
x0=linspace(-5,5,11);
y0=1./(1+x0.^2);
x=-5:
0.1:
5;
y=1./(1+x.^2);
y2=interp1(x0,y0,x,'linear');
y3=interp1(x0,y0,x,'spline');
y4=interp1(x0,y0,x,'pchip');
plot(x,y,'r',x,y2,'y*',x,y3,'b.',x,y4,'g')
-
四、算法分析
拉格朗日插值法公式结构紧凑,插值曲线光滑,误差估计有表达式,有利用于进行理论分析。
在实验中,我们逐步增加节点进行插值计算实验,开始时认为节点越多
越逼近
,但事实并非如此,实验表明,在区间[-5,5]上
不一定收敛于
,并且当节点增加时,需重新计算全部插值基函数
(k=0,1,2,…,n)的值,振荡更加明显。
五、总结
在这次实验中,我们验证了Runge现象,同时也直观证明了Langrage插值多项式
并不一定收敛于原函数
,用Langrage插值法进行插值计算时,并非节点取得越多越好,实际上不宜取太多。
Langrage插值法中Runge现象、不收敛性等缺陷将促使人们去寻找更有效计算方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LAB02 多项式 计算 及其 收敛性 实验