资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,实验数据的插值,实验数据的插值,1,根据这些数据,希望合理地估计出其它温度(如25摄氏度,40摄氏度)时的电阻,举例,这就是本章要讨论的“插值问题”,已经测得在某热敏电阻在不同温度下的电阻如下:,电阻(欧姆)600 300 100 50 10 5,温度(摄氏度)10 30 50 70 90 100,根据这些数据,希望合理地估计出其它温度(如25摄氏度,40摄,2,当精确函数,y=f(x),非常复杂或未知时,在区间a,b上一系列节点,x,0,x,m,处测得函数值,y,0,=,f(x,0,),y,m,=f(x,m,),,由此构造一个简单易算的,近似函数,g(x),f(x),,满足条件,g(x,j,),=,f(x,j,)(j=0,m),(*),这个问题称为“插值问题”,插值问题的定义,这里的,g,(,x,),称为,f,(,x,)的,插值函数,。,节点,x,0,x,m,称为,插值节点,条件(*)称为,插值条件,,区间a,b称为,插值区间,当精确函数 y=f(x)非常复杂或未知时,在区,3,x,0,x,1,x,2,x,3,x,4,x,f,(,x,),g,(,x,),x0 x1x2x3x4 xf(x)g(x),4,最常用的插值函数是?,代数多项式,用代数多项式作插值函数的插值称为,代数插值,本章主要讨论的内容,插值函数的类型,插值问题,插值法,插值函数,最常用的插值函数是?代数多项式用代数多项式作插值函数的插,5,代数插值中的三个问题,一、插值问题解的存在唯一性?,二、插值多项式的常用构造方法?,三、插值函数的误差如何估计?,代数插值,代数插值中的三个问题一、插值问题解的存在唯一性?代数插值,6,代数插值问题解的存在惟一性,给定区间a,b上互异的n+1个点x,j,的一,组函数值f(x,j,),j=0,,n,求一个n次多项式p,n,(x),P,n,,使得,p,n,(x,j,)=f(x,j,),j=0,1,,n.,(1),令,p,n,(x)=a,0,+a,1,x+a,n,x,n,(2),证明,p,n,(x),的系数,a,0,a,1,a,n,存在且唯一,代数插值问题解的存在惟一性 给定区间a,b上互异的n+,7,(3),为此由插值条件(1)知P,n,(x)的系数满足下列,n+1个代数方程构成的线性方程组,a,0,+a,1,x,0,+a,n,x,0,n,=f(x,0,),a,0,+a,1,x,1,+a,n,x,1,n,=f(x,1,),.,a,0,+a,1,x,n,+a,n,x,n,n,=f(x,n,),代数插值问题解的存在惟一性,(3)为此由插值条件(1)知Pn(x)的系数满足下列n+,8,而,a,i,(i=0,1,2,n),的系数行列式是,Vandermonde,行列式,由于,x,i,互异,所以(4)右端不为零,从而方程组(3)的解 a,0,a,1,a,n,存在且唯一。,代数插值问题解的存在惟一性,而ai(i=0,1,2,n)的系数行列式是Vanderm,9,通过解上述方程组(3)求得插值多项式p,n,(x)的方法并不可取.这是因为当n较大时解方程组的计算量较大,而且方程组系数矩阵的条件数一般较大(可能,是病态方程组),当阶数n越高时,病态越重。,为此我们必须从其它途径来求P,n,(x):,不通过求解方程组而获得插值多项式,代数多项式插值存在的问题,通过解上述方程组(3)求得插值多项式pn(x)的方法并不,10,基本思想:,在n次多项式空间,P,n,中找一组合适的基函数,0,(x),1,(x),n,(x),使,p,n,(x)=a,0,0,(x),+a,1,1,(x),+a,n,n,(x),不同的基函数的选取导致不同的,插值方法,Lagrange,插值,Newton插值,代数多项式插值的基本思想,基本思想:在n次多项式空间Pn中找一组合适的基函数pn(x),11,两节点-一次(线性)插值,两节点-一次(线性)插值,12,两节点-一次(线性)插值,两节点-一次(线性)插值,13,两节点-一次(线性)插值,两节点-一次(线性)插值,14,两节点-一次(线性)插值,两节点-一次(线性)插值,15,两节点-一次(线性)插值,Function y=chazhi1(x0,y0,x1,y1,x)%拉格朗日插值法,y=(x-x1)/(x0-x1)*y0+(x-x0)/(x1-x0)*y1,Function y=chazhi1(x0,y0,x1,y1,x)%牛顿插值法,y=y0+(y1-y0)/(x1-x0)*(x-x0),Matlab 编程实现,两节点-一次(线性)插值Function y=chaz,16,三节点-二次插值,三节点-二次插值,17,三节点-二次插值,三节点-二次插值,18,三节点-二次插值,三节点-二次插值,19,Function y=chazhi1(x0,y0,x1,y1,x2,y2,x)%拉格朗日插值法,y=(x-x1)*(x-x2)/(x0-x1)*(x0-x2)*y0+,(x-x0)*(x-x2)/(x1-x0)*(x1-x2)*y1+,(x-x0)*(x-x1)/(x2-x0)*(x2-x1)*y2,Function y=chazhi1(x0,y0,x1,y1,x2,y2,x)%牛顿插值法,y=y0+(y1-y0)/(x1-x0)*(x-x0)+,(x-x0)*(x-x1)*(y2-y1)/(x2-x1)-(y1-y0)/(x1-x0)/(x2-x0),Matlab 编程实现,三节点-二次插值,Function y=chazhi1(x0,y0,x1,y1,20,三节点-逐次线性插值,三节点-逐次线性插值,21,例:已知,分别利用 sin,x,的1次、2次 Lagrange 插值和牛顿插值计算 sin 50,。,例:已知分别利用 sin x 的1次、2次 Lagrange,22,function,chazhi1,%一次插值,x0=pi/6;y0=1/2;,x1=pi/4;y1=1/sqrt(2);,x=pi/180*50;,y=chazhi12(x0,y0,x1,y1,x),error=y-sin(x),function,y=chazhi11(x0,y0,x1,y1,x)%拉格朗日插值法,y=(x-x1)/(x0-x1)*y0+(x-x0)/(x1-x0)*y1;,function,y=chazhi12(x0,y0,x1,y1,x)%牛顿法,y=y0+(y1-y0)/(x1-x0)*(x-x0);,解:,(一次插值),function chazhi1解:(一次插值),23,function,chazhi2,%二次插值,x0=pi/6;y0=1/2;,x1=pi/4;y1=1/sqrt(2);,x2=pi/3;y2=sqrt(3)/2;,x=pi/180*50;,y=chazhi22(x0,y0,x1,y1,x2,y2,x)%选择插值函数,error=y-sin(x),function,y=chazhi21(x0,y0,x1,y1,x2,y2,x)%拉格朗日插值法,y=(x-x1)*(x-x2)/(x0-x1)*(x0-x2)*y0+(x-x0)*(x-x2)/.,(x1-x0)*(x1-x2)*y1+(x-x0)*(x-x1)/(x2-x0)*(x2-x1)*y2;,function,y=chazhi22(x0,y0,x1,y1,x2,y2,x)%牛顿插值法,y=y0+(y1-y0)/(x1-x0)*(x-x0)+(x-x0)*(x-x1)*.,(y2-y1)/(x2-x1)-(y1-y0)/(x1-x0)/(x2-x0);,解:,(二次插值),function chazhi2解:(二次插值),24,N+1节点-N次插值,N+1节点-N次插值,25,Lagrange,插值基函数,(2),与,节点,有关,而与,f,无关,这里每个,l,j,(x),都是n次多项式,且由(1)式容易验证,l,j,(x),满足,j=0,1,,n (1),Lagrange插值基函数(2)与 节点有关,而与f 无关这,26,对任意的,p,n,(x)P,n,,,都有,p,n,(x)=c,0,l,0,(x)+c,1,l,1,(x)+c,n,l,n,(x),其中,c,0,c,1,c,n,为组合系数。,可以证明函数组,l,0,(x),l,1,(x),,l,n,(x),在插值区间,a,b,上线性无关,所以这,n+1,个函数可作为,P,n,的一组基函数,称为,Lagrange,插值基函数。,Lagrange,插值基函数,对任意的pn(x)Pn,都有pn(x)=c0 l0(x)+,27,由Lagrange插值基函数满足(2)式可知,方程组变成,因此得到插值多项式,p,n,(x),=f(x,0,)l,0,(x)+f(x,1,)l,1,(x)+f(x,n,)l,n,(x),记为L,n,(x),f(x,j,)l,j,(x),称L,n,(x)为n次,Lagrange插值多项式,由Lagrange插值基函数满足(2)式可知,方程组变成因此,28,插值余项,/*Remainder*/,定理 若,在,a,b,内存在,则在,a,b,上,的n+1个互异的点,对,f(x),所作的n次Lagrange插值多项式L,n,(x)有误差估计,Rolles Theorem的推论:,若 充分光滑,且,插值余项/*Remainder*/定理 若在,29,证明:由于R,n,(x,i,)0,i,=0,1,,n,任意固定,x,x,i,(,i,=0,n,),考察,(,t,),有,n,+2,个不同的根,x,0,x,n,x,证明:由于Rn(xi)0,i=0,1,,n任意固定,30,例:已知,分别利用 sin,x,的1次、2次 Lagrange 插值计算,sin 50,,,并估计误差。,解:,n,=1,分别利用,x,0,x,1,以及,x,1,x,2,计算,利用,例:已知分别利用 sin x 的1次、2次 Lagrange,31,sin 50,=0.7660444,利用,x,0,x,1,作为插值节点的实际误差,0.01001,利用,计算得:sin 50,0.76008,利用,x,1,x,2,作为插值节点的实际误差,0.00596,sin 50=0.7660444利用x0,x1,32,n,=2,sin 50,=0.7660444,2次插值的实际误差,0.00061,n=2sin 50=0.76604442次插值,33,function,main,%N次插值,x0=pi/6;y0=1/2;,x1=pi/4;y1=1/sqrt(2);,x2=pi/3;y2=sqrt(3)/2;,xy=x0 x1 x2;y0 y1 y2;,x=pi/180*50;,y=chazhiN1(xy,x),error=y-sin(x),Matlab 编程实现,N+1节点-N次插值,function,y=chazhiN1(xy,x),%,拉格朗日插值法,y=0;,N=size(xy,2);,for i=1:N,L=1;,for j=1:N,if i=j,L=L*(x-xy(1,j)/(xy(1,i)-xy(1,j);,end,end,y=L*xy(2,i)+y;,end,function mainMatlab 编程实现N+1节点-,34,牛顿插值,(Newtons Interpolation),Lagrange 插值虽然易算,但若要增加一个节点时,,全部基函数,l,i,(x),都需要重新计算。,能否重新在P,n,中寻找新的,基函数,?,希望每加一个节点时,,只附加一项,上去即可。,牛顿插值(Newtons Interpolation),35,1,x-x,0,(x-x,0,)(x-x,1,),,(x-x,0,)(x-x,1,),(x-x,n-1,),是否构成P,n,的一组基函数,?,利用插值条件,N,n,(x,j,)=f(x,j,),j=0,1,n,代入上式
展开阅读全文