1、(完整word版)数值分析实验三分段线性插值数值分析实验报告专业:计算机科学与技术班级:14汉(2)学号:20141501069姓名:于童指导教师:马季骕老师实验项目分段线性插值算法介绍随着插值节点的增加,插值多项式的次数也增加,而对于高次的插值容易带来剧烈的震荡,带来数值的不稳定(Runge现象)。为了既要增加插值的节点,减小插值的区间,以便更好的逼近插值函数,又要不增加插值多项式的次数以减少误差,可采用分段线性插值。求一个函数(x)用来近似函数f(x),用分段线性插值的方法来求解近似函数(x)并画出近似函数图像及原函数图像。设在区间a,b上,给定n+1个插值节点和相应的函数值,求一个插值函
2、数,满足以下条件:(1); (2)在每一个小区间上是线性函数。对于给定函数。在区间上画出f(x)和分段线性插值函数的函数图像。 分段线性插值的算法思想分段线性插值需要在每个插值节点上构造分段线性插值基函数,然后再作它们的线性组合。分段线性插值基函数的特点是在对应的插值节点上函数值取 1,其它节点上函数值取0。插值基函数如下: 设在节点ax0x1SetMapMode(MM_LOMETRIC);pDC-SetViewportOrg(x00,y00); /画坐标轴与原函数for(i=-700; iSetPixel(i,0,RGB(0,0,0);pDC-SetPixel(0,i,RGB(0,0,0);
3、double yx=-1,-0.8,-0.6,-0.4,-0.2,0,0.2,0.4,0.6,0.8,1;double yy14;for(i=0; iTextOut(-30,-10,0); pDC-TextOut(-30,430,1); pDC-TextOut(490,-10,1); pDC-TextOut(-490,-10,-1); pDC-MoveTo(-10,680); /x箭头pDC-LineTo(0,700);pDC-MoveTo(0,700);pDC-LineTo(10,680); pDC-MoveTo(680,10); /y箭头pDC-LineTo(700,0);pDC-Move
4、To(700,0);pDC-LineTo(680,-10);pDC-TextOut(-30,700,y);pDC-TextOut(700,-10,x);/ 线性分段差值的图像CPen pen;CPen*oldpen;pen.CreatePen(PS_SOLID,5,RGB(0,0,0);oldpen=pDC-SelectObject(&pen);for(i=0; iMoveTo(yxi*480,yyi*400); pDC-LineTo(yxi+1*480,yyi+1*400); 实验结果结果分析 分段线性插值的方法克服了Lagrange插值法当节点不断加密时,构造的插值多项式的次数不断升高,高次多项式虽然是连续的,但是不一定都收敛到相应的被插函数而产生Runge现象。分段线性插值因为在每一段小区间上都是线性插值而极大地降低了插值多项式的次数,从几何图形上可以看出,当节点取得较多时插值函数的逼近效果还是很好的,但是所求函数是一条以型值点为顶点的折线,这也表现出了它的缺点就是所求得的插值函数的光滑性较差,这就要求一种更好的方法来克服这一缺点了。