插值与拟合专题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数学建模方法——插值与拟合•插值与拟合的关系•在工程中,常有这样的问题:给定一批数据点(它可以是设计师给定,也可能是从测量与采样中得到),需确定满足特定要求的曲线或曲面。对这个问题有两种方法。一种是插值法。要求所求曲线(面)通过所给的所有数据点。另一种方法是数据拟合(曲线拟合与曲面拟合)。人们设法找出某条光滑曲线,它最佳地拟合数据,但不必要经过所有数据点。内容提纲•1、插值问题•2、数据拟合1、插值问题1.1、一维插值插值问题的一般提法:已知y=f(x)(该函数未知)在互异的n+1个点x0,x1,x2,…,xn处的函数值y0,y1,y2,…,yn,构造一个过n+1个点(xk,yk)k=0,1,2,…,n的次数不超过n的多项式y=Ln(x),(称为插值多项式)使其满足Ln(xk)=yk,(称为插值条件)然后用y=Ln(x)作为准确函数y=f(x)的近似值。此方法称为插值法。Theorem:满足插值条件的次数不超过n的多项式是唯一存在的。0x1xnx0x1xnx0y1y0y1y两点一次(线性)插值多项式:101001011yxxxxyxxxxxL三点二次(抛物)插值多项式:2120210121012002010212yxxxxxxxxyxxxxxxxxyxxxxxxxxxL1.1.1Lagrange插值法就是满足插值条件的n次多项式——Lagrange插值多项式nixxxxxxxxxxxxxxxxxlniiiiiiniii1,0,)())(()()())(()()(110110jijixlji,0,1)(满足)()(0xlyxLiniin则上式称为Lagrange插值基函数例1、已知数据表解:基函数为x12f(x)0.950.82写出f(x)的线性插值函数,并求f(1.5)的近似值。82.0,2;95.0,11100yxyxxxxxxxxl2212)(10101121)(0101xxxxxxxl线性插值函数为08.113.0)1(82.0)2(95.0)()()(11001xxxxlyxlyxL且f(1.5)≈L1(1.5)=0.885。Lagrange插值法的缺点•多数情况下,Lagrange插值法效果是不错的,但随着节点数n的增大,Lagrange多项式的次数也会升高,可能造成插值函数的收敛性和稳定性变差。如龙格(Runge)现象。•例:在[-5,5]上用n+1个等距节点作插值多项式Ln(x),使得它在节点处的值与函数y=1/(1+25x2)在对应节点的值相等,当n增大时,插值多项式在区间的中间部分趋于y(x),但对于满足条件0.728|x|1的x,Ln(x)并不趋于y(x)在对应点的值,而是发生突变,产生剧烈震荡,即Runge现象。1.1.2分段插值法•图中看到,随着节点的增加,Lagrange插值函数次数越高,插值函数在两端容易产生龙格现象,为了改进高次插值的缺陷,就产生了分段插值。•分段插值基本思想:将被插函数逐段多项式化。•处理过程:将区间[a,b]划分:•在每个子段上构造低次多项式,然后将其拼接在一起作为整个区间[a,b]上的插值函数,这样构造出的插值函数称为分段多项式,改进了多项式插值整体性太强的缺点,可以进行局部调整而不会影响整体。bxxan0],[1iixx分段线性插值•设插值节点•若:•为已知。)(,],[,10iiinxfybaxxxx满足)(xLy上的分段线性插值。为则称是线性函数上在每个子段],[)(],[,)()(],[)2()()1(11111baxLyxxxyxxxxyxxxxxLxLyxxyxLiiiiiiiiiiiiii分段线性插值xjxj-1xj+1x0xn1.1.3三次样条插值•分段线性插值函数在结点的一阶导数一般不存在,光滑性不高,这就导致了样条插值的提出。•在机械制造、航海、航空工业中,经常要解决下列问题:已知一些数据点,如何通过这些数据点做一条比较光滑(如二阶导数连续)的曲线呢?•绘图员解决这一问题是首先把数据点描绘在平面上,再把一根富有弹性的细直条(称为样条)弯曲,使其一边通过这些数据点,用压铁固定细直条的形状,沿样条边沿绘出一条光滑的曲线,往往要用几根样条,分段完成上述工作,这时,应当让连接点也保持光滑。对绘图员用样条画出的曲线,进行数学模拟,这样就导出了样条函数的概念。三次样条插值问题提出•设在区间[a,b]上,已给n+1个互不相同的节点•a=x0x1…xn=b以及函数y=f(x)在这些节点的值f(xi)=yi,i=0,1,…,n.如果分段函数S(x)满足下列条件:•(1)S(x)在子区间[xi,xi+1]的表达式Si(x)都是次数为3的多项式;•(2)S(xi)=yi;•(3)S(x)在区间[a,b]上有连续的二阶导数。•就称S(x)为f(x)在点x0,x1,…,xn的三次样条插值函数.•即Si(x)=aix3+bix2+cix+dii=0,1,…,nxi≤x≤xi+1(4n个变量)•需要4n个方程•S(xi)=yii=0,1,…,n(n+1个方程)•S(xi-0)=S(xi+0)i=1,…,n-1在xi连续(n-1个方程)•S/(xi-0)=S/(xi+0)i=1,…,n-1在xi连续(n-1个方程)•S//(xi-0)=S//(xi+0)i=1,…,n-1在xi连续(n-1个方程)•再加两个条件:可在边界点x0与xn处给出导数的约束条件,称为边界条件。•(1)S//(x0)=f0//,S//(xn)=fn//•(2)S/(x0)=f0/,S/(xn)=fn/•(3)S//(x0)=S//(xn)=0自然边界条件(2个方程)•可以证明:满足上述4n个线性方程组有唯一解。三次样条插值问题分析总结•拉格朗日插值:其插值函数在整个区间上是一个解析表达式;曲线光滑;收敛性不能保证,用于理论分析,实际意义不大。•分段线性插值和三次样条插值:曲线不光滑(三次样条已有很大改进);收敛性有保证;简单实用,应用广泛。1.2二维插值•二维插值是基于一维插值同样的思想,但是它是对两个变量的函数Z=f(x,y)进行插值。•求解二维插值的基本思路:构造一个二元函数Z=f(x,y),通过全部已知结点,即f(xi,yi)=zi,(i=0,1,…n),再利用f(x,y)插值,即Z*=f(x*,y*)。•二维插值常见可分为两种:网格结点插值和散乱数据插值。•网格结点插值适用于数据点比较规范,即在所给数据点范围内,数据点要落在由一些平行的直线组成的矩形网格的每个顶点上,散乱数据插值适用于一般的数据点,多用于数据点不太规范的情况。xyO第一种(网格节点):已知mn个节点其中互不相同,不妨设构造一个二元函数通过全部已知节点,即再用计算插值,即注意:最邻近插值一般不连续。具有连续性的最简单的插值是分片线性插值。xy(x1,y1)(x1,y2)(x2,y1)(x2,y2)O二维或高维情形的最邻近插值,与被插值点最邻近的节点的函数值即为所求。1.2.1网格节点插值法——最邻近插值将四个插值点(矩形的四个顶点)处的函数值依次简记为:xy(xi,yj)(xi,yj+1)(xi+1,yj)(xi+1,yj+1)Of(xi,yj)=f1,f(xi+1,yj)=f2,f(xi+1,yj+1)=f3,f(xi,yj+1)=f41.2.1网格节点插值法——分片线性插值插值函数为:jii1ij1jy)xx(xxyyy)yy)(ff()xx)(ff(f)y,x(fj23i121第二片(上三角形区域):(x,y)满足iii1ij1jy)xx(xxyyy插值函数为:)xx)(ff()yy)(ff(f)y,x(fi43j141注意:(x,y)当然应该是在插值节点所形成的矩形区域内。显然,分片线性插值函数是连续的;分两片的函数表达式如下:第一片(下三角形区域):(x,y)满足双线性插值是一片一片的空间二次曲面构成。双线性插值函数的形式如下:)dcy)(bax()y,x(f其中有四个待定系数,利用该函数在矩形的四个顶点(插值节点)的函数值,得到四个代数方程,正好确定四个系数。xy(x1,y1)(x1,y2)(x2,y1)(x2,y2)O1.2.1网格节点插值法——双线性插值yx0第二种(散乱节点):已知n个节点其中互不相同,构造一个二元函数通过全部已知节点,即再用计算插值,即1.2.2散乱数据插值法•在T=[a,b]×[c,d]上散乱分布n个点。一般采用反距离加权平均法。•基本思想:在非给定数据的点处,定义其函数值由已知数据按与该点距离的远近作加权平均决定,记•则二元函数(曲面)定义为:22)()(kkkyyxxrnkkkknkkkkkrryxWzyxWrzyxF1221/11),(,),(0,),(其中否则•如此定义的曲面是全局相关的,对曲面的任一点作数据计算都要涉及到全体数据,这在大量数据中是很慢的,但因为这种做法思想简单,人们对它进行了种种改进。2.1一维插值函数yi=interp1(x,y,xi,'method')插值方法被插值点插值节点xi处的插值结果‘nearest’:最邻近插值‘linear’:线性插值;‘spline’:三次样条插值;‘cubic’:立方插值。缺省时:分段线性插值。注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。2、用MATLAB解插值计算解在命令窗口输入:例1在一天24h内,从零点开始每间隔2h测得的环境温度为12,9,9,10,18,24,28,27,25,20,18,15,13C(单位:)推测在每1s时的温度.并描绘温度曲线.t=0:2:24T=[129910182428272520181513]plot(t,T,'*')ti=0:1/3600:24T1i=interp1(t,T,ti)plot(t,T,'*',ti,T1i,'r-')T2i=interp1(t,T,ti,'spline')plot(t,T,'*',ti,T1i,'r-',ti,T2i,'g-')例2在飞机的机翼加工时,由于机翼尺寸很大,通常在图纸上只能标出部分关键点的数据.某型号飞机的机翼上缘轮廓线的部分数据如下:x04.749.051938577695114133y05.238.111.9716.1517.116.3414.6312.166.69x152171190y7.033.990x=[04.749.051938577695114133152171190]y=[05.238.111.9716.1517.116.3414.6312.169.697.033.990]xi=[0:0.001:190]yi=interp1(x,y,xi,'spline')plot(xi,yi)要求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分别不能超出x0,y0的范围。z=interp2(x0,y0,z0,x,y,’method’)被插值点插值方法插值节点被插值点的函数值‘nearest’最邻近插值‘linear’双线性插值‘cubic’双三次插值缺省时,双线性插值2.2用MATLAB作网格节点数据的插值插值函数griddata格式为:cz=griddata(x,y,z,cx,cy,‘method’)要求cx取行向量,cy取为列向量。被插值点插值方法插值节点被插值点的函数值‘nearest’最邻近插值‘linear’双线性插值‘cubic’双三

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功