实验4.1(多项式插值的振荡现象)
问题提出:考虑一个固定的区间上用插值逼近一个函数。显然拉格朗日插值中使用的节点越多,插值多项式的次数就越高。我们自然关心插值多项式的次数增加时,是否也更加靠近被逼近的函数。龙格(Runge)给出一个例子是极著名并富有启发性的。设区间[-1,1]上函数
实验内容:考虑区间[-1,1]的一个等距划分,分点为
则拉格朗日插值多项式为
其中的是n次拉格朗日插值基函数。
实验要求:
(1) 选择不断增大的分点数目n=2,3….,画出原函数f(x)及插值多项式函数在[-1,1]上的图像,比较并分析实验结果。
(2)选择其他的函数,例如定义在区间[-5,5]上的函数
重复上述的实验看其结果如何。
(3)区间[a,b]上切比雪夫点的定义为
以为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果。
实验4.2(样条插值的收敛性)
问题提出:多项式插值是不收敛的,即插值的节点多,效果不一定就好。对样条函数插值又如何呢?理论上证明样条插值的收敛性是比较困难的,但通过本实验可以验证这一理论结果。
实验内容:请按一定的规则分别选择等距或者非等距的插值节点,并不断增加插值节点的个数。考虑实验2.1中的函数或选择其他你有兴趣的函数,可以用MATLAB的函数“spline”作此函数的三次样条插值。
实验要求:
(1)随节点个数增加,比较被逼近函数和样条插值函数误差的变化情况。分析所得结果并与拉格朗日多项式插值比较。
(2)样条插值的思想是早产生于工业部门。作为工业应用的例子考虑如下问题:某汽车制造商用三次样条插值设计车门的曲线,其中一段的数据如下:
xk |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
yk |
0.0 |
0.79 |
1.53 |
2.19 |
2.71 |
3.03 |
3.27 |
2.89 |
3.06 |
3.19 |
3.29 |
yk’ |
0.8 |
|
|
|
|
|
|
|
|
|
0.2 |
思考题一:(二维插值)
在一丘陵地带测量高程,x和y方向每隔
y x |
100 |
200 |
300 |
400 |
100 |
636 |
697 |
624 |
478 |
200 |
698 |
712 |
630 |
478 |
300 |
680 |
674 |
598 |
412 |
400 |
662 |
626 |
552 |
334 |
相关MATLAB函数提示:
plot(x,y) 作出以数据(x(i),y(i))为节点的折线图,其中x,y为同长度的向量 subplot(m,n,k) 将图形窗口分为m*n个子图,并指向第k幅图 yi=interp1(x,y,xi) 根据数据(x,y)给出在xi的分段线性插值结果yi pp=spline(x,y) 返回样条插值的分段多项式(pp)形式结构 pp=csape(x,y,‘边界类型’,‘边界值’) 生成各种边界条件的三次样条插值 yi=ppval(pp,xi) pp样条在xi的函数值 ZI=interp2(x,y,z,xi,yi) x,xi为行向量,y,yi为列向量,z为矩阵的双线性二维插值 ZI=interp2(…,'spline') 使用二元三次样条插值 ZI=griddata(x,y,z,xi,yi) x,y,z均为向量(不必单调)表示数据,xi,yi为网格向量的三角形线性插值(不规则数据的二维插值) |
实验4.3(曲线逼近方法的比较)
问题提出:曲线的拟合和插值,是逼近函数的基本方法,每种方法具有各自的特点和特定的适用范围,实际工作中合理选择方法是重要的。
实验内容:考虑实验4.1中的著名问题。下面的MATLAB程序给出了该函数的二次和三次拟合多项式。
x=-1:0.2:1;
y=1/(1+25*x.*x);
xx=-1:0.02:1;
p2=polyfit(x,y,2);
yy=polyval(p2,xx);
plot(x,y,’o’,xx,yy);
xlabel(‘x’);
ylabel(‘y’);
hold on;
p3=polyfit(x,y,3);
yy=polyval(p3,xx);
plot(x,y,’o’,xx,yy);
hold off;
适当修改上述MATLAB程序,也可以拟合其他你有兴趣的函数。
实验要求:
(1)将拟合的结果与拉格朗日插值及样条插值的结果比较。
(2)归纳总结数值实验结果,试定性地说明函数逼近各种方法的适用范围,及实际应用中选择方法应注意的问题。
思考题一:(病态)考虑将[0,1]30等分节点,用多项式生成数据,再用polyfit求其3次、5次、10次、15次拟合多项式,并分析误差产生的原因。
相关MATLAB函数提示:
p=polyfit(x,y,k) 用k次多项式拟合向量数据(x,y),返回多项式的降幂系数,当k>=n-1时,实现多项式插值,这里n是向量维数 |