插值法
![插值法]()
函数插值是对函数的离散数据建立简单的数学模型
设函数y=f(x)在区间[a,b]上的节点x0,x1,…xn上的函数值为y0,y1,…yn,构造一个次数不超过n次的代数多项式
P(x)=anxn+an−1xn−1+⋯+a1x+a0
几何意义:通过已知的n+1个相异节点(xi,yi),i=0,1,…n,构造出一条代数多项式曲线y=P(x),使其近似于被插值函数曲线y=f(x)
拉格朗日插值
线性插值
过(x0, y0), (x1, y1)的直线为
L(x)=x0−x1x−x1y0+x1−x0x−x0y1
记
l0(x)=x0−x1x−x1,l1(x)=x1−x0x−x0
l0(x)与l1(x)称为线性插值基函数,且有性质
l0(x0)=1,l0(x1)=0,l1(x0)=0,l1(x1)=1
抛物线插值
l0(x)=(x0−x1)(x0−x2)(x−x1)(x−x2)
l1(x)=(x1−x0)(x1−x2)(x−x0)(x−x2)
l2(x)=(x2−x0)(x2−x1)(x−x0)(x−x1)
因此有
L(x)=(x0−x1)(x0−x2)(x−x1)(x−x2)y0+(x1−x0)(x1−x2)(x−x0)(x−x2)y1+(x2−x0)(x2−x1)(x−x0)(x−x1)y2
拉格朗日插值多项式
lk(x)=i=0i=k∏nxk−xix−xi
L(x)=k=0∑nlk(x)yk
![拉格朗日插值法算法框图]()
余项
设f(x)在区间[a,b]上有n+1阶导数,则n次插值多项式L(x)对任意x∈[a,b],有插值余项
R(x)=f(x)−L(x)=(n+1)!f(n+1)(ξ)ω(x)
其中
ω(x)=i=0∏n(x−xi),a<ξ<b
且依赖于x
小结
- 插值多项式L(x)只与数据xi,f(xi)有关,与节点排列顺序无关,与f(x)无关,但余项R(x)与f(x)有关
- f(x)是次数不超过n次的多项式,取n+1个节点插值时,插值多项式就是其自身
- 基函数之和为1,l0(x)+l1(x)+…+ln(x)=1
- n+1个节点的插值多项式不超过n次,不超过n+1项,可求插值区间[a,b]上任一点函数的近似值
- 内插比外推精度高。当给定m个点,取n+1个节点(n+1≤m)构造插值多项式,求x点的函数值时,n+1个节点取尽可能靠近x时,余项小,近似程度高
- 当节点数变化时,需重新计算全部基函数,因为基函数和每一个节点都有关
- n=1时是线性插值,n=2时是抛物线插值
牛顿插值
差商
f[xi,xi+1]=xi+1−xif(xi+1)−f(xi)
f[xi,xi+1,xi+2]=xi+2−xif[xi+1,xi+2]−f[xi,xi+1]
f[x0,x1,⋯,xm]=xm−x0f[x1,x2,⋯,xm]−f[x0,x1,⋯,xm−1]
![差商表]()
令
N(x)=f(x0)+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)+⋯+f[x0,x1,⋯,xn](x−x0)(x−x1)⋯(x−xn−1)
R(x)=f[x0,x1,⋯,xn,x](x−x0)(x−x1)⋯(x−xn)
有f(x)=N(x)+R(x),其中N(x)是f(x)的前n+1项,是x的n次多项式,称为牛顿插值多项式,可看出牛顿插值多项式是上表对角线上的元素与右端同行因子的乘积之和,R(x)是f(x)的最后一项,称之为牛顿插值余项
小结
-
牛顿插值多项式N(x)的次数不超过n次,项数不超过n+1项,各项系数是各阶差商
-
在节点上牛顿插值多项式N(x)等于被插值函数f(x),即N(xi)=f(xi),i=0,1,2,…,n,此时余项R(xi)=0
-
增加一个节点时,只需N(x)再增加一项,N(x)原有各项均不变
当n=1时,取x0,x1进行插值,有N(x)=f(x0)+f[x0,x1](x-x0)
当n=2时,取x0,x1,x2进行插值,有N(x)=f(x0)+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)
可见,增加一个节点x2时,只是增加了f[x0,x1,x2](x-x0)(x-x1)这一项
更一般地,设Nn(x)是节点x0,x1,…,xn上的牛顿插值多项式,那么节点x0,x1,…,xn,xn+1上的牛顿插值多项式Nn+1(x)为
Nn+1(x)=Nn(x)+f[x0,x1,…,xn,xn+1](x-x0)(x-x1)…(x-xn)
上式为Nn+1(x)与Nn(x)的递推关系,即增加一个节点时,只要增加一项即可,而原来的计算结果仍然有用
-
用差商表示的余项式R(x)比用导数表示的插值余项适用范围更广,并且在f(x)的导数不存在,甚至f(x)不连续时仍有意义
埃尔米特插值
不少问题不但要求在节点上函数值相等,而且还要求它的导数值也相等(即要求在节点上具有一阶光滑度),甚至要求高阶导数也相等,满足这种要求的插值多项式就是埃尔米特(Hermite)插值多项式
{H(xi)=yiH′(xi)=yi′
H2n+1(x)=j=0∑n⎣⎢⎢⎡1−2(x−xj)k=0k=j∑nxj−xk1⎦⎥⎥⎤lj2(x)f(xj)+j=0∑n(x−xj)lj2(x)f′(xj)
R2n+1(x)=f(x)−H2n+1(x)=(2n+2)!f(2n+2)(ξ)ω2(x)
其中ξ∈(a,b),且与x无关,ω(x)=(x-x0)(x-x1)…(x-xn)
几何意义:曲线y=H2n+1(x)与曲线y=f(x)在插值节点处有公切线
高次插值的龙格现象
![高次插值的龙格现象]()