1第二章插值法2插值法许多实际问题都用函数来表示某种内在规律的数量关系但函数表达式无法给出,只有通过实验或观测得到的数据表函数表达式已知,但较复杂,计算函数值或积分比较困难如何根据这些数据推测或估计其它点的函数值?例:已测得在某处海洋不同深度处的水温如下:深度(M)46674195014221634水温(oC)7.044.283.402.542.13根据这些数据,希望合理地估计出其它深度(如500、600、800米…)处的水温。问题的提出3问题的数学提法已知[a,b]上的函数y=f(x)在n+1个互异点处的函数值:fnf2f1f0f(x)xnx2x1x0x求简单函数Pn(x),使得()0,1,,(*)niiPxfinx0x1x2x3x4xP(x)4插值基本概念已知函数y=f(x)在[a,b]上有定义,且已经测得在点ax0x1···xnb处的函数值为y0=f(x0),…,yn=f(xn)如果存在一个简单易算的函数P(x),使得P(xi)=f(xi),i=0,1,...,n则称P(x)为f(x)的插值函数插值区间插值节点求插值函数P(x)的方法就称为插值法插值节点无需递增排列,但必须确保互不相同!插值条件5个等分点上若给定如函数5],0[,sinxy其插值函数的图象如图00.511.522.533.500.10.20.30.40.50.60.70.80.91sinx的的的xy6常用插值法多项式插值:P(x)为多项式函数---最常用的插值函数分段插值:P(x)为分段多项式函数三角插值:P(x)为三角函数……多项式插值polynomialinterpolationWeierstrass定理对于在[a,b]上的连续函数f以及,总存在多项式P(x)满足|)()(|xPxf7多项式插值对于多项式插值,我们主要讨论以下几个问题:满足插值条件的多项式P(x)是否存在且唯一?若满足插值条件的P(x)存在,又如何构造出P(x);即插值多项式的常用构造方法有哪些?用P(x)代替f(x)的误差估计当插值节点无限加密时,插值函数是否收敛于f(x)。8插值多项式的存在唯一性ExistenceandUniquenessofinterpolationpolynomials?()[,]yfxab设函数在区间上的代数插值多项式为nnnxaxaxaaxP2210)(且满足()0,1,2,,,niiPxfin012(),,,,nnPxaaaa即多项式的系数满足线性方程组20102000nnaaxaxaxf20112111nnaaxaxaxf2012nnnnnnaaxaxaxf9上述方程组的系数行列式为n+1阶Vandermond行列式nnnnnnxxxxxxxxxV212110200111101)(ninijijxxjixx0插值多项式的存在唯一性定理已知函数y=f(x)在[a,b]上n+1个点ax0x1···xnb处的函数值为y0=f(x0),…,yn=f(xn)求次数不超过n的多项式P(x)=c0+c1x+···+cnxn,使得P(xi)=yi,i=0,1,...,n存在且唯一10关于唯一性证明的几点说明插值多项式的唯一性表明,对同一组节点,它们的插值多项式是唯一的,可能由不同的方法,会得到不同形式的插值多项式,但它们之间一定可以相互转化,一定会相同,当然误差也一样。上述证明是构造性的(给出解决问题的方法)即以通过解线性方程组来确定插值多项式,但这种方法的计算量偏大,计算步骤较多,容易使舍入误差增大。因此实际计算中不采用这种方法,而用下面介绍的几种常用的方法。11基函数插值法通过基函数来构造插值多项式的方法就称为基函数插值法Zn(x)={次数不超过n的多项式的全体}记n+1维线性空间设z0(x),z1(x),...,zn(x)构成Zn(x)的一组基,则插值多项式P(x)=a0z0(x)+a1z1(x)+···+anzn(x)①寻找合适的基函数②确定插值多项式在这组基下的表示系数基函数法基本步骤若通过前述方法来求解插值多项式,不但计算工作量较大,且难于得到简单表达式12Lagrange插值十八世纪法国数学家Lagrange提出了易于掌握和计算的统一公式称为Lagrange插值公式线性插值已知两个插值点及其函数值:xx0x1f(x)f0f1求一次多项式first-degreepolynomial,)(1bxaxP1100fbxafbxa使得:13线性插值所以,按Cramer法则,有唯一解01100110110011xxfxfxxxxfxfa010110101111xxffxxffbxxLxxffxxfxfx0101011001)(1011101010)(ffxLxxxxxxxx点斜式两点式14线性插值)(1xL101)(0xxxxxl010)(1xxxxxl的线性组合得到,即:11001)()()(fxlfxlxL注意到:0)(1)(0100xlxl1)(0)(1110xlxl称,为线性插值基函数)(0xl)(1xl由两点式看出,是由两个线性函数15抛物线插值已知三个插值节点及其函数值:f2f1f0f(x)x2x1x0x求一个二次多项式22)(cxbxaxL使得:222212110200fcxbxafcxbxafcxbxa抛物线插值16抛物线插值2120210121012002010212))(())(())(())(())(())(()(fxxxxxxxxfxxxxxxxxfxxxxxxxxxP(B-2)令:))(())(()())(())(()())(())(()(120210221012012010210xxxxxxxxxlxxxxxxxxxlxxxxxxxxxl17抛物线插值0)(0)(1)(020100xlxlxl0)(1)(0)(121110xlxlxl1)(0)(0)(222120xlxlxl所以3211002)()()()(fxlfxlfxlxL)(),(),(210xlxlxl为二次插值基函数18Lagrange插值设lk(x)是n次多项式,在插值节点x0,x1,…,xn上满足1,()0,kjjklxjk则称lk(x)为节点x0,x1,…,xn上的拉格朗日插值基函数n次Lagrange插值0110111,()()()()()()()()()kknkkkknjjjkkknjkkxxxxxlxxxxxxxxxxxxxxxx19P(x)=y0l0(x)+y1l1(x)+···+ynln(x)()nLxLagrange插值多项式00,0()()nnjjjnnkjkkjjjkLxylxxxyxxLagrange插值Lagrange插值公式的标准型公式:20插值举例例:已知函数y=lnx的函数值如下解:x0.40.50.60.70.8lnx-0.9163-0.6931-0.5108-0.3567-0.2231试分别用线性插值和抛物线插值计算ln0.54的近似值线性插值:取x0=0.5,x1=0.6得将x=0.54代入可得:011010110()0.18231.6046xxxxLxyyxxxxxln0.54L1(0.54)=-0.6202为了减小截断误差,通常选取插值点x邻接的插值节点21插值举例抛物线插值:取x0=0.4,x1=0.5,x2=0.6,可得ln0.54L2(0.54)=-0.6153在实际计算中,不需要给出插值多项式的表达式ln0.54的精确值为:-0.616186···可见,抛物线插值的精度比线性插值要高Lagrange插值多项式简单方便,只要取定节点就可写出基函数,进而得到插值多项式,易于计算机实现。22matlabprogramfunctions=Lagrange(x0,y0)n=length(x0);%取长度s=0;forj=0:(n-1)t=1;fori=0:(n-1)ifi~=jt=t*(x-x0(i+1))/(x0(j+1)-x0(i+1));endends=s+t*y0(j+1);ends23误差估计)()()(xLxfxRnn插值余项定理设f(x)Cn[a,b](n阶连续可微),且f(n+1)(x)在(a,b)内存在,则对x[a,b],有(1)1()()()()()(1)!nxnnnfRxfxLxxn其中x(a,b)且与x有关,102()()()()nnxxxxxxx证明:如何误差估计:24插值余项由插值条件可知:Rn(xi)=0,i=0,1,…,nRn(x)在[a,b]上至少有n+1个零点对任意给定的x[a,b](xxi,i=0,1,...,n),构造辅助函数则在[a,b]中有n+2个互不相同的零点:x,x0,…,xnRn(x)可写成01()()()()()nnRxKxxxxxxx01()()()()()()nntRtKxtxtxtx()t罗尔定理25插值余项由Rolle定理可知在(a,b)内至少有n+1个不同的零点;同理可知在(a,b)内至少有n个零点;又f(x)Cn[a,b],且f(n+1)(x)在(a,b)内存在'()t()t(1)()nt以此类推,可知在(a,b)内至少有一个零点,设为x,即,x(a,b)。(1)()0nx(1)(1)(1)01(1)(1)(1)()()()[()()()]()()()(1)!()()(1)!nnnnnnnnntRtKxtxtxtxftLtKxnftKxn(1)()()(1)!nxKxn(1)1()()()(1)!nxnnfRxxn26注余项公式只有当f(x)的高阶导数存在时才能使用从余项Rn(x)中的n+1(x)知,当点x位于x0,x1,…,xn的中部时,比较小,精度要高一些;而位于两端时,精度要差一点;若x位于x0,x1,…,xn的外部,一般称为外插,此时精度一般不理想,使用时必须注意。10()(1)!nnniiMRxxxn如果,则(1)1()nnfxMx与x有关,通常无法确定,实际使用中通常是估计其上界27Lagrange基函数性质当f(x)为一个次数n的多项式时,有故即n次插值多项式对于次数n的多项式是精确的()()()0nnRxfxLx(1)()0nfx若f(x)=xk,kn,则有特别地,当k=0时有0()()0nkknjjjRxxxlx0()1njjlxLagrange基函数的两个重要性质28插值误差举例例:已知函数y=lnx的函数值如下x0.40.50.60.70.8lnx-0.9163-0.6931-0.5108-0.3567-0.2231试估计线性插值和抛物线插值计算ln0.54的误差解:线性插值(2)2()4f(2)101()()()()2fRxxxxx1(0.54)2(0.540.5)(0.540.6)0.048Rx0=0.5,x1=0.6,(0.5,0.6)29插值误差举例(3)3()231.25f(3)2012()()()()()3!fRxxxxxxx231.25(0.54)(0.540.4)(0.540.5)(0.540.6)3!0.00175R抛物线插值:x0=0.4,x1=0.5,x2=0.6,(0.4,0.6)高次插值通常优于低次插值但绝对不是次数越高就越好,