资源描述:
《cp030-计算物理数据插值》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验数据的插值根据这些数据,希望合理地估计出其它温度(如25摄氏度,40摄氏度…)时的电阻举例这就是本章要讨论的“插值问题”已经测得在某热敏电阻在不同温度下的电阻如下:电阻(欧姆)60030010050105温度(摄氏度)1030507090100当精确函数y=f(x)非常复杂或未知时,在区间[a,b]上一系列节点x0…xm处测得函数值y0=f(x0),…,ym=f(xm),由此构造一个简单易算的近似函数g(x)f(x),满足条件g(xj)=f(xj)(j=0,…m)(*)这个问题称为“插值问题”插值问题的定义这里的g(x)称为f(x)的插值函数。节点x0…xm称为插值节点,条件(*)
2、称为插值条件,区间[a,b]称为插值区间x0x1x2x3x4xf(x)g(x)最常用的插值函数是…?代数多项式用代数多项式作插值函数的插值称为代数插值本章主要讨论的内容插值函数的类型插值问题插值法插值函数代数插值中的三个问题一、插值问题解的存在唯一性?二、插值多项式的常用构造方法?三、插值函数的误差如何估计?代数插值代数插值问题解的存在惟一性给定区间[a,b]上互异的n+1个点{xj}的一组函数值f(xj),j=0,…,n,求一个n次多项式pn(x)∈Pn,使得pn(xj)=f(xj),j=0,1,…,n.(1)令pn(x)=a0+a1x+…+anxn(2)证明pn(x)的系数a0,a1
3、,…,an存在且唯一……(3)为此由插值条件(1)知Pn(x)的系数满足下列n+1个代数方程构成的线性方程组a0+a1x0+…+anx0n=f(x0)a0+a1x1+…+anx1n=f(x1)…………………….a0+a1xn+…+anxnn=f(xn)代数插值问题解的存在惟一性而ai(i=0,1,2,…,n)的系数行列式是Vandermonde行列式由于xi互异,所以(4)右端不为零,从而方程组(3)的解a0,a1,…an存在且唯一。代数插值问题解的存在惟一性通过解上述方程组(3)求得插值多项式pn(x)的方法并不可取.这是因为当n较大时解方程组的计算量较大,而且方程组系数矩阵的条件数一
4、般较大(可能是病态方程组),当阶数n越高时,病态越重。为此我们必须从其它途径来求Pn(x):不通过求解方程组而获得插值多项式代数多项式插值存在的问题基本思想:在n次多项式空间Pn中找一组合适的基函数0(x),1(x),…,n(x),使pn(x)=a00(x)+a11(x)+…+ann(x)不同的基函数的选取导致不同的插值方法Lagrange插值Newton插值代数多项式插值的基本思想两节点----一次(线性)插值两节点----一次(线性)插值两节点----一次(线性)插值两节点----一次(线性)插值两节点----一次(线性)插值Functiony=chazhi1(x0,y0
5、,x1,y1,x)%拉格朗日插值法y=(x-x1)/(x0-x1)*y0+(x-x0)/(x1-x0)*y1Functiony=chazhi1(x0,y0,x1,y1,x)%牛顿插值法y=y0+(y1-y0)/(x1-x0)*(x-x0)Matlab编程实现三节点----二次插值三节点----二次插值三节点----二次插值Functiony=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-x
6、1))/((x2-x0)*(x2-x1))*y2Functiony=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编程实现三节点----二次插值三节点----逐次线性插值例:已知分别利用sinx的1次、2次Lagrange插值和牛顿插值计算sin50。functionchazhi1%一次插值x0=pi/6;y0=1/2;x1=pi/4;y1=1/sqrt(2);x=pi/180*50;y
7、=chazhi12(x0,y0,x1,y1,x)error=y-sin(x)functiony=chazhi11(x0,y0,x1,y1,x)%拉格朗日插值法y=(x-x1)/(x0-x1)*y0+(x-x0)/(x1-x0)*y1;functiony=chazhi12(x0,y0,x1,y1,x)%牛顿法y=y0+(y1-y0)/(x1-x0)*(x-x0);解:(一次插值)functionchazhi2%二次插值x0=pi/6;