插值与逼近
多项式插值
对于给定的 n+1 个点, 找到 n 次多项式满足
⎩⎨⎧a0+a1x0+⋯+anx0n=y0a0+a1x1+⋯+anx1n=y1⋮a0+a1xn+⋯+anxnn=yn
即找到线性方程组的解 x
Ax=y
A=11⋮1x0x1xnx02x12xn2………x0nx1nxnn
x=a0a1⋮any=y0y1⋮yn
拉格朗日插值
线性函数
lk(x)=i=k∏xk−xix−xi
线性函数具有特点
- lk(xi)=0(i=k)
- lk(xk)=1
插值公式
利用线性函数, 可得到插值多项式
Ln(x)=∑yklk(x)
牛顿插值
可根据节点的增加快速得到新的插值公式
Pn(x)=a0+a1(x−x0)+⋯+ani=0∑n(x−xi)=Pn−1(x)+ani=0∑n(x−xi)
均差计算
- 一阶均差
f[xa,xb]=xa−xbf(xa)−f(xb)
- 高阶均差
f[x0,x1,…,xn]=xn−x0f[x1,…,xn]−f[x0,x1,…,xn−1]
分子为两个仅有一个点不同的均差
分母为分子中不同的点之差
均差性质
- 均差与节点的排列顺序无关, 即
f[x0,x1,…,xn]=f[x1,x0,…,xn]=…
- 均差与导数的关系
∃ξ∈[a,b],f[x0,x1,…,xn]=n!f(n)(ξ)
其中 xi∈[a,b]
均差递推
利用均差的性质可使用递推的方法得到高阶均差
插值公式
Pn(x)=f(x0)+f[x0,x1](x−x0)+⋯+f[x0,x1,…,xn]i=0∏n−1(x−xi)
差分形式的牛顿插值公式
当 xt 满足 xt=x0+th 时, 可简化牛顿插值公式
差分
定义差分
Δnf(xi)−Δnf(xi+1)=Δn+1f(xi)
差分表
利用差分的性质, 可得到递推关系
差分性质
- 与均差的关系
f[x0,x1,…,xn]=n!1hn1Δnf(x0)
- 与导数的关系
∃ξ∈[x0,x0+nh],Δnf(xi)=hnf(n)(ξ)
插值公式
Pn(x0+th)=f(x0)+Δf(x0)t+⋯+n!Δnf(x0)i=0∏n−1(t−i)
使用此形式避免求 hn, t 可取任意实数
埃尔米特插值
实际问题还要求节点的导数满足要求, 因此可用埃米尔特插值
算术解法
类比多项式插值, 可得到其算术解法
M0=11⋮1x0x1xkx02x12xk2………x0nx1nxkn
M1=00⋮01112x02x12xn−k………nx0n−1nx1n−1nxn−kn−1
y′=y0′y1′⋮yn−k′y=y0y1⋮yk
x=a0a1⋮an
[M0M1]x=[yy′]
余项表达式
- 如果给出高阶导数条件等多个关于同一点的条件 ci 次, 则变为相应次数 (默认给出点条件, 因此一般情况下 ci=1)
- m 为总共给出的条件数, m=∑ci
- n 为总共的点数
- 对于多项式表达式, 其余项表达式为
R(x)=f(x)−P(x)=m!1f(m)(ξ)i=0∏n(x−xi)ci,ξ∈(x0,xn)
分段插值
龙格现象
插值多项式的次数越高, 精度不一定高
因此对于多个点, 一般不采用高次插值多项式, 而是分段第次插值
三次样条插值
使用三次多项式 Si(x) 对于各个点的最小区间分段插值函数 S(x)
总共需要 4n 个条件, 根据已知点, 可提供 n+1 个条件(i=0,1,…,n)
连续性条件
S(xi+)=S(xi−)
S′(xi+)=S′(xi−)
S′′(xi+)=S′′(xi−)
共能提供 3n−3 个条件(减去边界点)
边界条件
以上只能提供 4n−2 个条件, 还差 2 个边界条件, 如果没有给出则使用自然边界条件
S′′(x0)=S′′(xn)=0
曲线拟合
最小二乘法概念
对于线性无关的函数族 φ0(x),φ1(x),…,φm(x), 对于函数族任意线性组合 S(x), 存在函数 S∗(x)=∑i=0maiφi(x) 使误差平方和最小, 即满足
∣δ∣2=i=0∑nωi[S∗(xi)−yi]2=mini=0∑nωi[S(xi)−yi]2
其中函数族内函数个数 m≤n, n 为拟合点个数
- 通常取 φi(x)=xi
- ωi 表示点 i 的权重, 通常取 1
最小二乘法计算
令 ∣δ∣2=I(a0,a1,…,am) (不是 S∗), 问题变为找到使 I 最小的点, 可得到 I 满足 m 个条件
∂aj∂I=2i=0∑nωi[S∗(xi)−yi]φj(xi)=0
法方程
规定记号
(φj,φk)=i=0∑nωiφj(xi)φk(xi)
(f,φk)=i=0∑nωiyiφk(xi)=dk
规定符号
x=a0a1⋮amd=d0d1⋮dm
G=(φ0,φ0)(φ1,φ0)⋮(φm,φ0)(φ0,φ1)(φ1,φ1)(φm,φ1)(φ0,φ2)(φ1,φ2)(φm,φ2)………(φ0,φm)(φ1,φm)(φm,φm)
可将最 S∗(x) 的条件表示为方程 $$Gx=d$$ 解出 x 即可得到 S∗(x) 其中函数族内函数个数 m≤n, n 为拟合点个数
哈尔条件
函数族 φ0(x),φ1(x),…,φm(x) 的任意线性组合 S(x) 在定义域内, 最多只能有 n 个零点, 才可保证矩阵 G 可得到唯一解(非奇异)
多项式的次数
多项式的次数取决于系数不为 0 的项中的最高次数
eg. 1+x2=0 为二次多项式, 包含的函数族为 1,x,x2
转化为多项式
通常采用多项式作为拟合函数, 拟合超越函数时, 可使用多项式变形
U(x)=f[S(x)]=a′g(x)+b′y′=f(y)
求出 y′ 与 g(x) 的关系, 得到 S(x)
指数拟合
S(x)=aebx
令
U(x)=lnS(x)=lna+bx
幂函数拟合
S(x)=axb
令
U(x)=lnS(x)=lna+blnx
分式拟合
S(x)=ax+bx
令
U(x)=S(x)1=a+xb