第三章插值模型§3-1插值法的基本思想一、为何要建立插值模型根据一组试验数据,我们可以用回归的方法建立经验模型,但在实际问题中,采用这种方法建立经验模型往往比较麻烦,一是由于有时难以找到明显合适的解析表达式;二是由于即使找到了合适的数学表达式,但求解非常困难,所以在许多情况下,往往采用插值法建立相应的插值模型,以求得问题的近似解。二、插值法的基本思想1.概念插值就是从一组离散的数据中,求出某些需要的中间值。例如有一组离散数据,其中点称为结点,是它的函数值,若用表示它的函数(未知),插值就是在这个函数表中再插进一些所需的中间值。Nxxx,,,10……x0x1x2xNx)(xfy0y1y2yNyNyyy,,,10)(xfy2.基本思想(1)设法构造一个简单函数作为该函数的近似式;(2)利用,若已知插值点μ,求的近似值ν。)(xPy)(xf)(xPy)(uf3.插值方法插值所用的简单函数一般都是代数多项式,可以用以下几种方法来建立:(1)利用离散数据中的任意两点,建立一次插值多项式,这种方法称为线性插值。(2)利用其中任意三点,建立二项插值多项式,这种方法称为抛物线插值。(3)顺序选取三点,建立彼此有联系的三次多项式,这种方法称为样条插值。(4)如果利用全部N+1点,建立N次多项式,则称为高阶插值。4.插值模型的特点(1)插值模型虽然是原函数的近似表达式,但在插值结点处,原函数值与插值函数值是相等的。(2)插值法主要是用在一元函数的计算中。(3)插值法只能用于内插,若要进行外插,需十分慎重,因为插值函数是在结点范围内建立的,超出这个范围,就很难保证准确性。(4)插值多项式的最高阶次m应比插值结点N小1,若要建立更低阶次的多项式作为解析表达式,就应建立分段插值。§3-2线性插值一、线性插值模型建立线性插值是最简单的插值,它仅需要二个点数据,建立直线方程来近似代替原函数,然后在二点之间(区间)进行插值。在选煤模拟过程中,常常碰到一些试验数据,如筛分、浮沉等一些表格函数,如果数据间隔小,则可以用线性插值解决。)(xf设所建立的直线方程为,根据插值模型特点,在结点中选取与插值点相邻的两点(),()作为插值区间。根据解析几何可在两点之间建立直线方程:并且有,这样,利用上式,就可以计算0,1两点之间任一插值点x的函数值。)(1xPy00,yx11,yx)()(0010101xxxxyyyxPy001)(yxP111)(yxP二、线性插值算法分段插值的方法,实质上是在众多结点中根据插值点优选出所需的结点,一旦最优构模结点选定后,就变为相应的多项式插值问题。假定给出N+1对列表函数:它们有k个区间,k=1,2,…,n,给定插值点U,求对应的插值函数V。NNyyyyxxxx210210如果,则优选的结点为:使用计算机计算时,可根据插值点u自动选定插值结点。kkxux11010kkyyxxkkyyxx11K从1到N循环Uxx(x(k)X(k)-u0RETURN线性插值计算框图)(),()1(),1(1100kyykxxkyykxx)(001010xxxxyyyyNY算法:Fork=1TonDo假定给出N+1对列表函数:它们有k个区间,k=1,2,…,n,给定插值点U,求对应的插值函数V。如果且则优选的结点为:NNyyyyxxxx2102100Uxk01Uxk1010kkyyxxkkyyxx11子程序:FORK=1TONIFX(K)-U0THENX0=X(K-1);Y0=Y(K-1)X1=X(K);Y1=Y(K)NEXTKV=Y0+(Y1-Y0)*(U-X0)/(X1-X0)RETURN§3-3抛物线(一元三点)和拉格朗日插值模型线性插值仅仅和用两个点的数据,精度自然一般很低,为了改善精度,我们可试图充分利用得到的数据,构造高阶多项式插值模型。一、抛物线插值a.过渡:上节中所构造的线性插值模型为:变化后:令则上式可写成:)()(0010101xxxxyyyxP101001011)(yxxxxyxxxxxP)(0101xAxxxx)(1010xAxxxx11001)()()(yxAyxAxP当时,当时,∴与称为基本插值多项式。与通过线性组合可以构造成一元插值多项式。0xx1)(1010xxxxxA0)(0101xxxxxA1xx0)(0xA1)(1xA)(0xA)(1xA)(1xA)(0xAb.现在我们来讨论抛物线插值模型假如我们有原函数三个点的列表函数:按基本多项式插值研究方法,设所求的抛物线方程形式为:根据插值思想,该方程应满足条件:ix1xiy2x2y0y1y0x)()()()(2211002xAyxAyxAyxP222112002)(,)(,)(yxPyxPyxP那么所构造的二次基本多项式应满足对第一个多项式∵,而都是x的二次函数,)(xA100010001)(xAi)(1xA0x1x2x)(0xA0)(,0)(,1)(201000xAxAxA0)()(2010xAxA)(0xA)(2xA∴中必含有和两个因子,令用代入上式,同时因,所以:则得到:)(0xA1xx2xx))(()(210xxxxxA0xx1)(00xA1))(()(201000xxxxxA))((12010xxxx))(())(()(2010210xxxxxxxxxA同理构造基本二次多项式,使其满足条件:则有:)(1xA)(2xA0)(,1)(,0)(211101xAxAxA1)(,0)(,0)(221202xAxAxA))(())(()(2101201xxxxxxxxxA))(())(()(1202102xxxxxxxxxA其线性组合为,即抛物线插值模型为:)()()()(221102xAyxAyxAyxP))(())(())(())((2101200201021xxxxxxxxyxxxxxxxx2120210))(())((yxxxxxxxx二、一元三点插值算法(1)同样假定给出N+1对列表函数:假定给出N+1对列表函数:它们有k个区间,k=1,2,…,n,给定插值点U,求对应的插值函数V。优选构模结点有三种情况:若,则选三点。若,则应取三点NNyyyyxxxx2102101xu210,,xxx1nxuNNNxxx,,12若,又可分两种情况:当u靠近时,则选;当u靠近时,则选。1kkxUxkx1kx11,,kkkxxx21,,kkkxxx(2)子程序:拉格朗日一元三点插值子程序K:=0;WH1LEDOK:=K+1;1FK=N-3THENK:=N-2;1FK0THENIFTHENK:=K-1;)1(kxu))1(())((ukxkxu);2(:)2();1(:)1();(:)0(kxxkxxkxx);2(:)2();1(:)1();(:)0(kyykyykyy));2()0((*))1()0(/(())2((*))1((:xxxxxuxuP));2()1((*))0()1(/(())2((*))1((:xxxxxuxuQ));1()2((*))0()2(/(())1((*))1((:xxxxxuxuR);2(*)1(*)(*:kYRkYQkYPV三、拉格朗日插值模型从一元二点,一元三点插值模型的构造中,找出规律加以推广。(1)关于基本插值多项式一元二点基本插值多项式中:,其中一元三点基本插值多项式中:1)(,0)(0)(,1)(11011000xAxAxAxAjijixxxxxAxxxxxAxxxxxA)()()(01011010jijijkijjixxxxxAxAxAxAxAxAxAxAxAxA10221202211101201000)(1)(,0)(,0)(0)(,1)(0)(0)(,0)(,1)((2)关于插值模型一元二点中:一元三点中:推广到一元k点应为:由此可以得到拉格朗日插值模型为:对N+1个结点有:11001)()()(yxAyxAxP2211002)()()()(yxAyxAyxAxP101])([kiiixkyxAP1,,2,1,0ki其中不难看出,一元二点,一元三点插值模型是拉格朗日插值模型在时的特例。拉格朗日插值模型的优点在于能充分利用多点数据信息,但多项式阶数越高,越难于计算,同时精度又不一定提高,所以在处理实际问题时,我们则更多地采用分段插值办法。niijijnijjniiinyxxxxyxAxP000])([)(niiniiiiiiniiyxxxxxxxxxxxxxxxx0110110)())(()()())(()(njni,,2,1,0,,,2,1,02,1nn四、拉格朗日插值算法:(1)拉格朗日插值设给定函数的n+1个数据点(),(),…,(),定义的插值基函数或插值多项式为:①易知:)(xfy00,yxnnyx,11,yxnAAA,,,10)())(()()())(()()(110110niiiiiiniiixxxxxxxxxxxxxxxxxAnkikniikxAki,,2,1,00,,2,1,01)(令:②则:,这说明n次多项式正好经过全部数据点,因此就是要求的插值多项式。称形如②式的多项式为拉格朗日多项式。niiinyxAxP0)()()()(iiinxfyxPni,,2,1,1)(xPn)(xPn(2)算法对做循环对做循环若,则0.1Ani,,1,0nj,,1,0ji)/()(jijxxxxAA)()()(ixfAxfxf(3)程序TYPEARR=ARRAY[1…N]ofreal;ProcedupeLagran(N:integer;x,y:ARR;X1:real;vary1:real);LABELEXIT;VarEPS,A:real;I,j,k:integer;BeginEPS:=1.0E-30;y1:=0.0;Fori:=1toNdoBeginA:=1.0;Forj:=1toNdoBeginIF(JI)THENIF((ABS(X[i]-X[j]))=EPS)THENBEGINWriteln(′数据点有误!′);GOTOEXITENDELSEA:=A*(x1-x[j])/(x[i]-x[j])END;;EXIT;END;END;][*1:1iyAyy例:给定列表函数求时的五位数近似插值P(23)。解:)(xfy202224260.342020.374610.406740.43837ix)(ixf23x0625.0)23(;)(0000AxxxxxAiii5625.0)23(;)(1101AxxxxxAiii5625.0)23(;)(2222AxxxxxAiii0625.0)23(;)(3333AxxxxxAiii39074.0)23()()23(30iiiAxfy作业3:某厂原煤浮沉资料如下,试分别用线性插值,拉格朗日一元三点插值和拉格朗日插值计算密度为1.35,1.45和1.55时的浮物累积产率和灰分。δ-1.31.3~1.41.4~1.51.5~1.61.6~1.8+1.8y%23.7447.569.393.282.1013.93Ag%5