资源描述:
《函数逼近与曲线拟合》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三函数逼近与曲线拟合实验3.1(曲线逼近方法的比较)问题提出:曲线的拟合和插值,是逼近函数的基本方法,每种方法具有各自的特点和特定的适用范围,实际工作中合理选择方法是重要的。实验内容:考虑实验2.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’);holdon;p3=polyfit(x,y,3);yy=polyval(p3,x
2、x);plot(x,y,’o’,xx,yy);holdoff;适当修改上述MATLAB程序,也可以拟合其他你有兴趣的函数。实验要求:(1)将拟合的结果与拉格朗日插值及样条插值的结果比较。(2)归纳总结数值实验结果,试定性地说明函数逼近各种方法的适用范围,及实际应用中选择方法应注意的问题。第(1)问:对函数进行拟合,与所给的节点进行了比较,程序代码如下:拟合程序代码:x=-1:0.2:1;y=1./(1+25*x.^2);xx=-1:0.02:1;p2=polyfit(x,y,2);yy=polyval(p2,xx);subplot(2,2,1)xlabel('x');ylabel('y'
3、);holdon;p3=polyfit(x,y,2);yy=polyval(p3,xx);plot(x,y,'o',xx,yy);x=-1:0.2:1;y=1./(1+25*x.^2);xx=-1:0.02:1;p2=polyfit(x,y,2);yy=polyval(p2,xx);subplot(2,2,2)xlabel('x');ylabel('y');holdon;p3=polyfit(x,y,4);yy=polyval(p3,xx);plot(x,y,'o',xx,yy);x=-1:0.2:1;y=1./(1+25*x.^2);xx=-1:0.02:1;p2=polyfit(x,
4、y,2);yy=polyval(p2,xx);subplot(2,2,3)xlabel('x');ylabel('y');yy=polyval(p3,xx);holdon;p3=polyfit(x,y,7);yy=polyval(p3,xx);plot(x,y,'o',xx,yy);x=-1:0.2:1;y=1./(1+25*x.^2);xx=-1:0.02:1;p2=polyfit(x,y,2);yy=polyval(p2,xx);subplot(2,2,4)xlabel('x');ylabel('y');holdon;p3=polyfit(x,y,9);yy=polyval(p3,x
5、x);plot(x,y,'o',xx,yy);holdoff;实验结果:图1不同次数的拟合函数图像与原函数比较拉格朗日插值结果:三次样条插值的结果对比这三种方式的插值我们可以看出,无论是拉格朗日插值还是高次函数的拟合,在当次数很高的时候,在两端都可能出现龙格现象。而采用三次样条插值函数对原函数插值的时候,随着点的越来越多,越来越接近于原函数。第(2)问:归纳总结数值实验结果,试定性地说明函数逼近各种方法的适用范围,及实际应用中选择方法应注意的问题。实验结果:在这几次的数值实验中,对函数运用不同的插值方法进行了插值,如拉格朗日插值,切比雪夫插值,以及三次样条插值。在本次实验中又对该函数进行
6、了拟合。总结归纳每种种函数逼近的结果如下所示:①拉格朗日插值:①切比雪夫插值:②三次样条插值:④拟合:结果分析:我们可以看出,在进行高次函数插值的过程中,随着次数的增加,拉格朗日函数和拟合函数会随着次数的增加在两端出现比较明显的龙格现象。究其原因就是,插值余项的高阶导数的值会随着函数次数的增加而显著的增加。但在采用切比雪夫节点和三次样条插值函数进行插值的时候,并没有看到插值函数图形出现龙格现象。并且明显可以看出随着点的增多,和原函数的拟合程度越好。实验总结:在实际生产生活中,若要求对一个函数进行插值的话,需根据实际情况,选择合适的插值函数。若要求的插值函数给出的点不是很多,那么我们可以考
7、虑拉格朗日插值函数。但若要求对多个点进行插值拟合的时候,那么我们应该选择切比雪夫或者是三次样条插值函数对原函数进行拟合插值。